目录
4.saddle point和local minima哪个更常见
1.critical point
训练时常出现loss很高但趋于稳定的情况,直觉是卡在了local minima(极小值),但可能的情况还包括local maxima、saddle point(鞍点),这些点都会出现gradient为0的情况,统称critical point。(实际情况上Optimazation失败绝大部分情况下都不是因为critical point,而是其他原因)
2.判断critical point类型
需要使用微积分的多元函数的泰勒展开和线性代数的二次型
Step1 泰勒展开
首先将Loss函数展开为二阶(因为一阶微分,即gradient值为0)
根据红色方框的值可以判断类型
数学补充1:Hessian Matrix(可以跳过)
Hessian Matrix(黑塞矩阵)是一个多元函数的二阶偏导数构成的方阵
推导Hessian矩阵的方法:将多元函数先二阶泰勒展开,再运用二次型的知识改写二阶偏导即可得到。下面为二元函数的例子
Step2 判断Hessian矩阵类型
若H的特征值均为正,则H为正定矩阵,对应极小值;若H的特征值均为负,则H为负定矩阵,对应极大值;若特征值有正有负,H为不定矩阵,对应鞍点。
数学补充2: 二次型、特征值、正定矩阵(可以跳过)
二次型:含n个实变量x1,x2,…xn的二次齐次多项式。二次型可用矩阵形式简单表示其中A是对称矩阵,称为二次型f的矩阵。
特征值与特征向量:
正定矩阵:
判定方法之一:特征值均为正,则为正定矩阵。
Example
error surface图中颜色的冷暖通常用于表示误差(损失函数值)的高低,默认情况下:暖色(红/黄)≈ 高误差,冷色(蓝/绿)≈ 低误差;线条表示等高线,线条上误差率相同。
以中心点为例来计算:
3.利用Hessian矩阵处理saddle point情况
负特征值对应的特征向量可以作为参数更新方向
Example
但实际上不会使用此方法:神经网络参数量非常大,计算Hessian矩阵、 并求特征值计算量太大。但这个方法至少提供了一种解法。一般使用small batch和momentum来解决critical points的问题,详见Note2.2 机器学习训练技巧:Batch and Momentum(Machine Learning by Hung-yi Lee)-CSDN博客
4.saddle point和local minima哪个更常见
结论:saddle point远比local minima常见。
原因:低维空间的local minima放在高维空间中很可能只是saddle point,而神经网络参数非常多,维度非常高。