1.统计学
要深入理解机器学习,必须要有扎实的统计学基础知识,这涉及到几个方面:
度量模型是否成功的各种方法(精确度、召回率、ROC曲线下面积等)。损失函数和评估指标的选择是如何偏离模型的输出的。
如何理解过拟合和欠拟合,以及偏差/方差折衷。
你对模型的结果有什么样的信心。
2.机器学习理论
在训练神经网络的时候,实际上发生了什么?是什么使得某些任务可行,而其他任务不可行?要弄清楚这些问题,最好的方法不是深入研究理论知识,而是试着通过图形和示例来了解机器学习。
需要理解的概念范围包括:不同的损失函数的工作原理是什么、为什么反向传播是有用的、计算图是什么。而对于如何建立一个功能模型,以及如何跟团队里的其他人员进行有效地交流,这些都需要深入地理解。下面我给出了一些参考资料:
谷歌的深度学习课程对深度学习做了一般性地介绍。
Fei-FeiLi的计算机视觉课程,以及RichardSocher的NLP课程,则提供了更为专业的介绍。
Goodfellow编写的深度学习书籍相当不错,可用于全面了解深度学习方面的基础知识。
另一个基本技能是阅读、理解和实施论文的能力。这个一开始做起来可能会感觉比较困难,所以最好的方法就是阅读附带代码的论文(例如,研究GitXiv上的论文),并试着去理解它是如何实现的。
3.数据处理
如果你去问任何一个数据科学家他们的主要工作是什么,他们会告诉你,90%的工作是数据处理。这与应用AI同样重要,因为模型的成功与否与数据的质量(和数量)强相关。数据工作包含多个方面,但可归纳为下面几类:
数据采集(包括:找到好的数据源、准确度量数据的质量和分类、获取和推断标签)
数据预处理(缺失数据填补、特征工程、数据