[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)

梯度逼近为0的原因有哪些?

不能笼统的说卡在了local minima上,还有可能是卡在了saddle point上,这都是属于critical point

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第1张图片

但是到底是local minima,还是saddle point? #Tayler

loss函数可以根据泰勒展开式,写成如下形式

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第2张图片

\theta{}'附近的error surface到底长什么样子,就可以判断\theta{}'是local minima、saddle point,还是local max。

若在critical point,展开式的第二项为0,通过第三项来判断

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第3张图片

怎么通过红色部分来判断地貌?注:eigen values 特征值  eigenvector 特征向量

根据H矩阵来判断 

①特征值都为正的,则为local minimal

②特征值都为负的,则为local maxima

③特征值一正一负,则为saddle point

 

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第4张图片

举个例子

直接穷举所有的\omega1和\omega2值,然后算出所有的loss值进行展示

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第5张图片

 

当 \omega1和\omega2的值都为0时,如下计算

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第6张图片

可以发现H矩阵的特征值-2和2,一正一负,则为saddle point

 

如果是saddle point的话,不用但心,通过算出的特征值的特征向量可以给出要训练的方向,但是此方法计算量较复杂,可以说明saddle point问题不大

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第7张图片

就如刚刚的例子

[3]类神经网络训练不起来怎么办(一)局部最小值(local minima)和鞍点(saddle point)_第8张图片

根据负特征值的特征向量,确定参数更新的方法。

你可能感兴趣的:(李宏毅机器学习笔记,机器学习,深度学习,神经网络)