在拟合数据时,为什么选择最小二乘来作为误差函数呢?
虽然不明白为什么,但是一直觉得很有道理的样子。最小二乘或平方差作为误差函数,是基于一些概率假设推导出了这个公式。这里有一些概率上的解释。让我们慢慢来看。
1.允许误差存在
首先要说明的,所有的预测值都不可能完美地与真实值契合,所以误差必然存在,而我们的目的就是如何让误差尽可能地小。这样就可以假设有一组θ,使真实的数据存在以下关系式,y(i)表示真实值,θTx(i)表示预测值,ε表示误差项:
2.假设误差是高斯分布
ε作为误差项,它捕捉了一些没有被设置为特征的变量,以房价为例,它可以代表房东的心情对售价的影响,或者代表此地区雾霾严重程度对房价的影响,或者随机误差。再假设ε是IID分布,即独立、同等分布,也就是高斯分布(或正态分布):
其中μ是正态分布随机变量的均值,σ2是此随机变量的方差,也可以记作N(μ,σ2)。
设ε的平均值为0,方差为ε2,ε的高斯分布,也就是ε的概率密度函数表示如下:
3.求真实值的概率分布
而ε的概率密度函数,就是预测值与真实值差的概率密度函数,那么可以把上述两个等式合并,经过变换,得到如下等式:
根据正态分布公式,这个式子还可以这样理解,真实值y(i)是一个随机变量,θTx(i)是随机变量的平均值,p为变量y的概率密度函数。那么真实值y(i)的概率分布可以写作:
4.求联合概率分布
这样相当于给定一组θ、x,求出了y的概率密度分布。将此公式推广,用向量y和向量X代表所有的数据,就能够求出所有数据的联合概率分布:
把这个函数定义为似然函数。联合概率分布等于边缘概率分布的乘积,π代表累乘。
5.定义对数似然函数
这里我们就得到了一个关于x、y、θ的模型,它表示真实值y的联合概率分布。当我们想使预测正确的概率最大时,只需要将L(θ)最大化就可以了。于是,求值问题又变成了求最大值问题。为了方便计算,我们定义对数似然函数,l(θ),也就是对L(θ)取对数,再求最大值。对数函数为一个单调递增函数,所以不会对原函数造成影响。取对数后,累乘变成累和:
左侧是一个常数项,右边是一个负数项。要让l(θ)最大,就要让负数项最小:
是不是很熟悉?这就是回归中的风险函数J(θ)的由来,也就是最小二乘法。最小二乘法是一种概率上的解释,它的目标是寻找一个θ值,使准确预测的概率最大化。因此,基于这些概率的假设,最小二乘法是回归问题中重要的估算方法。
如果你又问我,为什么误差项是高斯分布,那就等我想好怎么介绍中心极限定理吧。
本文参考:吴恩达CS 229 Machine Learning
http://cs229.stanford.edu/materials.html