AI TIME歡迎每一位AI愛好者的加入!
引言
在深度學(xué)習(xí)時代,神經(jīng)網(wǎng)絡(luò)的參數(shù)量越來越大,從頭開始訓(xùn)練(train from scratch)的成本也越來越大。幸運的是,在計算機視覺、自然語言處理等人工智能應(yīng)用的主要領(lǐng)域,人們能夠采用遷移學(xué)習(xí)的預(yù)訓(xùn)練-微調(diào)范式來有效降低訓(xùn)練成本。遷移學(xué)習(xí)使得深度神經(jīng)網(wǎng)絡(luò)以預(yù)訓(xùn)練模型的形式走進(jìn)千家萬戶,不用上千塊TPU,我們也能夠使用BERT、EfficientNet等大型模型。
如今,對于深度學(xué)習(xí)框架來說,豐富的預(yù)訓(xùn)練模型庫已經(jīng)是標(biāo)配了(例如TensorFlow Hub, Torchvision Models)。在一些研究領(lǐng)域(比如2020年非常熱門的自監(jiān)督學(xué)習(xí)),研究成果最終也是以預(yù)訓(xùn)練模型的方式呈現(xiàn)給社區(qū)。在深度學(xué)習(xí)社區(qū)里,一些熱門領(lǐng)域已經(jīng)積累了成百上千個預(yù)訓(xùn)練模型。
面對眾多預(yù)訓(xùn)練模型,我們在進(jìn)行遷移時,該用哪一個好呢?這個重要問題很少有人研究,因此人們目前只好使用一些簡單粗暴的辦法:
如果想要準(zhǔn)確地選擇最好的預(yù)訓(xùn)練模型,我們需要把每一個候選模型都做一遍微調(diào)。因為微調(diào)涉及到模型訓(xùn)練,時間至少幾個小時起步。有些預(yù)訓(xùn)練模型的微調(diào)還需要進(jìn)行超參數(shù)搜索,想要決定一個預(yù)訓(xùn)練模型的遷移效果就需要將近50個小時!
針對這一問題,我們進(jìn)行了深入探究,提出了一種名為LogME的方法。它能極大地加速預(yù)訓(xùn)練模型選擇的過程,將衡量單個預(yù)訓(xùn)練模型的時間從50個小時減少到一分鐘,瘋狂提速三千倍!
預(yù)訓(xùn)練模型選擇問題,就是針對用戶給定的數(shù)據(jù)集,從預(yù)訓(xùn)練模型庫中選擇一個最適合的預(yù)訓(xùn)練模型用于遷移學(xué)習(xí)。其流程可以簡單概括為下圖,核心就是要對每一個預(yù)訓(xùn)練模型進(jìn)行遷移性評估(Transferability Assessment),簡單來說就是為每個模型打分,然后選擇出打分最高的預(yù)訓(xùn)練模型。
最直接的打分方法,就是將預(yù)訓(xùn)練模型在給定數(shù)據(jù)集上進(jìn)行調(diào)參、微調(diào),將最終的準(zhǔn)確率或者其它衡量指標(biāo)作為預(yù)訓(xùn)練模型的分?jǐn)?shù)。我們將這種方法稱為ground-truth方法,它的選擇效果無疑是最好的,總是能選出最合適的預(yù)訓(xùn)練模型。然而,它的時間開銷太大(每個預(yù)訓(xùn)練模型需要50小時),因此無法實用。
一個好的打分標(biāo)準(zhǔn),需要在保持與ground-truth打分的高度相關(guān)性的同時,盡可能降低時間開銷,才能滿足實際使用的要求。除了ground-truth方法之外,目前還有兩種打分方法(LEEP和NCE),但是它們的使用范圍非常有限,只能用于有監(jiān)督預(yù)訓(xùn)練模型遷移到分類任務(wù)的場景,如下表所示,而我們提出的LogME則能夠勝任幾乎所有常見的場景,覆蓋了視覺、NLP、分類、回歸、有監(jiān)督預(yù)訓(xùn)練模型、無監(jiān)督預(yù)訓(xùn)練模型等方向。
LogME的優(yōu)越性能來自于以下三個方面:(1)無須梯度計算;(2)無須超參數(shù)調(diào)優(yōu);(3)算法實現(xiàn)優(yōu)化。下面圍繞這三個方面對LogME進(jìn)行具體介紹。
為了加速預(yù)訓(xùn)練模型選擇,我們僅將預(yù)訓(xùn)練模型視作特征提取器,避免更新預(yù)訓(xùn)練模型。這樣,只需要將預(yù)訓(xùn)練模型在給定數(shù)據(jù)集上前向傳播一遍,就可以得到特征和標(biāo)注。于是,這個問題就轉(zhuǎn)化成了如何衡量特征和標(biāo)注之間的關(guān)系,也就是說,這些特征能夠多大程度上用于預(yù)測這些標(biāo)注。
為此,我們采用一般性的統(tǒng)計方法,用概率密度來衡量特征與標(biāo)注的關(guān)系。考慮到微調(diào)一般就是在預(yù)訓(xùn)練模型的特征提取層之上再加一個線性層,所以我們用一個線性層來建模特征與標(biāo)注的關(guān)系。
說到這里,很多人會想到,一種直觀的方法是通過Logistic Regression或者Linear Regression得到最優(yōu)權(quán)重,然后使用似然函數(shù)作為打分標(biāo)準(zhǔn)。但是這樣容易導(dǎo)致過擬合問題,而且這些方法也有很多超參數(shù)需要選擇,這使得它們的時間開銷很大且效果不好。
我們選用的是統(tǒng)計學(xué)中的證據(jù)(evidence,也叫marginalized likelihood)來衡量特征與標(biāo)注的關(guān)系。它不使用某個特定的的值,而是使用的分布來得到邊緣化似然的值。它相當(dāng)于取遍了所有可能的值,能夠更加準(zhǔn)確地反映特征與標(biāo)注的關(guān)系,不會有過擬合的問題。其中,與分別由超參數(shù)和決定,但是它們不需要grid search,可以通過最大化evidence來直接求解。于是,我們就得到了對數(shù)最大證據(jù)(Log Maximum Evidence, 縮寫LogME)標(biāo)準(zhǔn)來作為預(yù)訓(xùn)練模型選擇的依據(jù)。具體數(shù)學(xué)細(xì)節(jié)不在這里贅述,感興趣的讀者可以閱讀底部的論文。算法的具體細(xì)節(jié)在下圖中給出了。注意,雖然LogME計算過程中將預(yù)訓(xùn)練模型視作特征提取器,但是LogME可以用于衡量被用于遷移學(xué)習(xí)(微調(diào))的性能。
值得一提的是,LogME算法涉及到很多矩陣分解、求逆、相乘操作,因此一不小心就容易使得算法的復(fù)雜度很高(例如上圖第9行,粗糙的實現(xiàn)方式)。我們在深入研究該算法后發(fā)現(xiàn),很多矩陣運算的開銷可以通過巧妙的計算優(yōu)化手段大大降低,因此將計算流程優(yōu)化為上圖第10行,整體的計算復(fù)雜度降低了一個階,從四次方降低為三次方(見下表),使得該算法在數(shù)秒內(nèi)就能處理常見情況。
在實驗部分,我們用合成數(shù)據(jù)、真實數(shù)據(jù)等多種方式方式,測試了LogME在17個數(shù)據(jù)集、14個預(yù)訓(xùn)練模型上的效果,LogME在這么多數(shù)據(jù)集、預(yù)訓(xùn)練模型上都表現(xiàn)得很好,展現(xiàn)了它優(yōu)異的性能。
首先讓我們看看,LogME給出的打分標(biāo)準(zhǔn)與人的主觀感覺是否一致。我們?yōu)榉诸悊栴}和回歸問題分別設(shè)計了一個toy實驗,使用生成數(shù)據(jù)來測量LogME的值。從下圖中可以看出,不管是分類任務(wù)還是回歸任務(wù),當(dāng)特征質(zhì)量越來越差時,LogME的值也越來越低,說明LogME可以很好地衡量特征與標(biāo)注的關(guān)系,從而作為預(yù)訓(xùn)練模型選擇的標(biāo)準(zhǔn)。
接下來,我們用LogME來進(jìn)行預(yù)訓(xùn)練模型選擇。我們使用若干個常用預(yù)訓(xùn)練模型,通過耗時的微調(diào)過程得到它們的遷移性指標(biāo),然后衡量LogME與遷移性指標(biāo)的相關(guān)性。相關(guān)性指標(biāo)為加權(quán)肯達(dá)爾系數(shù),它的取值范圍是。相關(guān)系數(shù)為意味著如果LogME認(rèn)為預(yù)訓(xùn)練模型比好,那么確實比好的概率是。也就是說,越大越好。
我們將10個常用預(yù)訓(xùn)練模型遷移到9個常見分類數(shù)據(jù)集中,發(fā)現(xiàn)LogME與微調(diào)準(zhǔn)確率有很高的相關(guān)性(見下圖),顯著優(yōu)于之前的LEEP和NCE方法。在這幾個數(shù)據(jù)集中,LogME的相關(guān)系數(shù)至少有0.5,大部分情況下有0.7或者0.8,也就意味著使用LogME進(jìn)行預(yù)訓(xùn)練模型選擇的準(zhǔn)確率高達(dá)85%或者90%。
值得注意的是,之前的LEEP和NCE方法只能用于這一種場景。接下來的實驗(回歸任務(wù)、無監(jiān)督預(yù)訓(xùn)練模型、NLP模型及任務(wù)),只有LogME能處理。
我們也做了回歸任務(wù)相關(guān)的實驗,可以看到LogME與MSE有明顯的負(fù)相關(guān)性,而MSE是越低越好,LogME是越大越好,結(jié)果符合預(yù)期。
在2020年,視覺領(lǐng)域的重要進(jìn)展之一就是無監(jiān)督預(yù)訓(xùn)練模型。因此我們也嘗試了使用LogME來判斷無監(jiān)督預(yù)訓(xùn)練模型的質(zhì)量。從下圖的結(jié)果來看,不論是分類任務(wù)(Aircraft)還是回歸任務(wù)(dSprites),LogME都能準(zhǔn)確衡量無監(jiān)督預(yù)訓(xùn)練模型的質(zhì)量。
LogME并不局限于視覺模型與任務(wù),我們還測試了它對NLP預(yù)訓(xùn)練模型的評價能力??梢钥吹?,在五個任務(wù)上,LogME完美地預(yù)測了四個預(yù)訓(xùn)練模型的表現(xiàn)的相對大小,在另外兩個任務(wù)上的表現(xiàn)也不錯。
LogME方法不僅效果好,更難得的是它所需要的時間非常短,可以快速評價預(yù)訓(xùn)練模型。如果將直接微調(diào)的時間作為基準(zhǔn),LogME只需要0.31‰的時間(注意不是百分號,是千分號),也就是說加速了3000倍!而之前的方法如LEEP和NCE,雖然耗時更少,但是效果很差,適用范圍也很有限,完全不如我們的LogME方法。
值得注意的是,像LogME這種根據(jù)概率公式計算的方法,一般效果更好,但是耗時也更高。事實上,如果我們采用簡單粗暴的實現(xiàn),評估一個模型就需要八百多秒。正是有了精心優(yōu)化的版本,我們才能夠既有概率方法的優(yōu)越效果,又有簡單高效的實現(xiàn)。
因為它的準(zhǔn)確、快速、實用性,我們相信LogME除了能夠用作預(yù)訓(xùn)練模型選擇之外,還能夠在其它領(lǐng)域有所作為。例如,在無監(jiān)督預(yù)訓(xùn)練中,評估一次預(yù)訓(xùn)練模型就需要在整個ImageNet數(shù)據(jù)集上進(jìn)行l(wèi)inear protocol evaluation,整個過程需要幾個小時。若采用LogME,則只需要一分鐘不到,因此可以在訓(xùn)練過程中將LogME作為early stopping的準(zhǔn)則。
聯(lián)系客服