2022最新版-李宏毅机器学习深度学习课程-P13 局部最小值与鞍点
局部最小值?鞍点?
一、优化失败的原因
局部最小值?鞍点?
Critical Point(临界点)
如果训练过程中经过很多个epoch后,loss还是不下降,那么可能是因为梯度(斜率)接近于 0,导致参数更新的步伐接近于0,所以参数无法进一步更新, loss也就降不下去。
梯度接近于 0 的位置就叫做临界点。而临界点中的saddle point(鞍点)还能找到办法让loss降低,就是改变一下梯度下降的方向
local minima(局部极小值):如果是卡在local minima,那可能就没有路可以走了
saddle point(鞍点):这个点在某一方向是最低点,但是在另一侧可能是最高点,卡在saddle point的话,saddle point旁边还是有路可以走的
global minima(全局最小值):已经达成目标

二、数学推导分析
1. 如何判断临界点的类型 ⇒ 考察 θ 附近Loss的梯度 → 泰勒展开 → 海塞矩阵H
用泰勒公式展开
一项与梯度(L的一阶导)有关,一项与海赛矩阵(L的二阶导)有关

第一项中,L( θ ),当 θ 跟 θ ' 很近的时候,很靠近
第二项中,g 代表梯度(一阶导数),可以弥补 L( θ' ) 与 L( θ ) 之间的差距; g 的第 i 个component , 就是 θ 的第 i 个 component 对 L 的微分
第三项中,H 表示海塞矩阵,是 L 的二阶导数
在 Critical point 附近时:第二项为0,只需考察 H 的特征值
海瑟矩阵

VTHV通过海瑟矩阵的性质可以转为判断H是否是正定的 来判断
- H正定=所有特征值为正=局部最小值
- H负定=所有特征值为负=局部最大值
- 有些特征值为正,有些为负=鞍点

例子

计算导数和海瑟矩阵的特征值

如果遇到鞍点,可以通过特征值来判断减小LOSS的方向:特征值为负的方向
如果走到鞍点,可以利用H的特征向量确定参数的更新方向,令 u = θ - θ',可以使用线性代数的思路,将矩阵 H 用特征值代替,一样可以求出当前位置点是 saddle point 还是 local minima / maxima,根据 θ = θ' + u 的公式求出下一个点所在位置,移动到该点 θ,这样可以使每一步移动都朝着能使 Loss 减小到最佳的效果


其实局部最小值很少见,一升维,可能你碰上的就是个鞍点!

实验验证
注意这个方法肯定不是梯度下降法做的,做不出来,自己本身儿还一堆毛病呢。
纵轴:损失大小
横轴:局部最小值的比例=负特征值/全部特征值
具体训练范例如下图所示,这是训练某一个 network 的结果,每一个点代表训练那个 network 训练完之后把它的 Hessian 拿出来进行计算。所以这边的每一个点都代表一个 network。
我们训练某一个network,然后把它不断的进行训练,直到到gradient很小,卡在critical point。然后把那组参数出来分析,看看它是saddle point 还是 local minima。
- 纵轴代表 training 的时候的 loss,就是卡住的那个loss。很多时候,loss在还很高的时候就训练不动了,卡在critical point;很多时候 loss 可以降得很低才卡在 critical point
- 横轴的部分是minimum ratio(最小比率)。minimum ratio是 eigen value 是正数的数目 / eigen value的总数目,如果所有的 eigen value 都是正的,代表我们今天的 critical point 是 local minima;如果有正有负代表 saddle point。(但是在实际操作中几乎找不到所有 eigen value 都是正的critical point)

在这个图上,越往右说明 minimum ratio 越大,代表eigen value 是正数的数目比重更大,我们的 critical point 越像 local minima。但是它们都没有真的变成local minima,在下图的实际操作中,就算是在最极端右侧的状况,仍然有一半的 case 中 eigen value 是负的。这一半 case 的 eigen value 是正的,因此说明其实 local minima 并没有那么常见。多数的时候你觉得你train到一个地方,得到的gradient真的很小,从而参数不再 update 了,大概率就是卡在了 saddle point。
解决梯度太小被困住的问题。。。下一小节:动量!

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)