2003 您的安全設(shè)置不允許網(wǎng)站使用安裝seort什么意思
1. 遷移學(xué)習(xí) Transfer Learning
1.1 Motivation
- 能在一個任務(wù)上學(xué)習(xí)一個模型,然后用其來解決相關(guān)的別的任務(wù),這樣我們在一個地方花的時間,學(xué)習(xí)的一些知識,研究的一些看法可以在可以在另外一個地方被使用到;
- 在深度學(xué)習(xí)中我們會訓(xùn)練很多深層的神經(jīng)網(wǎng)絡(luò), 訓(xùn)練這些神經(jīng)網(wǎng)絡(luò)需要大量(帶標(biāo)簽)數(shù)據(jù),同時訓(xùn)練的代價非常高。就是說,我們很難對每一個任務(wù)都去制作一個巨大的數(shù)據(jù)集去訓(xùn)練。
如果我們在一個任務(wù)上訓(xùn)練好的模型,能在其他地方使用,效果最好。
1.2 Approaches
- 訓(xùn)練好一個模型,然后把它做成一個特征提取的模塊(例如:ResNet,VGG16);
- 在一個相關(guān)的任務(wù)上訓(xùn)練好一個模型,然后在另一個任務(wù)上直接用它;
- 訓(xùn)練好一個模型,然后對其進(jìn)行微調(diào),使得模型在新的任務(wù)上能夠適應(yīng)。
1.3 Related to
- 半監(jiān)督學(xué)習(xí):利用未標(biāo)記數(shù)據(jù),幫助帶標(biāo)記數(shù)據(jù)推進(jìn)工作;
- zero-shot / few-shot learning:極端條件下,任務(wù)中我們沒有樣本或者樣本很少。對于前者,我們必須學(xué)習(xí)到關(guān)于這個新樣本特征的映射。對于后者,我們可以在 big data sets 上面先學(xué)習(xí)到一個一般化的映射,然后再到少量樣本上進(jìn)行映射的更新或升級;
- 多任務(wù)學(xué)習(xí):每一個任務(wù)都有自己的數(shù)據(jù),數(shù)據(jù)量不夠,這是前提。但每個任務(wù)之間是相關(guān)的,那么可以將所有的數(shù)據(jù)放在一起,然后同時訓(xùn)練多個任務(wù),任務(wù)之間互相收益。
2. Applications in CV
2.1 轉(zhuǎn)移知識 Transferring Knowledge
dataset | ImageNet | Car-dataset | Mnist |
---|---|---|---|
examples | 1.2M | 50K | 60K |
classes | 1000 | 100 | 10 |
- 存在許多大規(guī)模的已經(jīng)標(biāo)注好的CV數(shù)據(jù)集;
- 通常自己任務(wù)的數(shù)據(jù)集會比大的數(shù)據(jù)集(例如ImageNet)小很多。正常情況下,在不知道模型效果如何的情況下,我們是慢慢投入數(shù)據(jù)。如果效果好,就繼續(xù)投入,這是一個迭代的過程。
2.2 預(yù)訓(xùn)練 Pre-trained
對于一般的神經(jīng)網(wǎng)絡(luò),我們可以把它分成兩部分,一部分叫編碼器(做特征提取,將原始圖片的原始像素轉(zhuǎn)化在一個語義空間中可以線性可分的一些特征),另一部分叫解碼器(簡單的線性分類器,將編碼器的表示映射成想要的標(biāo)號,或者是做一些決策)。
預(yù)訓(xùn)練模型:
在一個比較大的數(shù)據(jù)集上訓(xùn)練好一個模型,具有一定的泛化能力(放在新的任務(wù)上或者新的數(shù)據(jù)集上,原模型多多少少有點(diǎn)效果)。舉個例子,一個解決分類的神經(jīng)網(wǎng)絡(luò)模型,即使最后它完成的是分類問題,但在網(wǎng)絡(luò)的前面幾層,它還是學(xué)會了如何去處理圖片像素的信息。
2.3 微調(diào) Fine-Tuning
微調(diào)是怎么做的:
- 在新的任務(wù)上構(gòu)建一個新的模型,但新模型的架構(gòu)要跟與訓(xùn)練的模型架構(gòu)一致;
- 在找到合適的預(yù)訓(xùn)練模型之后要初始化我們的模型(將預(yù)訓(xùn)練模型中,除了最后一層之外的權(quán)重都復(fù)制給自己的模型;最后一層還是用隨機(jī)的權(quán)重)。
- 在初始化后,就可以開始學(xué)習(xí)了,這步跟我們平常的學(xué)習(xí)沒有什么區(qū)別。
- 有一點(diǎn)另外的,就是要限制fine-tuned的學(xué)習(xí)率。這是因?yàn)槌跏嫉慕Y(jié)果已經(jīng)是比較好了(即預(yù)訓(xùn)練已經(jīng)取得不錯的效果),已經(jīng)在想要“解”的附近了,限制學(xué)習(xí)率的做法可以使得我們不會走太遠(yuǎn);另外就是說不要訓(xùn)練太長的時間。限制搜索空間。
2.4 固定最底層 Freeze Bottom Layers
關(guān)于神經(jīng)網(wǎng)絡(luò),我們通常認(rèn)為它是一個層次化的學(xué)習(xí)過程。最底層一般是學(xué)習(xí)了底層的一些特征表示,隨著層數(shù)越來越高,它多多少少會學(xué)習(xí)到更全局上、語義上的東西。所以一般來說,底層與它上面的層沒有太大的關(guān)系。
固定多少層還是要根據(jù)具體應(yīng)用來看,假設(shè)應(yīng)用與預(yù)訓(xùn)練模型差別比較大的話,可以多訓(xùn)練一些層。
2.5 如何尋找預(yù)訓(xùn)練模型
- 首先要去有沒有我們想要的,其次是看它是基于哪種訓(xùn)練集上訓(xùn)練出來的。
- ModelHub、ModelZoom。
2.6 fine-tuning 的一些應(yīng)用
3. 總結(jié)
- 預(yù)訓(xùn)練模型是基于大數(shù)據(jù)集上訓(xùn)練的,任務(wù)通常是圖片分類;
- 除最后底層的權(quán)重要隨機(jī)初始化外,前面層數(shù)的權(quán)重都直接采用預(yù)訓(xùn)練模型上已經(jīng)訓(xùn)練好的權(quán)重。
- 微調(diào)的話,需要采用小的學(xué)習(xí)率進(jìn)行調(diào)整,因?yàn)檫@樣會加速收斂。有的時候會提升精度,有時也不會,但通常情況下不會變差。在CV中是經(jīng)常被推薦的做法。
by: 沐神