温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:02
兄弟们,直接上硬货,这道题大场面试几乎是必考题,我阿里2面就被追问过。大部分人张嘴就说牛顿法收敛快,再往下问就卡壳了。今天咱们从原理、性能、稳定性三个角度把它彻底讲透。注意这个细节,90%的人会错。刚才咱们提到了这道题是送命题,现在先搞清根本区别。梯度下降只用到泰勒展开的一节偏微分,就像盲人下山靠脚底感觉坡度一小步一小步往下挪。牛顿法直接上二阶偏微分,也就是海神矩阵,向开的上帝视角,能直接看到山谷位置,一步跳下去。理论上,牛顿法收敛速度快得多,尤其在接近最优点时,梯度下降,越走越慢,牛顿法几步到位。那问题来了,大模型训练为什么死磕梯度下降而不用牛顿法?
01:04
理解了这本质区别,咱们接着撕第一个坑,性能,你可能会觉得牛顿法迭代次数少,肯定总时间更短。先别急着下结论,注意这个细节,每次迭代的成本完全不在一个数量级。梯度下降,每次更新复杂度是欧NN是参数量。牛顿法要算hean矩阵复杂度ON平方,再求它的逆直接标到欧N立方。我举一个例子,一个10亿参数的大模型,梯度下降,一次更新也许几秒搞定,牛顿法一次更新可能要跑好几天。这特么就离谱?所以别看牛顿法步数少,总时间反而更长,在大模型时代,可扩展性远大于单卜精度。性能问题还不是最致命的,接下来这个坑更恶心,收敛稳定性。牛顿法对初始点极其敏感,如果你起点落在某个平坦区域,二阶岛接近敏,那它的倒数就会极大,不长瞬间失控优化,直接发散参数飞到108000里外。
02:12
为什么会这样?因为他要算二阶岛的倒数,平坦区域倒数极大,不长,直接爆炸。梯度下降虽然慢,但不常可控。稳的一批。所以,牛顿法不是翻不翻车的问题,而是大概率翻车。刚才聊了稳定性,还有一个更深的问题,安点高维优化里,安点无处不在。牛顿法判定梯度为0且二阶导为正才是极小值,可安点处梯度也为0,他就直接停步,以为已经收敛,彻底卡死在安点。梯度下降呢,虽然也会在安点附近变慢,但只要有一个方向存在梯度,它就能慢慢溜出去。实在不行加个随机扰动,像SJD那样也能逃出去。
03:00
这就是安典上的生死局。那是不是我们完全放弃了二阶信息,并没有原生牛顿法不实用,但他的思想被很多现代优化器继承了?你牛顿法里的BFGSLBFGS用近似的方式估计避免直接求逆等中的动量相,可以理解为对he对角线元素的近似,兼顾效率和收敛速度。所以二阶优化没死,只是换了个更聪明的马甲,记住,面试时达叔这一层直接加分。
我来说两句