迁移学习简介(tranfer learning)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
一、什么是遷移學習?
遷移學習將一個場景中學到的知識遷移到另一個場景中
達叔也說將來遷移學習也會向現在的機器學習一樣的火
例如將貓狗分類的學習模型遷移到其它相似的任務上面,用來分辨老鷹和布谷鳥(因為都是拍攝的真實圖片,所以屬于相同的域,抽取特征的方法相同),或者是分別卡通圖像(卡通圖像和真實圖片屬于不同的域,遷移時要消除域之間的差異)
二、為什么要遷移學習?
- 使用深度學習技術解決問題的過程中,最常見的障礙在于:模型有大量的參數需要訓練,因此需要海量的訓練數據作支撐
- 在面對某一領域的具體問題時,通常可能無法得到構建模型所需的規模的數據
- 借助遷移學習,在一個模型訓練任務中針對某種類型數據獲得的關系也可以輕松地應用于同一領域的不同問題
三、具體怎么做?
具體有如下方法:
由于在最后一列的兩種情況中,截止寫博客的時間還應用的不廣,所以就先介紹第一列的兩種情況。
3.1目標數據和原始數據都有標簽
3.1.1模型Fine-tune
任務現狀:
1. 原始數據和目標數據都有標簽
2. 目標數據很少
例子:(有監督學習)電商小品類商品識別
源數據:Imagenet多種物體圖片
目標數據:電商小品類商品圖片
基本思想:
1.用原始Imagenet訓練一個效果比較好的模型
2.用訓練好的模型在自己的數據集上進行調優(重點:微微調整,防止過擬合)
模型Fine-tune實現方法:
方法1:保守訓練 Conservative Training
方法2:層遷移 Layer Transfer
方法1:保守訓練 Conservative Training
保守訓練的做法:
先訓練好一個Model,得到參數和是某類圖片的概率向量,接著有兩種不同角度來訓練新的數據(注意:重點是微微調整,防止過擬合):
-
保證原模型參數變化不大
-
讓輸出結果的概率向量很接近
方法2:層遷移 Layer Transfer
層遷移做法:
規定某些層的參數固定(learning rate設置為0或者很小),不允許抖動。
防止無法無天的變動
問題:應該拷貝哪些層的參數呢?
語音識別問題一般是最后的一些層
圖像的通常是開始的一些層
3.1.2模型Multitask Learning
在原來任務和目的任務的效果都不會差組合網絡,公用某些層
基本思想:將不同的任務數據線放在一起共同提取出共性,然后分開訓練,已解決具體的問題(捕捉共性以提升兩個任務的效果)
相比較而言,上圖左邊方式的比較常用
典型應用:不同語種的識別問題上,提取人類語言特性,然后再去識別不同的語言
3.2原始數據有標簽,目標數據沒有標簽
3.2.1域對抗 Domain-adversarial training
如下圖任務:識別彩色的識別手寫體
MNIST中,數據有標簽
MNIST-M中,不使用數據標簽
思想:
兩類不同Domain的圖像目標:將Domain消除掉
實際上識別過程可以分為兩部分:1.抽取特征(如得到一個4096維的向量),2.分類(到底是1,2,3···)
那么我們就可以通過feature區分,如果用feature區分不出來是來自哪個Domain的(同時還要保證能分出來1,2,3……),就說明說明成功了
我們需要設置一個警察,時刻監督是否真的區分不出來是哪個Domain圖片
注意:紅色區域表示負責監督的警察,警察要把自己的loss降低,警察的loss越低說明越容易區分,所以要做一個反向的變換,我越不讓你能區分是哪一個,如此反復警察直至分不清(對抗),這樣就得到了通用的特征。
3.2.2零樣本學習 Zero-shot Learning
任務描述:
有了一個能區分貓和狗的模型,但此時來了一個之前從未見過的草泥馬,應該怎么區分呢?
解決思路:
不識別動物本身,只識別動物的屬性,將動物的屬性放在一個大的數據庫里面,有了新的樣本,直接對比數據庫中的屬性來區分是哪種動物
在語音識別領域這種思路就像是提取出語言的屬性,所有語言在某些屬性上都很相似,就像是世界通用語言一樣,但不同語言又有獨特的屬性
四、總結一下
遷移學習就是將已得到的結果遷移到那些難以解決的問題上去
而問題難以解決的原因大概有兩個:1.數據不夠,2.無法區分
對于問題1可以將原有的Model稍微改一下拿過去用,或者共同訓練
對于問題2可以和原問題結合,消除數據間差異(不同域之間的遷移)或劃分屬性(直接拆分后判斷屬性)來將原問題的結果給現問題參考借鑒
--------------------- 本文來自 土豆洋芋山藥蛋 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/qq_33414271/article/details/78756366?utm_source=copy
?
總結
以上是生活随笔為你收集整理的迁移学习简介(tranfer learning)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDL及扩展库在ARM-Linux 完整
- 下一篇: 手动命令行编译APK