线性回归算法

本文不讨论监督学习、非监督学习等概念,主要回顾一下线性回归算法的实现。

线性回归

简单的说线性回归就是用直线去拟合数据,因此找出直线同时说明这条直线是最合适的就是线性回归要做的事情。
既然要找直线,先写出直线方程

y(x)=wx+b y ( x ) = w x + b

当有2个输入条件(节点),方程如下
y(x)=w1x1+w2x2+b y ( x ) = w 1 x 1 + w 2 x 2 + b

换用矩阵简单表示( w0=1 w 0 = 1
y(x)=wTX y ( x ) = w T X

扩展为n个输入条件
y^=i=0nwixi=wTX y ^ = ∑ i = 0 n w i x i = w T X

现在根据已知的x值求出最合适的 w w 。什么是最合适的?从最初的目标来看,希望找出的直线能够代表所有的输入数据。因此引入下面的误差值ϵ
ϵ(i)=y(i)wTx(i) ϵ ( i ) = y ( i ) − w T x ( i )

y(i) y ( i ) 表示标签值,也就是真实值。通过比较真实值和预测值(线性方程计算值)之间的差异来衡量线性方程。差异越小,表明线性方程越好。
下面 假设 ϵ(i) ϵ ( i ) 独立同分布,且服从均值为0的正态分布。于是有了下面的正态分布公式
p(ϵ(i))=12πσexp((ϵ(i))22σ2) p ( ϵ ( i ) ) = 1 2 π σ e x p ( − ( ϵ ( i ) ) 2 2 σ 2 )

带入
p(y(i)|x(i);w)=12πσexp((y(i)wTx(i))22σ2) p ( y ( i ) | x ( i ) ; w ) = 1 2 π σ e x p ( − ( y ( i ) − w T x ( i ) ) 2 2 σ 2 )

我们希望概率越大越好,因为概率越大, ϵ(i) ϵ ( i ) 越接近0,表示误差越小。
根据上面的假设, ϵ(i) ϵ ( i ) 独立同分布。因而联合密度等于所有 ϵ ϵ 密度的乘积
P=i=1mp(y(i)|x(i);w)=i=1m12πσexp((y(i)wTx(i))22σ2) P = ∏ i = 1 m p ( y ( i ) | x ( i ) ; w ) = ∏ i = 1 m 1 2 π σ e x p ( − ( y ( i ) − w T x ( i ) ) 2 2 σ 2 )

上面这个式子的含义是指定 x x w值时 y y 的概率。也就是找到合适的w,使概率最大。继续往下,很容易想到极大似然估计,两边取对数
logP=i=1mlogp(y(i)|x(i);w)=mlog12πσ1σ2.12i=1m(y(i)wTx(i))2 log ⁡ P = ∑ i = 1 m log ⁡ p ( y ( i ) | x ( i ) ; w ) = m log ⁡ 1 2 π σ − 1 σ 2 . 1 2 ∑ i = 1 m ( y ( i ) − w T x ( i ) ) 2


J(w)=12i=1m(y(i)y^(i))2 J ( w ) = 1 2 ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2
其中 y^(i)=wTx(i) y ^ ( i ) = w T x ( i )
对于P的最大值,也就是J的最小值。求导找极值点
J(w)=12i=1m(y(i)y^(i))2=12(Xwy)T(Xwy) J ( w ) = 1 2 ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 = 1 2 ( X w − y ) T ( X w − y )

J(w)w=(12mi=1(y(i)y^(i))2)w=(12(Xwy)T(Xwy))w=(12(wTXTXwwTXTyyTXw+yTy))w=12(2XTXwXTy(yTX)T)=XTXwXTy=0 ∂ J ( w ) ∂ w = ∂ ( 1 2 ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 ) ∂ w = ∂ ( 1 2 ( X w − y ) T ( X w − y ) ) ∂ w = ∂ ( 1 2 ( w T X T X w − w T X T y − y T X w + y T y ) ) ∂ w = 1 2 ( 2 X T X w − X T y − ( y T X ) T ) = X T X w − X T y = 0

可知:
w=(XTX)1XTy w = ( X T X ) − 1 X T y

梯度下降

梯度下降法是比较常见的求极值点的方法,小批量梯度下降法(Mini-Batch Gradient Descent,MBGD)类似,下面简单介绍
根据前面的分析,目标损失函数为

J(w)=12mi=1m(y(i)y^(i))2 J ( w ) = 1 2 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2
其中 y^(i)=wTx(i) y ^ ( i ) = w T x ( i )

求梯度:

J(w)w=1mi=1m(y(i)y^(i))x(i) ∂ J ( w ) ∂ w = − 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) x ( i )

更新:
w=wαJ(w)w w = w − α ∂ J ( w ) ∂ w

其中 α α 为学习率,用来控制梯度下降中每次移动的速度。α的值需要调试:太小会使整个过程过慢,也容易陷入局部最优解;太大容易错过极值点。


另外也可以将b看成偏差,那么 y^=wTX+b y ^ = w T X + b ,损失函数

J(w,b)=12mi=1m(y(i)y^(i))2 J ( w , b ) = 1 2 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2
其中 y^(i)=wTx(i)+b y ^ ( i ) = w T x ( i ) + b

w=wαJ(w,b)w w = w − α ∂ J ( w , b ) ∂ w

b=bαJ(w,b)b b = b − α ∂ J ( w , b ) ∂ b

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值