人工智能需要哪些高级的数学知识?

人工智能的本质是发现事物之间的规律,然后对未来作出预测,一般方法是建立模型、求解模型 。
“线性代数”、“概率论”、“优化论”这三门数学课程,前两门是建模,后一门是求解,是学习人工智能的基础 。
线性代数线性代数是学习人工智能过程中必须掌握的知识 。线性代数中我们最熟悉的就是联立方程式了,而线性代数的起源就是为了求解联立方程式 。只是随着研究的深入,人们发现它还有更广阔的用途 。
在数据科学中,经常需要知道个体间差异的大小,进而评价个体的相似性和类别 。衡量个体差异的方法有很多,有的方法是从距离的角度度量,两个个体之间的距离越近就越相似,距离越远就越不相似;有的方法是从相似的角度度量 。
用距离衡量个体之间的差异时,最常用的距离就是欧氏距离,它和我们中学时学过的两点间距离一样,只不过现在的点是多维空间上的点了 。
欧氏距离计算公式:

人工智能需要哪些高级的数学知识?

文章插图
 
对应的Python代码如下:
import numpy as npusers=['u1','u2','u3']rating_matrix=np.array([4,3,0,0,5,0],[5,0,4,0,4,0],[4,0,5,3,4,0])#根据公式计算用户u1和u2的距离d1=np.sqrt(np.sum(np.square(rating_matrix[0,:]-rating_matrix[1,:])))#计算结果d15.196152422706632除了使用距离,还可以使用相似度来衡量用户的相似性 。常用的相似度是夹角余弦相似度 。
两个向量a、b的夹角余弦公式:
人工智能需要哪些高级的数学知识?

文章插图
 
可以用下面的代码计算两个向量的夹角余弦相似度:
def mod(vec):#计算向量的模x=np.sum(vec**2)return x**5def sim(vec1,vec2):#计算两个向量的夹角余弦值s=np.dot(vec1,vec2)/mod(vec1)/mod(vec2)return s#计算前两个用户的相似度cos_sim=sim(rating_matrix[0],rating_matrix[1])#计算结果为0.749268649265355夹角余弦值越接近1代表越相似 。
Python中很多工具包已经实现了绝大多数距离和相似度的计算,可以直接调用 。
向量运算、矩阵运算、向量空间模型、多项式回归、岭回归、Lasso回归、矩阵分解等都属于线性代数的范畴 。
除了使用数学公式以外,还可以利用概率进行建模 。
概率论“概率统计”是统计学习中重要的基础课程,因为机器学习很多时候就是在处理事务的不确定性 。
  • 最大似然估计
最大似然思想是频率学派使用的概率建模思想基础,它是基于最大似然原理提出的 。
最大似然原理,实质是以下两点:
  • 概率大的事件在一次试验中更容易发生;
  • 在一次试验中发生了的事件,其概率应该最大 。
在用概率思想对数据建模时,通常会假设这些数据是从某一种分布中随机采样得到的,比如正态分布 。但是我们并不知道这个正态分布是什么样的,均值和方差两个参数未知,“模型已定,参数未知” 。这时就可以用最大似然的思想建模,最终得到对模型参数的估计 。
总之,最大似然估计的目标是找出一组参数,使得模型生成观测数据的概率最大即可 。
除此之外,还可以用贝叶斯方法和采样的方法估计参数 。
  • 贝叶斯建模
人们在研究事件的统计规律时,会用随机变量对一个随机现象进行量化 。如果两个随机变量不独立,就可以得到著名的贝叶斯公式:
人工智能需要哪些高级的数学知识?

文章插图
 
贝叶斯公式之所以非常重要,是因为在机器学习中建的模型可以表示成 P(HD) 。D代表拥有的数据,而H则代表对数据中隐藏的模型做出的假设 。根据贝叶斯公式就有:
人工智能需要哪些高级的数学知识?

文章插图
 
贝叶斯公式从形式上看似乎很简单,而且计算也不复杂,但它是贝叶斯学派的法宝 。它成功地引入了先验知识,对频率学派的最大似然估计法进行了改进 。
业界大牛曾这样评价贝叶斯建模方法:“人工智能领域出现过3个最重要的进展:深度神经网络、贝叶斯概率图模型和统计学习理论 。”
朴素贝叶斯的一个成熟应用是垃圾邮件分类问题,网上有很多案例,大家可以学习 。
优化模型建立起来后,如何求解这个模型属于优化的范畴 。优化,就是在无法获得问题的解析解的时候,退而求其次找到一个最优解 。当然,需要提前定义好什么是最优,就好像足球比赛之前得先定义好比赛规则一样 。


推荐阅读