選自MachineLearningMastery 作者:Jason Brownlee 參與:Nurhachu Null、劉曉坤
遷移學(xué)習(xí)是一種機(jī)器學(xué)習(xí)方法,就是把為任務(wù) A 開發(fā)的模型作為初始點(diǎn),重新使用在為任務(wù) B 開發(fā)模型的過程中。 深度學(xué)習(xí)中在計(jì)算機(jī)視覺任務(wù)和自然語言處理任務(wù)中將預(yù)訓(xùn)練的模型作為新模型的起點(diǎn)是一種常用的方法,通常這些預(yù)訓(xùn)練的模型在開發(fā)神經(jīng)網(wǎng)絡(luò)的時(shí)候已經(jīng)消耗了巨大的時(shí)間資源和計(jì)算資源,遷移學(xué)習(xí)可以將已習(xí)得的強(qiáng)大技能遷移到相關(guān)的的問題上。 讀完本文,你將學(xué)會(huì)如何使用遷移學(xué)習(xí)來加速訓(xùn)練過程,提升深度模型的性能。 讀完本文之后,你會(huì)了解以下內(nèi)容:
什么是遷移學(xué)習(xí)? 遷移學(xué)習(xí)是一種機(jī)器學(xué)習(xí)的方法,指的是一個(gè)預(yù)訓(xùn)練的模型被重新用在另一個(gè)任務(wù)中。
遷移學(xué)習(xí)與多任務(wù)學(xué)習(xí)以及概念飄移這些問題相關(guān),它不是一個(gè)專門的機(jī)器學(xué)習(xí)領(lǐng)域。 然而,遷移學(xué)習(xí)在某些深度學(xué)習(xí)問題中是非常受歡迎的,例如在具有大量訓(xùn)練深度模型所需的資源或者具有大量的用來預(yù)訓(xùn)練模型的數(shù)據(jù)集的情況。僅在第一個(gè)任務(wù)中的深度模型特征是泛化特征的時(shí)候,遷移學(xué)習(xí)才會(huì)起作用。
深度學(xué)習(xí)中的這種遷移被稱作歸納遷移。就是通過使用一個(gè)適用于不同但是相關(guān)的任務(wù)的模型,以一種有利的方式縮小可能模型的搜索范圍。
歸納學(xué)習(xí)的解釋 如何使用遷移學(xué)習(xí) 你可以在自己的預(yù)測(cè)模型問題上使用遷移學(xué)習(xí)。 以下是兩個(gè)常用的方法:
開發(fā)模型的方法
預(yù)訓(xùn)練模型方法
第二種類型的遷移學(xué)習(xí)在深度學(xué)習(xí)領(lǐng)域比較常用。 深度學(xué)習(xí)中使用遷移學(xué)習(xí)的例子 下面用兩個(gè)常見的例子具體介紹一下深度學(xué)習(xí)模型中的遷移學(xué)習(xí)。 使用圖像數(shù)據(jù)進(jìn)行遷移學(xué)習(xí) 在使用圖像作為輸入的預(yù)測(cè)建模問題中應(yīng)用遷移學(xué)習(xí)是很常見的,其中使用圖像或視頻作為輸入。 對(duì)于這種類型的問題而言,使用為大規(guī)模的挑戰(zhàn)性圖像數(shù)據(jù)集預(yù)訓(xùn)練的模型是很常見的做法,例如 ImageNet(1000 類圖像分類挑戰(zhàn)賽的數(shù)據(jù)集)。 為這個(gè)競(jìng)賽開發(fā)模型的研究組織通常會(huì)將最終模型發(fā)布出來,并且具備重新使用的許可。這些模型的訓(xùn)練一般會(huì)耗費(fèi)幾天到幾星期不等的時(shí)間,這取決于所用的硬件環(huán)境。 這些模型可以直接下載到,它們將圖像作為輸入。 以下是這種類型的模型的三個(gè)例子:
可以在 Caffe Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)中找到更多的例子,那里分享了很多預(yù)訓(xùn)練的模型。 這個(gè)方法是有效的,因?yàn)榇罅康膱D片在這個(gè)模型上進(jìn)行訓(xùn)練,需要模型能夠預(yù)測(cè)出相對(duì)比較多的圖片類型,反過來,這需要模型能夠有效地學(xué)習(xí)從圖片中提取特征,以較好地解決這個(gè)問題。 在斯坦福大學(xué)的課程《Convolutional Neural Networks for Visual Recognition》(視覺識(shí)別中的卷積神經(jīng)網(wǎng)絡(luò))中,作者特別提醒,要仔細(xì)選擇將預(yù)訓(xùn)練模型在多大程度上利用到新模型中。
語言數(shù)據(jù)中的遷移學(xué)習(xí) 在以文本作為輸入-輸出的自然語言處理任務(wù)中,使用遷移學(xué)習(xí)是很常見的。 對(duì)于這類問題,首先會(huì)使用詞向量(Word embedding)將單詞映射到連續(xù)的高維空間,在這個(gè)高維空間中,意思相近的不同單詞具有相似的向量表征。 目前已經(jīng)有學(xué)習(xí)這些分散詞表征的高效算法,并且研究組織經(jīng)常在大規(guī)模文本語料庫(kù)上基于許可 license 發(fā)布預(yù)訓(xùn)練模型。 這類例子包括:
這些分立詞表征的模型可以在上述地址下載,并且結(jié)合使用在將單詞表征作為輸入或者生成單詞作為輸出的深度語言學(xué)習(xí)模型中。 Yoav Goldberg 在他的書中提醒道:
什么時(shí)候使用遷移學(xué)習(xí)? 遷移學(xué)習(xí)是一種優(yōu)化,是一種節(jié)省時(shí)間或者得到更好性能的捷徑。 通常而言,在模型經(jīng)過開發(fā)和測(cè)試之前,并不能明顯地發(fā)現(xiàn)使用遷移學(xué)習(xí)帶來的性能提升。 Lisa Torrey 和 Jude Shavlik 在他們關(guān)于遷移學(xué)習(xí)的章節(jié)中描述了使用遷移學(xué)習(xí)的時(shí)候可能帶來的三種益處:
遷移學(xué)習(xí)能夠改善學(xué)習(xí)的三種方式 理想情況下,在一個(gè)成功的遷移學(xué)習(xí)應(yīng)用中,你會(huì)得到上述這三種益處。 如果你能夠發(fā)現(xiàn)一個(gè)與你的任務(wù)有相關(guān)性的任務(wù),它具備豐富的數(shù)據(jù),并且你也有資源來為它開發(fā)模型,那么,在你的任務(wù)中重用這個(gè)模型確實(shí)是一個(gè)好方法,或者(更好的情況),有一個(gè)可用的預(yù)訓(xùn)練模型,你可以將它作為你自己模型的訓(xùn)練初始點(diǎn)。 在一些問題上,你或許沒有那么多的數(shù)據(jù),這時(shí)候遷移學(xué)習(xí)可以讓你開發(fā)出相對(duì)不使用遷移學(xué)習(xí)而言具有更高性能的模型。 對(duì)源數(shù)據(jù)和源模型的選擇是一個(gè)開放問題,可能需要領(lǐng)域?qū)<一蛘邔?shí)際開發(fā)經(jīng)驗(yàn)。 延伸閱讀 如果你想進(jìn)一步了解相關(guān)內(nèi)容,這一部分給出了更多關(guān)于這個(gè)主題的學(xué)習(xí)資源。 書籍
論文
預(yù)訓(xùn)練模型
文章
本文為機(jī)器之心編譯,轉(zhuǎn)載請(qǐng)聯(lián)系本公眾號(hào)獲得授權(quán)。 |
|