最近搞了点机器学习的东西,因为0基础所以老老实实上了斯坦福的公开课,这期间解决了我一直想不清楚的一个问题:最小二乘法的统计学解释。

当我们遇到一个原理的时候,实用主义者会认为可以应用就可以了,但总有些吃饱了没事干的人去问个为什么,他们连显而易见的常识都不放过,更别说想最小二乘法这种看起来并不那么理所当然的东西。对方法的本质进行探索是很重要的,这直接关系方法的泛化与推演程度。而本质又是什么?想来有两种:公理与统计学规律。前者的代表就是几何学,基本是个纯演绎体系,后者的代表就是一切说不明白但又很显然的道理,而为了让这个显然更精准和科学一些,我们需要一些统计学的知识,算是个归纳体系。逻辑上演绎而不是归纳体系更符合科学的严谨性,这也是证伪的核心,但这不是说统计得到的规律意义不大,相反,当今多数研究的科学性更多是由统计学意义而不是反例来支配的,就连黎曼猜想这种大手笔的数学证明过程也不乏统计方法的应用。但说到底本质的东西就是无法再从这里往前推的知识或原因,我们周知的世界就是由这些东西根本支配。但这里没有说所有的事物都能找到一个说的清楚的原因,强加因果是很荒谬的,现在很多事件过度强调找原因事实上很幼稚,原因不都是一下就说得清的。好了,不废话了,回到那个最直接的问题

数据拟合中,为什么要让模型的预测数据与实际数据之差的平方而不是绝对值和最小来优化模型参数?

首先,我们来考虑数据拟合的实际状况:当我们寻找模型来拟合数据时,偏差是不可避免的存在的。对一个拟合良好的模型而言,这个偏差整体应该是符合正态分布的,这里可能你会问为什么是正态分布?其实这就是个假设,你用什么分布就要在后续的计算中运用相应分布的概率密度函数,而偏差这种东西符合什么分布最靠谱呢?如果你喜欢扔硬币的话就知道硬币一面出现的概率就是0.5,你扔多次某一面出现的次数的概率就是个二项分布,这是离散的,你扔硬币的次数趋向正无穷再来看这个分布就是正态分布。这之间的证明过程涉及斯特林公式神马的,其实这个推导是在一定条件下完成的,想了解的自行放狗。如果你认同这种0.5概率的扔硬币,那么可以假想理想的偏差也是跟硬币某一面出现的概率分布差不多就行了,至于再深入考虑为什么,那就基本是形而上学的东西了,自便。

现在,我们已经知道偏差符合正态分布,那么下一步就是理解另外一种函数——极大似然函数。在模型拟合中,极大似然函数的本质就是让我们用来拟合数据的模型与每一个数据点的更为相符,这就要求偏差的大小应该是基本一致,或者说符合正态分布,那么偏差大小基本一致与不一致怎么区别呢?这里我们用偏差出现的概率相乘的大小来表示。因为概率大小都在0到1之间并符合期望为x的正态分布,两个偏差值越接近中心期望x,乘积越大。极大似然函数就是用来表示这一关系的,当然在这里联乘的形式可以取对数改为概率求和,如果你还有印象的话,正态分布的概率密度函数是欧拉数的幂函数形式,而幂中有一个负号有一个平方,平方就是偏差的平方,负号则将原来求最大值变成了求最小值,这时候反过来看这个极大似然函数的求解其实就是最小二乘法。

本质上来说,模型拟合都可以用极大似然函数求最值来表示,如果你能想办法把你想键的模型转为一个寻优问题,那就可以通过求导等数学方法来解决了,但千万要注意:并不是所有的模型都可以有最优解,有些只有局部最优,有些则压根找不到,需要足够聪明的人转为对偶的凸函数或其他可解的问题才能寻优,此外,数学上证明了的NP-hard问题就别尝试了,更不要尝试NPC问题了。

好了,现在我大概说明白了为什么用平方和了,本质上就是正态分布的概率密度函数所致,那么为什么不是绝对值的和呢?简单说绝对值的和无法转化为一个可解的寻优问题,既然无法寻优如何得到恰当的参数估计呢?就这么简单。

关于最小二乘,刘未鹏在讲解贝叶斯定律时也提到过,他从贝叶斯定律而不是极大似然的角度给出了与本文基本一致的解释,可谓殊途同归。

OK,到此结束,概率论就是个坑啊!