本次学习了深度学习中的局部最小值
1、书上说有时候模型一开始就训练不起来,不管怎么更新参数损失都不下降。我之前遇到过这种情况,大概是做一个数据很不平衡的二分类,正负样本比例大概为9:1,模型倾向于全部预测为正样本,没有办法学习负样本。
2、3.1.1介绍了一下鞍点,鞍点的各个方向的梯度是等于零的,而我们的模型反向传播又是基于梯度的,所以到了鞍点就没有办法再让损失下降了,但是其实鞍点和局部最优又区别,鞍点并不是梯度最小的点。
3、3.1.2介绍了损失函数L()的近似:
第一项:如果很接近‘,L()近似于L(’)
第二项:g代表梯度,L(’)对于中每个元素的偏微分
第三项:H:海森矩阵,里面是L的二次微分
接下来需要探究误差表面的形状,来判断是否为鞍点,主要探究第三项,另v = (-’):
情况1):如果对于所有v,第三项>0:局部最小
情况2):对所有v,第三项<0:局部最大
情况3):对所有v,有时大于0有时小于0:鞍点
在实际判断的时候,不需要用H于每一个v进行运算,只需要判断是否为正定或负定矩阵即可。
4、判断完鞍点,H还能够帮我们在鞍点指路:
令u = (-’),为H的特征值:,该等式在小于0时小于0
此时L()<L(’),因此沿着u的方向更新,损失就会变小,所以在鞍点就需要找负特征值以及对应的特征向量
5、其他逃离鞍点的方法:
很多情况下,低维空间的局部最小在高维空间可能是鞍点
实际上,几乎找不到所有特征值都为正的临界点。大概还有一半的路可以让损失下降
#############################################################################
学习心得:感觉还是很有收获的,之前调模型可能就主要想着让损失下降,但是不求甚解,了解了最底层的逃离鞍点让损失下降的逻辑之后,对于各种算法好像有了新的认识