本文转自: 知乎
改变
最近汽车的自动驾驶和农场的无人化管理等,我们几乎每天都能看到这样的报道。这些人工智能的技术核心就是“机器学习”。不过机器学习中最主要的却是数学的应用。
比如我们在购物软件买东西的时候,当我们买了一个商品之后,往往会跳出来一条信息,“买这个A东西的人,另一个东西B也买了。”然后把别人同时购买的商品B推送给你。这种功能就是,分析买了这个A东西的人的购买倾向,然后让你来买相关B产品。这里就用到了机器学习。这种机器学习的运用方式,不光在购物软件上被普遍使用,在看新闻的软件,看动画的软件上也被普遍使用。
再就是脸部识别系统。最近的电脑也好,手机也好,普遍搭载了脸部识别系统的功能。就连国际机场也因为导入脸部识别功能,让出入国审查变得更加顺畅。在这里身份证上的脸和实际的脸是否一致的判定,用的也是机器学习功能。
人工智能中的机器学习为什么要用到数学?
事实上,如果只是使用机器学习的程序库的话,是不需要数学知识的。但是,随着机器学习的推进,我们也需要了解程序库是什么结构来运行的,以便更好的确认程序库的内容。在这里为了理解程序库的结构方面,我们就用到了数学。也就是使用数学了解程序库,然后通过程序库找到更合适的机器学习的方法。其目的也是,
- 选定适合机器学习数据的程序库
- 提高预测性能
- 出现问题故障的时候可以流畅的对应
机器学习中主要用到的数学知识以及各种数学知识在机器学习中的具体应用
- 基础用语和符号
- 指数和对数
- 微分
- 数组和行列式
- 概率和统计学
1,基础用语和符号
①算术平均数和调和平均数
n个复数的算术平均数是指它们的和再除以n,例如1,2,3,4的算术平均数是:(1+2+3+4)÷4=2.5
调和平均数(harmonic mean)又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数。比如,
再就是两个数字的调和平均数可以如下表示:
调和平均数是平均数的一种,在机器学习分类模型中,用于“性能评价的F1值”的计算。
②∑ 西格玛
∑ 是数字总和的符号。比如想要计算1到100的总和的话,就是1+2+3+4+・・・+98+99+100,用∑ 来表示的话,就是
∑ 西格玛不光能计算具体的数字,还能和变量相组合。比如,a1,a2,a3⋯an−1,an 的总和用∑来表示的话,就是
∑ 西格玛在机器学习中可以运用的很多方面。例如深度学习的模型是由多个神经元要素构成的。一个神经元需要从多个神经元接收信号,根据相加后的数值,再输出到另一个神经元。这时候的计算式就是用∑ 来表述。
③绝对值
绝对值很好理解,就是一个数字不管是正数还是负数,都把正负的符号忽略掉,只看正数的数值就可以了。例如 |−3|=3 以及 |5|=5
④线性和非线性
线性是指能够预测/分割的东西,线性以外的都是非线性。在机器学习的模型中,虽然有很多种类,但是可以用线性和非线性来区分。线性的模型可以想象成1次方程式,比如 y=ax+b。再就是,用其他函数转换一次方程也是线性模型的一种。比如,y=log[ax+b] 。这些被称为“广义线性模型”。
选择机器学习模型的时候,通常认为,如果能用更简单的模型来预测的话就用那个简单的模型。非线性模型和线性模型相比,可以表达更复杂的样式,但是与线性模型相比,需要更多的数据量和计算量,这也是非线性的一大缺点。
⑤自然对数e
以自然对数e为底数的指数函数,有着与自身导函数相等的特殊性质,在数学中经常被使用。在机器学习中,以信号函数为首的函数中也被广泛使用。e=2.718281⋯
⑥∏(求乘积)
∑ 西格玛是求总和,∏派是求总乘积。比如从1乘以到100,1×2×3×4×⋯×98×99×100,用∏派来表示的话,就是
在机器学习中,模型的最合适的参数值,有时会以概率相乘来计算准确性。计算公式用∏来表示。另外,在机械学习和统计学中,确实性也被称为似然likelihood。
⑦欧几里德距离
和我们平时使用的距离是一样的意思。首先,数直线上的欧几里德距离等于差的绝对值。
二维空间上的距离是根据毕达哥拉斯度量来求的。
同样三维空间的想法也是一样的,比如点(x1,y1,z1)和点(x2,y2,z2)之间的距离就是
作为机器学习的一种,“没有监督的机器学习”,就是将数据值相近的数据进行分组的方法,在计算数据之间距离时就会使用欧几里德距离的思考方式。
⑧乱数(random number)
乱数是没有规则性,无法预测的数值集合。不规则地在某个范围内取值。为了实现恒定概率,经常从均匀分布或正态分布中不规则地提取(采样)所需要的值。
在机器学习中,随机乱数被用作参数的初始值。此外,还用于制作任意样本数据,从而进行学习和预测等情况。
2,指数和对数
指数和对数互为反函数,比如10的4乘方是10000,用指数表示就是
同样,反过来用对数来表示的话,就是log的右小脚写一个小10为底数,表示为
底数是10以外,底数是e的自然对数也经常使用。另外自然对数e的x次方也用exp(x)来表示。
在机器学习中,在寻求最合适的参数的时候,多用于进行参数之间的乘法运算。因此,计算结果往往是非常大的数或非常小的数。在这种情况下,使用指数或对数就可以轻松的进行计算。此外,深度学习使用了被称为S函数(sigmoid function)的指数的非线性函数,这样就提高了模型的表现力。
S函数在复数域的分布图形
3,微分
①微分
微分是指某个瞬间值的变化量。以汽车行驶为例进行说明。以下的汽车以50秒左右的速度行驶300m。速度是根据“距离÷时间”计算的,所以平均速度是秒速6米。但是汽车并不是一直以一定的速度行驶,而是像图表一样反复加减速。
在这里,时间用x来表示的时候,汽车行驶的距离就可以用函数f(x)来表示,这样,汽车不光是恒定的速度,连加减速也正确的表示出来了。这时候,汽车的速度,从30秒到32秒的平均速度就可以用,以下的计算公式来计算。
把这个时间间隔细分下去,比如,2秒,1秒,0.1秒等,那么就可以求,在正好30秒的时候的值的变化量。这就是微分。计算式就是如下。
这个计算式中,h无限接近于0,但是在数学的规则中,如果h等于0是不被允许的,所以这里的h只是无限接近0的一个数。另外,多项式微分的计算式如下,另外,与变量无关的常数的微分值为0。
比如f(x)=x^2+10,f(x)的微分就是如下图。这等于当前的切线表达式。
在机械学习中,微分多被用于计算最佳参数。那个时候切线的想法就是非常有用的。例如,计算最佳参数的公式可以用以下图来表示。最佳参数是图表中的红点和斜率正好为0。在学习的过程中,参数的值不是最合适的,但是通过切线的方向可以知道是在增加参数的值,还是在减少参数的值。最佳值即使不能一次得到,也可以使用微分计算来慢慢接近那个值。
②偏微分
偏微分是多个变数函数的微分。多个变数函数可以用以下的计算式表示。
就算是2个变数,也可以很简单的思考。把想要微分的变数以外,都定为常数。而常数的微分就是0。不过偏微分的时候,把运算符的d变成∂。这样把上面的式子的 x1 作为变数,得到的偏微分的式子就是,
把x2作为变数的话,得到的偏微分的式子就是,
机器学习中有时候需要,只说明变量数量的参数。在求取这些参数的最佳值的时候就会使用偏微分。
③复合函数
多个函数组合使用的时候,就是复合函数,也叫做合成函数。比如 把y=4x^2 用f(u)和g(x)来组合考虑
在这里,合成函数的微分就是f(u)的微分和g(x)的微分的乘积,这个公式也叫连锁法则。
实际上解一下上面的式子就是如下图
合成函数通常用于机器学习中的复杂的函数微分处理。
4,数组和行列式
标量(Scalar):单一的数值叫Scalar,如10
矢向(vector):一维空间的list叫做vector,如(2,4,6,8)。在平面上,表示大小和方向也可以叫做vector。
张量(Tensor):二维空间以上的list叫做张量。在深度学习中,有名的TensorFolow,就是说,张量从数据流图的一端流动到另一端的计算过程。它生动形象地描述了复杂数据结构在人工神经网络中的流动,传输,分析和处理模式。
矩阵( matrix ):由标量构成的二维数组。在python中可以表示二维空间的list,在数学上使用括号围起来的。比如下图的2行3列的矩阵。
①矢量的内积
矢量的内积的公式是
矢量a→和矢量b→不是垂直的时候,矢量的内积就是0。矢量a→和矢量b→是垂直的时候,就叫法线,或者法向量。
矢量(1,1)的垂直矢量,要不是(1,-1),就是(-1,1),分别这两个矢量的内积都是0,如下图。
再就是关于夹着法线的矢量,根据矢量的计算公式,就是把它们的模长相乘,再乘以它们的夹角的余弦值。就好像下图的橙色的箭头的方向那样,同样方向的矢量内积是正数。蓝色的矢量的箭头那样,反向的矢量的内积是负数。
②矩阵的计算
矩阵不管是加法还是减法都能很轻松的计算。
在机器学习中,经常对矩阵的所有要素进行统一计算。例如,矩阵乘以2时,会生成以下式子:
在机器学习中,让矩阵和矩阵相乘,俗称内积,也经常被使用。
③转置矩阵
在线性代数中,矩阵A的转置(英语:transpose)是另一个矩阵AT(也写做Atr,tA或A′)。
在机器学习中,矩阵被广泛使用。例如,在将学习数据加载到列表中时,如果是csv数据的话,就可以在二维矩阵中读取数据。另外,深度学习中会进行多个神经元之间的计算的时候,矩阵和内积就可以用来表示神经元的计算公式。
5,概率和统计
机械学习是从统计学中发展起来的。因为有数据的预处理等方式需要统计学的想法,所以统计学的理论在机器学习中尤为重要。
①概率
概率是指某件事情发生的比例。用英语单词“Probability”开始的开头字母P来表示。在机器学习中,给预测模型分类等很多场合都会使用到概率的理论和思考方式。
②分布
分布或概率分布是表示值与概率的对应关系。在机器学习中经常使用的是均匀分布或正态分布。
③均匀分布
均匀分布所在范围内,分布的概率是一定的。如下图所示。可以确认各个点在整体布局中分散。
一维空间
二维空间
④正态分布
正态分布:在中央附近的概率高,左右对象递减分布。如下图所示。中央附近的点多,可以看出中央位置概率高。世界上很多现象都是遵循正态分布来表现的,在概率分布方面,正态分布也被使用的最多。
一维空间
二维空间
⑤直方图(Histogram)
是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量,以长条图(bar)的形式具体表现。因为直方图的长度及宽度很适合用来表现数量上的变化,所以较容易解读差异小的数值。
⑥协方差(共分散)和相关系数
协方差(共分散): 可以通俗的理解为:两个变量的变化过程,和变化程度。
- 协方差>0:一个变量变大,另一个变量也变大,说明两个变量是同向变化的,这时协方差就是正的。 正的相关系数。
- 协方差<0:一个变量变大,另一个变量却变小,说明两个变量是反向变化的,这时协方差就是负的。 负的相关系数。
- 协方差=0:两个变量没有相关性
- 从数值来看,协方差的数值越大,两个变量同向程度也就越大。反之亦然。
比如协方差>0的示意图如下
⑦有条件的概率
在某个事件发生的前提条件下,发生其他事件的概率被称为有条件概率。如下所示。
- 有两个袋子“袋子A,袋子B”。每个袋子里都有一个红球和两个白球。
- 选择其中一个袋子,取出一个球
- 在选择袋子A的条件下,取出红球的有条件概率是1/3。
这里选择袋子A是条件而不是概率。因此,上述情况下附带条件的概率不是1/6而是1/3。
⑧同时概率
多个事件同时发生的概率被称为同时概率。比如以下的例子
- 有两个色子。
- 两个色子同时出现偶数的概率就是1/2 x 1/2 = 1/4。
⑨依然(尤度Likelihood)
简单来说就是,先观察这个事件的结果,看看在什么样的前提条件下推测,才是最合适的指标。用英语单词Likelihood的首字母L来表示。
依然和概率很相似,
- 概率是知道前提,从那个前提条件下考虑某个结果的可能性是多少
- 依然是不知道前提条件但是知道结果,反过来考虑造成这个结果是因为什么样的前提条件。
在机器学习中,在已知的理论模型中怎么才能证明实际的观测数据的真实性的问题上,用到的就是依然。
⑩统计量
表示整个数据概要的称为统计量。标准偏差是度量数据分布的分散程度的标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。通过下面的示意图可以从统计量大致可以了解数据的分布。
⑪平均值
平均值就是数据的算术平均值。
⑫方差(分散variance)
方差就是各数据与平均值之差的平方的平均值,用来表示数据的分散情况。
⑬标准偏差
标准偏差是StandardDeviation,缩写SD,符号σ。是指方差的平方根
⑭中位数(中央值)和四方位数(四分位数)
数据按从小到大的顺序排列的中间值是中位数。方差偏向一端的情况下,中位数很有可能与平均值并不是同一个值。另外,以下的值总称为四分位数。
- 最小值
- 第一四分位数:小于25%的值
- 中位数
- 第三四分位数:小于75%的值
- 最大值
实际例子:预测运动员选手的年收入的数据预处理
dataset = pd.read_csv("baseball_salary.csv")
dataset.describe()