再無需從頭訓練遷移學習模型!亞馬遜開源遷移學習資料庫 Xfer
雷鋒網 AI 科技評論按:所謂的「遷移學習」,是指重新利用已訓練的機器學習模型來應對新任務的技術。它給深度學習領域帶來了許多好處,最明顯的是,一旦無需從頭開始訓練模型,我們可以省下大量的計算、資料以及專業知識等資源。近期由亞馬遜開源的 Xfer 資料庫,可以讓我們輕鬆應用及打造遷移學習原型,雷鋒網(公眾號:雷鋒網) AI 科技評論將亞馬遜演算法工程師 Andreas Damianou 關於此庫的介紹博文節譯如下。
Xfer 是一款針對 MXNet 的遷移學習,為適那些希望達到以下目的的從業者與研究人員而設計:
將已訓練的神經網路在新場景/任務中進行部署
基於現有網路架構打造新的神經網路原型方案。
換句話說,只要給定機器學習任務,Xfer 就能通過神經網路找到最佳解決方案,而無需你再從頭開始進行訓練。該庫可以應用於任意的資料與網路,包括那些最常見的影像和文字資料。
使用 Xfer 的好處
節省資源:無需從頭開始訓練網路,從而節省大量的人力與 CPU / GPU 資源)。
提升處理能力:即使標籤很少,我們也能對複雜的資料進行分類。
降低使用門檻:無需成為機器學習專家,就能輕鬆利用和修改現有的神經網路體系結構,建立出自己的解決方案。
便於從神經網路中提取特徵。
提升原型設計速度:Xfer 的 ModelHandler 模組將能允許我們輕鬆修改神經網路的架構。
不確定性建模(Uncertainty modeling):通過貝葉斯神經網路(BNN)或高斯過程(GP),我們得以把控模型預測的不確定性。
演示 1:基於元模型的遷移學習
只要確定好目標任務的源模型(MXNet)和資料迭代器,你只需輸入 3 行程式碼即可實現遷移學習:
下面的動圖直觀演示使用重新調整方法執行元模型遷移學習的操作:
基於元模型的轉移學習
在該例子中,ModelHandler 用於獲取已在源任務上預先進行訓練的神經網路引數 W。在保持 W 原來引數的基礎上,我們通過源任務中的預訓練神經網路傳遞目標輸入資料。過程中我們將獲得描述目標資料以及源任務資訊的表示,因為它們是由從中獲取的引數 W 生成的。最後,我們呼叫 Repurposer 模組將上述特徵當作元模型分類器的輸入。在給出的程式碼中,元模型以「Lr」進行指代,代表的是 Logistic Regression.。
需要注意的是,如果使用的元模型基於高斯過程或貝葉斯神經網路(兩者均構建在 Xfer 中),則可以在對目標任務的預測中進行不確定性預估。這也意味著,該方法可以「習得過去它們所不懂的東西」。這一點很重要,它可以藉此應對標記資料過少的情況。
演示 2:基於微調的遷移學習
該方法允許使用者事先細化預訓練神經網路架構,比如通過 ModelHandler 模組新增或移除層,接著通過基於梯度的優化器微呼叫於目標任務的神經網路。通過使用 ModelHandler,我們可以嘗試使用自定義的微調再利用方法來進行實驗。例如,從預訓練神經網路中選擇要傳輸/凍結的圖層。關於 ModelHandler 傳輸功能的程式碼展示如下:
上述程式碼的動圖演示如下:
基於微調的轉移學習
與上個任務很類似,ModelHandler 用於獲取在源任務上預訓練的神經網路引數 W,該源模型可以是預先訓練好的 VGGNet。通過 ModelHandler,我們可以對源任務神經網路的架構進行調整;在這個示例中,我們在架構底部新增了一個新層(帶有新進的初始化引數)。接下來基於微調的再利用方法對新架構進行訓練,以使其適應目標任務的資料。Xfer 允許我們通過定義原始引數(上圖中顯示為藍色)以及新引數(上圖中顯示為橙色)來實現基於微調的再利用方法。由於原始引數已包含源任務的資訊,因此不應和學習值有太大出入,而新引數已經被隨機初始化,因此應該以更高的學習率進行優化。
從今天開始使用 Xfer 吧
Github 開源網址:
https://github.com/amzn/xfer
Xfer 資訊文件:
https://xfer.readthedocs.io/en/master/
影像資料的轉移學習教程:
https://xfer.readthedocs.io/en/master/demos/xfer-overview.html
基於自動超引數調整的遷移學習教程:
https://xfer.readthedocs.io/en/master/demos/xfer-hpo.html
針對文字資料的遷移學習:
https://xfer.readthedocs.io/en/master/demos/xfer-text-transfer.html
建立自定義 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
via https://medium.com/apache-mxnet/xfer-an-open-source-library-for-neural-network-transfer-learning-cd5eac4accf0
雷鋒網 AI 科技評論
相關文章
- Laravel 學習之資料庫遷移Laravel資料庫
- 清華開源遷移學習演算法庫遷移學習演算法
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 再談遷移學習:微調網路遷移學習
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- 亞馬遜宣佈永久關閉 Oracle 資料庫:已完成遷移亞馬遜Oracle資料庫
- 遷移學習(Transfer Learning)遷移學習
- 如何讓訓練神經網路不無聊?試試遷移學習和多工學習神經網路遷移學習
- 視覺語言模型的高效遷移學習視覺模型遷移學習
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 深度學習-Tensorflow2.2-預訓練網路{7}-遷移學習基礎針對小資料集-19深度學習遷移學習
- 資料庫遷移資料庫
- 遷移學習基本原理遷移學習
- 基於VGG的遷移學習遷移學習
- [譯] TensorFlow 教程 #08 – 遷移學習遷移學習
- 數字資訊化之遷移學習遷移學習
- 微軟研究團隊使用遷移學習,訓練現實世界中的無人機微軟遷移學習無人機
- 如何用最強模型BERT做NLP遷移學習?模型遷移學習
- 機器學習:詳解遷移學習(Transfer learning)機器學習遷移學習
- 深度學習之PyTorch實戰(4)——遷移學習深度學習PyTorch遷移學習
- Python遷移學習:機器學習演算法Python遷移學習機器學習演算法
- 深度學習之遷移學習介紹與使用深度學習遷移學習
- 無外網Oracle資料庫遷移Oracle資料庫
- ClickHouse學習系列之八【資料匯入遷移&同步】
- 遷移學習(ADDA)《Adversarial Discriminative Domain Adaptation》遷移學習AIAPT
- 遷移學習中的BN問題遷移學習
- 遷移學習時間序列分類遷移學習
- 站在巨人的肩膀上:遷移學習遷移學習
- laravel資料庫遷移Laravel資料庫
- 資料庫遷移 :理解資料庫
- redis資料庫遷移Redis資料庫
- 機器學習開源框架系列:Torch:3:影像風格遷移機器學習框架
- 金倉資料庫資料遷移實戰:從MySQL到KES的順利遷移資料庫MySql
- 遷移學習:互資訊的變分上下界遷移學習
- 深度學習不得不會的遷移學習Transfer Learning深度學習遷移學習
- 《PyTorch》Part5 PyTorch之遷移學習PyTorch遷移學習
- 圖解BERT(NLP中的遷移學習)圖解遷移學習
- 使用Mobilenet和Keras進行遷移學習!Keras遷移學習