机器学习笔记之---------线性回归

线性回归是机器学习中比较基础的一个算法,对于机器学习方法来说,我把它记为以下三步:

	 1. 建立模型
   	 2. 目标函数推导
   	 3. 参数优化求解
  • 模型

由线性函数 y = a x + b y=ax+b y=ax+b,推广到多维情况,模型记为: h = θ T x h=\theta^{T}x h=θTx,θ是m维的向量,x为m*n,即有m个样本,每个样本有n个特征。但,其实,对每个样本: y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)}=θ^{T}x^{(i)}+ε^{(i)} y(i)=θTx(i)+ε(i),其中ε(i)是误差,即:真实值=预测值+误差。


  • 目标函数推导

有了模型 h = θ T x h=\theta^{T}x h=θTx 剩下的就是通过样本来估计出参数θ,推导如下:
从误差入手,由中心极限定理可假设误差ε服从高斯分布N(0,δ),即: p ( ε ( i ) ) = 1 2 π δ e x p ( − ( ε ( i ) ) 2 2 δ 2 ) p(ε^{(i)})=\frac{1}{{\sqrt{2\pi}δ}}exp^{(-\frac{(ε^{(i)})^2}{2δ^2})} p(ε(i))=2π δ1exp(2δ2(ε(i))2) 由于误差=真实值-预测值,故有: p ( ε ( i ) ) = 1 2 π δ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 δ 2 ) = p ( y ( i ) ∣ x ( i ) ; θ ) p(ε^{(i)})=\frac{1}{{\sqrt{2\pi}δ}}exp^{(-\frac{(y^{(i)}-θ^{T}x^{(i)})^2}{2δ^2})}=p(\left. y^{(i)} \right|x^{(i)};θ) p(ε(i))=2π δ1exp(2δ2(y(i)θTx(i))2)=p(y(i)x(i);θ),即:确定θ,给定一个x(i),y(i)的概率密度函数是多少。只看第二个等式,x、y可从样本获得,即可以估计出θ的值,用最大似然估计,有: L ( θ ) = ∏ i = 0 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 0 m 1 2 π δ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 δ 2 ) L(\theta)=\prod_{i=0}^m p(\left. y^{(i)} \right|x^{(i)};θ) =\prod_{i=0}^m \frac{1}{{\sqrt{2\pi}δ}}exp^{(-\frac{(y^{(i)}-θ^{T}x^{(i)})^2}{2δ^2})} L(θ)=i=0mp(y(i)x(i);θ)=i=0m2π δ1exp(2δ2(y(i)θTx(i))2) 两边取对数有:
l ( θ ) = log ⁡ L ( θ ) = log ⁡ ∏ i = 0 m 1 2 π δ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 δ 2 ) = ∑ i = 0 m log ⁡ 1 2 π δ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 δ 2 ) = m log ⁡ 1 2 π δ − 1 δ 2 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \begin{aligned} l(θ)= \log L(\theta)&=\log \prod_{i=0}^m \frac{1}{{\sqrt{2\pi}δ}}exp^{(-\frac{(y^{(i)}-θ^{T}x^{(i)})^2}{2δ^2})} \\ &=\sum_{i=0}^m \log\frac{1}{{\sqrt{2\pi}δ}}exp^{(-\frac{(y^{(i)}-θ^{T}x^{(i)})^2}{2δ^2})} \\&=m\log \frac{1}{{\sqrt{2\pi}δ}} - \frac{1}{δ^2}\frac{1}{2}\sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}} \end{aligned} l(θ)=logL(θ)=logi=0m2π δ1exp(2δ2(y(i)θTx(i))2)=i=0mlog2π δ1exp(2δ2(y(i)θTx(i))2)=mlog2π δ1δ2121i=1m(y(i)θTx(i))2,我们的目标是最大化l(θ),但后面式子可以看出,只有后面的加和项与θ有关,记目标函数 J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 J(θ)=\frac{1}{2}\sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}} J(θ)=21i=1m(y(i)θTx(i))2,这也是最小二乘的一个推导,故 max ⁡ θ l ( θ ) = min ⁡ θ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 = min ⁡ θ J ( θ ) \max_{θ}l(θ)=\min_{θ} \frac{1}{2} \sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}}=\min_{θ}J(θ) θmaxl(θ)=θmin21i=1m(y(i)θTx(i))2=θminJ(θ)


  • 求解参数

现在有了优化目标函数 J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 J(θ)=\frac{1}{2}\sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}} J(θ)=21i=1m(y(i)θTx(i))2 那么如何求得θ得最优解呢?
对整个样本来看,换一种写法
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 = 1 2 ( θ T X − Y ) 2 = 1 2 ( θ T X − Y ) T ( θ T X − Y ) = 1 2 ( θ T X T X θ − Y T X θ − θ T X T Y + Y T Y ) \begin{aligned} J(θ)&=\frac{1}{2}\sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}}= \frac{1}{2} {{(θ^{T}X-Y)^2}} \\ &=\frac{1}{2}{{(θ^{T}X-Y)^T}}{{(θ^{T}X-Y)}} \\ &=\frac{1}{2}(θ^TX^TXθ-Y^TXθ-θ^TX^TY+Y^TY) \\ \end{aligned} J(θ)=21i=1m(y(i)θTx(i))2=21(θTXY)2=21(θTXY)T(θTXY)=21(θTXTXθYTXθθTXTY+YTY)求导令值等于0,即令: ∇ J ( θ ) = X T X θ − X T Y = 0 \nabla J(θ)=X^TXθ-X^TY=0 J(θ)=XTXθXTY=0
X T X θ = X T Y X^TXθ=X^TY XTXθ=XTY 若X^TX可逆,则 θ = ( X T X ) − 1 X T Y θ=(X^TX)^{-1}X^TY θ=(XTX)1XTY 若X^TX不可逆或为防止过拟合则 θ = ( X T X − λ I ) − 1 X T Y θ=(X^TX-\lambda I)^{-1}X^TY θ=(XTXλI)1XTY λ取值很小。

上面是直接求解θ,很多时候直接求解并不散那么好计算,实际上一般都采用优化迭代的思想来求解θ。
同样的从目标函数入手: J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 J(θ)=\frac{1}{2}\sum_{i=1}^m {{(y^{(i)}-θ^{T}x^{(i)})^2}} J(θ)=21i=1m(y(i)θTx(i))2 J(θ)对第j个θ求梯度,有:
∇ J ( θ ) ∇ θ j = ∇ ∇ θ j 1 2 ( h θ ( x ) − y ) 2 = ( h θ ( x ) − y ) ∇ ∇ θ j ( h θ ( x ) − y ) = ( h θ ( x ) − y ) ∇ ∇ θ j ( ∑ i = 1 m h θ j ( x j i ) − y i ) = ( h θ ( x ) − y ) x j \begin{aligned} \frac {\nabla J(θ)}{\nablaθ_j} &=\frac {\nabla }{\nablaθ_j} \frac{1}{2} (h_θ(x)-y)^2=(h_θ(x)-y)\frac {\nabla }{\nablaθ_j} (h_θ(x)-y) \\ &=(h_θ(x)-y)\frac {\nabla }{\nablaθ_j} (\sum_{i=1}^m h_{θ_j}(x_{j}^i)-y^i) \\ &=(h_θ(x)-y)x_{j} \end{aligned} θjJ(θ)=θj21(hθ(x)y)2=(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=1mhθj(xji)yi)=(hθ(x)y)xj 故由梯度下降算法得到更新规则: θ j : = θ j − α ∑ i = 1 m ( h θ ( x i ) − y i ) ) x j θ_j :=θ_j-\alpha \sum_{i=1}^m (h_{θ}(x^i)-y^i))x_j θj:=θjαi=1m(hθ(xi)yi))xj 这个公式需要m各样本一起,数据大,一般设置mini batch为k,将m化为多份,每份有k样本,用以下更新规则: θ j : = θ j − α ∑ i = 1 k ( h θ ( x i ) − y i ) ) x j θ_j :=θ_j-\alpha \sum_{i=1}^k (h_{θ}(x^i)-y^i))x_j θj:=θjαi=1k(hθ(xi)yi))xj


以上,是线性回归的一些推导,有时间在继续往后更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值