最小均方差(LMS, Least Mean Square):梯度下降、随机梯度下降、正规方程组、牛顿法、坐标下降

转载:原文链接

即求 min12∑mi=1(x(i)j−y(i))2=minJmin12∑i=1m(xj(i)−y(i))2=minJ ,

其中 x(i)jxj(i) 表示第 ii 个样本的第 jj 维,有以下几种方法:

1. 梯度下降法(gradient descent)——batch

参数更新规则为 θk+1=θk−α∇θJ(θ)kθk+1=θk−α∇θJ(θ)k
因为
h(x)=∑i=0nθixi(x0=1)
h(x)=∑i=0nθixi(x0=1)
∇θJ(θ)=[∂J∂θ0…∂J∂θj…∂J∂θn]T
∇θJ(θ)=[∂J∂θ0…∂J∂θj…∂J∂θn]T
所以,
∂J∂θj=12∑i=1m2⋅(∑kθkx(i)k−y(i))⋅x(i)j=∑i=1m(h(x(i))−y(i)))⋅x(i)j
∂J∂θj=12∑i=1m2⋅(∑kθkxk(i)−y(i))⋅xj(i)=∑i=1m(h(x(i))−y(i)))⋅xj(i)
最终得到对于每一个jj的更新规则:
θj=θj−α∑i=1m(h(x(i))−y(i)))⋅x(i)j
θj=θj−α∑i=1m(h(x(i))−y(i)))⋅xj(i)

* 每更新一次要遍历所有样本

2. 随机梯度下降法(SGD, stochastic gradient descent)

Loop}{fori=1tom{θj=θj−α(h(x(i))−y(i)))⋅x(i)j(forallj)}
Loop{fori=1tom{θj=θj−α(h(x(i))−y(i)))⋅xj(i)(forallj)}}

* 不用每更新一次遍历所有样本 
* 不会精确收敛到全局最小值

3. 正规方程组(Normal Equation)

记X=⎡⎣⎢(x(1))T…(x(m))T⎤⎦⎥X=[(x(1))T…(x(m))T], y→=⎡⎣⎢(y(1))…(y(m))⎤⎦⎥y→=[(y(1))…(y(m))],

Xθ→=⎡⎣⎢(x(1))Tθ…(x(m))Tθ⎤⎦⎥=⎡⎣⎢hθ(x(1))…hθ(x(m))⎤⎦⎥Xθ→=[(x(1))Tθ…(x(m))Tθ]=[hθ(x(1))…hθ(x(m))]
所以:
J(θ)=12(Xθ→−y→)T(Xθ→−y→)
J(θ)=12(Xθ→−y→)T(Xθ→−y→)
∇θJ(θ)=∇θ12(Xθ→−y→)T(Xθ→−y→)=∇θ12(θTXTXθ−θTXTy−yTXθ+yTy)
∇θJ(θ)=∇θ12(Xθ→−y→)T(Xθ→−y→)=∇θ12(θTXTXθ−θTXTy−yTXθ+yTy)
因为
(Xθ)Ty=yTXθ,∂∂θθTAθ=2Aθ,∂∂θαTθ=α
(Xθ)Ty=yTXθ,∂∂θθTAθ=2Aθ,∂∂θαTθ=α
所以
∇θJ(θ)=XTXθ−XTy
∇θJ(θ)=XTXθ−XTy
令∇θJ(θ)=0∇θJ(θ)=0 得到:
XTXθ=XTy
XTXθ=XTy
若方程可解,得
θ=(XTX)−1⋅XTy
θ=(XTX)−1⋅XTy
即最小二乘解

* 不用多次迭代 
* 但当特征参数很大时,计算量很大,很慢

最小二乘法的目的实际上是假设误差项满足高斯分布且独立同分布的条件下,使似然最大化

4. 牛顿法

当要找f(x)=0f(x)=0 的解时,在函数图像上随机一点处做切线,与x轴交点作为下一个点,逼近求解:
f′(xk)=f(xk)−0xk−xk+1
f′(xk)=f(xk)−0xk−xk+1
所以,要 minf(x)minf(x), 即找f′(x)=0f′(x)=0, 所以更新规则为:
xk+1−→−=xk−→−[f′′(xk−→)]−1⋅f′(xk−→)
xk+1→=xk→−[f″(xk→)]−1⋅f′(xk→)

* 比梯度下降更快收敛 
* 但当特征参数很大时,计算量很大,很慢

Hession matrix f′′(x→)f″(x→)是一个半正定矩阵,计算量很大,可以通过一个正定矩阵B来代替它——> 拟牛顿法

5. 坐标下降法

求 minx1,…,xnf(x1,x2,…,xn)minx1,…,xnf(x1,x2,…,xn),一次优化一个xx:

forendt=1tonminxtf(x1,…,xt,…,xn)
fort=1tonminxtf(x1,…,xt,…,xn)end

* 迭代次数较多,代价较小
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值