最小均方法(LMS)

最小均方(Least Mean Square)可认为是机器学习里面最基本也比较有用的算法,神经网络中对参数的学习使用的就是LMS的思想,在通信信号处理领域LMS也非常常见,比如自适应滤波器。本文理论上介绍基于LMS的梯度下降算法(包括batch training/stochastic training)

​1. 问题引入

假设有m组数据(三维空间上的点,形如:(x1,x2,y)),x表示输入,y表示输出,为了预测新的输入时,得到的输出,假设模型为线性如下:

这里写图片描述

接下来的问题在于求解omega值。首先我们引入平方损失函数:

这里写图片描述

​该损失函数为最小二乘法中计算误差的函数,损失函数值越小,说明模型与当前已知数据的拟合程度越好,否则越差。因此,求解omega的目标就是求解J(w)最小,这就用到了LMS算法。

​2. LMS算法

​LMS算法是一个搜索算法,假设w从某个给定的初始值开始迭代,逐渐使J(W)朝着最小的方向变化,直到达到一个值使J(w)收敛。考虑梯度下降算法(gradient descent algorithm),它通过给定的w值快速的执行如下的更新操作:

这里写图片描述

其中alpha为学习率(Learning rate)。要对w更新,首先需要完成上面的求导,求导的结果带入式子后如下(对一个单一的训练实例j):

这里写图片描述

按照上述的更新方法,对多个实例的更新规则为:

while convergence {
for every j{

这里写图片描述
}}

这种更新的梯度下降方法称为batch gradient descent。还有一种更新的方式:采用随机的样本数据实例,如下​:

while convergence {
for every j{

这里写图片描述

}}

这种方法称为stochastic gradient descent (或者incremental gradient descent)。两种方法的明显区别是batch的训练时间要比stochastic常,但效果可能更好。实际问题中,因为我们只需要找到一个接近使J(w)最小的值即可,因此stochastic更常用。

LMS到底能用来干嘛,其实上面已经很清楚了:参数训练中的求极值。​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值