Machine Learning---LMS 算法数学说明
引言
这篇文章主要是为了《Machine Learning---LMS 算法》中做一些数学上的解释,虽然LMS算法实现比较简单,但是里面所用的数学知识还是有必要讲一下。
一、梯度
这里得先介绍梯度这个概念,因为算法就是用了所谓的“梯度下降法”。
1.方向导数
对于方向函数的详细定义就不写了,这里就大概讲一下什么是方向函数。
在一个xOy平面中,存在以下向量: ,该向量是与射线L同方向的单位向量。
设函数 z = f(x,y)。有一个点 ,然后沿着向量e上另一个点
导出以下公式
该函数便是f(x,y)在点 沿方向 l 的变化率,叫做方向导数。
方向导数一个定理:如果函数f(x,y),在点 处可微分,那么函数在该点处沿任意方向l的方向导数必定存在,且有
2.梯度
函数f(x,y)在平面区域D中,具有一阶连续偏导数,则向量 ,便是函数f的梯度
。
如果向量 是与方向l同方向的单位向量,那么方向函数
梯度的意义:三个特殊情况
(1) ,则表示方向与梯度相同的时候,则函数在这个方向增长速度最快。
(2) ,则表示方向与梯度相反的时候,则函数在这个方向下降速度最快。我们的梯度下降法中,就是采用这个情况。
(3) ,则表示方向与梯度正交的时候,则函数的变化率为0。
二、算法数学解释
首先我们LMS中的 便是以下这种线性形式:
这里的 便是LMS公式中的权值w 。
梯度下降法:
我们在机器学习过程中,要做的就是不断缩小预测值和真实值之间的差距。所以我们先定义 来量化差值。
这里我们再次做一个假设,引进一个函数
对于这个函数有几点说明,首先的意思是第j个训练样本中的x和y。而不是x的j次幂和y的j次幂。
按照上面介绍的梯度的知识,对 进行求梯度计算
对这个求偏导,
,而
所以这个式子就等于 这里便是
所以综上所述
梯度下降
三、总结
这是笔者第一次写关于数学方面的推导介绍,所以经验欠缺,敬请见谅。这里需要说明的是,其中第二节的梯度下降法介绍来源于斯坦福Machine Learning公开课。
这个系列的公开课挺不错的,其中对于数学方面的推导介绍页很详细。有兴趣的可以直接搜索 斯坦福 + Machine Learning估计就能找到。
由于笔者不是专门研究人工智能方面,所以在写这些文章的时候,肯定会有一些错误,也请谅解,上面介绍中有什么错误或者不当地方,敬请指出,不甚欢迎。
如果有兴趣的可以留言,一起交流一下算法学习的心得。
声明:本文章是笔者整理资料所得原创文章,如转载需注明出处,谢谢。