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