李宏毅機器學習2016 第十七講 遷移學習

視頻鏈接:李宏毅機器學習(2016)_演講?公開課_科技_bilibili_嗶哩嗶哩

課程資源:Hung-yi Lee

課程相關PPT已經打包命名好了:鏈接:pan.baidu.com/s/1c3Jyh6 密碼:77u5

我的第十六講筆記:李宏毅機器學習2016 第十六講 生成對抗網路 GAN

Transfer Learning

本章主要講述了遷移學習的原理,以及各種可能出現的情況及對應的方法

1.遷移學習

在現實生活中,我們要獲取帶標籤的與任務直接相關的數據可能是比較難的,其數據量會比較少,不充足;但是那些與任務無直接相關的數據卻是能夠比較容易獲取的,數據量比較大;

遷移學習指的是把已經學好的模型參數遷移到新的模型來幫助新模型進行訓練。

將與任務直接相關的數據稱為Target Data,將與任務不是直接相關的數據稱為Source Data

根據Target Data和Source Data是否帶標籤可將遷移學習分為不同種類。

2.模型微調(Model Fine-tuning)

Fine-tuning適用於Target Data和Source Data都帶標籤的情況。但是Target Data的數據量是非常少的。該方法的思想是使用Source Data訓練模型,然後用Target Data對模型進行微調(Fine-tuning),因為Target Data非常有限,因此需要注意避免出現過擬合。

方法①Conservative Learning

利用Source data訓練出的模型,初始化將用Target data訓練的模型,並使得兩個模型的參數儘可能相近。新舊模型差別不要太大,需要加限制。

方法②Layer Transfer

這是一種非常常見的方法,將訓練好的模型的某些層遷移到將用Target Data訓練的模型。

為了避免過擬合可以只訓練不是直接遷移來的網路層,如果說有足夠的數據的話,可以直接對網路進行微調。

常見問題哪些層應該被遷移呢?

對於不同的任務,應該分別處理。對於語音問題,通常遷移後面幾層;對於圖像問題,通常遷移前面幾層。

3.多任務學習(Multitask Learning)

Fine-tuning方法只在乎在target data數據上表現得好不好,Multitask Learning(多任務學習)則需在Source Data和Target Data表現得都好。

多任務學習適用於那些任務相像相似的情況。此方法將任務分開來訓練,共享某些層,在最後的層一定是分開來訓練的。

在不同語音識別上的應用。即使直覺上中文和別的語言可能有很大的不同,但是其實這樣的做法效果是非常好的。

4.領域對抗訓練(Domain-adversarial training)

Domain-adversarial training適用於Source Data帶標籤,而Target Data是不帶標籤的情況。其主要思想如圖所示。通過source domain和target domain的數據投影到同一個空間內,再進行學習。希望特徵提取器能夠去除掉domain的特性,能夠保證不同的domain混在一起,而不是分開。

主要組成是特徵抽取器(feature extractor)、類預測器(Label predictor)和領域分類器(Domain Classifier)。

對於特徵抽取器來說,要最大化標籤分類的準確度和最小化領域分類的準確度,類預測器則要最大化標籤分類準確度,而領域分類器要最大化領域分類的準確度。這其中就存在領域對抗。

實現方法如下圖。

在領域分類器前加一個梯度反轉層(gradient reversal layer)。

5.Zero-shot learning

Zero-shot learning適用於Source Data帶標籤,而Target Data是不帶標籤的情況。

其主要思想是通過其屬性來表達每一個類。

訓練時儘可能找到充足的屬性能夠一一對應,上圖屬性例如是否帶毛,有沒有四條腿等等。

測試時就可以找到擁有最多相似屬性的類。

實現方法可以將數據和屬性都映射到一個相同的向量空間中,映射函數f和g都可以通過神經網路進行訓練,需要保證的是一張圖經過f映射結果和其屬性經過g映射的結果在向量空間的結果要儘可能相近。當出現新的測試數據就可以直接將其用f和g進行映射,找到最相似的。

6.Self-taught Learning

Self-taught Learning適用於Target Data帶標籤而Source Data不帶標籤的情況。

7.總結

本章主要講解了模型微調(Model Fine-tuning)、多任務學習(Multitask Learning)、領域對抗訓練(Domain-adversarial training)、Zero-shot learning、Self-taught Learning等多種遷移學習的方法及其具體的適用情況。


推薦閱讀:

數學 · CNN · 從 NN 到 CNN
深度學習入門系列,用白話文的方式讓你看得懂學的快(第七章、第八章)
機器學習系列:遞歸神經網路

TAG:机器学习 | 迁移学习TransferLearning |