ML—线性回归系列(一)—线性回归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangzhengyi03539/article/details/50035265

Andrew Zhang
Tianjin Key Laboratory of Cognitive Computing and Application
Tianjin University
Nov 25, 2015

本来以为线性回归是一个特简单的东西,最近遇到很多基于线性回归的东西,才意识到我的无知。为了记录最近的学习历程,还是从线性回归开始系统总结一下吧。

一、线性回归
在实际问题中,在考虑变量 y 与另外一些变量 x1,x2,...,xn 之间关系的时候,为了简化往往考虑线性模型
hθ(x)=θ0+θ1x1+...+θnxn=θTx(1-1)
其中 x0=1 .

接下来,目标就是对于训练数据集 (xi,yi),i=1,2,...,m 确定模型最合适的参数 θ 。采用最小二乘法,定义损失函数
J(θ)=12mi=1(hθ(x(i))y(i))2(1-2)
这里采用最小二乘是因为最小二乘得到的参数 θ 优效性最好(在所有的线性无偏估计量里面方差最小).

二、梯度下降法
最小二乘是无约束优化的凸问题,属于最简单的凸优化问题,有很多的数值求解的方法,参考参考博客[1]。本文介绍梯度下降法求解最小二乘优化问题。
在梯度法中参数 θ 的更新规则为:
θj=θjαddθjJ(θ)(2-1)
其中 α 为学习率,可以设定为常数,也可以采用一维搜索方法确定,具体可以查看参考博客[2]
ddθjJ(θ)
=ddθj(12mi=1(hθ(x(i))y(i))2
=12mi=12(hθ(x(i))y(i))x(i)j
=mi=1(hθ(x(i))y(i))x(i)j
(2-2)
公式(2-2)带入公式(2-1)得到 θj 的更新规则为:
θj=θjαmi=1(hθ(x(i))y(i))x(i)j(2-3)
采用公式(2-3)的方法被称为批梯度下降法。由于批梯度下降法对与每一次 θ 的更新需要计算所有的样本,不利于在线计算,因此一般使用如下公式(2-4)所示的随机梯度下降法(理解的时候只需要每次对参数进行更新迭代的时候假设只有一个样本即可):
θj=θjα(hθ(x(i))y(i))x(i)j(2-4)
并且往往公式(2-4)的收敛效率要远远高于(2-3),可以更早的达到收敛。

三、最小二乘的概率解释
在参考博客3中说了线性规划的最小二乘属于广义线性模型,并进行了推导,得到了
p(y|x,θ)=12πexp(12(yθTx)2)(3-1)
在这里我们看一种更简单点的解释,假设输出y与输入x服从如下等式
y(i)=θTx(i)+ϵ(i)(3-2)
由于对于取样的每个样本都是独立同分布的,假设误差项 ϵ(i) ~ N(0,σ2)
则对于每一个取样样本有
p(ϵ(i))=12πσexp((ϵ(i))22σ2)(3-3)
由公式(3-2)得 ϵ(i)=y(i)θTx(i) 带入公式(3-3)得到
p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)(3-3)
公式(3-3)便是样本 (x(i),y(i)) 的先验概率公式。接下来就是统计学里面的参数估计问题了。求解似然函数极大化似然函数即可。
似然函数为:
L(θ)=mi=1p(y(i)|x(i);θ)(3-4)
对数似然函数为:
l(θ)=logL(θ)=logmi=112πσexp((y(i)θTx(i))22σ2)(3-5)
化简公式(3-5)得
l(θ)=mlog12πσ12σ2mi=1(y(i)θTx(i))2(3-6)
刨除公式(3-6)的常数部分,极大化似然函数(3-6)等价于极小化其中的 mi=1(y(i)θTx(i))2 部分,即文章开头所说的最小二乘部分的 J(θ) (公式(1-2))。

四、矩阵求解最小二乘
把所有的样本 (x(i),y(i)) 用矩阵的形式表示,可以写成如下的形式
Y=Xθ+ϵ(4-1)
目标是求解 θ 是的 ϵTϵ 最小。令
S(θ)=ϵTϵ=(YXθ)T(YXθ)(4-2)
ddθS(θ)=2XT(YXθ)=0(4-3)
XTXθ=XTY
这里假设 X=(X1,X2,...,Xn) 中的列向量都是线性无关的(如果不满足就先进行一步冗余特征删除),并且 m>>n ,即 rank(X)=n ,那么 rank(XTX)=rank(X)=n ,即 XTX 可逆。
所以有最小二乘的矩阵形式解—公式(4-4)
θ=(XTX)1XTY(4-4)

五、矩阵求解的SVD解释
在第四部分已经得到 θ=(XTX)1XTY 。这一部分利用SVD知识初探线性回归几何意义(主要为岭回归铺垫)。
假设 XRm×n 的SVD分解为
X=UΣVT(5-1)
其中 U=(u1,u2,...,un)Rm×n , Σ=diag(σ1,σ2,...,σn)Rn×n , V=(v1,v2,...,vn)Rn×n v1,v2,...,vn 是原始样本空间的一组标准正交基, u1,u2,...,un 分别是原始样本在这组基下的正交标准化坐标。
XTX=(UΣVT)TUΣVT=VΣUTUΣVT=VΣ2VT(5-2)
带入公式4-4可得
θ=(VΣ2VT)1(UΣVT)TY=VΣ1UTY=ni=11σiviuTiY(5-3)
对于公式5-2,可以发现想要得到矩阵 X 的SVD分解,只需要求解矩阵 XTX 的特征值和特征向量就能得到 ΣV ,然后根据 ui=Xvi 即可得到矩阵 U
并且,根据SVD的几何意义,我们知道 z=Xv1 实际上是在原始空间求得新基 v1 使得矩阵 X 在新基上坐标方差 Var(z1) 最大。根据SVD的知识有有 Var(zi)=σ2iN,Xvi=uiσi 这里可见SVD实际上是广义的PCA。
这里写图片描述
六、参考博客
1、最优化方法—无约束极值问题的解法
(http://blog.csdn.net/zhangzhengyi03539/article/details/49705305)
2、最优化方法—一维搜索
(http://blog.csdn.net/zhangzhengyi03539/article/details/49704893)
3、ML—广义线性模型(GLM)
(http://blog.csdn.net/zhangzhengyi03539/article/details/46834379)
4、你应该知道的7种回归技术

猜你喜欢

转载自blog.csdn.net/zhangzhengyi03539/article/details/50035265