|||
最近搞了点机器学习的东西,因为0基础所以老老实实上了斯坦福的公开课,这期间解决了我一直想不清楚的一个问题:最小二乘法的统计学解释。
当我们遇到一个原理的时候,实用主义者会认为可以应用就可以了,但总有些吃饱了没事干的人去问个为什么,他们连显而易见的常识都不放过,更别说想最小二乘法这种看起来并不那么理所当然的东西。对方法的本质进行探索是很重要的,这直接关系方法的泛化与推演程度。而本质又是什么?想来有两种:公理与统计学规律。前者的代表就是几何学,基本是个纯演绎体系,后者的代表就是一切说不明白但又很显然的道理,而为了让这个显然更精准和科学一些,我们需要一些统计学的知识,算是个归纳体系。逻辑上演绎而不是归纳体系更符合科学的严谨性,这也是证伪的核心,但这不是说统计得到的规律意义不大,相反,当今多数研究的科学性更多是由统计学意义而不是反例来支配的,就连黎曼猜想这种大手笔的数学证明过程也不乏统计方法的应用。但说到底本质的东西就是无法再从这里往前推的知识或原因,我们周知的世界就是由这些东西根本支配。但这里没有说所有的事物都能找到一个说的清楚的原因,强加因果是很荒谬的,现在很多事件过度强调找原因事实上很幼稚,原因不都是一下就说得清的。好了,不废话了,回到那个最直接的问题
数据拟合中,为什么要让模型的预测数据与实际数据之差的平方而不是绝对值和最小来优化模型参数?
首先,我们来考虑数据拟合的实际状况:当我们寻找模型来拟合数据时,偏差是不可避免的存在的。对一个拟合良好的模型而言,这个偏差整体应该是符合正态分布的,这里可能你会问为什么是正态分布?其实这就是个假设,你用什么分布就要在后续的计算中运用相应分布的概率密度函数,而偏差这种东西符合什么分布最靠谱呢?如果你喜欢扔硬币的话就知道硬币一面出现的概率就是0.5,你扔多次某一面出现的次数的概率就是个二项分布,这是离散的,你扔硬币的次数趋向正无穷再来看这个分布就是正态分布。这之间的证明过程涉及斯特林公式神马的,其实这个推导是在一定条件下完成的,想了解的自行放狗。如果你认同这种0.5概率的扔硬币,那么可以假想理想的偏差也是跟硬币某一面出现的概率分布差不多就行了,至于再深入考虑为什么,那就基本是形而上学的东西了,自便。
现在,我们已经知道偏差符合正态分布,那么下一步就是理解另外一种函数——极大似然函数。在模型拟合中,极大似然函数的本质就是让我们用来拟合数据的模型与每一个数据点的更为相符,这就要求偏差的大小应该是基本一致,或者说符合正态分布,那么偏差大小基本一致与不一致怎么区别呢?这里我们用偏差出现的概率相乘的大小来表示。因为概率大小都在0到1之间并符合期望为x的正态分布,两个偏差值越接近中心期望x,乘积越大。极大似然函数就是用来表示这一关系的,当然在这里联乘的形式可以取对数改为概率求和,如果你还有印象的话,正态分布的概率密度函数是欧拉数的幂函数形式,而幂中有一个负号有一个平方,平方就是偏差的平方,负号则将原来求最大值变成了求最小值,这时候反过来看这个极大似然函数的求解其实就是最小二乘法。
本质上来说,模型拟合都可以用极大似然函数求最值来表示,如果你能想办法把你想键的模型转为一个寻优问题,那就可以通过求导等数学方法来解决了,但千万要注意:并不是所有的模型都可以有最优解,有些只有局部最优,有些则压根找不到,需要足够聪明的人转为对偶的凸函数或其他可解的问题才能寻优,此外,数学上证明了的NP-hard问题就别尝试了,更不要尝试NPC问题了。
好了,现在我大概说明白了为什么用平方和了,本质上就是正态分布的概率密度函数所致,那么为什么不是绝对值的和呢?简单说绝对值的和无法转化为一个可解的寻优问题,既然无法寻优如何得到恰当的参数估计呢?就这么简单。
关于最小二乘,刘未鹏在讲解贝叶斯定律(http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/)时也提到过,他从贝叶斯定律而不是极大似然的角度给出了与本文基本一致的解释,可谓殊途同归:
学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上 N 个点,(这里不妨假设我们想用一条直线来拟合这些点——回归可以看作是拟合的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。
一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为 (Xi, Yi) 。如果直线为 y = f(x) 。那么 (Xi, Yi) 跟直线对这个点的“预测”:(Xi, f(Xi)) 就相差了一个 ΔYi = |Yi – f(Xi)| 。最小二乘就是说寻找直线使得 (ΔY1)^2 + (ΔY2)^2 + .. (即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。
我们假设直线对于坐标 Xi 给出的预测 f(Xi) 是最靠谱的预测,所有纵坐标偏离 f(Xi) 的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对 Xi 给出的预测 f(Xi) 为中心,实际纵坐标为 Yi 的点 (Xi, Yi) 发生的概率就正比于 EXP[-(ΔYi)^2]。(EXP(..) 代表以常数 e 为底的多少次方)。
现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是:
P(h|D) ∝ P(h) * P(D|h)
又见贝叶斯!这里 h 就是指一条特定的直线,D 就是指这 N 个数据点。我们需要寻找一条直线 h 使得 P(h) * P(D|h) 最大。很显然,P(h) 这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以我们只需要看 P(D|h) 这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点 (Xi, Yi) 的概率为 EXP[-(ΔYi)^2] 乘以一个常数。而 P(D|h) = P(d1|h) * P(d2|h) * .. 即假设各个数据点是独立生成的,所以可以把每个概率乘起来。于是生成 N 个数据点的概率为 EXP[-(ΔY1)^2] * EXP[-(ΔY2)^2] * EXP[-(ΔY3)^2] * .. = EXP{-[(ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + ..]} 最大化这个概率就是要最小化 (ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + .. 。 熟悉这个式子吗?
OK,到此结束,概率论就是个坑啊!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-8 16:36
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社