0
本文作者: 黃善清 | 2019-02-01 18:11 |
雷鋒網(wǎng) AI 科技評論按:所謂的「遷移學習」,是指重新利用已訓練的機器學習模型來應對新任務的技術(shù)。它給深度學習領(lǐng)域帶來了許多好處,最明顯的是,一旦無需從頭開始訓練模型,我們可以省下大量的計算、數(shù)據(jù)以及專業(yè)知識等資源。近期由亞馬遜開源的 Xfer 數(shù)據(jù)庫,可以讓我們輕松應用及打造遷移學習原型,雷鋒網(wǎng) AI 科技評論將亞馬遜算法工程師 Andreas Damianou 關(guān)于此庫的介紹博文節(jié)譯如下。
Xfer 是一款針對 MXNet 的遷移學習,為適那些希望達到以下目的的從業(yè)者與研究人員而設(shè)計:
將已訓練的神經(jīng)網(wǎng)絡在新場景/任務中進行部署
基于現(xiàn)有網(wǎng)絡架構(gòu)打造新的神經(jīng)網(wǎng)絡原型方案。
換句話說,只要給定機器學習任務,Xfer 就能通過神經(jīng)網(wǎng)絡找到最佳解決方案,而無需你再從頭開始進行訓練。該庫可以應用于任意的數(shù)據(jù)與網(wǎng)絡,包括那些最常見的圖像和文本數(shù)據(jù)。
使用 Xfer 的好處
節(jié)省資源:無需從頭開始訓練網(wǎng)絡,從而節(jié)省大量的人力與 CPU / GPU 資源)。
提升處理能力:即使標簽很少,我們也能對復雜的數(shù)據(jù)進行分類。
降低使用門檻:無需成為機器學習專家,就能輕松利用和修改現(xiàn)有的神經(jīng)網(wǎng)絡體系結(jié)構(gòu),創(chuàng)建出自己的解決方案。
便于從神經(jīng)網(wǎng)絡中提取特征。
提升原型設(shè)計速度:Xfer 的 ModelHandler 模塊將能允許我們輕松修改神經(jīng)網(wǎng)絡的架構(gòu)。
不確定性建模(Uncertainty modeling):通過貝葉斯神經(jīng)網(wǎng)絡(BNN)或高斯過程(GP),我們得以把控模型預測的不確定性。
演示 1:基于元模型的遷移學習
只要確定好目標任務的源模型(MXNet)和數(shù)據(jù)迭代器,你只需輸入 3 行代碼即可實現(xiàn)遷移學習:
下面的動圖直觀演示使用重新調(diào)整方法執(zhí)行元模型遷移學習的操作:
基于元模型的轉(zhuǎn)移學習
在該例子中,ModelHandler 用于獲取已在源任務上預先進行訓練的神經(jīng)網(wǎng)絡參數(shù) W。在保持 W 原來參數(shù)的基礎(chǔ)上,我們通過源任務中的預訓練神經(jīng)網(wǎng)絡傳遞目標輸入數(shù)據(jù)。過程中我們將獲得描述目標數(shù)據(jù)以及源任務信息的表示,因為它們是由從中獲取的參數(shù) W 生成的。最后,我們調(diào)用 Repurposer 模塊將上述特征當作元模型分類器的輸入。在給出的代碼中,元模型以「Lr」進行指代,代表的是 Logistic Regression.。
需要注意的是,如果使用的元模型基于高斯過程或貝葉斯神經(jīng)網(wǎng)絡(兩者均構(gòu)建在 Xfer 中),則可以在對目標任務的預測中進行不確定性預估。這也意味著,該方法可以「習得過去它們所不懂的東西」。這一點很重要,它可以借此應對標記數(shù)據(jù)過少的情況。
演示 2:基于微調(diào)的遷移學習
該方法允許用戶事先細化預訓練神經(jīng)網(wǎng)絡架構(gòu),比如通過 ModelHandler 模塊添加或移除層,接著通過基于梯度的優(yōu)化器微調(diào)用于目標任務的神經(jīng)網(wǎng)絡。通過使用 ModelHandler,我們可以嘗試使用自定義的微調(diào)再利用方法來進行實驗。例如,從預訓練神經(jīng)網(wǎng)絡中選擇要傳輸/凍結(jié)的圖層。關(guān)于 ModelHandler 傳輸功能的代碼展示如下:
上述代碼的動圖演示如下:
基于微調(diào)的轉(zhuǎn)移學習
與上個任務很類似,ModelHandler 用于獲取在源任務上預訓練的神經(jīng)網(wǎng)絡參數(shù) W,該源模型可以是預先訓練好的 VGGNet。通過 ModelHandler,我們可以對源任務神經(jīng)網(wǎng)絡的架構(gòu)進行調(diào)整;在這個示例中,我們在架構(gòu)底部添加了一個新層(帶有新進的初始化參數(shù))。接下來基于微調(diào)的再利用方法對新架構(gòu)進行訓練,以使其適應目標任務的數(shù)據(jù)。Xfer 允許我們通過定義原始參數(shù)(上圖中顯示為藍色)以及新參數(shù)(上圖中顯示為橙色)來實現(xiàn)基于微調(diào)的再利用方法。由于原始參數(shù)已包含源任務的信息,因此不應和學習值有太大出入,而新參數(shù)已經(jīng)被隨機初始化,因此應該以更高的學習率進行優(yōu)化。
從今天開始使用 Xfer 吧
Github 開源網(wǎng)址:
Xfer 信息文檔:
https://xfer.readthedocs.io/en/master/
圖像數(shù)據(jù)的轉(zhuǎn)移學習教程:
https://xfer.readthedocs.io/en/master/demos/xfer-overview.html
基于自動超參數(shù)調(diào)整的遷移學習教程:
https://xfer.readthedocs.io/en/master/demos/xfer-hpo.html
針對文本數(shù)據(jù)的遷移學習:
https://xfer.readthedocs.io/en/master/demos/xfer-text-transfer.html
創(chuàng)建自定義 repurposer 教程:
https://xfer.readthedocs.io/en/master/demos/xfer-custom-repurposers.html
用于便捷操作和檢查 MXNet 模型的 xfer.ModelHandler,使用教程:
https://xfer.readthedocs.io/en/master/demos/xfer-modelhandler.html
雷鋒網(wǎng) AI 科技評論
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。