“升维的降维打击”-参数训练的驻点分析

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.优化失败的原因

“升维的降维打击”-参数训练的驻点分析_机器学习

1 训练参数的常见情况

在上一节中,讨论了如何通过梯度下降方法训练深度学习模型。随着参数训练更新次数的增加,可能会遇到两种常见的失败情况:第一种,损失函数随着更新次数的增加呈现出平稳的状态,并没有非常明显的下降趋势;第二种,损失函数的数值虽然在下降,但是在某次更新后不继续下降,且损失函数数值并没有很小。

这两种情况发生的原因通常是梯度为0或很小,导致参数不更新或变化不大。在高等数学中,将这种梯度为0的情况称为驻点(Critical Point)。根据损失函数的不同,又可以将驻点细分为局部极小点(Local Minima)、局部极大点(Local Maxima)和鞍点(Saddle Point)。

局部极小点意为在一定范围内,所有的函数值都比该点的函数值大;局部极大点意为在一定范围内,所有函数值都比该点函数值小。从二维函数的角度来看,鞍点一个方向的截面呈现出局部极小点的情况,另一个方向的截面呈现出局部极大点的情况,形状如同“马鞍”状。​

“升维的降维打击”-参数训练的驻点分析_机器学习_02

图2 鞍点示例​

深度学习模型在参数优化的过程中使用的是梯度下降方法,所以当遇到梯度为0的情况下,可以排除局部极大点的情况。当训练时遇到局部极小点的情况,便无法判断下一步的更新方向;但遇到鞍点的情况,或许可以判断下一步的更新方向。因此,区分当前驻点是局部极小点和鞍点对深度学习模型的参数优化具有极大的参考价值。

2.区分局部极小点和鞍点

2.1理论分析

根据局部极小点和鞍点的定义,假设在“升维的降维打击”-参数训练的驻点分析_深度学习_03处梯度为0,需要考虑在“升维的降维打击”-参数训练的驻点分析_损失函数_04向量附近的情况。依据泰勒定理可知,在“升维的降维打击”-参数训练的驻点分析_深度学习_03处附近,可以近似将损失函数进行二阶展开。

“升维的降维打击”-参数训练的驻点分析_机器学习_06

在式中“升维的降维打击”-参数训练的驻点分析_算法_07表示为梯度,是一个向量,有“升维的降维打击”-参数训练的驻点分析_算法_08,“升维的降维打击”-参数训练的驻点分析_参数训练_09;“升维的降维打击”-参数训练的驻点分析_深度学习_10是一个矩阵,存储的是二阶导数,被称为Hessian矩阵,因此有“升维的降维打击”-参数训练的驻点分析_损失函数_11。由损失函数的二阶泰勒展开式可知,损失函数在“升维的降维打击”-参数训练的驻点分析_损失函数_04附近的值和梯度的Hessian矩阵有关。由于“升维的降维打击”-参数训练的驻点分析_损失函数_04为驻点,因此“升维的降维打击”-参数训练的驻点分析_机器学习_140,原式转化为公式(2)。

“升维的降维打击”-参数训练的驻点分析_深度学习_15

因此“升维的降维打击”-参数训练的驻点分析_损失函数_04的驻点类型是局部极小点还是鞍点取决于带有Hessian矩阵的最后一项“升维的降维打击”-参数训练的驻点分析_损失函数_17

“升维的降维打击”-参数训练的驻点分析_算法_18记为“升维的降维打击”-参数训练的驻点分析_深度学习_19,最后一项则记为“升维的降维打击”-参数训练的驻点分析_损失函数_20。假设对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19,有“升维的降维打击”-参数训练的驻点分析_损失函数_22大于0,此时“升维的降维打击”-参数训练的驻点分析_算法_23大于“升维的降维打击”-参数训练的驻点分析_深度学习_24,因此“升维的降维打击”-参数训练的驻点分析_损失函数_04的类型为局部极小点;假设对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19,有“升维的降维打击”-参数训练的驻点分析_损失函数_22小于0,此时“升维的降维打击”-参数训练的驻点分析_算法_23 小于“升维的降维打击”-参数训练的驻点分析_深度学习_24,因此“升维的降维打击”-参数训练的驻点分析_损失函数_04的类型为局部极大点;若对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19“升维的降维打击”-参数训练的驻点分析_损失函数_22有正有负,此时“升维的降维打击”-参数训练的驻点分析_损失函数_04的类型为鞍点。

依据线性代数的矩阵理论对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19“升维的降维打击”-参数训练的驻点分析_损失函数_22大于0,可认为“升维的降维打击”-参数训练的驻点分析_深度学习_10为正定矩阵(Positive Definite),此时矩阵“升维的降维打击”-参数训练的驻点分析_深度学习_10的所有特征值(Eigen Value)均大于0;对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19“升维的降维打击”-参数训练的驻点分析_损失函数_22小于0,可认为“升维的降维打击”-参数训练的驻点分析_深度学习_10为负定矩阵(Negative Definite),此时矩阵“升维的降维打击”-参数训练的驻点分析_深度学习_10的所有特征值(Eigen Value)均小于0;对于任意的向量“升维的降维打击”-参数训练的驻点分析_深度学习_19“升维的降维打击”-参数训练的驻点分析_损失函数_22有正有负,此时矩阵“升维的降维打击”-参数训练的驻点分析_深度学习_10的所有特征值(Eigen Value)也有正有负。综上,驻点类型的判断取决于Hessian矩阵,如果Hessian矩阵为正定矩阵,其所有的特征值均大于0,驻点类型为局部极小值;如果Hessian矩阵为负定矩阵,其所有的特征值均小于0,驻点类型为局部极大值;如果Hessian矩阵有正有负,其所有的特征值也有正有负,驻点类型为鞍点。

2.2实例分析

通过一个案例来分析判断驻点是局部极小点、局部极大点和鞍点的哪一种。假定,机器学习模型为“升维的降维打击”-参数训练的驻点分析_参数训练_45,只有一笔训练数据x=1,y=1。该图绘制出了损失函数随两个参数“升维的降维打击”-参数训练的驻点分析_机器学习_46“升维的降维打击”-参数训练的驻点分析_算法_47变化的曲面图。最中间黑色点、左下方一排黑色点和右上方一排黑色点是梯度为0的驻点。图中由蓝至红的颜色变化,表示损失函数数值逐渐增大,因此易知中心黑色点为鞍点,左下方一排黑色点和右上方一排黑色点是局部极小点。

“升维的降维打击”-参数训练的驻点分析_深度学习_48

3驻点研判分析

可以从数学理论的角度来分析这些驻点的类型。计算该模型的损失函数可得公式(3)

“升维的降维打击”-参数训练的驻点分析_算法_49

根据上面的理论分析,首先需要求其驻点,分别求损失函数关于w_{1}和w_{2}的偏导数可得公式(4)。

“升维的降维打击”-参数训练的驻点分析_损失函数_50

可得驻点为“升维的降维打击”-参数训练的驻点分析_深度学习_51,“升维的降维打击”-参数训练的驻点分析_机器学习_52“升维的降维打击”-参数训练的驻点分析_机器学习_53“升维的降维打击”-参数训练的驻点分析_参数训练_54“升维的降维打击”-参数训练的驻点分析_机器学习_52对应的点即为图中中心黑色点;“升维的降维打击”-参数训练的驻点分析_机器学习_53对应的点即为左下方一排黑色点和右上方一排黑色点。接下来计算二阶偏导数,可得Hessian矩阵见公式(5)。

“升维的降维打击”-参数训练的驻点分析_损失函数_57

分别将“升维的降维打击”-参数训练的驻点分析_深度学习_51,“升维的降维打击”-参数训练的驻点分析_机器学习_52“升维的降维打击”-参数训练的驻点分析_机器学习_53代入Hessian矩阵可得矩阵见公式(6)和公式(7)。

“升维的降维打击”-参数训练的驻点分析_机器学习_61

“升维的降维打击”-参数训练的驻点分析_损失函数_62

计算式(6)对应的特征值可求得“升维的降维打击”-参数训练的驻点分析_损失函数_63“升维的降维打击”-参数训练的驻点分析_参数训练_64,因此中间黑色的点为鞍点;计算式(7)对应的特征值可求得公式(8)

“升维的降维打击”-参数训练的驻点分析_损失函数_65

由公式(8)可知,“升维的降维打击”-参数训练的驻点分析_参数训练_66“升维的降维打击”-参数训练的驻点分析_机器学习_67必有一值为0,且“升维的降维打击”-参数训练的驻点分析_参数训练_66“升维的降维打击”-参数训练的驻点分析_机器学习_67之和大于等于0,因此,左上和右下黑色的点为局部极小点。

3.鞍点的更新方法

在训练深度模型的过程中,如果参数更新停留在鞍点,从理论上来说,可以找到下一步的更新方向。对公式(2)进一步分析,假设“升维的降维打击”-参数训练的驻点分析_深度学习_70“升维的降维打击”-参数训练的驻点分析_深度学习_10的特征向量,“升维的降维打击”-参数训练的驻点分析_损失函数_72是特征值且小于0,且“升维的降维打击”-参数训练的驻点分析_算法_73“升维的降维打击”-参数训练的驻点分析_损失函数_74的差距为特征向“升维的降维打击”-参数训练的驻点分析_机器学习_75。因此,公式(2)的后半部分可写成“升维的降维打击”-参数训练的驻点分析_损失函数_76。由线性代数理论可得(9)式

“升维的降维打击”-参数训练的驻点分析_深度学习_77

由于“升维的降维打击”-参数训练的驻点分析_算法_78,因此公式(9)表示,当“升维的降维打击”-参数训练的驻点分析_算法_73“升维的降维打击”-参数训练的驻点分析_损失函数_74的差距为特征向量“升维的降维打击”-参数训练的驻点分析_深度学习_70时即“升维的降维打击”-参数训练的驻点分析_机器学习_82“升维的降维打击”-参数训练的驻点分析_深度学习_83。因此,只需要沿着“升维的降维打击”-参数训练的驻点分析_深度学习_70的方向更新参数,便可以使损失函数下降。

“升维的降维打击”-参数训练的驻点分析_深度学习_85

4鞍点更新的示例

仍以模型“升维的降维打击”-参数训练的驻点分析_参数训练_45为例,取“升维的降维打击”-参数训练的驻点分析_参数训练_64的特征值,易知其中一个特征向量为

“升维的降维打击”-参数训练的驻点分析_损失函数_88

因此,如图所示的黑色箭头部分即为特征向量的方向,只需要沿着右上方更新参数,参数会更新至局部极小点。

4.升维的“降维打击”

“升维的降维打击”-参数训练的驻点分析_深度学习_89


5鞍点和局部极小点比较

在实际训练的过程中,参数更新遇到鞍点的情况比局部极小点的情况多。以上图为例,左上方是一个二维参数的损失函数曲线;左下方是一个三维参数的损失函数曲面。左上方的曲线可以看成左下方曲面的二维投影,在二维的时候红色的驻点为局部极小点,在三维的时候红色的驻点就成了鞍点。驻点为鞍点仍然有可能是损失函数下降,而驻点为极小点,参数的更新就遇到了瓶颈,无法进一步优化更新。这表明,当模型维度上升时,驻点为鞍点的概率随着增加了,对比低维度的模型实际上起到了“降维打击”的作用。登高望远,站的高度越高,视野就更加开阔了,可选择的道路和方向就多了。这和荀子“登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。”的思维是一致的。​

“升维的降维打击”-参数训练的驻点分析_算法_90

6实际训练的情况

图中蓝色的点表示,训练一个神经网络参数更新至驻点时的情况,纵轴表示损失函数的数值,横轴表示正的正的特征值在所有特征值的比值。如图所示,由于基本上无法找到一个比值为1的点,因此在实际进行深度学习模型训练的过程中,遇到的大部分驻点都是鞍点(特征值都有正有负),局部极小点基本上不会出现。

更多内容请关注我的微信公众号白泽图鉴获取!!!

“升维的降维打击”-参数训练的驻点分析_机器学习_91

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6