NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

摘要: 到底是遷移學習?什麼時候使用它?如何使用它?

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

目錄:

  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

詳情請閱讀原文

相關文章

人工智慧 最新文章