遷移學(xué)習(xí)前沿探究探討:低資源、領(lǐng)域泛化與安全遷移
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請(qǐng)至雷鋒網(wǎng)官網(wǎng)申請(qǐng)授權(quán)。
遷移學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要研究分支,側(cè)重于將已經(jīng)學(xué)習(xí)過的知識(shí)遷移應(yīng)用于新的問題中,以增強(qiáng)解決新問題的能力、提高解決新問題的速度。
4月8日,在AI TIME青年科學(xué)家——AI 2000學(xué)者專場(chǎng)論壇上,微軟亞洲研究院研究員王晉東做了《遷移學(xué)習(xí)前沿探究探討:低資源、領(lǐng)域泛化與安全遷移》的報(bào)告,他提到,目前遷移學(xué)習(xí)雖然在領(lǐng)域自適應(yīng)方向有大量研究,相對(duì)比較成熟。但低資源學(xué)習(xí)、安全遷移以及領(lǐng)域泛化還有很多待解決的問題。
針對(duì)這三方面的工作,王晉東提供了三個(gè)簡(jiǎn)單的、新的擴(kuò)展思路,以下是演講全文,AI科技評(píng)論做了不改變?cè)獾恼怼?/p>
所有內(nèi)容可以在作者整理維護(hù)的Github上最流行的遷移學(xué)習(xí)倉(cāng)庫(kù):transferlearning.xyz 上找到相關(guān)材料
今天介紹遷移學(xué)習(xí)三個(gè)方向的工作:低資源、領(lǐng)域泛化與安全遷移。遷移學(xué)習(xí)英文名稱:Transfer learning,基本范式是通過微調(diào)“重用”預(yù)訓(xùn)練模型??v觀機(jī)器學(xué)習(xí)的絕大多數(shù)應(yīng)用,都會(huì)采用這種預(yù)訓(xùn)練+微調(diào)的范式,節(jié)省成本。
上圖遷移學(xué)習(xí)范式示例,在Teacher網(wǎng)絡(luò)模型中,經(jīng)過輸入、輸出一整套流程訓(xùn)練,已經(jīng)獲得比較好的性能。Student模型想要訓(xùn)練,則可以固定或者借用Teacher網(wǎng)絡(luò)的Tk層,然后單獨(dú)根據(jù)任務(wù)微調(diào)模型,如此可以獲得更好的性能。
目前,在CV領(lǐng)域,已經(jīng)存在ResNet;在NLP領(lǐng)域已經(jīng)有BERT、RoBERT等模型可供使用。如上圖,2016年GitHub上有個(gè)統(tǒng)計(jì),關(guān)于遷移學(xué)習(xí)的Repository總計(jì)有2220個(gè),當(dāng)前可能會(huì)更多。
上圖展示了,過去五年,遷移學(xué)習(xí)領(lǐng)域在頂級(jí)會(huì)議上取得的進(jìn)展。最早是吳恩達(dá)在NIPS16上表示遷移學(xué)習(xí)在未來非常重要;然后,CVPR2018上有一篇最佳論文是關(guān)于遷移學(xué)習(xí)的;同年,IJCAI18上,有團(tuán)隊(duì)用遷移學(xué)習(xí)的手法贏得ADs競(jìng)賽;2019年,ACL會(huì)議上,有學(xué)者強(qiáng)調(diào)遷移學(xué)習(xí)的范式在NLP領(lǐng)域非常重要,一年后,一篇遷移學(xué)習(xí)論文拿到了該會(huì)議的最佳論文提名。
一直到去年,深度學(xué)習(xí)三巨頭表示,現(xiàn)實(shí)的世界中,數(shù)據(jù)分布不穩(wěn)定,有必要開發(fā)快速適應(yīng)小數(shù)據(jù)集變化的遷移模型。
事實(shí)上,隨著我們認(rèn)知越來越多,會(huì)逐漸認(rèn)識(shí)到遷移學(xué)習(xí)有很多問題待解決,需要不斷開發(fā)新的方法。
在移學(xué)習(xí)范式中,如果訓(xùn)練數(shù)據(jù)和預(yù)訓(xùn)練模型剛好匹配,則能開發(fā)出性能優(yōu)越的應(yīng)用;如果有較大差異,則可以借助“外援?dāng)?shù)據(jù)”進(jìn)行修正,然后獲得目標(biāo)模型,進(jìn)而在測(cè)試(未知)數(shù)據(jù)上獲得較好表現(xiàn)。
從訓(xùn)練數(shù)據(jù)到測(cè)試數(shù)據(jù),整套流程中,其實(shí)存在很多問題,例如:
- 低資源學(xué)習(xí),即如何在小數(shù)據(jù)情況下,如何設(shè)置遷移模型;
- 領(lǐng)域自適應(yīng),即如何解決當(dāng)訓(xùn)練集和測(cè)試集的數(shù)據(jù)分布存在偏差;
- 領(lǐng)域泛化,如何從若干個(gè)具有不同數(shù)據(jù)分布的數(shù)據(jù)集(領(lǐng)域)中學(xué)習(xí)一個(gè)泛化能力強(qiáng)的模型;
- 同時(shí),整個(gè)過程還需要時(shí)刻注重安全遷移,確保隱私不泄露,模型不“中毒”等等。
目前,領(lǐng)域自適應(yīng)方面已經(jīng)有大量研究成果、該領(lǐng)域相對(duì)較成熟。但低資源學(xué)習(xí)、安全遷移以及領(lǐng)域泛化等方面還有很多待解決的問題。
1 低資源學(xué)習(xí)
低資源學(xué)習(xí)的本質(zhì)是,依賴少量的有標(biāo)簽的樣本去學(xué)習(xí)泛化能力強(qiáng)的模型,期望其在未知的數(shù)據(jù)上表現(xiàn)良好。但問題在于,在各種場(chǎng)景下如何確保小數(shù)據(jù)中的標(biāo)簽仍然含有知識(shí)、且這些知識(shí)能被遷移到大量的無標(biāo)簽數(shù)據(jù)上。
經(jīng)典的工作來自于NeurIPS 2020,當(dāng)時(shí)谷歌在論文中提出FixMatch算法,通過一致性正則和基于閾值的置信度來簡(jiǎn)化半監(jiān)督學(xué)習(xí),設(shè)置固定閾值調(diào)整遷移學(xué)習(xí)的知識(shí)。
公式如上,模型學(xué)習(xí)的置信度要根據(jù)閾值來判定,如果大于一定的域值,就使用這些數(shù)據(jù)進(jìn)行訓(xùn)練和預(yù)測(cè);否則這些數(shù)據(jù)則不參與下次訓(xùn)練。
那么,對(duì)于半監(jiān)督學(xué)習(xí)而言,預(yù)訓(xùn)練模型僅考慮閾值就足夠了嗎?谷歌在論文中,將閾值設(shè)置為0.95,顯然這個(gè)數(shù)字是由谷歌的實(shí)驗(yàn)得出,其實(shí)我們?cè)谡鎸?shí)世界中,永遠(yuǎn)無法得知的取值是多少。
基于此,需要學(xué)習(xí)一個(gè)更真實(shí)的閾值,也即開發(fā)一種自適應(yīng)學(xué)習(xí),讓模型根據(jù)數(shù)據(jù)靈活決定值。為了驗(yàn)證這一想法,我們先回答“選擇固定閾值還是靈活閾值”。
如上圖(左)所示,固定閾值的Loss下降的特別慢。同時(shí),通過對(duì)比兩種選擇的ACC指標(biāo)也能證明,如上圖(中),對(duì)于不同的類別,需要設(shè)置不同的閾值。
在“動(dòng)態(tài)調(diào)整”的思想下,我們?cè)贜eurIPS 2021上提出FlexMatch算法,有以下幾個(gè)特點(diǎn):
- 對(duì)于不同的類別,能進(jìn)行不同程度的閾值自適應(yīng);
- 對(duì)于不同的樣本,設(shè)置不同閾值;
- 測(cè)試階段,需要對(duì)閾值“一視同仁”
- 全程無人工干擾,全自動(dòng)學(xué)習(xí)閾值
實(shí)驗(yàn)結(jié)果表明,如上圖(右)所示,在同樣的數(shù)據(jù)集上,該方法呈現(xiàn)正向曲線,效果比較穩(wěn)定。FlexMatch的設(shè)計(jì)思想借用了“課程學(xué)習(xí)”,半監(jiān)督學(xué)習(xí)常用給不確定樣本打偽標(biāo)簽的策略,偽標(biāo)簽的學(xué)習(xí)應(yīng)該是循序漸進(jìn)的遷移的過程,即由易到難的過程,然后類別的學(xué)習(xí)也是由易到難的過程。同時(shí),F(xiàn)lexMatch采取了聚類假設(shè):類別和閾值息息相關(guān)。
以上是該思想的流程圖,和FixMatch大同小異,不同之處是強(qiáng)調(diào)在不同類別上,會(huì)預(yù)估學(xué)習(xí)難度,然后自適應(yīng)調(diào)整閾值。
以上是在CIFAR10/100、SVHN、STL-10和ImageNet等常用數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),對(duì)比了包括FixMatch、UDA、ReMixmatch等最新最強(qiáng)的SSL算法。實(shí)驗(yàn)結(jié)果如上表所示,可以發(fā)現(xiàn)FlexMatch在標(biāo)簽有限的情況下能顯著改進(jìn)。在未引入新的超參數(shù)、無額外計(jì)算的情況下,對(duì)于復(fù)雜任務(wù),也有顯著改進(jìn),且收斂速度顯著提升。
值得一提的是,針對(duì)該領(lǐng)域,我們開源了一個(gè)半監(jiān)督算法庫(kù)TorchSSL,目前已支持算法有:Pi-Model,MeanTeacher,Pseudo-Label,VAT,MixMatch,UDA,ReMixMatch,F(xiàn)ixMatch。
鏈接:https://github.com/TorchSSL/TorchSSL
2 低資源應(yīng)用
現(xiàn)實(shí)世界中存在大量語(yǔ)言,但有很少的標(biāo)注數(shù)據(jù),世界上有7000種語(yǔ)言,常用的語(yǔ)言也就那么幾十種,剩下絕大大多數(shù)都是低資源的語(yǔ)言。需要對(duì)小數(shù)據(jù)進(jìn)行模型訓(xùn)練,同時(shí)能夠避免模型過擬合。所以,針對(duì)低資源語(yǔ)言的自動(dòng)語(yǔ)音識(shí)別(ASR)仍然是端到端(E2E)模型的一個(gè)挑戰(zhàn)。
遷移學(xué)習(xí)的解決方案是,對(duì)資源豐富的語(yǔ)言進(jìn)行預(yù)訓(xùn)練,對(duì)資源低的語(yǔ)言進(jìn)行微調(diào),對(duì)資源豐富的語(yǔ)言和資源低的語(yǔ)言進(jìn)行多任務(wù)學(xué)習(xí),同時(shí)對(duì)資源豐富的語(yǔ)言進(jìn)行元學(xué)習(xí),以快速適應(yīng)資源不足的語(yǔ)言。
具體而言,要發(fā)現(xiàn)語(yǔ)言之間的聯(lián)系,例如上圖表明,不同的語(yǔ)言、不同的語(yǔ)系之間會(huì)有相似、相關(guān)性。這些語(yǔ)言具體怎么分布,有哪些相似性?我們的目標(biāo)是如何自適應(yīng)學(xué)習(xí)這種關(guān)系。
當(dāng)前主要有兩種方法:隱式、顯式。其中,隱式是指不對(duì)他們的關(guān)系做任何假設(shè),通過網(wǎng)絡(luò)直接學(xué)習(xí);顯式是指假設(shè)語(yǔ)言之間存在線性關(guān)系,簡(jiǎn)化算法。
基于上述兩點(diǎn),我們就設(shè)計(jì)了兩個(gè)簡(jiǎn)單的算法MetaAdapter和SimAdapter。前者能夠直接學(xué)習(xí)不同語(yǔ)言之間的關(guān)系;后者假設(shè)語(yǔ)言之間是線性關(guān)系,用注意力機(jī)制進(jìn)行學(xué)習(xí)。同時(shí),結(jié)合MetaAdapter和SimAdapter,我們?cè)O(shè)計(jì)了SimAdapter+,能達(dá)到更好的效果。具體模型結(jié)構(gòu)如下所示,只用微調(diào)數(shù)據(jù)里面的參數(shù),就可以去完成網(wǎng)絡(luò)的訓(xùn)練。
3 領(lǐng)域泛化
領(lǐng)域泛化的目的是利用多個(gè)訓(xùn)練分布來學(xué)習(xí)未知領(lǐng)域的通用模型。存在數(shù)據(jù)屬性隨時(shí)間動(dòng)態(tài)變化,導(dǎo)致動(dòng)態(tài)分布變化等問題。因此,需要捕捉數(shù)據(jù)的動(dòng)態(tài)分布變化,例如如何量化時(shí)間序列中的數(shù)據(jù)分布。
針對(duì)上述挑戰(zhàn),我們提出AdaRNN。首先將時(shí)間序列中分布動(dòng)態(tài)改變的現(xiàn)象定義為時(shí)序分布漂移 (Temporal Covariate Shift, TCS)問題,如上圖所示將一段時(shí)間的數(shù)據(jù)分為A、B、C以及未知數(shù)據(jù),可以看出A、B之間,B、C之間以及A、C之間的數(shù)據(jù)分布相差比較大,如何解決?分兩步走:先來學(xué)習(xí)數(shù)據(jù)最壞情況下的分布,然后匹配最壞分布的差距。
具體而言,采用聚類方法優(yōu)化問題,然后用貪心算法求解序列分布,將數(shù)據(jù)分成幾段;最后,設(shè)計(jì)領(lǐng)域泛化進(jìn)行匹配分布。
我們?cè)谒膫€(gè)真實(shí)數(shù)據(jù)集上測(cè)試了算法的效果,包括1個(gè)分類任務(wù)(行為識(shí)別)和3個(gè)回歸任務(wù)(空氣質(zhì)量預(yù)測(cè)、用電量預(yù)測(cè)和股價(jià)預(yù)測(cè))。實(shí)驗(yàn)結(jié)果表明,模型性能有一定的提升。此外,我們發(fā)現(xiàn)不僅在RNN上,Adaptive方法對(duì)于Transformer結(jié)構(gòu)也一樣有效。
4 安全遷移
安全遷移體現(xiàn)在遷移學(xué)習(xí)的各個(gè)方面,例如如何確保遷移學(xué)習(xí)模型不會(huì)被濫用?如何在保證效果的同時(shí)降低遷移模型的復(fù)雜性?如何進(jìn)行安全的遷移學(xué)習(xí)、避免模型受到惡意攻擊而對(duì)用戶造成影響?
舉個(gè)例子,在軟件工程領(lǐng)域,如果軟件有惡意BUG,一旦你在開源社區(qū)下載該軟件,不僅會(huì)繼承該軟件好的功能,也會(huì)繼承它的容易受攻擊的弱點(diǎn)。另外,如果黑客知道用戶的軟件使用了哪段開源代碼,便可以對(duì)你的應(yīng)用軟件發(fā)動(dòng)相應(yīng)攻擊。
我們統(tǒng)計(jì)了一下,在Teacher到student的微調(diào)范式中,Student可以從Teacher中繼承那些易受攻擊的弱點(diǎn)的概率為50%~90%。換句話說,最壞的情況是Teacher怎么被攻擊,Student便可以被攻擊。因?yàn)門eacher的模型是公開的。
因此,安全遷移研究的目的是如何減少預(yù)訓(xùn)練模型被攻擊的情況,同時(shí)還能維護(hù)性能。這其中會(huì)解決未知攻擊、DNN模型缺乏可解釋性等難題。
我們考慮兩種攻擊:對(duì)抗攻擊,例如熊貓圖片中加入某些噪聲,AI會(huì)將其識(shí)別成長(zhǎng)臂猿;后門攻擊,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)本身就存在一些可能被利用的東西,例如輸入數(shù)字7,然后輸出數(shù)字8。
針對(duì)安全遷移問題,我們提出ReMoS算法,主要思想是:找出網(wǎng)絡(luò)有用權(quán)重,剔除無用權(quán)重。第一步:需要計(jì)算神經(jīng)元;第二步:評(píng)估Teacher模型對(duì)Student模型的重要性,計(jì)算兩者之差;根據(jù)以上兩步,就可以輕松裁減不需要的權(quán)重。
實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),ReMoS方法幾乎不會(huì)顯著增加計(jì)算量,其收斂速度與微調(diào)模型基本一致,顯著好于從頭開始訓(xùn)練。
上圖(右)畫出了剪枝之后的權(quán)重和網(wǎng)絡(luò)層的關(guān)系。此結(jié)果說明隨著網(wǎng)絡(luò)層數(shù)據(jù)的加深,網(wǎng)絡(luò)越來越與學(xué)生任務(wù)相關(guān),因此,在深層的權(quán)重大部分被重新初始化了。這一發(fā)現(xiàn)也符合深度網(wǎng)絡(luò)可遷移性的結(jié)論。
總結(jié)一下,今天主要介紹了三方面,低資源學(xué)習(xí)、領(lǐng)域泛化以及安全遷移。我為這三個(gè)方面提供了三個(gè)簡(jiǎn)單的、新的擴(kuò)展思路。希望接下來的研究者能夠設(shè)計(jì)出更好的框架,新的理論,然后在遷移學(xué)習(xí)的安全性方面去做一些探索。?