天天看點

遷移學習

所謂遷移學習是指針對新問題重新使用預先訓練的模型。由于它能用較少的資料訓練深度神經網絡,這使得目前它在深度學習領域非常流行。通過這篇文章您将會了解什麼是遷移學習,它是如何工作的,為什麼應該使用它以及何時可以使用它。同時這篇文章将向您介紹遷移學習的不同方法,并為您提供一些已經預先訓練過的模型的資源。

遷移學習
目錄:

1.  

它是什麼?

2.  

怎麼運作的

3.  

你什麼時候應該使用它

4.  

遷移學習的方法(訓練一個模型以重用它,使用預訓練模型,特征提取)

5.  

受歡迎的預訓練模型

在遷移學習中,能夠使用預先訓練模型的問題隻能是與之不同但相類似的問題。比如,您訓練了一個簡單的分類器來預測圖像中是否有背包,則可以使用模型在訓練過程中獲得的知識來識别太陽鏡等其他物體。
遷移學習

遷移學習的總體思路是利用已有知識,即一個模型從一項任務中學到的很多被标記的訓練資料可以用在另外一個我們沒有很多資料的新任務中。

遷移學習主要用于需要大量計算能力的計算機視覺和自然語言處理任務,如情感分析。

例如,在計算機視覺領域,神經網絡通常會嘗試檢測早期圖層的邊緣,中間圖層的形狀以及底圖層中的一些特定人物的特征。通過遷移學習,您可以利用最初接受教育訓練任務留下的早期層和中間層,并僅對底圖層進行重新的訓練。

例如,上述提到的識别背包的訓練模型示例,該模型将用于識别太陽鏡。在早期的圖層中,模型學會識别物體,是以,我們隻需重新訓練後一層,這樣它就能了解到太陽鏡和其他物體的差別。

遷移學習
為什麼使用它?

遷移學習的主要優點是節省訓練時間,在大多數情況下您的神經網絡不需要大量資料就能使得性能更好。

通常情況下,從頭開始訓練一個神經網絡需要大量的資料,但你并不總是能夠獲得足夠的資料。比如自然語言處理(NLP),它需要建立大型标記資料集。而要訓練深度神經網絡有時需要大量時間,這樣您還可以節省大量訓練時間。

DeepMind Technologies 首席執行官

Demis

Hassabis

介紹,Transfer也是最有前途的技術之一,它有朝一日可以引領我們進入人工智能(AGI)領域。
遷移學習

一種情況是,當滿足以下一點或兩點:(a)您沒有足夠的帶标簽的教育訓練資料來從頭開始教育訓練您的網絡(b)已經存在一個預先教育訓練過的類似任務的網絡,該網絡通常是經過大量資料的教育訓練的。另一個适用的情況是,任務1和任務2具有類似的輸入。

如果原始模型是使用TensorFlow進行訓練的,您可以簡單地恢複它并為您的任務重新訓練一些層。請注意,隻有當從第一個任務中學習的特性具有一般性時,轉移學習才會起作用,這意味着他們對于另一個相關的任務也很有用。此外,模型的輸入需要與初始訓練時的尺寸同步。如果沒有,您需要增加一個預處理步驟,将輸入大小調整到所需大小。

遷移學習的方法 1. 訓練一個模型并運用它

舉個例子,你想解決任務A,但沒有足夠的資料來訓練深度神經網絡。但是你有關于與之類似的任務B的大大量資料,您可以在任務B上訓練一個深度神經網絡,并以此模型為出發點來解決您的初始任務A。

您所嘗試解決的問題決定了您是使用整個模型還是僅使用其中的幾層。如果您在兩個任務中有相似的輸入,則可以重新使用該模型并對新輸入進行預測。或者,您也可以更改并重新訓練不同的任務特定圖層或輸入圖層。

2. 使用預訓練模型

這裡有很多這樣的模型,是以你需要做一些研究。你可以重複使用多少層,需要再次訓練多少層,很難形成一個通用規則。

例如,Keras提供了九種預先訓練的模型,可用于遷移學習、預測、特征提取和微調。從

這裡

您可以了解到如何使用這些模型。

也有很多研究機構釋出了他們已經教育訓練過的模型。這種類型的遷移學習在深度學習中最為常用。

3. 特征提取 另一種方法是使用深度學習找出表述問題的最佳形式,這意味着要找到最重要的特征。這種方法也被稱為表示學習,并且通常可以獲得比用手工設計的表示更好地性能。
遷移學習

在機器學習的大部分時間裡,這些功能都是由研究人員和領域專家手工制作的,好在深度學習可以自動提取特征,但是您仍然需要決定應将哪些功能放入網絡。神經網絡可以了解到你已經投入了哪些功能,哪些是真正重要的,哪些不是。表示學習算法可以在很短的時間内發現一個很不錯的特征組合(就算是需要大量人力的複雜任務也可以做到這一點)。

表示學習也可以用于其他問題。您隻需使用第一層來找出特征的正确表示,但由于它任務特定性太強,不能使用網絡的輸出。隻需将資料提供給您的網絡,并使用其中一個中間層作為輸出層。這一層可以被解釋為原始資料的表示。

這種方法主要用于計算機視覺領域,因為它可以減少資料集的大小,進而縮短計算時間并使其更适合傳統算法。

有一些預先訓練好的機器學習模型非常流行,其中之一是Inception-v3模型,該模型經過了 ImageNet “大型視覺識别挑戰”的教育訓練。在這個挑戰中,參與者必須将圖像分為 1000個類 ,如“斑馬”“斑點狗”和“洗碗機”。 在這裡

,您可以從TensorFlow中看到有關如何重新訓練圖像分類器的教程。

微軟還通過

MicrosoftML

R軟體包

microsoft Python軟體包

提供了一些預先訓練好的模型,可用于R和Python開發。

其他非常流行的模型是ResNet和AlexNet。您可以通路

pretrained.ml ,它是一個可排序搜尋的預訓練深度學習模型彙編,還有示範和代碼。 數十款阿裡雲産品限時折扣中,趕緊點選領券開始雲上實踐吧! 本文由北郵 @愛可可-愛生活  老師推薦, 阿裡雲雲栖社群

組織翻譯。

文章原标題《Transfer

Learning》

作者: Niklas Donges

譯者:烏拉烏拉,審校:袁虎。

文章為簡譯,更為詳細的内容,請檢視

原文文章

繼續閱讀