在之前的文章中,我用梯度下降法实现了Logistic回归,当时用的是批量梯度下降法,现在就来进一步了解

梯度下降法的原理以及在机器学习中的应用。

 

常见的梯度下降法主要有两种:(1)批量梯度下降法  (2)随机梯度下降法

 

现在假设样本的个数为

梯度下降法终极版_梯度下降法

,对单个样本来说,有一个

梯度下降法终极版_迭代_02

维的向量

梯度下降法终极版_随机梯度下降_03

,代表这个样本的

梯度下降法终极版_随机梯度下降_04

个特征,还有一个值为预测值

梯度下降法终极版_随机梯度下降_05

,要拟合的函数设为

梯度下降法终极版_迭代_06

,那么误差准则函数

 

    

梯度下降法终极版_随机梯度下降_07

 

这是典型的线性回归问题,现在的目的是使得这个误差准则函数的值最小化,可以用如下两种梯度下降法。

 

(1)批量梯度下降法

 

    批量梯度下降法需要把

梯度下降法终极版_随机梯度下降_08

个样本全部带入计算,迭代一次计算量为

梯度下降法终极版_迭代_09

,先对误差准则函数求偏导

 

    

梯度下降法终极版_梯度下降法_10

 

所以进一步得到批量梯度下降的迭代式为

 

    

梯度下降法终极版_迭代_11

 

    可以看出批量梯度下降法得到的是一个全局最优解,但是每迭代一步要用到训练集所有的数据,如果

梯度下降法终极版_随机梯度下降_12

    很大那么计算量会很大,相应速度会很慢。所以针对这种不足,又引入了另一种方法:随机梯度下降法。

 

(2)随机梯度下降法

 

    上面的批量梯度下降法是将所有的样本都带入计算,而随机梯度下降法每次迭代是带入单个样本,迭代

    一次计算量为

梯度下降法终极版_随机梯度下降_13

,当样本数总数

梯度下降法终极版_迭代_14

很大的时候,随机梯度下降法迭代一次的速度要远远小于梯度下降

    法,随机梯度下降法迭代公式如下

 

    

梯度下降法终极版_随机梯度下降_15

 

    可以看出随机梯度下降法是最小化单个样本的误差准则函数,虽然每次迭代误差准则函数都不一定是向

    着全局最优方向,但是大的整体方向是向着全局最优方向的,最终得到的结果往往在全局最优解附近。

 

 

对于上述线性回归问题,来分析一下这个误差准则函数的性质,首先对

梯度下降法终极版_迭代_16

求二阶偏导数,得到

 

    

梯度下降法终极版_随机梯度下降_17

 

即得到Hessian矩阵

梯度下降法终极版_迭代_18

,中间的

梯度下降法终极版_随机梯度下降_19

是一个单位矩阵且正定,所以Hessian矩阵正定。进而推出误差准则函数

梯度下降法终极版_随机梯度下降_20

是单峰函数,那么通过梯度下降法得到的最优解也就是全局最优解。当然如果一个函数有

多个峰,那么通过梯度下降得到的可能不是全局最优解。

 

其实梯度下降法,在使用的时候无非是考虑到两个方面:一是方向,二是步长。方向决定是否走在最优化的道

路上,而步长决定了要多久才能到达最优的地方。对于第一方面,就是求梯度,多元函数求相应变量的偏导数;

对于第二方面,如果步子太少,则需要很长的时间才能达到目的地,如果步子过大,可能导致在目的地周围来

回震荡,所以步长选择比较关键。