最小二乘法的极大似然解释

  最开始学习机器学习的时候,首先遇到的就是回归算法,回归算法里最最重要的就是最小二乘法,为什么损失函数要用平方和,而且还得是最小?仔细想想最小二乘法视乎很合理,但是合理在哪,怎么用数学方法来证明它合理。

J(θ)=12i=1m(hθ(x(i))y(i))2

  在真实数据中,一个x值可能对应多个y值,因为实际y值可能是受多种因素影响,所以我们可以假设任意一个x对于的y的真实值服从正态分布。我们什么时候可以认为模型 hθ(x) 拟合出来的点最好?当然是 hθ(x) 取值概率最大的时候。
最小二乘法的极大似然解释_第1张图片
  如上图,红蓝两条线来拟合绿色的这些数据点,明显红色的直线拟合效果更好一些。为什么?仔细看图中直线上红色x点,红色的x点正好是当前x值下,训练数据中出现概率最高的位置(之前我们已经假设每个位置y值符合高斯分布)。所以我们要求的就是使得拟合出的线(高纬度是超平面)上概率最大的 θ ,这个时候我们就可以用到极大似然估计。
  接下来我们用极大似然来证明最小二乘法。假设误差 ε(i)(1im) (就是上图中绿色数据点到红色x点的距离)是独立同分布的,服从均值为0,方差为某定值 σ2 的高斯分布,我们可以得到似然函数。
y(i)=θTx(i)+ϵ(i)p(ϵ(i))=12πσe(ϵ(i))22σ2p(y(i)|x(i);θ)=12πσe((y(i)θTx(i))22σ2)

L(θ)=i=1mp(y(i)|x(i);θ)=i=1m12πσe((y(i)θTx(i))22σ2)

  对上面似然函数求对数得到对数似然函数 (θ)
(θ)=logL(θ)=logi=1m12πσe((y(i)θTx(i))22σ2)=i=1m12πσe((y(i)θTx(i))22σ2)=mlog12πσ1σ212i=1m(hθ(x(i))y(i))2

  上式中, σ 是定值,我们要使得上式最大,就得使 12mi=1(hθ(x(i))y(i))2 最小,于是我们就得到了最小二乘。
J(θ)=12i=1m(hθ(x(i))y(i))2

  其实通过这个公式我们可以求得关于 θ 的解析解,可以直接计算出 θ ,但我们一般不这么做,因为求解析解过程中需要求矩阵的逆,这是一个非常耗时的工作(时间复杂度 Θ(n3) ),另外矩阵也不一定可逆,一般都是用梯度下降。但我们还是看下如何求 θ 的解析解。
J(θ)=12i=1m(hθ(x(i))y(i))2=12(Xθy)T(Xθy)

J(θ) 求一阶导得到梯度。
θJ(θ)=θ(12(Xθy)T(Xθy))=θ(12(θTXTyT)(Xθy))=θ(12(θTXTXθθTXTyyTXθ+yTy))=12(2XTXθXTy(yTX)T)=XTXθXTy

因为 J(θ) 是存在极小值的凸函数,什么时候取最小值呢?当然是梯度为0的时候。
XTXθXTy=0XTXθ=XTyθ=(XTX)1XTy

你可能感兴趣的:(机器学习)