一个机器学习算法工程师,对数学的掌握程度应该是怎样的?

kart2011


对于机器学习算法工程师而言,统计和线性代数毫无疑问是需要掌握的。

统计

比如评估机器学习算法的表现,用到的各种指标就源于统计学,包括准确率召回F1AUROC等。

(AUROC曲线;图片来源:gerardnico.com)

再比如很多机器学习算法都假定数据符合某种分布(或至少接近某种分布),同样,这些分布的知识也属于统计学。

(混合高斯分布;图片来源:StackOverflow)

线性代数

尤其是矩阵的各种变换

,因为大量机器学习算法都是在和矩阵打交道。

比如,现在很火热的深度学习中最常用的卷积操作,就是矩阵的变换。

其他

还有一些内容:

多变量微积分。比如,现在无比热门的神经网络,优化方法几乎全是基于

梯度下降,而梯度下降,其实就是链式求导。不过,理工科应该都学过这方面的课程。

概率论。概率也是机器学习算法中频繁用到的。不过基础的概率知识在统计学中已经包括了,而比较深入的概率知识其实在机器学习算法设计的时候并不经常用到。


论智


算法工程师,不是程序员。国外公司的职位基本上叫数学家,或科学家。要胜任工作,并且有点创新的话,如下数学领域要比较熟悉才行:微积分与微分方程,线代和矩阵理论,数理统计,布尔代数,随机过程,积分变换,离散数学,变分原理与最优化,数值计算方法,系统建模理论和方法。比较高一点要求,再加抽象代数,微分几何,泛函分析,稳定性理论,数理方程,复杂动态系统理论,等。