目录

1. 前言

2.梯度下降法

3.牛顿法


1. 前言

在机器学习与深度学习领域中,通常需要构建模型来进行预测,而损失函数则是代表着当前模型输出的结果与真实结果之间差距的一种量化。由此可知,损失函数越小,模型训练的也就越好。梯度下降法与牛顿法是优化模型,减少损失函数值的两种基本方法,同时两者的本质都是迭代。损失函数通常会有被很多参数制约,在本文中使用 

梯度下降法与牛顿下降法计算实例_梯度下降法与牛顿下降法计算实例

 来进行表示和推理(X为向量,可以包含多个权重

梯度下降法与牛顿下降法计算实例_神经网络_02

和偏差

梯度下降法与牛顿下降法计算实例_机器学习_03

),当然我们的最终目的是为了求出这些权重

梯度下降法与牛顿下降法计算实例_神经网络_02

和偏差

梯度下降法与牛顿下降法计算实例_机器学习_03


2.梯度下降法

简单概述一下:依据梯度(一阶导数)和步长,在损失函数曲线上一点点挪动,直到到达损失函数的最小值,此时的

梯度下降法与牛顿下降法计算实例_机器学习_06

就是我们想要的结果。

具体原理:

泰勒公式一阶展开:

梯度下降法与牛顿下降法计算实例_机器学习_07

其中

梯度下降法与牛顿下降法计算实例_神经网络_08

代表此时损失函数的值,

梯度下降法与牛顿下降法计算实例_损失函数_09

代表下一时刻损失函数的值。两个值之间的偏差为

梯度下降法与牛顿下降法计算实例_损失函数_10

,偏差理应为负。其中

梯度下降法与牛顿下降法计算实例_机器学习_11

过小省略掉,

梯度下降法与牛顿下降法计算实例_深度学习_12


梯度下降法与牛顿下降法计算实例_神经网络_08

处的一阶偏导,

梯度下降法与牛顿下降法计算实例_梯度下降法与牛顿下降法计算实例_14

通常是学习率与单位步长的乘积,学习率与单位步长均属于已知信息。

梯度下降法与牛顿下降法计算实例_损失函数_15

梯度下降法与牛顿下降法计算实例_梯度下降法与牛顿下降法计算实例_14

=一阶偏导×学习率

梯度下降法与牛顿下降法计算实例_损失函数_17

×单位步长方向由

梯度下降法与牛顿下降法计算实例_深度学习_18

可推导

梯度下降法与牛顿下降法计算实例_神经网络_19

,依次迭代直到某一时刻

梯度下降法与牛顿下降法计算实例_损失函数_09

达到最优值,即损失函数的步长往哪个方向挪动,损失函数值都不会减少,此时的

梯度下降法与牛顿下降法计算实例_机器学习_06

就是模型的最好参数了。

优缺点:

优点:适合特征数较多的场合,如图像分类,语义分割、时间复杂度较低。

缺点:越接近最优值时,学习率应当不断减小,否则损失函数值会在最优值附近来回震荡、需要多次选择单位步长的方向。

3.牛顿法

简单概述一下:是通过求解损失函数的一阶导数为0时的参数(需要二阶导数信息),进而求出损失函数最小值时的参数。

具体原理:

同样的,泰勒公式二阶展开:

梯度下降法与牛顿下降法计算实例_深度学习_22

其中

梯度下降法与牛顿下降法计算实例_神经网络_08

代表此时损失函数的值,

梯度下降法与牛顿下降法计算实例_损失函数_09

代表下一时刻损失函数的值。两个值之间的偏差为

梯度下降法与牛顿下降法计算实例_梯度下降法与牛顿下降法计算实例_25

,偏差理应为负。其中

梯度下降法与牛顿下降法计算实例_深度学习_12


梯度下降法与牛顿下降法计算实例_神经网络_08

处的一阶偏导,

梯度下降法与牛顿下降法计算实例_损失函数_28

是 

梯度下降法与牛顿下降法计算实例_神经网络_08

处的二阶偏导(海瑟矩阵),

梯度下降法与牛顿下降法计算实例_梯度下降法与牛顿下降法计算实例_14

取值不同于梯度下降法的人为设置,而是通过计算求解,求解如下:   对

梯度下降法与牛顿下降法计算实例_损失函数_09

求导,使其为0:

梯度下降法与牛顿下降法计算实例_神经网络_32

梯度下降法与牛顿下降法计算实例_神经网络_33

同样进行迭代,由

梯度下降法与牛顿下降法计算实例_深度学习_18

可推导

梯度下降法与牛顿下降法计算实例_神经网络_19

,依次迭代直到某一时刻

梯度下降法与牛顿下降法计算实例_损失函数_09

达到最优值,即损失函数达到最小值,此时的

梯度下降法与牛顿下降法计算实例_机器学习_06

就是模型的最好参数了。

优缺点:

优点:收敛快,迭代次数少,无需人为设参。

缺点:不适合特征数较多的环境,对海瑟矩阵求逆时间复杂度高。