@EnzoReventon 《人工智能基础》

《人工智能基础》——线性回归算法推导

前面我们通过讲线性回归相信大家已经理解了回归任务是做什么的,但是还不知道具体怎么做,就是说怎么求出最优解,为了透彻理解我们必须再补充一些概念,只有有了这些概念我们后面才能推导出线性回归所需要的损失函数,进而去进一步理解最优解该如何去求。

首先,先了解一下一些概念。

中心极限定理

高尔顿钉板

人工智能回归模型 系数_人工智能回归模型 系数


中心极限定理(central limit theorem)是概率论中讨论随机变量序列部分和分布渐近于正态分布的一类定理。这组定理是数理统计学和误差分析的理论基础,指出了大量随机变量累积分布函数逐点收敛到正态分布的积累分布函数的条件。

它是概率论中最重要的一类定理,有广泛的实际应用背景。在自然界与生产中,一些现象受到许多相互独立的随机因素的影响,如果每个因素所产生的影响都很微小时,总的影响可以看作是服从正态分布的。中心极限定理就是从数学上证明了这一现象。

正太分布与预测的关系

正太分布也叫高斯分布。

人工智能回归模型 系数_机器学习_02


影响正态分布图形高矮胖瘦的两个参数为:方差以及期望。方差越大,图形越宽越扁,方差越小,图形就越高越瘦。

误差

第i 个样本实际的值yi 等于预测的值yi_hat 加误差εi,或者公式可以表达为如下:

人工智能回归模型 系数_人工智能回归模型 系数_03


假定所有的样本的误差都是独立的,有上下的震荡,震荡认为是随机变量,足够多的随机变量叠加之后形成的分布,根据中心极限定理,它服从的就是正态分布,因为它是正常状态下的分布,也就是高斯分布!均值是某一个值,方差是某一个值。

方差我们先不管,均值我们总有办法让它去等于零0 的,因为我们这里是有W0 截距的,所有误差我们就可以认为是独立分布的,1<=i<=m,服从均值为0,方差为某定值的高斯分布。

机器学习中我们假设误差符合均值为0,方差为定值的正态分布!

最大似然估计

在统计学中,最大似然估计(英语:maximum likelihood estimation,缩写为MLE),也称最大概似估计,是用来估计一个概率模型的参数的一种方法。这个方法最早是遗传学家以及统计学家罗纳德·费雪fisher 爵士在1912 年至1922 年间开始使用的。“似然”是对likelihood 的一种较为贴近文言文的翻译,“似然”用现代的中文来说即“可能性”。故而,若称之为“ 最大可能性估计”则更加通俗易懂。在英语语境里,likelihood 和probability 的日常使用是可以互换的,都表示对机会(chance) 的同义替代。

给定一个概率分布D,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为f_D,以及一个分布参数θ,我们可以从这个分布中抽出一个具有n 个值的采样X1,X2,…,X_n,利用f_D 计算出其似然函数:

人工智能回归模型 系数_人工智能_04

若 D 是离散分布,fθ 即是在参数为θ时观测到这一采样的概率。若其是连续分布,fθ 则为X1,X2,…,X_n 联合分布的概率密度函数在观测值处的取值。一旦我们获得X1,X2,…,X_n,我们就能求得一个关于θ的估计。最大似然估计会寻找关于θ的最可能的值(即,在所有可能的θ取值中,寻找一个值使这个采样的“可能性”最大化)。从数学上来说,我们可以在θ的所有可能取值中寻找一个值使得似然函数取到最大值。这个使可能性最大的 ^θ 值即称为θ的最大似然估计。由定义,最大似然估计是关于样本的函数。

因为我们前面说了既然世间万物很多事情都服从中心极限定理,而机器学习中就假设了数据预测的误差服从正太分布,很明显正太分布是连续的分布,所以故而需要误差对应的正太分布的概率密度函数。

概率密度函数

在数学中,连续型随机变量的概率密度函数是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。而随机变量的取值落在某个区域之内的概率则为概率密度函数在这个区域上的积分。

最简单的概率密度函数是均匀分布的密度函数。最简单的概率密度函数是均匀分布的密度函数。也就是说,当x 不在区间a,b 上的时候,函数值等于0 ;而在区间a,b 上的时候,函数值等于这个函数。这个函数并不是完全的连续函数,但是是可积函数。

人工智能回归模型 系数_人工智能回归模型 系数_05

最常见的连续概率分布是正态分布,而这正是我们所需要的,其概率密度函数如下:

人工智能回归模型 系数_机器学习_06

随着参数μ和σ变化,概率分布也产生变化。

下面重要的步骤来了,我们要把一组数据误差出现的总似然,也就是一组数据之所以对应误差出现的整体可能性表达出来了,因为数据的误差我们假设服从一个正太分布,并且通过截距项来本质上平移整体分布的位置从而使得μ=0,所以对于一条样本的误差我们可以表达其概率密度函数的值为如下:

人工智能回归模型 系数_人工智能回归模型 系数_07

正太分布的线性回归的最大总似然

接下来我们就是要把最大似然函数通过正太分布概率密度函数表达出来:

人工智能回归模型 系数_人工智能回归模型 系数_08

这时,因为我们假设了误差服从正太分布,符合中心极限定理,那么也就是样本误差服从了互相独立的假设,所以我们可以把上面式子写出连乘的形式。关于独立为什么可以连乘,大家回想一下关于概率的公式。
*P(A*B)=P(A)P(B)

人工智能回归模型 系数_线性回归_09

所以:

人工智能回归模型 系数_线性回归_10

因为我们现在讲的是线性回归,所以误差函数可以写为如下:

人工智能回归模型 系数_机器学习_11


从上式中我们可以看出来,这样我们的历史数据中的X 和y 就都可以被用上去求解了,所以正太分布假设下的最大似然估计函数可以写成如下:

人工智能回归模型 系数_机器学习_12

推导出线性回归损失函数MSE

下面我们要推导出线性回归损失函数,为什么要干这件事?因为我们说过要去求解出最优解,我们往往干的事情就是最小化损失函数。所以我们必须首先知道这个算法对应的损失函数是什么。

上面我们已经有了总似然的表达公式,而我们也有最大总似然这种数学思想,所以我们可以先往后沿着把总似然最大化这个思路继续看看会发生什么。

说白了,最大似然估计就是一种参数估计的方式,就是把总似然最大的那一时刻对应的参数θ当成是要求的最优解!

人工智能回归模型 系数_机器学习_13

这时我们就可以把通过最大化似然函数的形式成为我们的目标函数,因为我们的目标就是最大化这个式子从而求解θ。

对数似然函数

首先我们了解一下log 对数函数的特性,我们可以发现它的特点是当底数a>1 时,它是一个单调递增的函数,单调递增怎么了?很棒!意味着如果x1<x2,那么必然y1<y2,更棒的是,我们上面的式子是要找出总似然最大时对应的θ是多少,所以是不是就意味着等价于找出总似然的对数形式最大时对应的θ是多少呢!!!必须的,求出来的θ一定是一样的。当然这里底数必须要大于1,我们选择底数为科学计数e,至于原因后面马上就知道了。

人工智能回归模型 系数_线性回归_14

人工智能回归模型 系数_机器学习_15


人工智能回归模型 系数_人工智能_16


根据对数函数的运算法则!!

人工智能回归模型 系数_概率密度函数_17


人工智能回归模型 系数_人工智能回归模型 系数_18


因为前面有个负号,所以最大总似然变成了最小话负号后面的部分。到这里,我们就已经推导出来了MSE 损失函数,从公式我们也可以看出来MSE 名字的来历,mean squared error,上式也叫做最小二乘。

人工智能回归模型 系数_人工智能_19

综上,所以线性回归的误差函数就是:

人工智能回归模型 系数_人工智能回归模型 系数_20


这种最小二乘估计,其实我们就可以认为,假定了误差服从正太分布,认为样本误差的出现是随机的,独立的,使用最大似然估计思想,利用损失函数最小化MSE 就能求出最优解!所以反过来说,如果我们的数据误差不是互相独立的,或者不是随机出现的,那么就不适合去假设为正太分布,就不能去用正太分布的概率密度函数带入到总似然的函数中,故而说白了就不能用MSE 作为损失函数去求解最优解了。还有譬如假设误差服从泊松分布,或其他分布那就得用其他分布的概率密度函数去推导出损失函数了。

所以有时我们也可以把线性回归看成是广义线性回归,General Linear Model。比如,逻辑回归,泊松回归都属于广义线性回归的一种,这里我们线性回归可以说是最小二乘线性回归。

判定损失函数凸函数

判定损失函数是凸函数的好处在于我们可能很肯定的知道我们求得的极值即最优解,一定是全局最优解。

人工智能回归模型 系数_人工智能_21

判定凸函数的方式:
判定凸函数的方式非常多,其中一个方法是看黑塞矩阵是否是半正定的。
黑塞矩阵(hessian matrix)是由目标函数在点X 处的二阶偏导数组成的对称矩阵。
对于我们的式子来说就是在导函数的基础上再次对θ来求偏导,说白了不就是 人工智能回归模型 系数_人工智能回归模型 系数_22 所谓正定就是A 的特征值全为正数,那么是正定的。半正定就是A 的特征值大于等于0,就是半正定。
这里我们对 J 损失函数求二阶导的黑塞矩阵是人工智能回归模型 系数_人工智能回归模型 系数_22