優(yōu)化器方法-GC

最近看到一篇博客,將LookAheadRAdam結(jié)合產(chǎn)生了一個新的算法——Ranger,獲得了比單獨使用RAdam要好的效果。后來有人將LARS與Ranger結(jié)合,效果取得了進一步提升。最近Ranger的提出者又將GC(Gradient Centralization)方法與Ranger結(jié)合,也取得了比Ranger好的效果。這里我會分四篇文章分享我個人在閱讀這四個方法對應(yīng)的論文時的總結(jié)和體會。由于LookAhead優(yōu)化器與SWA比較相似,所以還會開辟一篇文章介紹SWAFast SWA優(yōu)化器。本篇文章為系列文章第四篇。

方法

Batch Normalization(BN)和Weight Standardization (WS)都可以提高模型的泛化能力和訓練速度,之前的文獻對BN和WS的理論分析指出二者都使得梯度具有更好的Lipschitz平滑性(Lipschitz smooth的介紹),并使得權(quán)重空間路徑更加平滑,從而可以提升模型訓練的穩(wěn)定性。這兩個方法分別是對激活值和權(quán)重進行Z-score標準化。從這兩個方法得到靈感,作者便嘗試是不是也可以對梯度進行Z-score標準化,以提升模型訓練效率。遺憾的是對梯度進行Z-score標準化并不能提升模型訓練的穩(wěn)定性,但是作者發(fā)現(xiàn)進行梯度中心化(Gradient Centralization, GC)處理卻能提高模型的泛化能力和訓練速度。作者分別從理論和實驗角度論證了GC有效性。GC很簡潔,可以輕易嵌入到已有優(yōu)化算法中,下圖是將GC加入到優(yōu)化過程中的流程,以及GC在卷積層和全連接層的執(zhí)行方式:

符號說明

W \in \mathbb{R}^{M*N} 表示網(wǎng)絡(luò)某一層的權(quán)重,對于全連接層來說M=C_{in},N=C_{out},對于卷積層M=C_{in}*k_1*k_2,N=C_{out}k_1,k_2表示卷積核大小,C_{in}表示卷積核維度,C_{out}表示卷積核數(shù)量。用\textbf{w}_i \in \mathbb{R}^{M} (i=1,\dots,N)表示W的第i列,用\mathcal{L}表示目標函數(shù),用\bigtriangledown_{ \textbf{w}_i} \mathcal{L}\bigtriangledown_{W} \mathcal{L}分別表示目標函數(shù)\mathcal{L}\textbf{w}_iW的(偏)導數(shù)。X表示某一層的輸入特征值,W^TX表示輸出。用\textbf{e} = \frac{1}{\sqrt{M}}\textbf{1}表示M維單位列向量,\textbf{I} \in \mathbb{R}^{M*M}表示單位矩陣。

GC計算公式

根據(jù)上面的符號,可以表示GC的計算公式:

\Phi_{GC}(\bigtriangledown_{ \textbf{w}_i} \mathcal{L}) = \bigtriangledown_{ \textbf{w}_i} \mathcal{L} - \frac{1}{M} \sum_{j=1}^{M}\bigtriangledown_{ \textbf{w}_i} \mathcal{L}

使用矩陣方式表示如下:
\Phi_{GC}(\bigtriangledown_{ \textbf{W}} \mathcal{L}) = P\bigtriangledown_{ \textbf{W}} \mathcal{L} , P=\textbf{I} - \textbf{e} \textbf{e}^T
從上面的公式可以看出,對于卷積層,中心化操作首先是計算每個卷積核的權(quán)重梯度均值,然后用卷積核中的每個權(quán)重梯度減去這個均值得到中心化后的權(quán)重梯度,對于全連接層則是對負責計算同一激活值的權(quán)重進行中心化。下面是官方實現(xiàn)的Pytorch版GC(x為某層權(quán)重):

x.add_(-x.mean(dim = tuple(range(1,len(list(x.size())))), keepdim = True))

可以看出GC是很簡單的,這也體現(xiàn)在它很容易集成到目前以后的優(yōu)化器中,下面是將GC集成到SGD和Adam中的算法流程:

GC理論分析

泛化作用

GC使得模型具有更好的泛化效果的原因是它能夠?qū)?quán)重和特征空間進行正則化。

權(quán)重空間正則化

對上面的矩陣P使用簡單的矩陣運算便可以得出下面的結(jié)論:

P^2 = P = P^T, e^T P \bigtriangledown_{ \textbf{w}}\mathcal{L} = 0
從上面的結(jié)論可以看出,實際上矩陣P是一個投影矩陣,其將梯度投影到以e^T為法向量的平面(投影后的向量為P \bigtriangledown_{ \textbf{w}}\mathcal{L})。作者指出,之前就有研究工作證明,梯度投影會起到將權(quán)重限制在一個超平面上(或稱為黎曼流形),而GC便具有這樣的能力。從下面的圖中可以形象地看出,t時刻權(quán)重的更新方向總是在一個特定的超平面上,而這個超平面是由\textbf{e}^T(\textbf{w}^0 ? \textbf{w}^t) = 0決定的,即權(quán)重的更新方向一直處于該超平面上(-P \bigtriangledown_{ \textbf{w}^t}\mathcal{L}),其實是由初始權(quán)重\textbf{w}^0和法向量\textbf{e}^T決定,\textbf{e}^T(\textbf{w} ? \textbf{w}^t) = 0可由下面的推導得到:將公式\textbf{w}^1 = \textbf{w}^0 - P\bigtriangledown_{ \textbf{w}^0}\mathcal{L}中的\textbf{w}^0調(diào)整到等號左邊,等式兩邊再同時左乘\textbf{e}^T,利用上面的結(jié)論,得\textbf{e}^T (\textbf{w}^1 - \textbf{w}^0 ) = - \textbf{e}^T P \bigtriangledown_{ \textbf{w}^0}\mathcal{L} = 0,不斷做同樣的推理可得\textbf{e}^T \textbf{w}^0 = \cdots = \textbf{e}^T \textbf{w}^t。這說明在訓練中\textbf{e}^T \textbf{w}^t一直是個常量。從數(shù)學角度解釋的話,具有GC的優(yōu)化過程是帶有對權(quán)重約束條件的優(yōu)化過程:

\min_{w} \mathcal{L}(\textbf{w}), s.t. \textbf{e}^T(\textbf{w}^0 ? \textbf{w}) = 0

輸出(激活值)空間正則化

對于使用GC的SGD優(yōu)化器,對于任意輸入\textbf{x},權(quán)重具有下面的性質(zhì)(詳細證明見原論文):

(\textbf{w}^t)^T \textbf{x} - (\textbf{w}^t)^T(\textbf{x} + \gamma \textbf{1} ) = \gamma \textbf{1}^T \textbf{w}^0

該性質(zhì)說明,當某層(卷積層或全連接層)的輸出發(fā)生常量的強度變化(constant intensity change)時,經(jīng)過權(quán)重計算后產(chǎn)生的輸出變化只與初始權(quán)重\textbf{w}^0和標量\gamma有關(guān)(\gamma \textbf{1}^T \textbf{w}^0為縮放過的初始權(quán)重向量\textbf{w}^0的均值)。當初始權(quán)重\textbf{w}^0很小的時候,該變化就會很小,那么輸出特征空間對訓練樣本變化具有一定的魯棒性(不理解怎樣的(噪聲)變化會是\textbf{x} + \gamma \textbf{1}樣子的?)。而實際上,不管是從頭訓練還是從ImageNet預(yù)訓練模型開始訓練,初始化的參數(shù)都是很小的,所以基本可以肯定GC具有對輸出空間正則化的效果。

加快訓練作用

之前的文獻已經(jīng)證明,BN和WS都具有可以平滑化優(yōu)化參數(shù)空間路徑的作用,從而使得訓練更加穩(wěn)定,即起到加速訓練的作用。而有關(guān)BN和WS的文獻指出, BN和WS的權(quán)重梯度和海森矩陣分別具有上界||\bigtriangledown_{ \textbf{w}}\mathcal{L}||_2||\bigtriangledown^2_{ \textbf{w}}\mathcal{L}||_2,這樣的上界導致原始的損失函數(shù)具有更好的Lipschitz性質(zhì),從而使得優(yōu)化過程更加平滑。作者證明GC也具有這樣的性質(zhì)(具體證明見原論文):

以上性質(zhì)說明GC也具有加速訓練的作用。

另外,作者還指出GC還具有梯度裁剪的作用,從而可以抑制梯度爆炸。

實驗效果

作者在不同的視覺任務(wù)上做了全面實驗,從而驗證GC的有效性:

Mini-ImageNet上驗證加速訓練和提高測試集泛化的作用

CIFAR100上驗證不同優(yōu)化器和不同網(wǎng)絡(luò)上的有效性

CIFAR100上驗證不同的超參配置上的有效性

gc_7.png

大型數(shù)據(jù)集ImageNet上驗證加速訓練和提高測試集泛化的作用

細粒度分類數(shù)據(jù)集上驗證有效性

對象檢測和分割上驗證有效性

從數(shù)據(jù)上看,GC在檢測和分割上的表現(xiàn)并不是很出色,當然這也和任務(wù)的難度有關(guān)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380