文章目录
写在前面:
重点推荐内容加粗显示
有些课程和书籍区分了难度系数,比如简单、中档等,但是难度系数并不代表阅读对应书籍或者学习相应课程需要的时间长短,所谓“难度系数”,只是根据推荐资料需要的数学基础来界定的。
1. 数学基础
数学基础主要依赖上课就行了,如果忘了,就花一两周稍微复习一下。
- 高等数学 (关注微分,拉格朗日乘子法,积分换元法等;本科教材即可)
- 线性代数(关注矩阵运算;本科教材即可)
- 概率论与数理统计(关注全概率公式,极大似然法、参数估计以及常用分布;本科教材即可)
- 数值分析(关注梯度下降法、牛顿法以及常用的插值算法;本科或研究生教材即可)
- 矩阵论(关注空间映射和范数;研究生教材即可)
- 随机过程(关注泊松过程和马尔科夫过程;研究生教材即可)
- 凸优化(难度较大,简单了解一下就好了)
- 条件随机场(难度较大,遇到了再看网上教程吧)
2. 编程基础
2.1 Python & C++
- Python教程
- Python第三方库
- 矩阵计算库Numpy https://docs.scipy.org/doc/numpy/user/quickstart.html
- 可视化库Matplotlib https://matplotlib.org/contents.html
- 符号计算库Scipy https://docs.scipy.org/doc/scipy/reference/tutorial/index.html
- 高级数据处理库(可不学)Pandas http://pandas.pydata.org/pandas-docs/stable/tutorials.html
- 统计学习库Sklearn https://scikit-learn.org/stable/tutorial/index.html
- 图像处理库OpenCV https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
- 简易图像处理库PIL https://pillow.readthedocs.io/en/5.3.x/handbook/index.html
另外,最好掌握基础的C++ 或者 Java的一种,熟练掌握常用的数据结构与算法【线性结构(数组,链表,队列等)、树(二叉树,2-3树,B树等)、图与哈希表等】,这部分主要复习本科教材即可。
2.2 Linux & Shell
需要熟悉常用的Linux命令行操作,推荐《Linux命令行与shell脚本编程大全》(看基础部分就可以了)。Linux推荐Ubuntu或者Mint。不推荐初学者使用centos或者red hat。
2.3 深度学习框架
框架不重要,选择自己顺手的就好了。**主推TensorFlow和PyTorch。**当然你也可以尝试chainer, MXNet, DL4J等。
- Tensorflow
- PyTorch https://pytorch.org/tutorials/
3. 统计学习
如果精力或者时间允许,可以考虑了解一下人工智能的概况,因为人工智能不仅仅局限于统计学习与深度学习,只是这二者现下过于火热,给人造成了这样的错觉。俗话说“疾风知劲草,岁寒见后凋”,人工智能从上个世纪50年代开始,发展起起落落,资本进进出出,这次的火爆又何尝不是资本的推动呢(当然,技术上也确实有进步)?所以我认为,既然要学的话,就不要仅仅局限在目前资本吹捧的内容,毕竟我们是在学校不是在企业,资本逐利,但是人不能只逐利,所以我们有必要看看以前的人到底做了什么。“一门学科的历史就是她的全部”,这里推荐书籍《人工智能:一种现代化方法》,该书不局限于当下火热的统计学习和深度学习,主要讲述了人工智能的发展史&#