首發(fā):AI公園
作者:OrhanG. Yal??n
編譯:ronghuaiyang
導(dǎo)讀
使用SOTA的預(yù)訓(xùn)練模型來(lái)通過(guò)遷移學(xué)習(xí)解決現(xiàn)實(shí)的計(jì)算機(jī)視覺(jué)問(wèn)題。
如果你試過(guò)構(gòu)建高精度的機(jī)器學(xué)習(xí)模型,但還沒(méi)有試過(guò)遷移學(xué)習(xí),這篇文章將改變你的生活。至少,對(duì)我來(lái)說(shuō)是的。
我們大多數(shù)人已經(jīng)嘗試過(guò),通過(guò)幾個(gè)機(jī)器學(xué)習(xí)教程來(lái)掌握神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí)。這些教程非常有助于了解人工神經(jīng)網(wǎng)絡(luò)的基本知識(shí),如循環(huán)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò),GANs和自編碼器。但是這些教程的主要功能是為你在現(xiàn)實(shí)場(chǎng)景中實(shí)現(xiàn)做準(zhǔn)備。
現(xiàn)在,如果你計(jì)劃建立一個(gè)利用深度學(xué)習(xí)的人工智能系統(tǒng),你要么(i)有一個(gè)非常大的預(yù)算用于培訓(xùn)優(yōu)秀的人工智能研究人員,或者(ii)可以從遷移學(xué)習(xí)中受益。
什么是遷移學(xué)習(xí)?
遷移學(xué)習(xí)是機(jī)器學(xué)習(xí)和人工智能的一個(gè)分支,其目的是將從一個(gè)任務(wù)(源任務(wù))中獲得的知識(shí)應(yīng)用到一個(gè)不同但相似的任務(wù)(目標(biāo)任務(wù))中。
例如,在學(xué)習(xí)對(duì)維基百科文本進(jìn)行分類時(shí)獲得的知識(shí)可以用于解決法律文本分類問(wèn)題。另一個(gè)例子是利用在學(xué)習(xí)對(duì)汽車進(jìn)行分類時(shí)獲得的知識(shí)來(lái)識(shí)別天空中的鳥(niǎo)類。這些樣本之間存在關(guān)聯(lián)。我們沒(méi)有在鳥(niǎo)類檢測(cè)上使用文本分類模型。
遷移學(xué)習(xí)是指從相關(guān)的已經(jīng)學(xué)習(xí)過(guò)的任務(wù)中遷移知識(shí),從而對(duì)新的任務(wù)中的學(xué)習(xí)進(jìn)行改進(jìn)
總而言之,遷移學(xué)習(xí)是一個(gè)讓你不必重復(fù)發(fā)明輪子的領(lǐng)域,并幫助你在很短的時(shí)間內(nèi)構(gòu)建AI應(yīng)用。
遷移學(xué)習(xí)的歷史
==========
為了展示遷移學(xué)習(xí)的力量,我們可以引用Andrew Ng的話:
遷移學(xué)習(xí)將是繼監(jiān)督學(xué)習(xí)之后機(jī)器學(xué)習(xí)商業(yè)成功的下一個(gè)驅(qū)動(dòng)因素
遷移學(xué)習(xí)的歷史可以追溯到1993年。Lorien Pratt的論文“Discriminability-Based Transfer between Neural Networks”打開(kāi)了潘多拉的盒子,向世界介紹了遷移學(xué)習(xí)的潛力。1997年7月,“Machine Learning”雜志發(fā)表了一篇遷移學(xué)習(xí)論文專刊。隨著該領(lǐng)域的深入,諸如多任務(wù)學(xué)習(xí)等相鄰主題也被納入遷移學(xué)習(xí)領(lǐng)域?!癓earning to Learn”是這一領(lǐng)域的先驅(qū)書(shū)籍之一。如今,遷移學(xué)習(xí)是科技企業(yè)家構(gòu)建新的人工智能解決方案、研究人員推動(dòng)機(jī)器學(xué)習(xí)前沿的強(qiáng)大源泉。
遷移學(xué)習(xí)是如何工作的?
==============
實(shí)現(xiàn)遷移學(xué)習(xí)有三個(gè)要求:
由第三方開(kāi)發(fā)開(kāi)源預(yù)訓(xùn)練模型
重用模型
對(duì)問(wèn)題進(jìn)行微調(diào)
開(kāi)發(fā)開(kāi)源預(yù)訓(xùn)練模型
預(yù)訓(xùn)練的模型是由其他人創(chuàng)建和訓(xùn)練來(lái)解決與我們類似的問(wèn)題的模型。在實(shí)踐中,幾乎總是有人是科技巨頭或一群明星研究人員。他們通常選擇一個(gè)非常大的數(shù)據(jù)集作為他們的基礎(chǔ)數(shù)據(jù)集,比如ImageNet或Wikipedia Corpus。然后,他們創(chuàng)建一個(gè)大型神經(jīng)網(wǎng)絡(luò)(例如,VGG19有143,667,240個(gè)參數(shù))來(lái)解決一個(gè)特定的問(wèn)題(例如,這個(gè)問(wèn)題用VGG19做圖像分類。)當(dāng)然,這個(gè)預(yù)先訓(xùn)練過(guò)的模型必須公開(kāi),這樣我們就可以利用這些模型并重新使用它們。
重用模型
在我們掌握了這些預(yù)先訓(xùn)練好的模型之后,我們重新定位學(xué)習(xí)到的知識(shí),包括層、特征、權(quán)重和偏差。有幾種方法可以將預(yù)先訓(xùn)練好的模型加載到我們的環(huán)境中。最后,它只是一個(gè)包含相關(guān)信息的文件/文件夾。然而,深度學(xué)習(xí)庫(kù)已經(jīng)托管了許多這些預(yù)先訓(xùn)練過(guò)的模型,這使得它們更容易訪問(wèn):
TensorFlow Hub
Keras Applications
PyTorch Hub
你可以使用上面的一個(gè)源來(lái)加載經(jīng)過(guò)訓(xùn)練的模型。它通常會(huì)有所有的層和權(quán)重,你可以根據(jù)你的意愿調(diào)整網(wǎng)絡(luò)。
對(duì)問(wèn)題進(jìn)行微調(diào)
現(xiàn)在的模型也許能解決我們的問(wèn)題。對(duì)預(yù)先訓(xùn)練好的模型進(jìn)行微調(diào)通常更好,原因有兩個(gè):
這樣我們可以達(dá)到更高的精度。
我們的微調(diào)模型可以產(chǎn)生正確的格式的輸出。
一般來(lái)說(shuō),在神經(jīng)網(wǎng)絡(luò)中,底層和中層通常代表一般的特征,而頂層則代表特定問(wèn)題的特征。由于我們的新問(wèn)題與原來(lái)的問(wèn)題不同,我們傾向于刪除頂層。通過(guò)為我們的問(wèn)題添加特定的層,我們可以達(dá)到更高的精度。
在刪除頂層之后,我們需要放置自己的層,這樣我們就可以得到我們想要的輸出。例如,使用ImageNet訓(xùn)練的模型可以分類多達(dá)1000個(gè)對(duì)象。如果我們?cè)噲D對(duì)手寫(xiě)數(shù)字進(jìn)行分類(例如,MNIST classification),那么最后得到一個(gè)只有10個(gè)神經(jīng)元的層可能會(huì)更好。
在我們將自定義層添加到預(yù)先訓(xùn)練好的模型之后,我們可以用特殊的損失函數(shù)和優(yōu)化器來(lái)配置它,并通過(guò)額外的訓(xùn)練進(jìn)行微調(diào)。
計(jì)算機(jī)視覺(jué)中的4個(gè)預(yù)訓(xùn)練模型
這里有四個(gè)預(yù)先訓(xùn)練好的網(wǎng)絡(luò),可以用于計(jì)算機(jī)視覺(jué)任務(wù),如圖像生成、神經(jīng)風(fēng)格轉(zhuǎn)換、圖像分類、圖像描述、異常檢測(cè)等:
VGG19
Inceptionv3 (GoogLeNet)
ResNet50
EfficientNet
讓我們一個(gè)一個(gè)地深入研究。
VGG-19
VGG是一種卷積神經(jīng)網(wǎng)絡(luò),深度為19層。它是由牛津大學(xué)的Karen Simonyan和Andrew Zisserman在2014年構(gòu)建和訓(xùn)練的,論文為:Very Deep Convolutional Networks for large Image Recognition。VGG-19網(wǎng)絡(luò)還使用ImageNet數(shù)據(jù)庫(kù)中的100多萬(wàn)張圖像進(jìn)行訓(xùn)練。當(dāng)然,你可以使用ImageNet訓(xùn)練過(guò)的權(quán)重導(dǎo)入模型。這個(gè)預(yù)先訓(xùn)練過(guò)的網(wǎng)絡(luò)可以分類多達(dá)1000個(gè)物體。對(duì)224x224像素的彩色圖像進(jìn)行網(wǎng)絡(luò)訓(xùn)練。以下是關(guān)于其大小和性能的簡(jiǎn)要信息:
大?。?49 MB
Top-1 準(zhǔn)確率:71.3%
Top-5 準(zhǔn)確率:90.0%
參數(shù)個(gè)數(shù):143,667,240
深度:26
Inceptionv3 (GoogLeNet)
Inceptionv3是一個(gè)深度為50層的卷積神經(jīng)網(wǎng)絡(luò)。它是由谷歌構(gòu)建和訓(xùn)練的,你可以查看這篇論文:“Going deep with convolutions”。預(yù)訓(xùn)練好的帶有ImageNet權(quán)重的Inceptionv3可以分類多達(dá)1000個(gè)對(duì)象。該網(wǎng)絡(luò)的圖像輸入大小為299x299像素,大于VGG19網(wǎng)絡(luò)。VGG19是2014年ImageNet競(jìng)賽的亞軍,而Inception是冠軍。以下是對(duì)Inceptionv3特性的簡(jiǎn)要總結(jié):
尺寸:92 MB
Top-1 準(zhǔn)確率:77.9%
Top-5 準(zhǔn)確率:93.7%
參數(shù)數(shù)量:23,851,784
深度:159
ResNet50 (Residual Network)
ResNet50是一個(gè)卷積神經(jīng)網(wǎng)絡(luò),深度為50層。它是由微軟于2015年建立和訓(xùn)練的,論文:[Deep Residual Learning for Image Recognition](http://deep Residual Learning for Image Recognition /)。該模型對(duì)ImageNet數(shù)據(jù)庫(kù)中的100多萬(wàn)張圖像進(jìn)行了訓(xùn)練。與VGG-19一樣,它可以分類多達(dá)1000個(gè)對(duì)象,網(wǎng)絡(luò)訓(xùn)練的是224x224像素的彩色圖像。以下是關(guān)于其大小和性能的簡(jiǎn)要信息:
尺寸:98 MB
Top-1 準(zhǔn)確率:74.9%
Top-5 準(zhǔn)確率:92.1%
參數(shù)數(shù)量:25,636,712
如果你比較ResNet50和VGG19,你會(huì)發(fā)現(xiàn)ResNet50實(shí)際上比VGG19性能更好,盡管它的復(fù)雜性更低。你也可以使用更新的版本,如ResNet101,ResNet152,ResNet50V2,ResNet101V2,ResNet152V2。
EfficientNet
EfficientNet是一種最先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò),由谷歌在2019年的論文“efficient entnet: Rethinking Model Scaling for convolutional neural Networks”中訓(xùn)練并發(fā)布。EfficientNet有8種可選實(shí)現(xiàn)(B0到B7),甚至最簡(jiǎn)單的EfficientNet B0也是非常出色的。通過(guò)530萬(wàn)個(gè)參數(shù),實(shí)現(xiàn)了77.1%的最高精度性能。
EfficientNetB0的特性簡(jiǎn)要介紹如下:
尺寸:29 MB
Top-1 準(zhǔn)確率:77.1%
Top-5 準(zhǔn)確率:93.3%
參數(shù)數(shù)量:~5,300,000
深度:159
其他的計(jì)算機(jī)視覺(jué)問(wèn)題的預(yù)訓(xùn)練模型
我們列出了四種最先進(jìn)的獲獎(jiǎng)卷積神經(jīng)網(wǎng)絡(luò)模型。然而,還有幾十種其他模型可供遷移學(xué)習(xí)使用。下面是對(duì)這些模型的基準(zhǔn)分析,這些模型都可以在Keras Applications中獲得。
總結(jié)
=====
在一個(gè)我們可以很容易地獲得最先進(jìn)的神經(jīng)網(wǎng)絡(luò)模型的世界里,試圖用有限的資源建立你自己的模型就像是在重復(fù)發(fā)明輪子,是毫無(wú)意義的。
相反,嘗試使用這些訓(xùn)練模型,在上面添加一些新的層,考慮你的特殊計(jì)算機(jī)視覺(jué)任務(wù),然后訓(xùn)練。其結(jié)果將比你從頭構(gòu)建的模型更成功。
審核編輯 黃昊宇
-
人工智能
+關(guān)注
關(guān)注
1789文章
46669瀏覽量
237104 -
模型
+關(guān)注
關(guān)注
1文章
3116瀏覽量
48660 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
8文章
1694瀏覽量
45901 -
遷移學(xué)習(xí)
+關(guān)注
關(guān)注
0文章
74瀏覽量
5554
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論