最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用须要。html
在早期数理统计方法的发展中,这两门科学起了很大的做用。丹麦统计学家霍尔把它们称为“数理统计学的母亲”。此后近三百年来,它普遍应用于科学实验与工程技术中。美国统计史学家斯蒂格勒( S. M. Stigler)指出, 最小二乘方法是19世纪数理统计学的压倒一切的主题。1815年时,这方法已成为法国、意大利和普鲁士在天文和测地学中的标准工具,到1825年时已在英国广泛使用。算法
追溯到1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。通过40天的跟踪观测后,因为谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,可是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道从新发现了谷神星。高斯于其1809年的著做《关于绕日行星运动的理论》中。在此书中声称他自1799年以来就使用最小二乘方法,由此爆发了一场与勒让德的优先权之争。网络
近代学者通过对原始文献的研究,认为两人多是独立发明了这个方法,但首先见于书面形式的,以勒让德为早。然而,现今教科书和著做中,多把这个发明权归功于高斯。其缘由,除了高斯有更大的名气外,主要多是由于其正态偏差理论对这个方法的重要意义。框架
勒让德在其著做中,对最小二乘方法的优势有所阐述。然而,缺乏偏差分析。咱们不知道,使用这个方法引发的偏差如何,就需创建一种偏差分析理论。机器学习
高斯于1823年在偏差e1 ,… , en独立同分布的假定下,证实了最小二乘方法的一个最优性质: 在全部无偏的线性估计类中,最小二乘方法是其中方差最小的!ide
在德国10马克的钞票上有高斯像,并配了一条正态曲线。在高斯众多伟大的数学成就中挑选了这一条,亦可见这一成就对世界文明的影响。函数
现行的最小二乘法是勒让德( A. M. Legendre)于1805年在其著做《计算慧星轨道的新方法》中提出的。它的主要思想就是选择未知参数,使得理论值与观测值之差的平方和达到最小:工具
咱们如今看来会以为这个方法彷佛平淡无奇,甚至是理所固然的。这正说明了创造性思惟之难得和不易。从一些数学你们未能在这个问题上有所突破,能够看出当时这个问题之困难。欧拉、拉普拉斯在许多很困难的数学问题上有伟大的建树,但在这个问题上未能成功。oop
在高斯发表其1809年著做以前,约在1780年左右,拉普拉斯已发现了几率论中的“中心极限定理”。性能
根据这个定理,大量独立的随机变量之和,若每一个变量在和中起的做用都比较小,则和的分布必接近于正态。
测量偏差正具备这种性质。通常地说,随机(而非系统)的测量偏差,是出自大量不显著的来源的叠加。所以,中心极限定理给偏差的正态性提供了一种合理的理论解释。这一点对高斯理论的圆满化颇有意义,由于高斯原来的假定(平均数自然合理)总不免给人一种不天然的感受。
回味无穷的是,不管是中心极限定理的发明者拉普拉斯,仍是早就了解这一结果的高斯,都没有从这个结果的启示中去考察偏差分布问题。对前者而言,多是出于思惟定势的束缚,这对拉普拉斯来讲可算不幸,他所以失掉了把这个重要分布冠以本身名字的机会(正态分布这个形式最先是狄莫弗( De Moiv re) 1733年在研究二项几率的近似计算时得出的。之后也有其余学者使用过,但都没有被冠以他们的名字。高斯之因此得到这一殊荣,无疑是由于他把正态分布与偏差理论联系了起来) 。
能够说,没有高斯的正态偏差理论配合, 最小二乘方法的意义和重要性可能还不到其现今所具备的十分之一。最小二乘方法方法与高斯偏差理论的结合,是数理统计史上最重大的成就之一,其影响直到今日也还没有过期!
用它们来分别测量一线段的长度,获得的数值分别为(颜色指不一样的尺子):
这5次测量本质上就是表明了5次实验观测获得的观测样本。这种现象在实际的工程项目中是十分常见的,甚至能够说是百分百出现的,即样本噪音或样本误差问题。
之因此出现不一样的值可能由于:
这种状况下,一个直观的解决思路是:取平均值来做为线段的长度。
这种解决思路是最符合”直觉“的,可是有人可能会提出质疑:
首先,把测试获得的值画在笛卡尔坐标系中,分别记做 :
其次,把要猜想的线段长度的真实值用平行于横轴的直线来表示(由于是猜想的,因此用虚线来画),记做 :
每一个点都向 作垂线,垂线的长度就是
,也能够理解为测量值和真实值之间的偏差:
由于偏差是长度,取绝对值计算计算比较复杂,因此设计者用平方来表明偏差:
偏差的平方和就是( 表明偏差):
下面的动图表示了在不断变化下,偏差的变化状况。
天然,偏差的平方和 在不断变化的。
法国数学家,阿德里安-马里·勒让德提出了一个划时代的定理:让总的偏差的平方最小的 就是真值。这是基于,若是偏差是随机的,应该围绕真值上下波动。
勒让德的想法变成代数式就是:
这是一个二次函数,对其求导,导数为0的时候取得最小值:
化简得:
能够看到正好是算术平均数。这个巧合在1元1次方程中是恰好成立的,也就是说,算数平均是最小二乘估计的一个特例。
最小二乘估计法包含两个基本的元素:
1. 利用平方做为评价指标。要注意的是,深度学习中的平方损失函数只是一个指标,即用平方的方式进行损失函数的评估,不要和最小二乘法混淆。 2. 利用求导极值的方式,直接获得全局最优值。这点是最小二乘估计和梯度降低这种迭代算法最大的区别。
笔者插入:这里须要注意的是,导数为0并非获得极值的充要条件,只是一个必要条件,对于多元高阶方程组,经过求导极值并不能保证获得最优值。
最小二乘估计是一个通用的未知参数最优化方案,它能够对任何的模型进行参数优化。
从历史的角度来讲,最小二乘估计的出现是由于当时回归建模的出现以及对回归模型进行参数估计的需求。
因此咱们先花一些时间,来讨论下回归模型。
回归模型来源于当时科学和工程领域一个很基本的问题,数学建模。建模的思想在处理统计数据分析的每个学科中都颇有用。
例如,假设给定一个随机变量集,要完成的任务是:找到可能存在于这些变量之间的关系,若是这种关系存在的话。
做为函数逼近的一种特殊形式,回归的典型方案以下:
1. 选择随机变量中的一个变量做为关注变量,这一随机变量被称为依赖变量,或者响应变量(response) 2. 剩下的随机变量称为独立变量,或者回归量(regressor)。它们的做用是用来解释或者预测响应的统计行为。 3. 响应对回归量的依赖还包括一个附加的偏差项,用来讲明在对依赖程度公式化时候的不肯定性。偏差项称为指望偏差(expectational error)或解释偏差(explanational error)
上述这样的模型称为回归模型(regression model)。
回归模型有不少种类,例如咱们熟知的线性回归模型就是其中一种:
1. Linear Regression线性回归 2. Logistic Regression逻辑回归 3. Polynomial Regression多项式回归 4. Stepwise Regression逐步回归 5. Ridge Regression岭回归 6. Lasso Regression套索回归 7. ElasticNet回归
在对具体问题建模的时候,要选取哪一种模型呢?这个问题彷佛没有最佳答案,须要具体问题具体分析,结合专家知识,领域经验来选定最适合的模型。例如咱们在量化交易中第一步要作的事情是设计一个符合股市历史波动的回归模型,而公式的形式各家量化交易公司都不同,这里面考验的就是对股市交易的本质理解了。
咱们经过一个简单例子来讨论这个问题,好比温度与冰淇淋的销量(一个自变量、一个因变量):
能够假设这种线性关系为:
上图的 分别为:
总偏差的平方为:
不一样的 会致使不一样的
,根据多元微积分的知识求偏导:
这个时候 取最小值。对于
而言,上述方程组为线性方程组,用以前的数据解出来:
也就是这根直线:
同一个问题,还能够假设(这其实就是数学建模过程):
在这个假设下,能够根据最小二乘法(求导极值),算出 ,获得下面这根红色的二次曲线:
同一组数据,选择不一样的 ,经过最小二乘法能够获得不同的拟合曲线
从矩阵投影的角度来看最小二乘,最小二乘法的本质是最小化系数矩阵所张成的向量空间到观测向量的欧式偏差距离。
咱们从几何的角度来帮助咱们理解其中的概念含义。
为了从几何的角度解释最小二乘法,咱们先回顾一下,线性方程组的几何意义。线性方程组能够从行和列两个角度看。
举例,看以下简单的线性方程组:
线性方程组的解就是直线a和直线b的交点,这一点应该谁都知道,以下图所示:
从图上很容易能够看出该线性方程组的解为x1=1,x2=2
从行的角度看,线性方程组的每一行都表明空间中的几何图形(二维时是直线,三维时是平面,高维时是高维空间中的一个”平面“),线性方程组的解就是这些图形的交点or交线or交面。
从列的角度看时,先把上面的线性方程组写成矩阵的形式
再把上式拆开,写成下面这个样子
表示向量 a1 的 x1 倍加上向量 a2 的 x2 倍等于向量 b 。这种角度就是从列向量的角度看线性方程组。该方程的解已经从行的角度看出来了,为x1=1,x2=2,因而咱们把向量a1,a2,b画到下面这张图上:
向量 a1 的1倍加上向量 a2 的2倍恰好等于向量 b,而倍数1和2,就是咱们的解 x1 和 x2
从列的角度看线性方程组Ax=b的解,就是为系数矩阵A里的每一列都寻找一个合适的倍数,使每一列乘上这个倍数后再相加恰好等于向量b,这个倍数就是解。本质上就是找到A里的列向量的一个线性组合使之等于b。
这个topic是一个笔者认为很是重要意义的概念。
在机器/深度学习或者统计学任务中,咱们基本上不可能找到一个100% matched的model来对目标问题域进行建模(咱们没有上帝视角),也即真实物理模型是很是难获取的,像爱因斯坦质能方程那种跨世纪的发如今大多数的业务场景中都难以获得。因此,统计学家和机器学习工做者只能退而求其次,寻找一个“大体能拟合(尽量拟合)”的模型来描述目标问题域。寻找这个大体拟合的模型的方法之一就是最小二乘法。
咱们从一个最简单的例子开始,已知平面上有3个点(1,2),(0,2),(2,3)
咱们想用一条直线去拟合它。如上所述,咱们没有上帝视角,因此咱们并不知道真实物理模型的函数形式。
咱们只能寻找一个大体能拟合的模型,这个过程笔者相信你们都经历过,例如在深度学习中编写网络结构的代码(DNN/LSTM/CNN层等),经过创建高斯模型的假设进行异常发现。
回到这个简单的线性例子,咱们如今设这条直线的方程为 y=kx+b 。咱们但愿这条直线能够同时经过这三个点(100%拟合),也就是这条直线的参数要知足:
从图中直观的看,没有一条直线能够同时过这三个点,因此这个方程是无解的。怎么解一个无解的方程组呢?
为了表述方便,咱们换一下符号,用x1表示k,用x2表示b。即:
写成矩阵形式:
从列的角度看:
一但化成列的形式,咱们就很天然想到把向量a1,a2,b 画到图上:
要找到解,就要找到a1,a2的一个线性组合,使得组合后的向量恰好等于b。惋惜的是,根据向量相加的原理,任何的a1和a2线性组合,只可能出如今a1,a2所在的平面S上(这个平面S就是a1和a2组成的向量空间),可是向量b不在平面S上,以下图。不可能找到解:
找不到完美的解,就只能找到一个最接近的解。因此如今问题转换为了哪一个解是最接近的解。
咱们的思路是在平面S上找一个最接近向量b的向量来代替向量b,记这个替代品向量为P。因此如今问题又转换为了如何评价最接近向量b。
根据向量相关性的内积定理,和向量b相关性最高的向量就是过向量b的终点作平面S 的垂线(也就是作投影),垂足就是代替向量P(最接近向量b的向量)的终点。
P与b之间的偏差:e=b−P
原来的方程为Ax=b是无解的,咱们用P代替b后,P在a1a2所在的平面上,因此如今方程Ax̂ =P就有解了。
可是这个解和目标真实值之间存在偏差,偏差为:
此时,偏差向量e必定是垂直于平面S的,也就是要垂直于a1和a2。垂直在数学上是有明确公式表示的。也就是e∙a1=0,e∙a2=0,用矩阵表示出来就是,即:
综合上面公式得:,化简一下就是
,因此最佳的近似解就是
这样,按公式解出的解出了最近似的解为(1/2,11/6)。
从列的角度,咱们就能够用a1和a2的线性组合来表示P,下图所示
那么最优的直线的斜率和截距就是咱们解出的k=1/2,b=11/6=1.8333。以下图
最小二乘估计的基本假设是:
这个假设真的合理吗?数学王子高斯(1777-1855)也像咱们同样心存怀疑。
高斯换了一个思考框架,经过几率统计的思惟框架来思考。
让咱们回到最初测量线段长度的问题。高斯想,经过测量获得了这些值:
每次的测量值 都和线段长度的真值
之间存在一个偏差:
根据大数定理,偏差自己也属于非系统随机变量,所以这些偏差最终会造成一个几率分布,只是如今不知道偏差的几率分布是什么。假设几率密度函数为:
假设一个偏差的联合几率,把全部的测量数据整合起来:
把 做为变量的时候,上面就是似然函数了。关于极大似然估计的讨论,能够参阅个人另外一篇blog。
的图像多是这样的:
根据极大似然估计的思想,L(x)的极大似然估计最应该是下面这点:
从最优化的角度来看,当下面这个式子成立时,取得最大值:
笔者插入:极大似然估计获得的极大似然点也咱们用求导极值求最优势,在数学公式上是一致的,读者在看到这里的时候有没有体会到一种极致的美感。
若是最小二乘法是对的,那么 时应该取得最大值,即:
如今能够来解这个微分方程了。最终获得:
能够看到,这就是一个正态分布,而且这仍是一个充要条件:
也就是说,若是偏差的分布是正态分布,那么最小二乘法获得的就是极大似然的值。
接下来问题来了,那么偏差的分布是正态分布吗?
若是偏差是因为随机的、无数的、独立的、多个因素形成的,好比以前提到的:
那么根据中心极限定理,偏差的分布就应该是正态分布。
Relevant Link:
https://www.zhihu.com/question/20447622 https://blog.csdn.net/Macer3/article/details/48394239 https://www.zhihu.com/question/37031188 https://www.zhihu.com/question/20447622 https://blog.csdn.net/Macer3/article/details/48394239
https://www.zhihu.com/question/37031188
http://www.ee.cityu.edu.hk/~gchen/pdf/Wiener_S.pdf
维纳的我的履历实在使人望而生畏,他真的将各类领域的知识融合在了一块儿。同时,他创造了自动控制理论,深入地影响了机器/深度学习的发展历程。神经元模型以及GD梯度降低的发明也是基于自动控制理论基础上创立的。
笔者思考:
自动负反馈控制理论,从另外一个角度讨论了一个信息处理系统如何达到稳态(即找到最优参数)。
笔者任务其核心思想是:比起一次接受全部历史状态信息,经过最小二乘估计获得最优参数。信息系统其实能够将时间序列切片,经过只获取一个有限时间段内的信息,对经过滤波器后的信息偏差进行评估,进而对系统自己进行负反馈调节,这种方式最终可让系统趋向于稳态。
这也是GD(梯度降低)思想的核心之一,固然,GD自己还解决了对高维多元随机变量求极值的计算复杂度问题,GD自己是易于经过计算机实现的。
数字滤波器是数字信号处理中使用得罪普遍的一种线性系统环节,是数字信号处理的重要基础。
数字滤波器的本质是将一组输入的数字序列经过必定的运算后转变为另外一组输出的数字序列。
实现滤波处理的运算电路、或设备称为滤波器。
对输入信号经过必定的处理获得输出信号,这个处理一般是滤除输入信号的某些频率成分;保留信号中某些频率范围内的有用信号成分。因此把这种处理的过程称为滤波。
笔者思考:CNN卷积网络的训练过程体现了很是明显的滤波过程,CNN网络在训练样本数据的过程当中,会自动地保留样本数据中和target有关的“关键性像素区域”,例如小猫识别任务中,CNN会保留图像样本中各类姿式的猫,而对背景这些“冗余信息”会逐渐经过权重调整过滤掉,从某种程度上来讲,这就是一种滤波过程。
几乎因此的机器学习算法的参数优化(训练)过程都包含负反馈,算法经过在训练中不断根据本轮迭代的预测结果和目标结果之间的差距来动态调整本身的负反馈,从而逐渐将权值参数调整到”尽可能完美“的状态(即拟合)。
下图是一个未知动态系统的流程方框图,由包含元素的输入向量所刺激,其中 i 是刺激(激励)应用于系统时的瞬时时间,做为时间序列的索引。
做为对刺激的相应,系统产生一个输出 y(i) 做为相应。所以,次系统的外部行为由下述数据集描述:
从数字信号的时空特性角度来看,刺激向量 x(i) 可以以两种根本不一样的方式出现,一种是空间的,另外一种是空间的:
1. x(i) 的 M 个元素表明空间中的不一样点,输入向量 x(i) 的维数 M 称为输入空间的维数,或简称输入维数。在这种状况下咱们称 x(i) 为数据的瞬像(snapshot) 2. x(i) 的 M 个元素表明在时间上均匀分布的某个刺激,的如今和(M-1)个过去的值组成的集合。即它是时域累计刺激。
咱们如今面对的问题是如何经过创建一个简单线性神经元来设计未知动态系统的一个多输入-单输出模型(即滤波器模型)。
这个神经元模型是在一个算法的影响下运行的,此算法控制对神经元的突触权值的必要调整,同时记住如下要点:
1. 此算法从任意设定的一个神经元突触权值开始。这意味着建模者不须要对目标问题域有先验知识。 2. 为相应系统行为的统计变化,突触权值的调整是创建在连续的基础之上的,即把时间加进算法中,权值的调整是连续进行的。 3. 调整突触权值的计算在长度为一个采样周期的时间段内完成。
这样描述的神经元模型称为“自适应滤波器(adaptive filter)”,而其中负责进行调整的算法理论就是LMS(最小均方算法),LMS咱们放到下一个章节来展开讨论,咱们这里先关注滤波器系统自己。
虽然是在做为系统辨识(system identification)的任务背景下给出的描述,但自适应滤波器的特征仍是有很普遍的应用。
下图是一个自适应滤波器的示意图,它的运行由两个连续过程组成:
1. 过滤过程(滤波过程),涉及两个信号计算 1)一个输入,记为 y(i),它被产生以响应刺激向量 x(i) 的 M 个元素,即 x1(i),x2(i),.....,xM(i) 2)一个偏差信号,记为 e(i),它是经过比较输出 y(i) 和未知目标系统(要模型的实际物理系统)的相应输出 d(i) 而得到的。从效果上讲,d(i) 可做为一个指望响应信号(desired response)或者目标(target)信号。 2. 自适应过程,包括根据偏差 e(i) 对神经元突触权值的自动调整。
这两个共同运做过程的组合构成了一个围绕神经元运做的反馈环(feedback loop)。
上述的这两个连续过程的产生原理以下:
由于神经元是线性的,输出 y(i) 为局部诱导域:。
神经元的输出 y(i) 要和未知系统在时刻 i 的相应输出 d(i) 做比较,一般 y(i) 与 d(i) 不等,所以它们的比较结果获得了偏差信号:
偏差信号 e(i) 用来对神经元突触权值的调整进行控制的方式,是由用于导出自适应滤波算法的代价函数决定的。
这个问题与无约束最优化问题密切相关,无约束最优化不只能够用在线性自适应滤波器上,还能够应用在通常的神经网络上。
为了下一章节讨论LMS做准备,咱们这里先讨论下自适应滤波算法中的无约束最优化问题。
考虑代价函数,它是一个对未知权值(参数)向量 w, 连续可微(continuously differentiable)的函数。
函数将 w 映射为单个实数,它是一种度量,用来选择自适应滤波算法的权值(参数)向量 w,以使得模型以最优方式运行。
这样,代价函数就成功地将一个学习问题转换为了最优化问题。
咱们想找到一个最优解知足条件:
也就是说,须要解决一个无约束的最优化问题,即:
选择适当的权值向量 w 最小化代价函数。
最优性的必要条件(注意不是充要条件)是:
这里是梯度算子(gradient operator)。权值向量的梯度为0,表明了已经优化到了极值,至少是局部极值。
同时是代价函数的梯度向量(gradient vector):
一类特别适合自适应滤波器设计的无约束最优化算法是以局部迭代降低(iterative descent)思想为基础的:
从一个初始估计值 w(0) 开始,产生一系列权值向量 w(1),w(2),...,使得代价函数在算法的每次迭代中都要降低,即
咱们但愿算法最终收敛到最优解,可是这里也仅仅是但愿,由于局部迭代降低并不能保证必定收敛到全局最优解。
下面咱们来讨论几种以迭代降低思想的基本形式或变种形式的无约束最优化方法。
在最速降低法中,对权值向量 w 的连续调整是在醉宿降低的方法进行的,即它是与梯度向量方向相反的,记为:
所以,最速降低法通常表示为:,这里
是一个正常数,称为步长(stepsize)或学习速率(learning-rate parameter)。g(n) 是在 w(n) 处的梯度向量值。
为了证实最速降低法的公式知足,咱们用 w(n) 附近的一阶泰勒级数展开来逼近
,即:
上式对小的是适用的,将
代入上式得:
上式代表,对正的学习率参数,代价函数每次迭代都一定是降低的,除非权值向量 w(n) 的梯度已经等于0(达到局部最优极值)。但这里提供的推导是近似的,只有当学习率足够小时才是正确的(泰勒分解成立)。
最速降低法收敛到最优解的速度是很慢的。此外,学习率参数
对收敛行为有重要影响:
1. 当 η 很小时:算法的瞬时相应是平缓的(overdamped),这是因为 w(n) 的轨迹是 w 平面的一个光滑曲线,以下图 a) 2. 当 η 很大时:算法的瞬时相应是剧烈的(underdamped),这是因为 w(n) 的轨迹是锯齿(振荡)形的,以下图 b) 3. 当 η 超过某一临界值时,算法是不稳定的(即不收敛)
牛顿法的基本思想是:最小化代价函数在当前点 w(n) 周围的二次近似值;最小化在算法的每次迭代中都要进行。
具体来讲,就是利用代价函数在点 w(n) 周围的二次泰勒级数展开式,咱们获得:
式中,g(n) 是代价函数在点 w(n) 处的处的 M x 1 梯度向量。矩阵 H(n) 是
在 w(n) 的 m 行 m 列 Hessian矩阵。
的Hessian矩阵定义为:
上式须要代价函数关于 w 的元素二阶可微。
对式中
进行微分并求极值得:
,咱们最小化了改变量
。
解上式有关的方程获得:
。
整合上面公式得:。
通常来讲,牛顿法收敛得很快,并且不会出现最速降低法有时会出现的锯齿形状况。可是,应用牛顿法时, Hessian矩阵必须对每一个 n 都是正定矩阵。
遗憾的是,通常不能保证在算法的每次迭代中 H(n) 都是正定矩阵。
假如 Hessian矩阵 H(n) 不正定,对牛顿法进行修正就有必要。在不少时候,牛顿法的最主要局限在于其计算复杂度。
为了处理牛顿法的计算复杂度过大,而不对其收敛行为作太严重的让步,可使用Gauss-Newton法。为了应用这一方法,咱们采用表示为偏差平方和的代价函数,令:
偏差信号 e(i) 是可调权值向量 w 的函数。给定操做点 w(n),经过引入下面新的项来线性化 e(i) 对 w 的依赖性:
用矩阵记号能够写成等价的形式:
其中,e(n) 是偏差向量
J(n) 是 e(n) 的 n x m Jacobi 矩阵:
Jacobi 矩阵 J(n) 是 m x n 梯度矩阵的转置,这里:
如今更新后的权值向量 w(n+1) 定义为:
将代入上式得:
将以上表达式对 w 求微分并设结果为零,获得:
综合上式,可得:
上式描述了 Gauss-Newton方法的纯粹形式。
不想牛顿法必须知道代价函数的 Hessian矩阵,Gauss-Newton法只须要知道偏差向量 e(n) 的 Jacobi矩阵。
可是,为了使 Gauss-Newton 迭代可计算,矩阵乘积必须是非奇异的。
用负梯度做搜索方向,即令,是一种天然的选择。这种方法被称为梯度方法或梯度降低方法。
中止准则一般取为,其中
是小正数。
注意:梯度降低是最速降低在欧式范数下的特殊状况。
Relevant Link:
https://www.zhihu.com/question/267021131
咱们从最小二乘估计器引入最小二乘滤波器,这样能够很天然地进入对LMS的讨论中。最小二乘滤波器和最小二乘估计器虽然只有几字之差,可是其整个优化运算过程是不同的。最小二乘滤波器引入了自适应反馈的思想。
咱们在前面的章节中讨论了最小二乘估计器,它利用极小化(求导极值)的传统放来从环境的观测模型中找到最小二乘解。
从这个小节开始,咱们将最小二乘估计器放到一个维纳滤波器的框架中进行讨论,咱们称之为最小二乘滤波器(least-squares filter)。咱们接下来利用 Gauss-Newton法来从新推导这个滤波器公式。
咱们定义以下偏差向量:
其中 d(n) 是 n x 1 的指望响应向量:
X(n) 是 n x M 的数据矩阵:
偏差向量 e(n) 对 w(n) 取微分获得梯度矩阵:
相应的,e(n) 的 Jacobi矩阵是:
由于偏差向量对权值向量 w(n) 已是线性的,Gauss-Newton法在一次迭代后收敛,将上式综合后代入可得:
项被看做是数据矩阵 X(n) 的伪逆,即:
所以,上式可写为:
读者注意!!
这个公式和咱们在文章以前推导的最小二乘的几何意义获得的公式是一致的。通俗地说:
Gauss-Newton(以及其余迭代算法)的每一次迭代,本质上就是在这个 n 的时域内,进行最小二乘估计,并根据获得的本次最优解对权值向量进行更新。
这个公式表示了下面所陈述的一个简便途径:
权值向量 w(n+1) 求解定义在持续时间 n 的一个观察区间上的线性最小二乘问题,是以下两项的乘积:伪逆和指望的响应向量 d(n)
咱们已经知道了,LMS算法在一次迭代中(时间 n 时域区间),本质上是在进行最小二乘估计。接下来继续思考,若是这个过程无限进行下去会获得什么呢?即 n 趋近于无穷。
令表示线性最小二乘滤波器关于观测数 n 的极限形式,容许 n 趋于无穷。
基于公式
获得:
如今假设输入向量 x(i) 和相应的指望响应 d(i) 来自于联合遍历。咱们能够用时间均值来代替整体均值。
输入向量 x(i) 的相关矩阵(correlation matrix)的整体平均形式是:
而且,相应地,输入向量 x(i) 和指望响应 d(i) 之间的互相关系(cross-correlation vector)的整体平均形式是:
,其中 E 表示指望算子。
从而,在遍历假设下,有:和
综上,可将式:
改写为:
权值向量称为线性最优滤波问题的维纳解。
所以,咱们能够作如下的陈述:对一个遍历过程,当观察样本数趋于无穷时,线性最小二乘滤波器渐进趋于维纳滤波器。
虽然,当样本量趋近于无穷时,线性最小二乘滤波器趋近于维纳滤波器,可是设计维纳滤波器须要二阶统计量的知识:
1)输入向量 x(n) 的相关矩阵
2)x(n) 与指望响应 d(n) 的互相关向量
可是,在实际的状况下,这些信息都是未知的,因此维纳滤波器只是一个理论上的最优滤波器。
在实际工程实践中,咱们能够利用线性自适应滤波器(linear adaptive filter)来处理未知的环境,自适应在这里的含义就是滤波器可以调整本身的自由参数来响应环境的统计变化。在连续的时间基础上作这类调整的一个流行的算法就是最小均方算法(LMS)。
接下来,咱们进入对LMS的讨论。
LMS最小均方算法是第一个解决如预测和信道均等化等问题的线性自适应滤波算法。
值得注意的是,LSM算法自身不只能够做为自适应滤波应用机器,它还能够做为其余自适应滤波算法的评价准则,这里面的缘由包括:
1. 从计算复杂度来讲,对于可调参数而言 LMS算法的复杂度是线性的,这使得算法是计算高效的(computationlly efficient)的,而算法从性能上来讲依然是有效的。 2. 算法能够简单地用代码来实现,于是是容易创建的。 3. 对于外部扰动来讲,算法是鲁棒的,LMS算法是模型独立的。对任何模型,LMS均可以不辱使命,经过每次迭代的局部最优尽量地去靠近全局最优。
对工程来讲,上述性能都是很是重要的。之因此强调说工程,是由于其实LMS并非理论上最优的算法,可是倒是最实际工程有效的。
由于在实际状况中,咱们很难得到全局最优解,甚至说都没法完整按照最速降低的思想进行最优方向的梯度降低,缘由大体以下:
1. 神经网络的目标函数多数是非凸函数,不必定有全局最优解 2. 多维函数偏导为0并不是是局部极值 3. 解析式法运算复杂,多维函数经过解析式方法求解极值不是一件容易的事 4. 在一个 n 时域区间内,梯度并非保持不变的,最速降低要求同时考虑全部方向上的梯度,这样获得的梯度矩阵不必定是正定,可逆的。
可是LMS拥有计算简单、鲁棒性等优势,使得LMS在以后的深度学习/BP理论的发展中被不断继承和发扬光大。
最小均方(least mean square,LMS)算法的创建是基于极小化代价函数的瞬时值。注意!是瞬时值。
代价函数为:
这里 e(n) 是 n 时刻的瞬时偏差信号。
把对权值向量 w 求微分获得:
和在最小二乘滤波器上同样,LMS算法运行在一个线性神经元上,能够把偏差信号表示为:
所以,
综上公式得:
,代价函数对 w(n) 的导数。
上式做为梯度向量的一种瞬时估计(instantaneous estimate),能够记为:
最后,将上式梯度的瞬时估计公式,带入最速降低法做为最速降低法的梯度向量,能够获得LMS的算法公式:
这里值得注意的是:
学习率参数的倒数能够做为度量LMS算法的记忆(memory):
给赋的值越小,LMS算法将记忆的过去的数据就越多。所以,
值小的话,LMS算法执行得更精确,但算法的收敛速度慢
在LMS的公式中,咱们用代替
来强调这样一个事实:
利用最速降低法能够获得一个权值向量,而LMS算法产生该权值向量的一个瞬时估计。因此,利用LMS算法时咱们牺牲掉最速降低法的一个明显特征。
在最速降低法中,对一个给定的,权值向量
在权值空间中遵循一个明肯定义的轨迹。对比之下,在LMS算法中,权值向量
则跟踪一个随机的轨迹。
因为这个缘由,LMS算法有时也被称为”随机梯度算法“。当LMS算法的迭代次数趋于无穷时,在维纳解
周围随机行走(布朗运动)。
一个重要的事实是,与最速降低法不一样,LMS算法不须要知道环境的统计特征。从实际的角度来看,LMS的这一特征是很是重要的。
咱们能够把LMS算法中的权值向量演变过程表示以下:
这里,I 是单位矩阵。经过运用LMS算法,咱们认识到:
这里是单位时间延迟算子(unit-time delay operator),意味着存储。
咱们利用信号流图来表示LMS算法,这图揭示了LMS算法是随机反馈系统的一个实例。反馈的出现对LMS算法的收敛行为有重要影响。
为了给LMS算法提供一种统计分析,咱们利用下式定义的权值偏差向量(weight-error vector)更加方便。
其中,是最优维纳解,
是相应的由LMS算法计算的权值向量的估计。
所以,利用术语,假设其为一个状态(state),能够将式重写为紧凑形式:
这里,咱们有
右边的噪音项为,其中,
是由维纳滤波器产生的估计偏差。
1. 模型的更新状态(updated state),由向量定义,依赖于老的状态
,其自依赖性由转移矩阵(transition matrix) A(n) 定义。
2. 在时间 n 上状态的演化被内部所产生的噪音 f(n) 所扰动,这一噪声扮演者”驱动力“的角色。
下图给出了表示这一模型的向量值信号流图。标志为的分支表示模型的记忆,
做为单位时间延迟算子,由下式定义:
和上面的原始形式相比,这个图中用紧凑形式重点强调了LMS算法中的反馈过程。
须要注意的是!
上面的信号流图以及相应的方程提供了在小学习率参数的假设下LMS算法的收敛性分析的框架。
下面咱们开始讨论小学习率以及实现这一目标的两个基础知识:朗之万方程和Kushner直接平均法。
Relevant Link:
https://www.cnblogs.com/xingshansi/p/6603263.html
考虑稳定性和收敛性,咱们能够说LMS算法(对足够小的)从未达到完美的稳定或者收敛条件。
并且,在大量的迭代时间步 n 以后,算法达到”伪平衡“条件,这从定性上讲,可由算法围绕着维纳解执行布朗运动来描述。
这一类统计行为可经过非平衡热力学的朗之万方程(Langevin equation)来很好地解释。
由 v(t) 定义质量为 m 的宏观粒子陷入粘滞铃的速度。假设粒子足够小以使其由热起伏而来的速度被视为重要的(即小粒子的运动能够由热力学定律描述,由于质量较大的物体主要由牛顿力学和流体力学定律所描述)。
而后,由均分人力学原理(equipartition law of thermodynamics),粒子的平均能量由下式定义:
其中是Boltzmann常数,T为绝对温度(absolute temperature)。粘滞铃中分子做用于粒子的总驱动由两部分组成:
1. 根据Stoke定律(Stoke's lay)的等于- av(t) 的阻尼力(damping force),其中 a 是摩擦系数
2. 涨落力(fluctuating force),其性质是平均指定的。
粒子的运动方程在缺乏外部驱动时由下式给定:
两边同除以 m,咱们得:
其中,和
项是每单位质量涨落力(fluctuating force per unit mass)
由于它依赖于组成粒子的极为大量的原子数量,因此它是一个统计驱动力,它处于不规则运动状态。
公式被称为朗之万方程(Langevin equation),
被称为朗之万力(Langevin force)。
朗之万方程描述了在粘滞铃中全部时间下粒子的运动(若是其初始条件是指定),它是描述非平衡热力学的第一个数学公式。
在后面的章节中,咱们会证实LMS算法的一个变换版本具备和朗之万方程的离散时间版本相同的数学形式。可是在证实以前,须要先讨论一个基础知识。
公式的马尔科夫模型是非线性随机差分方程(nonlinerar stochastic difference equation)。
这一方程是非线性的缘由是由于:
1. 转移矩阵 A(n) 依赖于输入向量 x(n) 的外积。所以,权值偏差向量
对于 x(n) 的依赖性和叠加原理相冲突,而这一原则是线性的须要。
2. 并且,方程是随机的是由于训练样本是从随机环境中取得的。
基于这2个缘由,咱们发现对LMS算法做严格的统计分析是困难的任务。
而后,在知足必定的条件下,LMS算法的统计分析可以经过将Kushner直接平均法(kushner direct-averaging method)应用于上式的模型从而显著地简化。
考虑由马尔科夫模型所描述的随机学习系统:
其中,对一些输入向量 x(n) ,咱们有
并且附加噪声 f(n) 是由学习率参数线性拉伸的。有
1. 学习率参数是充分小的。
2. 附加噪声 f(n) 本质上独立于状态,修正马尔科夫模型的状态演化由下式来描述:
上式肯定矩阵是修正马尔科夫模型的转移矩阵,咱们用
来表示修正马尔科夫模型的状态,用来强调这一模型随时间的演化仅在微笑的学习率参数
的有限状况下等同于原始马尔科夫小莫名。
上述的讨论能够充分说明:
1. 学习率参数小的时候,LMS算法具备长记忆(long memory)。所以,更新状态
的演化能够经过时间一步一步追踪全部的路径直到初始条件
。
2. 当小的时候,能够在
的展开式序列中忽略二阶和高阶项。
3. 最后,在上式修正马尔科夫模型中,经过调用遍历性原理,此时整体平都可以被时间平均所替。
咱们已经有了Kushner直接平均法,如今能够创建LMS算法的统计分析原则了。咱们作三个合理的假设:
从实际角度,的小的选择也是有意义的。特别是,当
小时,LMS算法对于外部扰动是鲁棒的
由物理现象产生的随机过程频繁地出现使得高斯模型是适当的。
更重要的是,朗之万力对于LMS算法的非平衡行为负责,它证实了自身在大量的足够多的迭代次数 n 的时候,算法在最优维纳解的周围进行布朗运动(Brownian motion)。固然,前提是基于学习率参数
的状况下。
Relevant Link:
http://chem.xmu.edu.cn/teach/chemistry-net-teaching/wuhua/chapter3/part12/12-1.html