李宏毅——終身學習lifelong learning

導讀

人從小大大用同一個腦袋學習
但每個作業都訓練同一個神經網絡
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-di6RM4AY-1569768951050)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p83)]
爲什麼不用同一個網絡學習不同的任務呢?
終身學習的不同稱呼
LLL(life long learning)
continuous learning
never ending learning
incremental learning
可以做不同的任務
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3t4lJvqA-1569768951050)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p84)]

要解決的問題

1、學過的舊東西記下來,但要能學新的
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SBmpE8Tg-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p85)]
例子:手寫數字辨識
在一個三層的網絡中學習第一個有噪音的任務,在任務1學到的東西可以用在任務2上。任務1的正確率甚至沒有任務2高,這個可以視爲遷移學習。
讓機器學任務2後,任務2的準確率更高,但是任務1的準確率下降
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MST77xk1-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p93)]
是否是因爲網絡過於簡單?不是的,因爲同時學任務1和任務2,能夠學的比較好
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-sxFuzjEx-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p94)]

例子:問答系統。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YrtmBVvM-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p95)]
機器學習的訓練資料是:文章、問題、答案
bAbi訓練集有20種不同的題型
機器從第一個任務開始學習,學到第20個。
看機器對題型5的回答,只有剛學完題型5時正確率比較高。
對於其他題型也是這樣的。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vfjMjME8-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p96)]
如果同時學20個任務的話,正確率還行。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BW0DJ5Yx-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p97)]
證明網絡有能力學完這些東西,但是沒有做到。
這種現象叫做災難遺忘。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-TfLcWmpM-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p98)]

如何解決

1、多任務學習
很難實現,要保存所有的舊資料纔行,學習可能很久(存儲、計算問題)
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JetuvK80-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p99)]

遺忘問題

Elastic Weight Consolidation(EWC)

基本思想

有一些weight重要,但是有一些不重要;保護重要weight,只調不重要的額。
做法:對於每一個theta,有一個守衛參數b
修改loss,計算當前參數與之前的參數之間的距離。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lLzsO6TB-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p100)]
b用來表示保護theta的程度
可以將theta視爲一種regularization
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UUNuQ2Ky-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p101)]

理解

假設有兩個任務,網絡有兩個參數theta,顏色越深,說明loss越小
學習任務1時,參數從theta0學到thetab,再學習任務2時,繼續訓練,學習到theta* ,此時任務2的loss變小,但是任務2的變大
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5DUrfgD9-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p103)]
在EWC中,可以使用某種方法算重要性,比如算微分,theta1比較小,也就是說在theta1上,改變參數,對結果影響不大,b1可以設爲比較小的值,但是theta2微分比較大,b2設置的比較大
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-iviLl9xC-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p105)]
移動時,儘量不要動theta2
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Syd1dwTf-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p106)]
當然求導不是唯一的方法,可以用其他的方法。
原始EWC的實驗結果
分別訓練A,B,C,橫軸表示在不同任務上的表現,縱軸表示訓練階段
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qI0XmEaj-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p107)]

EWC的變形

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6SVcr3Bq-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p108)]

其他方法

生成數據

生成數據,來緩解數據過多佔用內存的問題
先讓機器學task1,然後學task2,同時要訓練generator,學會生成task1的數據,此時就可以把task1的data丟掉,用生成的數據和task2的放在一起訓練。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-VsKQJmAt-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p109)]
但是目前靠機器生成複雜數據,能不能做的起來尚待研究

新增類

如果訓練任務需要不同的網絡呢?比如類增量問題
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cX9GeMCn-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p110)]

knowledge transfer

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yocblAG7-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p112)]
不爲每個任務訓練模型,讓不同模型之間互通有無,也可以節省模型開銷空間
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QfjK32Vc-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p111)]

life-long vs transfer

不同點:在transfer時,只在乎任務2,不在乎任務1點表現,但是life-long希望都表現好
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qnH3Fu8o-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p113)]

如何衡量life-long learning

通常用matrix,每個row代表學習的階段,column表示在任務X上的表現。
Accuracy是最後一行的平均
多不會遺忘:backward Transfer,學到某個階段時減去剛學過時的表現,求平均
(通常爲負)
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4GAyP9s8-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p114)]
forward Transfer:表示能transfer到沒學的任務的表現
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fOARiixU-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p115)]

GEM

gradient Episodic Memory
在新的任務算出gradient,再計算之前的Gradient的方向。算出現在移動的方向。這個方向不會傷害到原有的任務,而且和當前gradient的方向越近越好。
在這裏插入圖片描述
這種需要存一些過去的數據。
它的表現:後續的學習不會影響之前的任務,甚至能有所改善
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-k2X5tdhX-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p117)]

Model Expansion

有可能真的學不下了,能不能擴張模型
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-z4Rr1dps-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p118)]
模型擴張的速度應該比任務來的速度慢。這個是個尚待研究的問題,沒有太多研究。

Progressive Neural Network

一個網絡做任務1,網絡1的輸出當作網絡2的輸入,網絡1、2的輸出都當作網絡3的輸入
實操上做不了太多任務
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NzlaioIc-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p119)]

expert gate

每個task訓練一個網絡,每個新任務進來,看和哪個舊任務最像,希望做到knoledege transfer。這裏模型擴張的速度和新任務到來的速度一樣,在任務較多的時候也是會有比較多的模型
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-n8YkVkqi-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p120)]

Net2Net

讓網絡長寬
直接加neuron的話,可能會加噪聲,所以如何加神經元,但是不引入噪聲很重要
做法:把神經元分裂,w仍然是c和d,但是分裂後變爲f/2,但是問題是加入的神經元的gradient都一樣,所以要加一個小小的noise
也不是每進來一個任務就加網絡,而是看訓練效果怎麼樣,決定是否expand
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46DJiMKV-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p121)]

curiculum learning

在未來可能會有的問題
這些任務的順序怎麼排序
例子中,先學任務1,再學任務2,效果不好
但是先學任務2,再學任務1時,一開始任務1效果不好,但是沒有忘記
所以說明,是否發生遺忘,和任務排序有非常重要的關係。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xMBcS4w9-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p122)]
已有的研究
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-pZ3un5IH-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p123)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章