突破模糊定性分析,批归一化和权重衰减的球面优化机制
本文內(nèi)容整理自 PaperWeekly 和 biendata 在 B 站組織的直播回顧,點(diǎn)擊文末閱讀原文即可跳轉(zhuǎn)至 B 站收看本次分享完整視頻錄像,如需嘉賓課件,請(qǐng)?jiān)?PaperWeekly?公眾號(hào)回復(fù)關(guān)鍵詞課件下載獲取下載鏈接。
作者簡(jiǎn)介:萬(wàn)若斯,現(xiàn)為曠視研究院基礎(chǔ)模型組的算法研究員。在北京大學(xué)數(shù)學(xué)科學(xué)學(xué)院取得應(yīng)用數(shù)學(xué)學(xué)士學(xué)位,并在北京大學(xué)前沿交叉學(xué)院獲得數(shù)據(jù)科學(xué)碩士學(xué)位。主要研究方向是深度學(xué)習(xí)模型與訓(xùn)練方法的理論基礎(chǔ)。
批歸一化(Batch Normalization,BN)和權(quán)重衰減(weight decay,WD)以其出色穩(wěn)定的表現(xiàn)成為了當(dāng)今各種深度學(xué)習(xí)模型的標(biāo)準(zhǔn)配置,但它們的理論機(jī)制,一直以來(lái)僅有模糊的定性分析。
本文將主要介紹 BN 和 WD 對(duì)深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程的共同作用的球面優(yōu)化機(jī)制(Spherical Motion Dynamics, SMD)。基于球面優(yōu)化機(jī)制的定量理論結(jié)果,不受限于模型的結(jié)構(gòu)、數(shù)據(jù)集或任務(wù)類型,可以在諸如 ImageNet,COCO 等基于真實(shí)數(shù)據(jù)的復(fù)雜計(jì)算機(jī)視覺(jué)任務(wù)上得到完美驗(yàn)證。
放縮不變性
首先回顧一下關(guān)于 batch normalization(以下簡(jiǎn)稱 BN)的形式和性質(zhì)。BN 是深度神經(jīng)網(wǎng)絡(luò)技術(shù)里面最常用的標(biāo)準(zhǔn)方法之一,除了比較特殊的一些情形以外,幾乎所有的神經(jīng)網(wǎng)絡(luò)如果訓(xùn)練出現(xiàn)了問(wèn)題,加個(gè) BN 基本上都可以得到一些不錯(cuò)的結(jié)果。BN 的主要形式如下(訓(xùn)練階段):
如果一個(gè)網(wǎng)絡(luò)帶上 BN 會(huì)有什么樣的性質(zhì)?本文將重點(diǎn)探討其中的一個(gè)性質(zhì),即 scale invariant property,中文翻譯為放縮不變性。
它的具體含義是,一般構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),以經(jīng)典網(wǎng)絡(luò) ResNet 為例,它組成元件順序?yàn)?#xff0c;首先是 conv 層,接一個(gè) BN 層,再經(jīng)過(guò)一個(gè) relu,下面又重復(fù) conv、BN、relu,后面可能會(huì)接個(gè) short cut。單就 conv 層本身的參數(shù)而言,由于它后面經(jīng)過(guò)了一個(gè) BN,所以它會(huì)有一個(gè) scale invariant 性質(zhì)。具體的數(shù)學(xué)定義如下:
給定任意一個(gè)正系數(shù) K,如果其他的參數(shù)都不變,只對(duì) conv 層的參數(shù)放大 K 倍,它的 loss 不會(huì)有任何變化。其實(shí)不只是 loss 不會(huì)有變化,如果做分類任務(wù),分類的值相對(duì)大小也不會(huì)有任何變化。這個(gè) scale invariant property 是由于 BN 在 conv 后面除以 variance 所導(dǎo)致的。
由于 scale invariant property 會(huì)有更進(jìn)一步的性質(zhì),這里面以 lemma 1 的形式給出來(lái)了。主要有兩個(gè)性質(zhì),第一個(gè)是正交性,如果我們把 Weight(以下簡(jiǎn)稱 Wt)看成是一個(gè)向量,在 Wt 上的梯度也看成一個(gè)向量,它們內(nèi)積為 0,就是嚴(yán)格正交。
第二個(gè)是所謂的反比例關(guān)系,就是如果把梯度乘上 K 倍,它所對(duì)應(yīng)的 gradience 方向和原來(lái)保持一致,但是它 gradience 方向的模長(zhǎng)會(huì)是原來(lái)的 1/k。
下面來(lái)探討一下,這兩個(gè)性質(zhì)對(duì)優(yōu)化造成的影響。如果只考慮 SGD 的更新或者 GD 的更新,不考慮 Weight Decay(以下簡(jiǎn)稱 WD)的話,那么就會(huì)有影響。
第一個(gè)影響是 Wt 的模長(zhǎng)始終在增加。原因是一般 gradience 是乘上一個(gè) learning rate, 然后去更新 Wt,那么就會(huì)形成一個(gè)直角三角形。然后新的 Wt 的模長(zhǎng)是這個(gè)直角三角形的斜邊,它始終會(huì)大于原來(lái)的 Wt。而且每一次用 SGD 的更新,都會(huì)比原來(lái)的大,所以只要這個(gè) gradience 不恰好等于 0,那么 Wt 的模長(zhǎng)便單調(diào)遞增。
但是這個(gè)單調(diào)遞增會(huì)導(dǎo)致另外一個(gè)性質(zhì),即梯度的模長(zhǎng)可能會(huì)因?yàn)?Wt 的增加而減少。梯度模長(zhǎng)本身除了它自己的一些方向不變,然后得到的那個(gè)梯度以外,還跟這個(gè) Wt 的模長(zhǎng)成反比。
所以可以想象一下,假設(shè)初始化一個(gè)網(wǎng)絡(luò),它的 loss 可能很大,需要進(jìn)行優(yōu)化。經(jīng)過(guò)傳統(tǒng)的優(yōu)化的理論,應(yīng)該會(huì)找到一個(gè) local minima,一般來(lái)說(shuō) local minima 是個(gè) stationary point,它的 gradience 范數(shù)很小。
但是在帶有 BN 的情況下,如果不改變 Wt 的方向,只是無(wú)限的增大這個(gè) Wt 的范數(shù)長(zhǎng)度,最后得到的這個(gè) gradience 它的范數(shù)仍然很小,就不能確定它是否是一個(gè) stationary point,但可以肯定它不是一個(gè) local minimal。
此時(shí)就會(huì)出現(xiàn)一個(gè)問(wèn)題,似乎傳統(tǒng)的優(yōu)化,在帶 BN 的網(wǎng)絡(luò)里面會(huì)出現(xiàn)一些奇怪的現(xiàn)象,而且也可以說(shuō)明了一點(diǎn),WD 是必要的。
再來(lái)探討一下,如果加了 WD 又會(huì)發(fā)生什么樣的事?假設(shè) objective function 如下:
此時(shí)會(huì)有以下兩個(gè)結(jié)論,第一個(gè)結(jié)論是,由于 W 的 scale environment 性質(zhì),所以 W 的范數(shù)大小是不會(huì)影響到 loss 的大小,但是它的范數(shù)大小會(huì)影響到 L2 recognize part 的大小。因此,如果對(duì) W 乘上任意一個(gè) 0~1 之間的一個(gè)系數(shù),都可以得到 objective function,它會(huì)嚴(yán)格的比原來(lái)小。
這樣就有個(gè)直觀的理解,對(duì)于一個(gè)帶 BN 的網(wǎng)絡(luò),在它的定義上面(注意:定義域是不包含 0 的),任何一個(gè)點(diǎn)都不是它的 local minimal。它附近總有一些點(diǎn),或者值會(huì)比它更小。
這樣如果以收斂性的角度去看問(wèn)題,或者說(shuō)以 gradient flow,就是所謂的 learning rate 無(wú)窮小形成一個(gè) gradient 流的情況去優(yōu)化的狀況,就會(huì)出現(xiàn)一個(gè)很自然的現(xiàn)象,即 Wt 會(huì)無(wú)限的趨近于 0。
但是 Wt 趨近于 0 又會(huì)出現(xiàn)另外一個(gè)問(wèn)題。objective function 這個(gè)梯度在 0 附近,不是一個(gè) lipschitz 的梯度。這個(gè)條件其實(shí)在很多非凸優(yōu)化里面都是一個(gè)非常常用的必要條件。所以大家會(huì)默認(rèn)符合這個(gè)條件。
但實(shí)際上在最常用的帶 BN 和 WD 的網(wǎng)絡(luò),它很可能不符合這個(gè)要求。原因在于在帶 BN 的網(wǎng)絡(luò)中,V=0 這個(gè)位置是一個(gè)所謂的奇點(diǎn)。舉例說(shuō)明,lose function 的形式如下:
可以看到單就 loss 而言,它的 lipschitz 是非常規(guī)整的,它的最小解為 1。但是一旦加上了 BN 和 WD 之后,它的 lipschitz 是非常奇怪的。
直觀來(lái)講,這個(gè)收斂可能收斂到接近 0 的位置,但是這個(gè) 0 的位置又因?yàn)檫^(guò)于突兀的變化,有可能跑到其他的位置。所以這里面就展示了帶 BN 和 WD 的網(wǎng)絡(luò),不能夠直接單純的把它作為 objective function 的一個(gè)部分,把它們 join 的去考慮怎么去對(duì)它們優(yōu)化,形成了什么樣的性質(zhì)。
因?yàn)槿绻@樣考慮,得到的很多最基本的 assumption 都可能是不滿足的。我們實(shí)際中我們還是用 objective,不需要什么精心調(diào)參,也可以得到不錯(cuò)的結(jié)果,這是為什么呢?
單位梯度和角度更新量
在解釋這個(gè)問(wèn)題之前,首先介紹一些基本概念。第一個(gè)概念是單位梯度(Unit gradient),考慮到 WtWt 的 gradient 的范數(shù)大小會(huì)受到 Wt 范數(shù)本身大小的影響,所以定義單位梯度公式如下:
這樣就可以把 Wt 的范數(shù)和 gradient 方向給它的影響各自區(qū)分開(kāi)。
第二個(gè)概念是角度更新量(Angular update), 這個(gè)詞是來(lái)自于物理學(xué)中,球面運(yùn)動(dòng)的角速度的概念,就是圓周運(yùn)動(dòng)角速度概念。這里借用了這個(gè)概念,用它來(lái)衡量一次更新前后 Wt 和 Wt+1 之間的角度。具體數(shù)學(xué)公式如下:
這里均假設(shè) Wt 為非 0,這樣定義的原因是去掉 Wt 的范數(shù)的影響,因?yàn)橐话闱闆r下,只要 Wt 方向固定,它的范數(shù)完全不會(huì)影響到深度學(xué)習(xí)網(wǎng)絡(luò)的性能表現(xiàn)。Angular update 是真正可以表示出單步更新內(nèi) weight 變化情況的量。
有了以上兩個(gè)概念就可以理解球面優(yōu)化動(dòng)態(tài)過(guò)程了,為了說(shuō)明方便,在這里只討論了 SGD case,SGD 的一般更新法則如下圖的公式所示,通過(guò)示意圖可以看到,對(duì)于 wt 的范數(shù)的影響,如果借用物理學(xué)里圓周運(yùn)動(dòng)或球面運(yùn)動(dòng)概念的話,其實(shí)可以分為兩個(gè)影響,第一個(gè)影響就是所謂的向心力,向心力實(shí)際上是完全由 WD 所提供的,它的大小就等于范數(shù)。
這個(gè)就意味著向心力是一個(gè)正比于球面半徑的力;第二個(gè)影響力是離心力,離心力是由于 gradience 始終是垂直于 Wt 方向的。所以它總是會(huì)傾向于把 Wt 的 norm 變大,可以大致的推算出離心力的大小。可以看出離心力是一個(gè)反比例關(guān)系,它的反比例是關(guān)于 Wt 的三次方。
公式中的 unit gradient,剛才已經(jīng)介紹了它是跟范數(shù)沒(méi)有關(guān)系的量,故假設(shè)它約等于不變。直覺(jué)上來(lái)講,這個(gè)向心力和離心力應(yīng)該是會(huì)達(dá)到一個(gè)平衡的。因?yàn)橄蛐牧Φ拇笮∈钦扔谶@個(gè)球面半徑的,離心率是反比關(guān)系的。這樣的話如果球面半徑過(guò)小,那么向心力就比較偏弱,離心力比偏強(qiáng),所以球的半徑就會(huì)偏大。
但球門半徑大了以后,向心力又會(huì)變強(qiáng),離心力會(huì)變?nèi)酢_@樣它就會(huì)有一個(gè)平穩(wěn)狀態(tài),而當(dāng)向心力和離心力已經(jīng)達(dá)到平衡的時(shí)候,就應(yīng)該滿足下圖中第一個(gè)等式關(guān)系。當(dāng)這個(gè)等式關(guān)系成立以后,就可以去推導(dǎo)此時(shí)的 Angular update,推導(dǎo)公式如下圖第二個(gè)公式,
所以這里可以得到一個(gè)結(jié)論,當(dāng)達(dá)到平穩(wěn)狀態(tài)以后,角度更新量是約等于??,其中 ?? 是 wd 的系數(shù),?? 是 learning rate,而這兩個(gè)都是人為手調(diào)的,跟網(wǎng)絡(luò)本身的形狀或者是它的 grandience 大小、數(shù)據(jù)集等都沒(méi)有關(guān)系。
所以這里面就凸顯一點(diǎn),之前有很多文章討論說(shuō),這個(gè)球面動(dòng)態(tài)可以等效為一個(gè) manifold organization,即在球面上優(yōu)化。但根據(jù)上述的一些粗略的推導(dǎo)就可以看出,實(shí)際上它們是不是等價(jià)的。
因?yàn)?manifold 在一個(gè)單位球面上的優(yōu)化,它的每一步的更新量是不定的,如果用 constant learning rate 的話,一方面它的 learning rate 是 constant,另一方面它的 gradience 是不可控的,它的更新量也是不可控的。而且理論上來(lái)說(shuō)如果你這個(gè) manifold loss 如果小的話,你的這個(gè)更新量會(huì)越來(lái)趨近于 0,它就意味著它收斂到一個(gè) local minimal 或 stationary point。
其實(shí)在這之前已經(jīng)有很多文章在做相關(guān)工作了,他們都是認(rèn)為前文所說(shuō)的平穩(wěn)狀態(tài)一定會(huì)出現(xiàn),假設(shè) Wt 的范數(shù)是 coverge 的情況下,得出相關(guān)的結(jié)果。如下圖所示:
最早是于 2017 年 NeurIPS, 由 Twan van Laarhoven 提出了 efficient learningrate 的概念,就是上文所說(shuō)的 scale invariant 性質(zhì),如何去真正衡量有效更新量?在他的那個(gè)論文里面倒是提到了這個(gè)應(yīng)該對(duì)于 SGD/SGDM 的性質(zhì)都是成立的。
2018 年的這篇 NeurIPS 作者的結(jié)論比其他的都薄弱,但是與眾不同之處在于它假設(shè)沒(méi)有 wt 的 converge,只是單純的研究了 wt,wt+1 更新以后的結(jié)果,所以它的結(jié)果是非常的薄弱的,而且也只能適用于 SGD 形式。
2019 年的 NeurIPS,這篇文章實(shí)際上他本身做的是針對(duì)小 BN 提出了一個(gè)方法的文章,只不過(guò)他在討論里面專門有一小節(jié),提了一下關(guān)于 BN 的一些 efficient learning rate 的現(xiàn)象,得到了類似的結(jié)果,不過(guò)在他的那個(gè)描述里面, 只是把 Wt 放在一維圓上面去討論的,沒(méi)有推廣到高維上。
還有 2019 年的 ICLR 最新的一篇,這一篇它形式看上去比較的復(fù)雜一點(diǎn),公式如上圖所示,這個(gè)是在 SGDM 里面成立的,它直接討論了 SGDM 的形式,同時(shí)包含了 SGD 的形式。當(dāng)然其中是用了非常強(qiáng)的假設(shè),關(guān)于他們的累計(jì)相對(duì)更新量的比值必須是各自為 converge 的情況下,才會(huì)有這樣的結(jié)論。
所以這里面就出現(xiàn)兩個(gè)問(wèn)題,第一個(gè)問(wèn)題如果 Wt 真的 converge 了嗎?大家都之前的討論的都是假設(shè)它 converge 了,但是它是否真的 converge 了?第二個(gè)問(wèn)題是絕大多數(shù)情況下考慮的都是 SGD 形式,但是大家更多常用的是 SGDM 的形式,那么 SGD 它是否也有像 SGD 這樣的平穩(wěn)狀態(tài)的情形。
主要定理
本文就是針對(duì)以上兩個(gè)問(wèn)題,給出相應(yīng)的解答。下圖是我們的主要定理,本文討論的是最常用的 heavy ball method 的 SGDM 的形式。
SGDM 的公式如下,當(dāng) α=0 的時(shí)候,它恰好就是純 SGD 形式。
下面是需要滿足的兩個(gè) assumption 的情況。第一個(gè) assumption 大致是在說(shuō) unit gradient,它平均表現(xiàn)會(huì)收斂到某一個(gè)值 L,但對(duì) L 不做約束,它的相對(duì)誤差會(huì)是一個(gè)比較小的值。第二個(gè)就是 WD 系數(shù)和 learning rate 的乘積遠(yuǎn)遠(yuǎn)要小于 1,就是一個(gè)比較小的數(shù),這個(gè)一般來(lái)說(shuō)常用的神經(jīng)網(wǎng)絡(luò)任務(wù)都是可以滿足。
最后得到這個(gè)結(jié)果說(shuō)明了 Wt 的平均值會(huì) coverge 一個(gè)固定的值,而這個(gè)固定的值一方面依賴于這兩個(gè)超參,另一方面依賴于 unit gradient 的一個(gè)大小。而 Angular update 就是角度更新量,則是會(huì)收斂到一個(gè)跟其他完全無(wú)關(guān),只跟超參數(shù) λ,η 有關(guān)的地方。
上圖是 SGD 的情形,相對(duì)來(lái)說(shuō)比較好做一些,比較難的就是 SGDM 形式,它需要依賴額外的兩個(gè) assumption,第一個(gè) assumption 是 WD 的系數(shù) λ 要小于某一個(gè)值,但一般來(lái)說(shuō) λ 本身就是特別小的。第二個(gè) assumption 是關(guān)于第 T 次算出來(lái)的 gradience 和第 T 次的 momentum 的內(nèi)積值要比較小,這是一個(gè) technical 的一個(gè) assumption,但是實(shí)際在實(shí)驗(yàn)中它基本上都是滿足的,后面會(huì)展示到。
有了額外兩個(gè) assumption 就可以得到以下結(jié)論,在 moment 的情況下,weight 的范數(shù)也會(huì)收斂到一個(gè)值,只不過(guò)這個(gè)值相對(duì)于原來(lái)的話,它是乘上 2 (1-α),然后角度更新量的值則會(huì)是除以 (1+α)再開(kāi)方,這里面是說(shuō)明了這個(gè) Angular update 它本身還是一個(gè)只跟超參有關(guān)的東西。
下面來(lái)介紹一下,從主要定理的結(jié)構(gòu)中可以得到一些 Insight。主要列出其中三條:
第一條 insight 是:它完全解釋了為什么 scale-invariant 帶了 WD 的情況下是完全不會(huì)遇到 vanishing 和 exploding gradients 的問(wèn)題,因?yàn)橐话阏f(shuō) vanishing gradient 時(shí)它的 gradients 太小,結(jié)果會(huì)導(dǎo)致 learning rate 幾乎不更新,exploding gradients 的 gradients 太大,導(dǎo)致 learning rate 每次更新都過(guò)大,就跑偏了。
但是如果有了球面優(yōu)化的性質(zhì)的話,經(jīng)過(guò)一段時(shí)間的迭代之后,它會(huì)自動(dòng)的去調(diào)整自己的 gradients 和 weight 的相對(duì)大小。最后當(dāng)它平穩(wěn)之后就會(huì)自然的滿足 Angular update 下的情形,而 Angular update 實(shí)際上代表了真正的更新量,而這個(gè)更新量完全由超參決定,所以只要 gradients 不等于 0,然后訓(xùn)練只要不會(huì)出現(xiàn) NAN,這個(gè)球面優(yōu)化總是可以讓你的這個(gè)訓(xùn)練最后變得正常起來(lái)。
第二條 insight 是:有了 BN 和 WD,SGD 和 SGDM 是不可能被限制在一個(gè) sharp local minimum 里面,這個(gè)就是現(xiàn)在常討論關(guān)于神經(jīng)網(wǎng)絡(luò)的泛化問(wèn)題時(shí),總會(huì)提到一個(gè) sharp/flap local minimum,原因在于這個(gè)神經(jīng)網(wǎng)絡(luò)的本身它是一個(gè)非凸優(yōu)化,而且它有很多很多的 local minimum,廣泛的認(rèn)知是說(shuō)比較 sharp 的,即窄而細(xì)長(zhǎng)的 local minimum 一般來(lái)說(shuō)是比較糟糕的。
然后 flap minimum,即相對(duì)來(lái)說(shuō)地勢(shì)比較寬的會(huì)好一點(diǎn)。有了球形優(yōu)化后,Angular update 是定義在球面上的一個(gè) local minimum,當(dāng)達(dá)到平穩(wěn)狀態(tài)后 Angular update 始終是個(gè) fix,同時(shí)它又是由超參決定的,所以它的更新量一般不會(huì)落入比它小的半徑內(nèi)。這是一個(gè)不太精確的東西,所以本文只是將其作為一個(gè) insight 的給出。
但是它從某種上意義上說(shuō)明了一個(gè)問(wèn)題,因?yàn)檫^(guò)去人們認(rèn)為正常 SGD 或者 SGDM 不會(huì)落到 sharp local minimum,把這全部歸因?yàn)槭请S機(jī)的影響,認(rèn)為說(shuō)它可以 escape sharp local minimum ,但實(shí)際上由于 SD 和 SGD 它可能根本就不會(huì)落下去,或者說(shuō)它落下去,可能一下就跑出來(lái)了,不是一個(gè)高概率 escape 的結(jié)論。
第三條 inside 是解釋了為什么實(shí)際用 BN 和 WD 的時(shí)候,如果不做 learning rate decay,這個(gè) loss 在下降到一定程度之后就不會(huì)再下降了。原因其實(shí)比較直觀了,就是因?yàn)槿绻覀儾?decay learning rate,同時(shí)不縮小 WD 的系數(shù),也不碰這個(gè) moment 系數(shù)的話,那么它的 Angular update 就始終是這個(gè)值,不會(huì)更小,那就意味著你不可能落到小于這個(gè)半徑的坑里面。
這樣會(huì)出現(xiàn)一個(gè)現(xiàn)象,找到一個(gè) flap minimal,在這個(gè)地方來(lái)回震蕩,一直落不下去。原因就是步子邁太大。而此時(shí)如果將 learning rate 減小,loss 便會(huì)收斂。
相關(guān)實(shí)驗(yàn)結(jié)果
以上是一些理論上的結(jié)果,下面來(lái)看一些實(shí)際的實(shí)驗(yàn)結(jié)果。本文直接用了計(jì)算機(jī)視覺(jué)界(CV)分類任務(wù)最常用的 baseline:ImageNet 和它最標(biāo)準(zhǔn)的 train setting,同時(shí)進(jìn)一步對(duì)比了 detection 任務(wù)中的一個(gè)經(jīng)典模型 Mask RCNN 網(wǎng)絡(luò)和它的 train setting,在這種情況下,來(lái)驗(yàn)證球面優(yōu)化的性質(zhì)。
先看上圖左邊分類任務(wù)模型,其中不同的顏色的實(shí)線代表了一個(gè) resnet50 的 conv 層,因?yàn)?resnet50 所有的 conv 層后面都接 BN,所以所有的 conv 層它都有 scale-invariant 的性質(zhì),而且它加入了 WD。
這里面包含了所有 conv,它在訓(xùn)練階段的 angular update 表示一次前后更新的值,而且為了顯示真實(shí)性,本文未對(duì)這個(gè)結(jié)果做任何的處理,這里面看到的就是它真實(shí)的 angular update,可以看到在第一個(gè)階段,有些層它的 value 很大,有些層 value 很小,但是他們的平均都始終是維持在這個(gè)理論值附件,而這個(gè)理論值就是利用它們實(shí)際的超參算出來(lái)的值。
這里面的 learning schedule 采用的是,每 30 個(gè) epoch,60 個(gè) epoch、80 個(gè) epoch,learning rate 會(huì)除以 10,可以看到至少在第一個(gè)階段,它是比較符合的,第二個(gè)階段的后半期,也是比較符合的,不符合的是這里面有一點(diǎn) drop,最后階段似乎是不符合的。
COCO 也是類似的,COCO 采取的是 4x,4x 大概 36 萬(wàn)次迭代,DK 的發(fā)生在 30 萬(wàn)次和 34 萬(wàn)次,learning rate 同樣也是除以 10。可以看到至少在這個(gè)地方它是非常符合理論值,而且這里面的 gradience 也是用的 mask rcnn 里面接 BN 的 conv 層,計(jì)算出來(lái)的 angular update,也沒(méi)有做任何的處理,出來(lái)的結(jié)果似乎是在部分階段是吻合的非常好的,但是也在很多階段,比如說(shuō)倒數(shù)兩個(gè)階段似乎吻合的是有問(wèn)題的。
看上去好像不是吻合的那么好,但實(shí)際上這個(gè)地方也是可以做解釋的,原因就在于說(shuō)這里做了一個(gè) learning rate K,learning rate 除以了 10,但是根據(jù)上文推導(dǎo)的平衡公式,它在 unit 規(guī)點(diǎn)詞保持不變的情況下,wt 應(yīng)該是滿足是跟根號(hào)??????的開(kāi) 4 次方成正比的。
當(dāng)我 learning rate 減少的時(shí)候,VDK 也會(huì)趨于減少。所以,除以 10 的時(shí)候,這個(gè)值如果打出來(lái),會(huì)發(fā)現(xiàn)它其實(shí)恰好就等于里面平穩(wěn)狀態(tài)是 1/10。因?yàn)?learning rate 除以 10,此時(shí) WT 相當(dāng)于破壞了在第一個(gè) learning rate 階段的平穩(wěn)狀態(tài),但沒(méi)來(lái)得及于進(jìn)入新的平穩(wěn)狀態(tài)。
所以回復(fù)結(jié)果,其實(shí)是在達(dá)到新的平穩(wěn)狀態(tài)的過(guò)程中。所以這個(gè)結(jié)果上面我后面會(huì)展示一張圖,WT 在這個(gè)結(jié)果中是在逐漸變小的。因?yàn)槲业?learning rate 除以了 10 倍,WT 會(huì)除以根號(hào) 10 的開(kāi) 4 次方,這是第一個(gè)解釋。
第二解釋就是可以估算大概每次 learning rate 直接除以了 K 以后,大概至少需要多少步才能達(dá)到一個(gè)新的平衡條件。?可以具體地算一下。
在 ImageNet 任務(wù)里面,這里面每一個(gè) Epoch 可大概是 5000 步(我這選取的是 256,所以我的每一個(gè) Epoch 是 5000 步)。α=0.9,λ=10 的 - 4 次方,???????等于 10 的 - 3 次方,K=10,learning rate=10,這時(shí)候可以算出它至少需要 57 萬(wàn)步。
但是在實(shí)際的第三個(gè)階段,?只有大概 10 萬(wàn)步迭代,所以說(shuō)它還遠(yuǎn)遠(yuǎn)沒(méi)有回復(fù)到新的平穩(wěn)狀態(tài)。就更不用說(shuō)最后一個(gè)階段只有 5 萬(wàn)步。但是最后一階段 learning rate 更小,所以它需要的迭代次數(shù)又是原來(lái)的 10 倍。
最后一個(gè)就是 500 萬(wàn)步,所以就導(dǎo)致了實(shí)際上不是它不符,而是因?yàn)槲疫@里面展示的是每個(gè)階段它應(yīng)該有的平穩(wěn)狀態(tài)的一個(gè)狀態(tài),但是實(shí)際里面它還沒(méi)有進(jìn)入到平穩(wěn)狀態(tài)。所以考慮能不能夠去跳過(guò) WT 變小的步驟,每當(dāng)我做 learning rate decay 的時(shí)候,我就讓它立即進(jìn)入到一個(gè)新的平穩(wěn)狀態(tài)?答案是是可以的。
經(jīng)過(guò)剛才推導(dǎo),當(dāng) learning rate 除以 K 倍的時(shí)候,WT 的平穩(wěn)狀態(tài)情況下,應(yīng)該是除以 K 的開(kāi) 4 次方,可以試著每次做 learning rate decay 除以 K 時(shí),我就可以去除以這個(gè)值可以看一下它的效果如何。
上圖是 ImageNet 的實(shí)驗(yàn)結(jié)果,就是 rescaling 的結(jié)果。每次做 learning rate decay 的時(shí)候,把 scale weight 除以 10 的開(kāi) 4 次方,只做了這一件事。現(xiàn)在看到此時(shí)它們每一個(gè)階段的理論值和實(shí)際值都是完美符合的,而且這里面給出了藍(lán)線是標(biāo)準(zhǔn),不做干涉的情況下的 weight 的一個(gè)層。
可以看到原來(lái)每次做 learning rate decay 的時(shí)候,這邊是緩緩下降的。Rescale 的時(shí)讓它立即移除于原來(lái)的根號(hào) 10 的 4 次方,當(dāng)然它這里面還是在變動(dòng),但這個(gè)變動(dòng)是來(lái)自于 unit gradient 的緩緩變動(dòng),比 Angular update 回復(fù)的 condition 要快,所以可以看到角度更新,它仍然是滿足這個(gè)理論值。
上述內(nèi)容是是 ImageNet 實(shí)驗(yàn),COCO 也是一樣的,做 learning rate decay 的時(shí)候,只需要跟著去 decay weight,也可以達(dá)到這樣的效果,理論值和真實(shí)值是完美符合的。
除此以外還測(cè)試其他的一些網(wǎng)絡(luò)結(jié)構(gòu),比如說(shuō) MobileNet_v2 的 Performance,這里面的是沒(méi)有做 rescaling 的結(jié)果,可以看到它還是有差距,前文已經(jīng)做了解釋,是正常現(xiàn)象。再比如說(shuō) Shufflenet_v2+,其中是有 SE 結(jié)構(gòu)的,但是它對(duì)于那些具有放松不變性的 conv 層仍然具有這個(gè)性質(zhì),就說(shuō)明這實(shí)際上確實(shí)是一個(gè)普遍的規(guī)律,而不是特殊情況。
前文定義里面提到的兩個(gè) assumption做一次 empirical study。上圖是第一個(gè) assumption ,unit gradient 接近于 converge,可以看到在實(shí)際的取得某一個(gè)層中,在同一個(gè) learning rate stage 的情況下確實(shí)變化不大,可以看到它的上升的過(guò)程。
由于上升幅度非常的慢,而且迭代次數(shù)非常多,所以如果把它拉升來(lái)看,其實(shí)在某一個(gè)局部?jī)?nèi)都是接近于 converge,說(shuō)明在 unit gradient 是滿足的。
第二個(gè)是關(guān)于內(nèi)積的值和對(duì)應(yīng) GT 的范數(shù)。這個(gè)原理其實(shí)是有根據(jù)的,我 T-1 的 moment 是累積了前 7 次的 gradient 的向量,而我 GT 是取了 DT+1batch 的 sample,所以說(shuō)這里 T+1 的 sample 是隨機(jī)的,跟前面的沒(méi)有任何關(guān)系,導(dǎo)致了它們之間某種程度上有一定的獨(dú)立性。
另一方面又是維度非常的高。獨(dú)立性和維度都非常好,就導(dǎo)致了 VT-1 和 GT 約等于是一個(gè)正交的關(guān)系,導(dǎo)致數(shù)值一直在零附近徘徊的。所以就從實(shí)驗(yàn)上來(lái)講,這兩個(gè)結(jié)果也都是 ImageNet 的結(jié)果。
所以這一全面優(yōu)化的理論所依賴的強(qiáng)假設(shè)是很少的,而且所依賴的稍微強(qiáng)一點(diǎn)假設(shè)又都是符合實(shí)際情況的,這讓優(yōu)化的結(jié)果具有普適性,在一些哪怕最復(fù)雜的 CV 任務(wù)中也能得到驗(yàn)證。
結(jié)尾部分我們看上圖的例子,?來(lái)看看 Spherical Motion Dynamics 究竟會(huì)給一些什么樣的啟發(fā),這個(gè)例子是關(guān)于 linear-scaling principle的,是2017 年的何愷明團(tuán)隊(duì) random net 相關(guān)的一個(gè)說(shuō)明性文章,總結(jié)出一個(gè)非常經(jīng)典的調(diào)參方法:當(dāng) batch size 增大的時(shí)候,該怎么去調(diào) learning rate。
他們給出的一個(gè)方法是,batch size 增大多少倍, learning rate 就增大多少倍,始終成正比。經(jīng)過(guò)了無(wú)數(shù)的實(shí)踐證明這個(gè)方法是非常穩(wěn)定的,基本上效果都還不錯(cuò)的。
他們的 intuition 是來(lái)自于什么呢?假設(shè)我的 batch size 是 B,做如上圖 T 加 K 次的 WT 的迭代。相當(dāng)于是 B 乘 K 個(gè)樣本,取梯度,然后累積。如果我的 batch size 是 KB 那是不是可以把它等效為,這里面是 K 次的 gradient,把它放到一次 gradient 里面去算它。
等效以后就發(fā)現(xiàn) learning rate 似乎是原來(lái)的 K 倍了。但問(wèn)題是在球面優(yōu)化的 setting 下,實(shí)際的 update 的量實(shí)際上和 learning rate 是沒(méi)有關(guān)系的,是完全由超參所決定的。
上圖給出了兩個(gè) setting,一個(gè)是 baseline b 都是 256,WT 和 WT+4,這里是 T+4,就是 4 次累積的角度更新量的變化情況。紅線是 batch size 乘了 4 倍以后,單步更新的角度變化情況。可以看到 linear-scaling principle 其實(shí)并沒(méi)有去滿足所謂的等效法則,它實(shí)際的更新量其實(shí)比大 batch 大太多了,上圖是 16 倍。
補(bǔ)充說(shuō)明比較有意思的一點(diǎn),可以看到,即使是 4 次累積,好像也是滿足于某一種平穩(wěn)狀態(tài)的分布的。我做了推導(dǎo)和實(shí)驗(yàn),發(fā)現(xiàn)它確實(shí)應(yīng)該有一些性質(zhì),但是并不是每一層都一樣,好像還是跟層與層之間的關(guān)系有關(guān)系,但是這個(gè)紅線它還是滿足球面優(yōu)化的性質(zhì),公式經(jīng)驗(yàn)值和理論值是可以吻合的。
還是回到原來(lái)的話題,在 linear-scaling principle 的情況下,由于我的在同樣的訓(xùn)練的 Epoch 數(shù)的情況下,我的 batch size 增大了,迭代數(shù)就減小了,所以我需要去增大我的 learning rate,去彌補(bǔ)我的減小的更新迭代次數(shù)所造成的訓(xùn)練不充分的損失,所以要把 learning rate 調(diào)大。但可以看到,小 batch 比大 batch 訓(xùn)練程度似乎少了太多,少了幾倍。
經(jīng)驗(yàn)上來(lái)講,linear-scaling principle 確實(shí)在 ImageNet 任務(wù)上適用范圍就是在 256 到 8k 左右都,掉點(diǎn)的次數(shù)都不多,但是一旦超過(guò)了 8k ,就會(huì)有非常顯著的掉點(diǎn)。?掉點(diǎn)可能很大一部分程度上就來(lái)自于 Spherical motion dynamics 的緣故,一方面,這兩個(gè)訓(xùn)練的程度差得實(shí)在是太遠(yuǎn)了,另一方面可能是因?yàn)榈螖?shù)確實(shí)不夠,或者說(shuō) update 實(shí)在是太大了,導(dǎo)致它不收斂。
總結(jié)一下全文,首先本文的工作揭示了 Spherical motion dynamics 在帶 BN 和 WD 的 DNN 自然滿足的狀態(tài)。同時(shí)也展示了考慮 SMD 的影響是非常有必要的。其次從 SMB 中 得出了一個(gè)理論值,給出了關(guān)于角度更新量,同時(shí)這個(gè)理論值可以在真實(shí)的數(shù)據(jù)、復(fù)雜的數(shù)據(jù)中有效。SMD 同時(shí)可以給一些常見(jiàn)的、但又沒(méi)有很好理論解釋的實(shí)驗(yàn)現(xiàn)象提供一些非常直觀的、本質(zhì)的解釋。
文章最后審視了一些常用的 parameter method 或優(yōu)化方法,比方說(shuō)最簡(jiǎn)單 SGDM 方法,會(huì)發(fā)現(xiàn)如果不考慮 SMD 的話,它的表現(xiàn)實(shí)驗(yàn)上和理論上會(huì)非常不一樣,但是考慮 SMD 就會(huì)有很有趣的現(xiàn)象。無(wú)論是在使用還是設(shè)計(jì)新的方法,都可能需要有必要去考慮 SMD 的影響。
關(guān)于數(shù)據(jù)實(shí)戰(zhàn)派
數(shù)據(jù)實(shí)戰(zhàn)派希望用真實(shí)數(shù)據(jù)和行業(yè)實(shí)戰(zhàn)案例,幫助讀者提升業(yè)務(wù)能力,共建有趣的大數(shù)據(jù)社區(qū)。
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
?????來(lái)稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來(lái)稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的突破模糊定性分析,批归一化和权重衰减的球面优化机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 联想u盘软驱怎么用 "
- 下一篇: win8.1怎么关闭系统防护 如何关闭W