[模式识别] [讲义] 最小均方差(LMS, Least Mean Square):梯度下降、随机梯度下降、正规方程组、牛顿法、坐标下降

即求 min12mi=1(x(i)jy(i))2=minJ m i n 1 2 ∑ i = 1 m ( x j ( i ) − y ( i ) ) 2 = m i n J

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


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

参数更新规则为 θk+1=θkαθJ(θ)k θ k + 1 = θ k − α ∇ θ J ( θ ) k

因为

h(x)=i=0nθixi(x0=1) h ( x ) = ∑ i = 0 n θ i x i ( x 0 = 1 )

θJ(θ)=[Jθ0...Jθj...Jθn]T ∇ θ J ( θ ) = [ ∂ J ∂ θ 0 . . . ∂ J ∂ θ j . . . ∂ J ∂ θ n ] T

所以,

Jθj=12i=1m2(kθkx(i)ky(i))x(i)j=i=1m(h(x(i))y(i)))x(i)j ∂ J ∂ θ j = 1 2 ∑ i = 1 m 2 ⋅ ( ∑ k θ k x k ( i ) − y ( i ) ) ⋅ x j ( i ) = ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) ) ⋅ x j ( i )

最终得到对于每一个 j j 的更新规则:

θj=θjαi=1m(h(x(i))y(i)))x(i)j θ j = θ j − α ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) ) ⋅ x j ( i )

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


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

Loop}{fori=1tom{θj=θjα(h(x(i))y(i)))x(i)j(forallj)} L o o p { f o r i = 1 t o m { θ j = θ j − α ( h ( x ( i ) ) − y ( i ) ) ) ⋅ x j ( i ) ( f o r a l l j ) } }

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


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 ( θ ) = 1 2 ( X θ → − y → ) T ( X θ → − y → )

θJ(θ)=θ12(Xθy)T(Xθy)=θ12(θTXTXθθTXTyyTXθ+yTy) ∇ θ J ( θ ) = ∇ θ 1 2 ( X θ → − y → ) T ( X θ → − y → ) = ∇ θ 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y )

因为

(Xθ)Ty=yTXθ,θθTAθ=2Aθ,θαTθ=α ( X θ ) T y = y T X θ , ∂ ∂ θ θ T A θ = 2 A θ , ∂ ∂ θ α T θ = α

所以

θJ(θ)=XTXθXTy ∇ θ J ( θ ) = X T X θ − X T y

θJ(θ)=0 ∇ θ J ( θ ) = 0 得到:

XTXθ=XTy X T X θ = X T y

若方程可解,得

θ=(XTX)1XTy θ = ( X T X ) − 1 ⋅ X T y
即最小二乘解

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

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


4. 牛顿法

当要找 f(x)=0 f ( x ) = 0 的解时,在函数图像上随机一点处做切线,与x轴交点作为下一个点,逼近求解:

f(xk)=f(xk)0xkxk+1 f ′ ( x k ) = f ( x k ) − 0 x k − x k + 1

所以,要 minf(x) m i n f ( x ) , 即找 f(x)=0 f ′ ( x ) = 0 , 所以更新规则为:

xk+1=xk[f′′(xk)]1f(xk) x k + 1 → = x k → − [ f ″ ( x k → ) ] − 1 ⋅ f ′ ( x k → )

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

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


5. 坐标下降法

minx1,...,xnf(x1,x2,...,xn) m i n x 1 , . . . , x n f ( x 1 , x 2 , . . . , x n ) ,一次优化一个 x x :

forendt=1tonminxtf(x1,...,xt,...,xn) f o r t = 1 t o n m i n x t f ( x 1 , . . . , x t , . . . , x n ) e n d

* 迭代次数较多,代价较小

你可能感兴趣的:(课程)