人工智能作为当前比较热门的技术,想要学好并不容易,一般的程序员不容易顺利进入人工智能的研究领域,因为人工智能技术不仅仅需要有较强的编程能力,还需要有一定的数学功底,希望本专栏的课程可以帮助大家顺利进入人工智能领域的大门,当然人工智能的理论博大精深,绝不是这一个专栏就可以讲清楚的,本专栏会选择比较简单、易懂的概念和模型,帮助大家理解人工智能的基本原理,梳理好相关的概念,为以后的转型打好基础。在学习人工智能算法之前,你至少需要掌握:至少一门编程语言(这里推荐Python);高等数学函数、微积分;概率论;线性代数或者矩阵论的内容。
对于Python,需要掌握它的基本语法、Numpy模块、matplotlib模块、Pandas模块的使用。
对于数学,无需从头开始学习完整的数学体系,你只需要重点知道:
导数、求导、单调性、函数凹凸、泰勒级数展开式、极值判断、偏导数、随机事件概率、贝叶斯公式、随机变量、期望方差、常用概率分布、随机向量、最大似然估计、协方差矩阵、雅可比矩阵、拉格朗日乘数法、梯度向量、向量运算、行列式、二次型、特征值和特征向量、矩阵正定性、奇异值分解、共轭梯度法、矩阵范数。
线性代数部分需要重点把握,因为很多算法输入的数据都是特征向量,很多算法最终都会转换成求解特征值和特征向量的问题,比如处理图像数据时,黑白图像本质就是2维数据,彩色图像本质就是3维数据。
掌握线性代数、微积分、概率论和一些优化算法知识,就可以让你能够看懂大部分算法的原理。常用的算法和对应的数学知识如下表:
常用算法 | 所有数学知识 |
决策树(DT) | 概率、熵、Gini系数 |
KNN算法 | 距离函数 |
贝叶斯分类器 | 随机变量、贝叶斯公式、正态分布、最大似然估计 |
流形学习 | 最优化、流形、图、特征向量特征值 |
随机森林(RF) | 抽样、方差 |
支持向量机(SVM) | 强对偶、拉格朗日对偶、KKT条件、凸优化、核函数、Mercer条件 |
主成分分析(PCA) | 协方差矩阵、散度矩阵、拉格朗日乘数法、特征向量特征值 |
线性判别分析 | 散度矩阵、逆矩阵、拉格朗日乘数法、特征向量特征值 |
Logistic | 概率、随机变量、最大似然估计、梯度下降法、凸优化、牛顿法 |
人工神经网络(ANN) | 梯度下降法、链式法则 |
卷积神经网络(CNN) | 梯度下降法、链式法则 |
循环神经网络(RNN) | 梯度下降法、链式法则 |
K-means算法 | 距离函数 |
贝叶斯网络 | 图、条件概率、贝叶斯公式 |
隐马尔可夫模型(HMM) | 拉格朗日乘数法、概率、离散随机变量、条件概率、最大似然估计 |
生成对抗网络(GAN) | 梯度下降法、链式法则、极值定理、条件分布、测地距离 |