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

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

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

  在真实数据中,一个x值可能对应多个y值,因为实际y值可能是受多种因素影响,所以我们可以假设任意一个x对于的y的真实值服从正态分布。我们什么时候可以认为模型hθ(x) 拟合出来的点最好?当然是hθ(x) 取值概率最大的时候。
这里写图片描述
  如上图,红蓝两条线来拟合绿色的这些数据点,明显红色的直线拟合效果更好一些。为什么?仔细看图中直线上红色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

xindoo CSDN认证博客专家 Linux 分布式 Spring
一个有趣有料的程序猿,9年技术博主,曾在阿里做过3年运维相关工作,现为某厂Java后端开发工程师,拥有丰富的挖坑踩坑填坑背锅经验[狗头],专注于Java,对操作系统、网络、编译原理也有涉猎,目前正在写一门简易的脚本语言。
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值