<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>

          【神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索】SMASH直接生成候選網(wǎng)絡(luò)權(quán)重

          共 4503字,需瀏覽 10分鐘

           ·

          2021-06-25 08:23

          【GiantPandaCV導(dǎo)讀】SMASH提出使用HyperNet來生成目標(biāo)網(wǎng)絡(luò)的權(quán)重的方法,在相關(guān)性假設(shè)的前提下,可以得到網(wǎng)絡(luò)架構(gòu)的相對(duì)排序,從而獲得最優(yōu)架構(gòu)。最后對(duì)最優(yōu)架構(gòu)繼續(xù)retrain。

          1. INFO

          https://img-blog.csdnimg.cn/20210619185343975.png

          Title: SMASH: One-Shot Model Architecture Search through HyperNetworks

          Author: Andrew Brock, Theodore Lim, & J.M. Ritchie

          Link: https://arxiv.org/pdf/1708.05344.pdf

          Date: ICLR 2018 Poster

          Code:https://github.com/ajbrock/SMASH

          2. Motivation

          高性能的深度神經(jīng)網(wǎng)絡(luò)需要大量工程設(shè)計(jì),而網(wǎng)絡(luò)的細(xì)節(jié)比如深度、連接方式等往往遵從了一些網(wǎng)絡(luò)設(shè)計(jì)規(guī)則,比如ResNet,Inception,F(xiàn)ractalNets,DenseNets等。但即便在這些規(guī)則的指導(dǎo)下,也需要設(shè)計(jì)一系列實(shí)驗(yàn)來決定網(wǎng)絡(luò)具體的配置,如深度,通道數(shù)等。

          SMASH就是為了越過這個(gè)昂貴的訓(xùn)練候選模型的過程而提出來的,通過使用輔助網(wǎng)絡(luò)生成權(quán)重來解決這個(gè)問題。

          3. Contribution

          SMASH通過引入HyperNet來根據(jù)候選網(wǎng)絡(luò)的結(jié)構(gòu)動(dòng)態(tài)生成權(quán)重。

          雖然通過輔助網(wǎng)絡(luò)生成候選網(wǎng)絡(luò)權(quán)重的方式得到的驗(yàn)證集精度不高,但是不同候選網(wǎng)絡(luò)結(jié)果的表現(xiàn)和從頭訓(xùn)練候選網(wǎng)絡(luò)的表現(xiàn)具有相對(duì)一致性,所以可以作為挑選候選網(wǎng)絡(luò)的指導(dǎo)。

          搜索網(wǎng)絡(luò)的設(shè)計(jì)使用了基于內(nèi)存讀寫的靈活機(jī)制(memory read-write),從而定義了一個(gè)包括ResNet、DenseNet、FractalNets的搜索空間。

          SMASH也有局限性:這個(gè)方法不能自己發(fā)現(xiàn)全新的結(jié)構(gòu),因?yàn)樗荒軇?dòng)態(tài)生成模型參數(shù)的特定子集。

          4. Method

          SMASH的偽代碼如下:

          https://img-blog.csdnimg.cn/20210619204010395.png
          • 首先設(shè)計(jì)所有候選網(wǎng)絡(luò)的搜索空間。
          • 初始化超網(wǎng)權(quán)重H
          • 對(duì)于一個(gè)batch的數(shù)據(jù)x,一個(gè)隨機(jī)的候選網(wǎng)絡(luò)c,和根據(jù)候選網(wǎng)絡(luò)架構(gòu)的生成的權(quán)重W=H(c)
          • 得到loss,進(jìn)行反向傳播,并更新H
          • 以上完成以后,就得到了一個(gè)訓(xùn)練完成的HyperNet。
          • 采樣隨機(jī)的候選網(wǎng)絡(luò)c,在驗(yàn)證集上得到驗(yàn)證loss,找到loss最小的候選網(wǎng)絡(luò)。
          • 對(duì)得到的候選網(wǎng)絡(luò)進(jìn)行從頭訓(xùn)練,得到在驗(yàn)證機(jī)上的精度。

          對(duì)于以上過程,有幾個(gè)點(diǎn)需要搞清楚:

          1. 候選網(wǎng)絡(luò)搜索空間是如何構(gòu)建的?
          2. 如何根據(jù)候選網(wǎng)絡(luò)架構(gòu)得到權(quán)重?

          4.1 候選網(wǎng)絡(luò)搜索空間

          對(duì)于第一個(gè)問題,從內(nèi)存讀寫的角度來考慮采樣復(fù)雜、帶分支的拓?fù)洌⒃撏負(fù)渚幋a為二進(jìn)制特征向量。

          普通的網(wǎng)絡(luò)是從前向傳播-反向傳播信號(hào)的角度來設(shè)計(jì)的,這篇文章從內(nèi)存的讀寫角度來看待網(wǎng)絡(luò)結(jié)構(gòu),被稱為Memory-Bank representation。

          https://img-blog.csdnimg.cn/20210619221106151.png

          從這個(gè)角度,每個(gè)層就代表一個(gè)從內(nèi)存中一部分讀取數(shù)據(jù)的操作,比如左邊的是resnet示意圖,從內(nèi)存中讀取數(shù)據(jù)x,經(jīng)過conv處理,得到conv(x),然后寫到內(nèi)存中x+conv(x)結(jié)果。中間的圖展示的是DenseNet,回顧DenseNet,在每個(gè)block內(nèi)部中,每個(gè)節(jié)點(diǎn)都和之前的所有節(jié)點(diǎn)相連接。

          https://img-blog.csdnimg.cn/20210619222718475.png

          那么在Memory-Bank的表示方法中,以3個(gè)節(jié)點(diǎn)為例:

          • 從第一塊內(nèi)存讀取數(shù)據(jù)x
          • 通過第一個(gè)conv1,得到conv1(x),并寫回第二塊內(nèi)存。
          • 從第二塊內(nèi)存讀取conv1(x),經(jīng)過第二個(gè)conv2,得到conv2(conv1(x))
          • 從第一塊內(nèi)存讀取x,經(jīng)過第二個(gè)conv2,得到conv2(x)
          • 兩者concate到一起寫回第三塊內(nèi)存concat(conv2(conv1(x)), conv2(x))

          SMASH采用的網(wǎng)絡(luò)結(jié)構(gòu)和以上三種網(wǎng)絡(luò)類似,由多個(gè)block組成,其中降采樣部分使用的是1x1卷積,分辨率減半。其中全連接層和1x1卷積權(quán)重是通過學(xué)習(xí)得到的,不是通過HyperNet生成的。

          https://img-blog.csdnimg.cn/2021061922380593.png

          下圖展示的是一個(gè)op的結(jié)構(gòu),一個(gè)1x1卷積在memory-bank上的操作,后邊跟著最多兩條卷積路徑。左側(cè)第一個(gè)灰色梯形代表1x1conv,用于調(diào)整channel個(gè)數(shù),然后不同的分支代表選擇不同類型的卷積。

          https://img-blog.csdnimg.cn/20210619225318440.png

          在采樣網(wǎng)絡(luò)的過程中,每個(gè)block內(nèi)部的memory bank的個(gè)數(shù)是隨機(jī)的,每個(gè)memory-bank的channel個(gè)數(shù)也是隨機(jī)的。block中層隨機(jī)選擇讀寫模式以及相對(duì)應(yīng)op。

          當(dāng)讀入read了多個(gè)memory-bank, 在channel維度進(jìn)行concat,寫入write是將每個(gè)memory-bank中的結(jié)果相加。

          實(shí)驗(yàn)中,op僅允許讀取所屬block的memory-bank。op有1x1卷積、若干常規(guī)卷積、非線性激活函數(shù)。

          4.2 為給定網(wǎng)絡(luò)生成權(quán)重

          SMASH中提出的Dynamic Hypernet是基于網(wǎng)絡(luò)結(jié)構(gòu)c得到對(duì)應(yīng)的權(quán)重W。

          優(yōu)化的目標(biāo)是學(xué)習(xí)一個(gè)映射W=H(c)能夠?qū)θ我庖粋€(gè)架構(gòu)c來說,H(c)能夠盡可能接近最優(yōu)的W。

          HyperNet是一個(gè)全卷積組成的網(wǎng)絡(luò),所以其輸出的張量W隨著輸入網(wǎng)絡(luò)結(jié)構(gòu)c的變化而變化,其標(biāo)準(zhǔn)的形式是4D的 BCHW,其中B=1。

          https://img-blog.csdnimg.cn/20210620095506697.png

          舉個(gè)例子,如果op從第1,2,4個(gè)memory-bank中讀取,然后寫回第2,4個(gè)memory-bank。那么第1,2,4個(gè)通道對(duì)應(yīng)的值被賦值為1(代表read模式,如上圖所示),第6(2+4),8(4+4)個(gè)通道被賦值為1(代表write模式)。通過以上方式得到了對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的編碼。

          通過以上例子,終于搞清楚了如何從memory-bank的角度來表征網(wǎng)絡(luò)結(jié)構(gòu),剩下生成W權(quán)重的工作采用的是MLP來完成的。

          5. Experiment

          實(shí)驗(yàn)部分需要驗(yàn)證聲明Claim:

          • 通過HyperNet生成權(quán)重W的這種方式具有較好的排序一致性。
          • 證明SMASH方法的有效性,架構(gòu)表征c在整個(gè)算法中是否真正起到了作用。
          • 驗(yàn)證算法的可擴(kuò)展性,使用遷移學(xué)習(xí)的方法來證明。
          • 和其他SOTA方法進(jìn)行比較

          5.1 測(cè)試SMASH的相關(guān)性

          https://img-blog.csdnimg.cn/20210620101521130.png

          橫坐標(biāo)是HyperNet生成權(quán)重得到的驗(yàn)證集錯(cuò)誤率,縱坐標(biāo)代表模型真實(shí)訓(xùn)練得到的驗(yàn)證集錯(cuò)誤率,紅色線代表使用最小二乘法得到的結(jié)果。

          根據(jù)這根線就得到了一致性?相當(dāng)于使用目測(cè)的方法得到結(jié)論,感覺可以用統(tǒng)計(jì)學(xué)的方法計(jì)算出置信度,或者來計(jì)算一下kendall tau或者Person系數(shù)能更好的反映結(jié)果。

          作者在說明這個(gè)結(jié)果的時(shí)候也很有意思:這個(gè)實(shí)驗(yàn)結(jié)果只能表明在當(dāng)前設(shè)置的實(shí)驗(yàn)場(chǎng)景下是滿足相關(guān)性的,但既不能保證相關(guān)性的通用性,也不能保證相關(guān)性成立的條件。由于實(shí)驗(yàn)代價(jià)過高,無法進(jìn)一步得到結(jié)果。

          所以需要第二個(gè)實(shí)驗(yàn)來輔助,設(shè)計(jì)一個(gè)代理模型,其中的模型權(quán)重相比于正常的SMASH要小很多,減少了實(shí)驗(yàn)代價(jià)。

          而第三個(gè)實(shí)驗(yàn),提出了更高預(yù)算的網(wǎng)絡(luò)(因?yàn)閰?shù)量不夠的情況下,模型表現(xiàn)會(huì)很差,為了和SOTA比較,所以需要提高預(yù)算),但是實(shí)驗(yàn)發(fā)現(xiàn)其SMASH分?jǐn)?shù)和真實(shí)性能并不相關(guān)。發(fā)現(xiàn)了SMASH中存在的缺陷。

          5.2 使用Proxy進(jìn)一步證明SMASH有效性

          https://img-blog.csdnimg.cn/20210620102933435.png

          左圖展示的是低預(yù)算情況下SMASH,并不存在明確的相關(guān)性。這說明在模型容量比較小的情況下,HyperNet很難學(xué)到良好的權(quán)值,導(dǎo)致SMASH得分和真實(shí)性能之前沒有明確的相關(guān)性。

          通過破壞網(wǎng)絡(luò)架構(gòu)表示c,發(fā)現(xiàn)對(duì)于給定的網(wǎng)絡(luò)架構(gòu),使用正確的網(wǎng)絡(luò)架構(gòu)表示所能生成的SMASH驗(yàn)證性能是最高的,證明了網(wǎng)絡(luò)架構(gòu)表示的有效性。

          5.3 遷移學(xué)習(xí)

          作者發(fā)現(xiàn)這種算法搜出來的模型具有很好的可遷移性:CIFAR-100上搜出來的模型在STL-10上表現(xiàn)優(yōu)于直接在STL-10上搜的模型。原因可能是CIFAR-100擁有更多的訓(xùn)練樣例,能夠使HyperNet更好地選擇模型架構(gòu)。

          5.4 SOTA比較

          https://img-blog.csdnimg.cn/2021062010422618.png

          可以看到,SMASH的結(jié)果并沒有達(dá)到SOTA,處于中等水平,但是總體上優(yōu)于其他RL-based和進(jìn)化算法。確實(shí)是比不上NASNet,但是SMASH并沒有像NASNet一樣進(jìn)行了超參數(shù)網(wǎng)格搜索。

          6. Revisiting

          這篇文章讀下來花費(fèi)了好長(zhǎng)時(shí)間,總結(jié)一下這篇奇怪的文章:

          • 提出了HyperNet生成網(wǎng)絡(luò)權(quán)重的想法,輸入是網(wǎng)絡(luò)架構(gòu)表示,輸出是網(wǎng)絡(luò)的權(quán)重。并提出一個(gè)前提:HyperNet生成權(quán)重后的網(wǎng)絡(luò)和真實(shí)訓(xùn)練的網(wǎng)絡(luò)的性能具有相關(guān)性。
          • 提出了一種從memory-bank角度來看待網(wǎng)絡(luò)的方法,相比普通的前向反向傳播角度,一開始比較難以接受。
          • 從memory-bank角度提出了比較復(fù)雜的網(wǎng)絡(luò)的編碼方式,用于表達(dá)網(wǎng)絡(luò)架構(gòu)c。
          • 使用MLP實(shí)現(xiàn)HyperNet,輸出得到網(wǎng)絡(luò)的權(quán)重。

          想法:從個(gè)人角度出發(fā),這篇文章想法很奇特,直接生成網(wǎng)絡(luò)的權(quán)重。個(gè)人也是很佩服作者的工程能力,生成網(wǎng)絡(luò)權(quán)重,并讓整個(gè)模型work需要多大的工程量不必多言。作者也在文章中透露了各種不work的方式,不斷地調(diào)整,比如使用weightNorm等來解決收斂問題。調(diào)整網(wǎng)絡(luò)的容量來想辦法盡可能提高網(wǎng)絡(luò)的性能表現(xiàn),最終能在cifar10上得到96%的top1已經(jīng)很不容易了。

          這個(gè)也給了我們啟發(fā),即便是并沒有達(dá)到SOTA,這個(gè)創(chuàng)新的想法、扎實(shí)的工作也可以被頂會(huì)接收。

          最后作者開源了源碼,并且給源碼附上了詳細(xì)的注釋。

          7. Reference

          https://arxiv.org/pdf/1608.06993.pdf

          https://zhuanlan.zhihu.com/p/266467877

          https://blog.csdn.net/u014157632/article/details/102600575




          歡迎添加筆者微信加入交流群


          瀏覽 85
          點(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>
                  最新地址在线91 | 日本大乳高潮视频在线观看 | 肏屄社会福利在线看 | 操丝袜熟女骚逼 | 青娱乐草|