這篇文章初看和,差點(diǎn)以為是model ,看到后面發(fā)現(xiàn)是針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,而且這個(gè)方法比較簡(jiǎn)單,但文章通過(guò)大量的分析和實(shí)驗(yàn),驗(yàn)證了提出的訓(xùn)練方法非常有效,在cifar、、VQA、 上漲點(diǎn)很多,個(gè)人覺(jué)得paper /做的非常好, study做的非常充分,是我目前看過(guò)的中最好的一篇文章。
先來(lái)看效果圖,用新的訓(xùn)練方法,測(cè)試準(zhǔn)確率遠(yuǎn)遠(yuǎn)超過(guò)了標(biāo)準(zhǔn)的訓(xùn)練方法,是不是?
下面看看在 上的測(cè)試結(jié)果,RePr在-FPN上有4.1個(gè)點(diǎn)的提升,在-FPN有2.8個(gè)點(diǎn)的提升,可以說(shuō)是非常明顯了。
卷積神經(jīng)網(wǎng)絡(luò)在視覺(jué)任務(wù)中取得了SOTA性能,我們會(huì)為不同的任務(wù)單獨(dú)設(shè)計(jì)不同的網(wǎng)絡(luò)結(jié)構(gòu),雖然網(wǎng)絡(luò)結(jié)構(gòu)不同卷積神經(jīng)網(wǎng)絡(luò)有沒(méi)有正則化,但使用的優(yōu)化方法都是一樣的,而且這些優(yōu)化方法將網(wǎng)絡(luò)權(quán)重視為單獨(dú)的個(gè)體,沒(méi)有考慮彼此之前的相關(guān)性。而事實(shí)上,網(wǎng)絡(luò)權(quán)重之間是有很大聯(lián)系的。為了獲取最好的性能,網(wǎng)絡(luò)經(jīng)常過(guò)參數(shù)化(over-)。然而即使是過(guò)參數(shù)化的網(wǎng)絡(luò),也會(huì)存在很多冗余的參數(shù)。model 證明了一個(gè)大的網(wǎng)絡(luò)可以通過(guò)丟棄一部分參數(shù)權(quán)重得到一個(gè)性能損失不大的小網(wǎng)絡(luò),從而實(shí)現(xiàn)網(wǎng)絡(luò)壓縮和加速。
因此文章提出了一個(gè)新的訓(xùn)練方法。既然網(wǎng)絡(luò)中有些參數(shù)權(quán)重是多余,那我們訓(xùn)練的時(shí)候把他們丟棄(),接著訓(xùn)練剩下的網(wǎng)絡(luò),為了不損失模型的,然后再把丟棄的參數(shù)拿回來(lái),效果是不是會(huì)好一點(diǎn)呢?基于這個(gè)想法,文章作者任務(wù)有幾個(gè)重要的點(diǎn):一是哪些權(quán)重,而是如何再把丟棄的權(quán)重拿回來(lái)讓他們發(fā)揮更大的作用。本文的一個(gè)貢獻(xiàn)在于提出了一個(gè),用于選擇哪些丟棄。同時(shí)作者指出,即使是一個(gè)參數(shù)很少( under- )的網(wǎng)絡(luò),也會(huì)出現(xiàn)學(xué)到冗余的參數(shù)的情況,這不僅僅在多參數(shù)的網(wǎng)絡(luò)中存在,原因就在于訓(xùn)練過(guò)程低效。
特征之間的相關(guān)性越高,其泛化性能越差。為了降低特征之間的相關(guān)性卷積神經(jīng)網(wǎng)絡(luò)有沒(méi)有正則化,有人提出了各種方法,比如在損失函數(shù)中加入特征相關(guān)性的項(xiàng),在優(yōu)化目標(biāo)函數(shù)的時(shí)候使的模型自動(dòng)學(xué)習(xí)出低相關(guān)的特征,然而并沒(méi)有什么效果。還有通過(guò)分析不同層的特征并進(jìn)行聚類,這種方法在實(shí)際中不可行因?yàn)橛?jì)算量巨大。還有人嘗試過(guò)loss添加正則項(xiàng)讓模型學(xué)習(xí)到相互正交的權(quán)重,最后也發(fā)現(xiàn)收效甚微。實(shí)驗(yàn)發(fā)現(xiàn),僅僅通過(guò)正則化項(xiàng)讓網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)到正交的權(quán)重是不夠的,文章提出的訓(xùn)練方法其實(shí)已經(jīng)隱式地起到了正則化效果,并且對(duì)模型的收斂沒(méi)有任何影響。
為了說(shuō)明即使是參數(shù)少的模型,由于訓(xùn)練的低效,也會(huì)存在大量冗余的卷積核,通過(guò)一個(gè)比較小的卷積神經(jīng)網(wǎng)絡(luò),作者可視化了不同層的卷積核對(duì)性能的影響,如下圖右,的大部分卷積核對(duì)性能的影響僅僅只有1%,即使是淺層的,也存在大量不重要的權(quán)重。
新的訓(xùn)練方法:RePr
訓(xùn)練過(guò)程如下:方式比較簡(jiǎn)單,先訓(xùn)練整個(gè)網(wǎng)絡(luò),根據(jù) drop掉30%的,再訓(xùn)練剩下的網(wǎng)絡(luò),再把drop的拿回來(lái),用于現(xiàn)有正交的方式初始化。迭代這個(gè)過(guò)程N(yùn)次。
算法中最重要的其實(shí)這個(gè),即如何選出需要drop的。
文章寫的很明白,一個(gè)layer的多個(gè)卷積核可以用一個(gè)表示,也就是
,先對(duì)
歸一化,再與自己的轉(zhuǎn)置相乘得到
,這是一個(gè)
大小的,第i行表示其他對(duì)第i個(gè)的,可以看成是相關(guān)性,如果是正交性的越大,那么這個(gè)值就越小,一行的數(shù)值之和越小,說(shuō)明其他與這個(gè)相關(guān)性越低。因此可以通過(guò)這個(gè)sum來(lái)對(duì)進(jìn)行rank。
同時(shí)文章還說(shuō)明了,計(jì)算這個(gè)是在一個(gè)layer內(nèi),但rank是在所有l(wèi)ayer進(jìn)行的,目的是為了不讓layer這個(gè)因數(shù)影響的rank,避開(kāi)layer的差異性,同時(shí)也不引入過(guò)多的超參。
文章一個(gè)值得稱贊的點(diǎn)就是 study部分做的非常詳細(xì)而充分。文章做了大量的對(duì)比實(shí)驗(yàn),對(duì)該方法涉及的參數(shù)進(jìn)行了討論,并對(duì)比了不同的的影響,同時(shí)也比較了、 ,指出該方法不僅和他們有很大區(qū)別,與他們結(jié)合還能得到更好的結(jié)果。
作者做了大量實(shí)驗(yàn),驗(yàn)證該方法在,,上都能取得很好的性能。
這是RePr早其他task上的表現(xiàn),VQA上有不同程度的漲點(diǎn),效果明顯。
上漲點(diǎn)達(dá)到了 4.1個(gè)點(diǎn), 2.8個(gè)點(diǎn),可是說(shuō)是非常明顯了。
總的來(lái)說(shuō),這是一篇看起來(lái)真正做work的paper,做法簡(jiǎn)單有效,實(shí)驗(yàn)充分合理,相信很多人會(huì)去復(fù)現(xiàn)這篇paper,有些超參還是需要調(diào)一調(diào)的,具體效果如何還需要看實(shí)際情況,特別是部分,如果真的work,未來(lái)會(huì)成為刷SOTA的一個(gè)標(biāo)配。
幾個(gè)疑問(wèn)的點(diǎn):
為何文章中說(shuō)、的設(shè)計(jì)是為了減低之間的相關(guān)性?
對(duì)部分work比較感興趣,希望知道更多的細(xì)節(jié)。