什么是fine-tuning?
在實(shí)踐中,由于數(shù)據(jù)集不夠大,很少有人從頭開始訓(xùn)練網(wǎng)絡(luò)。常見的做法是使用預(yù)訓(xùn)練的網(wǎng)絡(luò)(例如在ImageNet上訓(xùn)練的分類1000類的網(wǎng)絡(luò))來(lái)重新fine-tuning(也叫微調(diào)),或者當(dāng)做特征提取器。
以下是常見的兩類遷移學(xué)習(xí)場(chǎng)景:
1 卷積網(wǎng)絡(luò)當(dāng)做特征提取器。使用在ImageNet上預(yù)訓(xùn)練的網(wǎng)絡(luò),去掉最后的全連接層,剩余部分當(dāng)做特征提取器(例如AlexNet在最后分類器前,是4096維的特征向量)。這樣提取的特征叫做CNN codes。得到這樣的特征后,可以使用線性分類器(Liner SVM、Softmax等)來(lái)分類圖像。
2 Fine-tuning卷積網(wǎng)絡(luò)。替換掉網(wǎng)絡(luò)的輸入層(數(shù)據(jù)),使用新的數(shù)據(jù)繼續(xù)訓(xùn)練。Fine-tune時(shí)可以選擇fine-tune全部層或部分層。通常,前面的層提取的是圖像的通用特征(generic features)(例如邊緣檢測(cè),色彩檢測(cè)),這些特征對(duì)許多任務(wù)都有用。后面的層提取的是與特定類別有關(guān)的特征,因此fine-tune時(shí)常常只需要Fine-tuning后面的層。
預(yù)訓(xùn)練模型
在ImageNet上訓(xùn)練一個(gè)網(wǎng)絡(luò),即使使用多GPU也要花費(fèi)很長(zhǎng)時(shí)間。因此人們通常共享他們預(yù)訓(xùn)練好的網(wǎng)絡(luò),這樣有利于其他人再去使用。例如,Caffe有預(yù)訓(xùn)練好的網(wǎng)絡(luò)地址Model Zoo。
何時(shí)以及如何Fine-tune
決定如何使用遷移學(xué)習(xí)的因素有很多,這是最重要的只有兩個(gè):新數(shù)據(jù)集的大小、以及新數(shù)據(jù)和原數(shù)據(jù)集的相似程度。有一點(diǎn)一定記住:網(wǎng)絡(luò)前幾層學(xué)到的是通用特征,后面幾層學(xué)到的是與類別相關(guān)的特征。這里有使用的四個(gè)場(chǎng)景:
1、新數(shù)據(jù)集比較小且和原數(shù)據(jù)集相似。因?yàn)樾聰?shù)據(jù)集比較小,如果fine-tune可能會(huì)過(guò)擬合;又因?yàn)樾屡f數(shù)據(jù)集類似,我們期望他們高層特征類似,可以使用預(yù)訓(xùn)練網(wǎng)絡(luò)當(dāng)做特征提取器,用提取的特征訓(xùn)練線性分類器。
2、新數(shù)據(jù)集大且和原數(shù)據(jù)集相似。因?yàn)樾聰?shù)據(jù)集足夠大,可以fine-tune整個(gè)網(wǎng)絡(luò)。
3、新數(shù)據(jù)集小且和原數(shù)據(jù)集不相似。新數(shù)據(jù)集小,最好不要fine-tune,和原數(shù)據(jù)集不類似,最好也不使用高層特征。這時(shí)可是使用前面層的特征來(lái)訓(xùn)練SVM分類器。
4、新數(shù)據(jù)集大且和原數(shù)據(jù)集不相似。因?yàn)樾聰?shù)據(jù)集足夠大,可以重新訓(xùn)練。但是實(shí)踐中fine-tune預(yù)訓(xùn)練模型還是有益的。新數(shù)據(jù)集足夠大,可以fine-tine整個(gè)網(wǎng)絡(luò)。
實(shí)踐建議
預(yù)訓(xùn)練模型的限制。使用預(yù)訓(xùn)練模型,受限于其網(wǎng)絡(luò)架構(gòu)。例如,你不能隨意從預(yù)訓(xùn)練模型取出卷積層。但是因?yàn)閰?shù)共享,可以輸入任意大小圖像;卷積層和池化層對(duì)輸入數(shù)據(jù)大小沒有要求(只要步長(zhǎng)stride fit),其輸出大小和屬于大小相關(guān);全連接層對(duì)輸入大小沒有要求,輸出大小固定。
學(xué)習(xí)率。與重新訓(xùn)練相比,fine-tune要使用更小的學(xué)習(xí)率。因?yàn)橛?xùn)練好的網(wǎng)絡(luò)模型權(quán)重已經(jīng)平滑,我們不希望太快扭曲(distort)它們(尤其是當(dāng)隨機(jī)初始化線性分類器來(lái)分類預(yù)訓(xùn)練模型提取的特征時(shí))。
原文鏈接:https://blog.csdn.net/weixin_42137700/article/details/82107208
剛開始接觸深度學(xué)習(xí)的時(shí)候,遷移學(xué)習(xí)與fine-tune確實(shí)有點(diǎn)搞不清楚。其實(shí)遷移學(xué)習(xí)是一個(gè)大的方向,fine-tune是實(shí)現(xiàn)遷移學(xué)習(xí)常用的一個(gè)方法。那么:
1.什么是遷移學(xué)習(xí)呢?
遷移學(xué)習(xí)顧名思義就是把已經(jīng)訓(xùn)練好的模型的參數(shù)遷移到新的模型來(lái)幫助新模型的訓(xùn)練。考慮到大部分的數(shù)據(jù)或任務(wù)是存在相關(guān)性的,所以通過(guò)遷移學(xué)習(xí)我們可以將已經(jīng)學(xué)習(xí)到的模型參數(shù),通過(guò)某種方式來(lái)分享給新的模型,從而加快優(yōu)化模型的學(xué)習(xí)效率不用像大多數(shù)模型那樣從零開始。
2.什么是fine-tune?
fine-tune是進(jìn)行遷移學(xué)習(xí)的一種手段。一般我們本身的數(shù)據(jù)集量比較小,無(wú)法重頭開始訓(xùn)練一個(gè)效果良好的模型。于是,我們只能通過(guò)遷移學(xué)習(xí),將一個(gè)網(wǎng)絡(luò),比如(VGG)前面5大層保持模型參數(shù)不變(這里的模型參數(shù)是指已經(jīng)通過(guò)Imagenet數(shù)據(jù)集訓(xùn)練好的模型參數(shù))。因?yàn)榍懊鎺讓又饕翘崛D片的特征。因此,我們也可以把這幾層當(dāng)作特征提取器,保持原有的權(quán)重不變,提取現(xiàn)有的圖片的特征。微調(diào)就是將調(diào)整后面的全連接層,或者最后的幾個(gè)卷積層加全連接層,來(lái)實(shí)現(xiàn)我們想要的結(jié)果,一般根據(jù)自己要分類的類別數(shù)等等進(jìn)行調(diào)整。
3.何時(shí)以及如何fine-tune?
首先要注意的是:網(wǎng)絡(luò)的前幾層學(xué)到的是通用的特征,后面幾層學(xué)到的是與類別相關(guān)的特征。
原文鏈接:https://blog.csdn.net/weixin_37203756/article/details/80180663
fine-tune
翻譯:微調(diào)
指的是:就是用別人訓(xùn)練好的模型,加上我們自己的數(shù)據(jù)集,來(lái)訓(xùn)練新的模型。fine tune相當(dāng)于使用別人的模型的前幾層,來(lái)提取淺層特征,然后在最后再落入我們自己的分類中。
好處:不用完全重新訓(xùn)練模型,提高效率,在比較少的迭代次數(shù)之后得到一個(gè)比較好的效果。
適用于:數(shù)據(jù)量不是很大的情況
原文鏈接:https://blog.csdn.net/qq_40234695/article/details/88889282
總結(jié)
以上是生活随笔為你收集整理的什么是fine-tuning?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sock文件
- 下一篇: 春分的美好象征(二十四节气之春分)