LMS算法
在上一小节中,我们定义了代价函数
J(θ)
,当其值最小时,我们则称找寻到了拟合数据集最佳的参数
θ
的值。那么我们又该如何选择参数
θ
的值使得代价函数
J(θ)
最小化?
我们不妨考虑使用搜索算法(Search Algorithm),其先将参数
θ
初始化,然后不断给参数
θ
赋予新值,直至代价函数
J(θ)
收敛于最小值处。因此,我们可以梯度下降算法(Gradient Descent Algorithm),其更新规则为:
Repeatuntilconvergence{θj:=θj−α∂∂θjJ(θ)(foreveryj)}
其中,
α
表示学习速率,其值过小会导致迭代多次才能收敛,其值过大可能导致越过最优点而发生震荡现象。
当只有一个训练实例时,偏导数的计算公式如下:
∂∂θjJ(θ)=∂∂θj12(hθ(x)−y)2=2∗12(hθ(x)−y)∗∂∂θj(hθ(x)−y)=(hθ(x)−y)∗∂∂θj(∑j=0nθjxj−y)=(hθ(x)−y)xj
因此,梯度下降算法的更新规则可改写为如下:
Repeatuntilconvergence{θj:=θj−α∑i=1m(hθ(xi)−y(i))x(i)j(foreveryj)}
扫描二维码关注公众号,回复:
1657905 查看本文章
其中,对于单个训练实例其更新规则为:
θj:=θj−α(hθ(xi)−y(i))x(i)j
这规则被称为Widrow-Hoff学习规则,其也被称最小二乘法(LMS,Least Mean Squares)。
由于该算法在计算参数
θj
时都要遍历训练集,因此该算法也称为批量梯度下降算法(Batch Gradient Descent)。
对于训练集较大时,使用批量梯度下降算法其计算成本较大。因此,我们推荐采用随机梯度下降算法(Stochastic Gradient Descent)(也称为增量梯度下降算法,Increment Gradient Descent)。其更新规则如下:
Repeatuntilconvergence{fori=1tom,{θj:=θj−α(hθ(xi)−y(i))x(i)j(foreveryj)}}
该算法在计算参数
θj
时,只需一个训练实例,其大大提高了运行效率。但该算法无法收敛至最优值处,只能无限接近该值。一般情况下,其值也足够我们最佳地拟合训练集了。