<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          二值化網(wǎng)絡(luò)如何訓(xùn)練?這篇ICML 2021論文給你答案

          共 4724字,需瀏覽 10分鐘

           ·

          2021-07-26 18:48

          視學(xué)算法專(zhuān)欄
          機(jī)器之心編輯部

          這篇來(lái)自 CMU 和 HKUST 科研團(tuán)隊(duì)的 ICML 論文,僅通過(guò)調(diào)整訓(xùn)練算法,在 ImageNet 數(shù)據(jù)集上取得了比之前的 SOTA BNN 網(wǎng)絡(luò) ReActNet 高1.1% 的分類(lèi)精度。

          二值化網(wǎng)絡(luò)(BNN)是一種網(wǎng)絡(luò)壓縮方法,把原本需要 32 bit 表示的神經(jīng)網(wǎng)絡(luò)參數(shù)值和激活值都二值化到只需要用 1 bit 表示,即 -1/+1 表示。


          這種極度的壓縮方法在帶來(lái)優(yōu)越的壓縮性能的同時(shí),會(huì)造成網(wǎng)絡(luò)精度的下降。

          在今年的 ICML 會(huì)議中,一篇來(lái)自 CMU 和 HKUST 科研團(tuán)隊(duì)的論文僅通過(guò)調(diào)整訓(xùn)練算法,在 ImageNet 數(shù)據(jù)集上取得了比之前的 SOTA BNN 網(wǎng)絡(luò) ReActNet 高 1.1% 的分類(lèi)精度,最終的 top-1  accuracy 達(dá)到 70.5%,超過(guò)了所有同等量級(jí)的二值化網(wǎng)絡(luò),如下圖所示。


          這篇論文從二值化網(wǎng)絡(luò)訓(xùn)練過(guò)程中的常見(jiàn)問(wèn)題切入,一步步給出對(duì)應(yīng)的解決方案,最后收斂到了一個(gè)實(shí)用化的訓(xùn)練策略。接下來(lái)就跟著這篇論文一起看看二值化網(wǎng)絡(luò)(BNN)應(yīng)該如何優(yōu)化。


          • 論文地址:https://arxiv.org/abs/2106.11309

          • 代碼地址:https://github.com/liuzechun/AdamBNN


          首先,BNN 的優(yōu)化器應(yīng)該如何選取? 

          可以看到,BNN 的優(yōu)化曲面明顯不同于實(shí)數(shù)值網(wǎng)絡(luò),如下圖所示。實(shí)數(shù)值網(wǎng)絡(luò)在局部最小值附近有更加平滑的曲面,因此實(shí)數(shù)值網(wǎng)絡(luò)也更容易泛化到測(cè)試集。相比而言,BNN 的優(yōu)化曲面更陡,因此泛化性差并且優(yōu)化難度大。


          這個(gè)明顯的優(yōu)化區(qū)別也導(dǎo)致了直接沿用實(shí)數(shù)值網(wǎng)絡(luò)的 optimizer 在 BNN 上表現(xiàn)效果并不好。目前實(shí)數(shù)值分類(lèi)網(wǎng)絡(luò)的通用優(yōu)化器都是 SGD,該論文的對(duì)比實(shí)驗(yàn)也發(fā)現(xiàn),對(duì)于實(shí)數(shù)值網(wǎng)絡(luò)而言,SGD 的性能總是優(yōu)于自適應(yīng)優(yōu)化器 Adam。但對(duì)于 BNN 而言,SGD 的性能卻不如 Adam,如下圖所示。這就引發(fā)了一個(gè)問(wèn)題:為什么 SGD 在實(shí)數(shù)值分類(lèi)網(wǎng)絡(luò)中是默認(rèn)的通用優(yōu)化器,卻在 BNN 優(yōu)化中輸給了 Adam 呢?


          這就要從 BNN 的特性說(shuō)起。因?yàn)?BNN 中的參數(shù)值(weight)和激活值(activation)都是二值化的,這就需要用 sign 函數(shù)來(lái)把實(shí)數(shù)值的參數(shù)和激活值變成二值化。


          而這個(gè) Sign 函數(shù)是不可導(dǎo)的,所以常規(guī)做法就是對(duì)于二值化的激活值用 Clip 函數(shù)的導(dǎo)數(shù)擬合 Sign 函數(shù)的導(dǎo)數(shù)。


          這樣做有一個(gè)問(wèn)題就是,當(dāng)實(shí)數(shù)值的激活值超出了 [-1,1] 的范圍,稱(chēng)為激活值過(guò)飽和(activation saturation),對(duì)應(yīng)的導(dǎo)數(shù)值就會(huì)變?yōu)?0。從而導(dǎo)致了臭名昭著的梯度消失(gradient vanishing)問(wèn)題。從下圖的可視化結(jié)果中可以看出,網(wǎng)絡(luò)內(nèi)部的激活值超出[-1, 1] 范圍十分常見(jiàn),所以二值化優(yōu)化里的一個(gè)重要問(wèn)題就是由于激活值過(guò)飽和導(dǎo)致的梯度消失,使得參數(shù)得不到充分的梯度估計(jì)來(lái)學(xué)習(xí),從而容易困局部次優(yōu)解里。


          而比較 SGD 而言,Adam 優(yōu)化的二值化網(wǎng)絡(luò)中激活值過(guò)飽和問(wèn)題和梯度消失問(wèn)題都有所緩解。這也是 Adam 在 BNN 上效果優(yōu)于 SGD 的原因。那么為什么 Adam 就能緩解梯度消失的問(wèn)題呢?這篇論文通過(guò)一個(gè)構(gòu)造的超簡(jiǎn)二維二值網(wǎng)絡(luò)分析來(lái)分析 Adam 和 SGD 優(yōu)化過(guò)程中的軌跡:


          圖中展示了用兩個(gè)二元節(jié)點(diǎn)構(gòu)建的網(wǎng)絡(luò)的優(yōu)化曲面。(a) 前向傳遞中,由于二值化函數(shù) Sign 的存在,優(yōu)化曲面是離散的,(b) 而反向傳播中,由于用了 Clip(?1, x, 1)的導(dǎo)數(shù)近似 Sign(x)的導(dǎo)數(shù),所以實(shí)際優(yōu)化的空間是由 Clip(?1, x, 1)函數(shù)組成的, (c) 從實(shí)際的優(yōu)化的軌跡可以看出,相比 SGD,Adam 優(yōu)化器更能克服零梯度的局部最優(yōu)解,(d) 實(shí)際優(yōu)化軌跡的頂視圖。

          在圖 (b) 所示中,反向梯度計(jì)算的時(shí)候,只有當(dāng) X 和 Y 方向都落在[-1, 1] 的范圍內(nèi)的時(shí)候,才在兩個(gè)方向都有梯度,而在這個(gè)區(qū)域之外的區(qū)域,至少有一個(gè)方向梯度消失。

          而從下式的 SGD 與 Adam 的優(yōu)化方式比較中可以看出,SGD 的優(yōu)化方式只計(jì)算 first moment,即梯度的平均值,遇到梯度消失問(wèn)題,對(duì)相應(yīng)的參數(shù)的更新值下降極快。而在 Adam 中,Adam 會(huì)累加 second moment,即梯度的二次方的平均值,從而在梯度消失的方向,對(duì)應(yīng)放大學(xué)習(xí)率,增大梯度消失方向的參數(shù)更新值。這樣能幫助網(wǎng)絡(luò)越過(guò)局部的零梯度區(qū)域達(dá)到更好的解空間。


          進(jìn)一步,這篇論文展示了一個(gè)很有趣的現(xiàn)象,在優(yōu)化好的 BNN 中,網(wǎng)絡(luò)內(nèi)部存儲(chǔ)的用于幫助優(yōu)化的實(shí)數(shù)值參數(shù)呈現(xiàn)一個(gè)有規(guī)律的分布:


          分布分為三個(gè)峰,分別在 0 附近,-1 附近和 1 附近。而且 Adam 優(yōu)化的 BNN 中實(shí)數(shù)值參數(shù)接近 - 1 和 1 的比較多。這個(gè)特殊的分布現(xiàn)象就要從 BNN 中實(shí)數(shù)值參數(shù)的作用和物理意義講起。BNN 中,由于二值化參數(shù)無(wú)法直接被數(shù)量級(jí)為 10^?-4 左右大小的導(dǎo)數(shù)更新,所以需要存儲(chǔ)實(shí)數(shù)值參數(shù),來(lái)積累這些很小的導(dǎo)數(shù)值,然后在每次正向計(jì)算 loss 的時(shí)候取實(shí)數(shù)值參數(shù)的 Sign 作為二值化參數(shù),這樣計(jì)算出來(lái)的 loss 和導(dǎo)數(shù)再更新實(shí)數(shù)值參數(shù),如下圖所示。


          所以,當(dāng)這些實(shí)數(shù)值參數(shù)靠近零值時(shí),它們很容易通過(guò)梯度更新就改變符號(hào),導(dǎo)致對(duì)應(yīng)的二值化參數(shù)容易跳變。而當(dāng)實(shí)值參數(shù)的絕對(duì)值較高時(shí),就需要累加更多往相反方向的梯度,才能使得對(duì)應(yīng)的二值參數(shù)改變符號(hào)。所以正如 (Helwegen et al., 2019) 中提到的,實(shí)值參數(shù)的絕對(duì)值的物理意義可以視作其對(duì)應(yīng)二值參數(shù)的置信度。實(shí)值參數(shù)的絕對(duì)值越大,對(duì)應(yīng)二值參數(shù)置信度更高,更不容易改變符號(hào)。從這個(gè)角度來(lái)看,Adam 學(xué)習(xí)的網(wǎng)絡(luò)比 SGD 實(shí)值網(wǎng)絡(luò)更有置信度,也側(cè)面印證了 Adam 對(duì)于 BNN 而言是更優(yōu)的 optimizer。

          當(dāng)然,實(shí)值參數(shù)的絕對(duì)值代表了其對(duì)應(yīng)二值參數(shù)的置信度這個(gè)推論就引發(fā)了另一個(gè)思考:應(yīng)不應(yīng)該在 BNN 中對(duì)實(shí)值參數(shù)施加 weight decay?

          在實(shí)數(shù)值網(wǎng)絡(luò)中,對(duì)參數(shù)施加 weight decay 是為了控制參數(shù)的大小,防止過(guò)擬合。而在二值化網(wǎng)絡(luò)中,參與網(wǎng)絡(luò)計(jì)算的是實(shí)數(shù)值參數(shù)的符號(hào),所以加在實(shí)數(shù)值參數(shù)上的 weight decay 并不會(huì)影響二值化參數(shù)的大小,這也就意味著,weight decay 在二值化網(wǎng)絡(luò)中的作用也需要重新思考。


          這篇論文發(fā)現(xiàn),二值化網(wǎng)絡(luò)中使用 weight decay 會(huì)帶來(lái)一個(gè)困境:高 weight decay 會(huì)降低實(shí)值參數(shù)的大小,進(jìn)而導(dǎo)致二值參數(shù)易變符號(hào)且不穩(wěn)定。而低 weight decay 或者不加 weight decay 會(huì)使得二值參數(shù)將趨向于保持當(dāng)前狀態(tài),而導(dǎo)致網(wǎng)絡(luò)容易依賴(lài)初始值。 

          為了量化穩(wěn)定性和初始值依賴(lài)性,該論文引入了兩個(gè)指標(biāo):用于衡量?jī)?yōu)化穩(wěn)定性的參數(shù)翻轉(zhuǎn)比率(FF-ratio),以及用于衡量對(duì)初始化的依賴(lài)性的初始值相關(guān)度 (C2I-ratio)。兩者的公式如下,


          FF-ratio 計(jì)算了在第 t 次迭代更新后多少參數(shù)改變了它們的符號(hào),而 C2I -ratio 計(jì)算了多少參數(shù)與其初始值符號(hào)不同。

          從下表的量化分析不同的 weight decay 對(duì)網(wǎng)絡(luò)穩(wěn)定性和初始值依賴(lài)性的結(jié)果中可以看出,隨著 weight decay 的增加,F(xiàn)F-ratio 與 C2I-ratio 的變化趨勢(shì)呈負(fù)相關(guān),并且 FF-ratio 呈指數(shù)增加,而 C2I-ratio 呈線(xiàn)性下降。這表明一些參數(shù)值的來(lái)回跳變對(duì)最終參數(shù)沒(méi)有貢獻(xiàn),而只會(huì)影響訓(xùn)練穩(wěn)定性。


          那么 weight decay 帶來(lái)的穩(wěn)定性和初始值依賴(lài)性的兩難困境有沒(méi)有方法解離呢? 該論文發(fā)現(xiàn)最近在 ReActNet (Liu et al., 2020) 和 Real-to-Binary Network (Brais Martinez, 2020) 中提出的兩階段訓(xùn)練法配合合適的 weight-decay 策略能很好地化解這個(gè)困境。這個(gè)策略是,第一階段訓(xùn)練中,只對(duì)激活值進(jìn)行二值化,不二值化參數(shù)。由于實(shí)數(shù)值參數(shù)不必?fù)?dān)心二值化參數(shù)跳變的問(wèn)題,可以添加 weight decay 來(lái)減小初始值依賴(lài)。隨后在第二階段訓(xùn)練中,二值化激活值和參數(shù),同時(shí)用來(lái)自第一步訓(xùn)練好的參數(shù)初始化二值網(wǎng)絡(luò)中的實(shí)值參數(shù),不施加 weight decay。這樣可以提高穩(wěn)定性并利用預(yù)訓(xùn)練的良好初始化減小初始值依賴(lài)帶來(lái)的弊端。通過(guò)觀(guān)察 FF-ratio 和 C2I-ratio,該論文得出結(jié)論,第一階段使用 5e-6 的 weight-decay,第二階段不施加 weight-decay 效果最優(yōu)。

          該論文綜合所有分析得出的訓(xùn)練策略,在用相同的網(wǎng)絡(luò)結(jié)構(gòu)的情況下,取得了比 state-of-the-art ReActNet 超出 1.1% 的結(jié)果。實(shí)驗(yàn)結(jié)果如下表所示。


          更多的分析和結(jié)果可以參考原論文。

          參考文獻(xiàn):
          • Helwegen, K., Widdicombe, J., Geiger, L., Liu, Z., Cheng, K.-T., and Nusselder, R. Latent weights do not exist: Rethinking binarized neural network optimization. In Advances in neural information processing systems, pp. 7531–7542, 2019. 

          • Liu, Z., Wu, B., Luo, W., Yang, X., Liu, W., and Cheng, K.- T. Bi-real net: Enhancing the performance of 1-bit CNNs with improved representational capability and advanced training algorithm. In Proceedings of the European conference on computer vision (ECCV), pp. 722–737, 2018b. 

          • Liu, Z., Shen, Z., Savvides, M., and Cheng, K.-T. Reactnet: Towards precise binary neural network with generalized activation functions. ECCV, 2020. 

          • Brais Martinez, Jing Yang, A. B. G. T. Training binary neural networks with real-to-binary convolutions. Inter- national Conference on Learning Representations, 2020. 



          ? THE END 

          轉(zhuǎn)載請(qǐng)聯(lián)系機(jī)器之心公眾號(hào)獲得授權(quán)

          投稿或?qū)で髨?bào)道:[email protected]



          點(diǎn)個(gè)在看 paper不斷!

          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美精品xxx | 欧美在线www | 激情五月色情在线播放 | 伊人大香蕉在线视频网 | 日本无码在线看 |