sgd
神經(jīng)網(wǎng)絡(luò)經(jīng)常加入weight decay來防止過擬合,optimizer使用SGD時(shí)我們所說的weight decay通常指l2 weight decay(即,加在loss中的l2正則化)。公式1:

在梯度更新時(shí)就會(huì)加入一項(xiàng)權(quán)重衰減項(xiàng),公式2是原始的weight dacay公式:

這符合weight decay的原始定義,在權(quán)重比較大時(shí),因?yàn)椴捎孟嗤乃p系數(shù)w,權(quán)重的懲罰也越大(1-w)xt。此時(shí)l2正則可以通過控制權(quán)重大小使公式與原始weight decay相同。所以在我們使用sgd時(shí),加入weight decay通常是用l2 weight decay的方式加入。
sgd+momentum
momentum是一種梯度下降中常用的加速技術(shù),公式3:


當(dāng)此時(shí)loss加入l2正則時(shí),l2 weight decay和weight decay不相等,即公式3和公式2的結(jié)果不同,l2 weight decay方式的權(quán)重衰減項(xiàng)將會(huì)受momentum中v項(xiàng)滑動(dòng)平均影響,但是當(dāng)前很多實(shí)現(xiàn)方式仍然使用l2 weight decay這種方式。
Adam
相比于sgd+momentum,Adam如果使用l2 weight decay將會(huì)受到更大的影響,在計(jì)算梯度時(shí)由于Adam計(jì)算步驟中減去項(xiàng)有除以梯度平方的累積,使得減去項(xiàng)偏小。不能實(shí)現(xiàn)weight decay的原始定義:權(quán)重越大懲罰越大。因此有AdamW的提出,也就是直接使用weight decay來進(jìn)行實(shí)現(xiàn)。
