上一篇文章介紹了遷移學(xué)習(xí)的基本概念,這篇文章其實(shí)是遷移學(xué)習(xí)初探的一個(gè)小尾巴。通常我們使用遷移學(xué)習(xí)津滞,會(huì)首先尋找是否有類(lèi)似的訓(xùn)練好的模型可用,但如果實(shí)在找不到可用的模型灼伤,又無(wú)足夠的已標(biāo)記數(shù)據(jù)可用触徐,那么還有兩種替代方法:無(wú)監(jiān)督預(yù)訓(xùn)練和用輔助任務(wù)預(yù)訓(xùn)練。
無(wú)監(jiān)督預(yù)訓(xùn)練
假設(shè)你需要完成一個(gè)復(fù)雜的任務(wù)狐赡,但是手頭又沒(méi)有足夠的已標(biāo)記好的數(shù)據(jù)撞鹉,更不幸的是你又找不到訓(xùn)練好的類(lèi)似功能的模型。這種情況下颖侄,首先應(yīng)該試著收集更多的標(biāo)記好的數(shù)據(jù)鸟雏。但如果實(shí)在找不到更多數(shù)據(jù)了,就可以嘗試使用無(wú)監(jiān)督學(xué)習(xí)技術(shù)(見(jiàn)圖2.5)览祖。實(shí)際上孝鹊,一般收集未標(biāo)記的數(shù)據(jù)還是很容易的,但是要標(biāo)記它們需要花大量的時(shí)間或者金錢(qián)展蒂。如果手頭能夠有大量未標(biāo)記的數(shù)據(jù)又活,那么就可以嘗試用這些數(shù)據(jù)來(lái)訓(xùn)練一個(gè)無(wú)監(jiān)督的模型,比如自動(dòng)編碼器(autoencoder)或者生成對(duì)抗網(wǎng)絡(luò)(GAN)玄货。然后重用無(wú)監(jiān)督模型的低層網(wǎng)絡(luò)皇钞,在頂層加上針對(duì)你的任務(wù)的輸出層,然后使用標(biāo)記好的數(shù)據(jù)進(jìn)行監(jiān)督學(xué)習(xí)松捉,以精調(diào)最終的模型夹界。
Geoffrey Hinton和他的團(tuán)隊(duì)在2006年使用了這個(gè)技術(shù),引領(lǐng)了神經(jīng)網(wǎng)絡(luò)的復(fù)興和深度學(xué)習(xí)的成功。在2010年以前可柿,無(wú)監(jiān)督預(yù)訓(xùn)練(特別是使用RBMs的無(wú)監(jiān)督學(xué)習(xí))都甚至是訓(xùn)練深度網(wǎng)絡(luò)的標(biāo)配鸠踪,直到梯度問(wèn)題被很好地解決了之后(見(jiàn)我之前的文章),大家才普遍直接使用監(jiān)督學(xué)習(xí)來(lái)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)复斥。但是無(wú)監(jiān)督預(yù)訓(xùn)練(現(xiàn)在基本上都是自動(dòng)編碼器或者GAN)在特定情況下仍然是個(gè)不錯(cuò)的選擇营密,比如沒(méi)有類(lèi)似的模型可以用,標(biāo)記好的訓(xùn)練數(shù)據(jù)很少目锭,但是未標(biāo)記的數(shù)據(jù)又特別多的時(shí)候评汰。
在很久以前,人們很難用深度學(xué)習(xí)來(lái)訓(xùn)練一些很深的模型痢虹,所以大家會(huì)使用一種叫做貪婪逐層預(yù)訓(xùn)練的技術(shù)(見(jiàn)圖2.5)被去。首先訓(xùn)練一個(gè)只有一層的無(wú)監(jiān)督模型,一般是受限玻爾茲曼機(jī)(RBM)奖唯。然后將該層凍結(jié)惨缆,再在該層之上加另外一層,之后繼續(xù)訓(xùn)練模型(實(shí)際上就是訓(xùn)練新的一層)丰捷。隨后再加新層坯墨,再訓(xùn)練,如此往復(fù)病往。但是現(xiàn)在事情變得簡(jiǎn)單很多了捣染,大家一般一次就訓(xùn)練好整個(gè)無(wú)監(jiān)督模型(即圖2.5中,直接從步驟3開(kāi)始訓(xùn)練)荣恐,并且將RBM替換為自動(dòng)編碼器或者GANs液斜。
用輔助任務(wù)預(yù)訓(xùn)練
除上述無(wú)監(jiān)督學(xué)習(xí)方法之外示损,還有一個(gè)選擇就是用一個(gè)輔助任務(wù)來(lái)訓(xùn)練一個(gè)初始的神經(jīng)網(wǎng)絡(luò)。這輔助任務(wù)的特點(diǎn)嚷硫,就是你可以很輕松地獲取到检访,或者自己生成大量標(biāo)記好的數(shù)據(jù)。然后再重用初始模型的低層仔掸,為你實(shí)際的任務(wù)服務(wù)脆贵。初始的神經(jīng)網(wǎng)絡(luò)的低層需要能夠?qū)W習(xí)到一些對(duì)實(shí)際任務(wù)有用的特征探測(cè)能力。
比如說(shuō)起暮,如果你想搭建一個(gè)人臉識(shí)別的系統(tǒng)卖氨,但是只有想要識(shí)別的每個(gè)人的寥寥幾張照片,根本無(wú)法訓(xùn)練出一個(gè)好的分類(lèi)器。但是對(duì)于你想要識(shí)別的每個(gè)人筒捺,想要他們每個(gè)人都提供成百上千的照片又不現(xiàn)實(shí)柏腻。那么,你就可以嘗試從網(wǎng)上收集任意路人的照片系吭,然后訓(xùn)練出一個(gè)初始的模型五嫂。這里的輔助任務(wù)就是,檢測(cè)兩張照片里的人是不是同一個(gè)人肯尺。這樣一個(gè)神經(jīng)網(wǎng)絡(luò)會(huì)學(xué)習(xí)到臉部的特征探測(cè)沃缘,那么重用這個(gè)模型的低層,就有助于訓(xùn)練出性能足夠優(yōu)秀的分類(lèi)器则吟。
在自然語(yǔ)言處理(NLP)中孩灯,你可以下載大量文字信息,并自動(dòng)生成已標(biāo)記的數(shù)據(jù)逾滥。比如說(shuō),你可以隨機(jī)遮住文中的一些字詞败匹,然后訓(xùn)練一個(gè)模型用來(lái)預(yù)測(cè)被遮住的字詞是什么(即寨昙,模型可以用來(lái)預(yù)測(cè)一句話中的字詞應(yīng)該是什么,比如“你剛__說(shuō)什么掀亩?”下劃線里的字很可能是“剛”或者“才”)舔哪。如果你的模型可以很好地預(yù)測(cè)被遮住的字詞,那么這個(gè)模型就已經(jīng)能夠很好地處理語(yǔ)言問(wèn)題了槽棍,那么就可以重用這個(gè)模型捉蚤,然后針對(duì)已標(biāo)記的數(shù)據(jù)和實(shí)際的任務(wù)進(jìn)行精調(diào)。
上面提到的方法炼七,也可以被稱(chēng)為自監(jiān)督學(xué)習(xí)缆巧。自監(jiān)督學(xué)習(xí)也就是從數(shù)據(jù)本身自動(dòng)生成標(biāo)記,然后使用生成的標(biāo)記豌拙,通過(guò)監(jiān)督學(xué)習(xí)的方法來(lái)訓(xùn)練模型陕悬。但是不管怎么說(shuō),這個(gè)方法都沒(méi)有進(jìn)行人工標(biāo)記數(shù)據(jù)按傅,所以還是將其歸類(lèi)為無(wú)監(jiān)督學(xué)習(xí)的一種捉超。