1. 程式人生 > >新興機器學習演算法:遷移學習

新興機器學習演算法:遷移學習

1.前言

在面對某一領域的具體問題時,通常可能無法得到構建模型所需規模的資料。然而在一個模型訓練任務中針對某種型別資料獲得的關係也可以輕鬆地應用於同一領域的不同問題。這種技術也叫做遷移學習(Transfer Learning)。

Qiang Yang、Sinno Jialin Pan,“A Survey on Transfer Learning”,IEEE Transactions on Knowledge & Data Engineering,vol. 22, no. , pp. 1345–1359, October 2010, doi:10.1109/TKDE.2009.191

2.區分監督學習、半監督學習、遷移學習、自我學習

舉一個經典的例子,分離大象和犀牛。
  1. 對於監督學習,我們手頭有大量大象的樣本和犀牛的樣本,接下來訓練分類器,進行分類,大家都知道的。
  2. 對於遷移學習,則是指我們手頭上有大量羊的樣本和馬的樣本(已標記),少量的大象和犀牛的樣本,接下來就要從羊和馬的樣本中選出有效的樣本分別加入到大象和犀牛的標記樣本中,然後再用監督學習的方法訓練分類器。
  3. 對於半監督學習,則是手上僅有少量大象和犀牛的已標記樣本,另外有一堆大象和犀牛沒有標記的資料(注意它們中要麼是大象要麼是犀牛,沒有其他物種)。半監督學習就是利用這些樣本訓練分類器,實現分類。
  4. 對於自我學習,同樣是手上僅有少量大象和犀牛的已標記樣本,另外有一大堆自然影象。所謂自然影象,就是有大象和犀牛的圖片,還有各種其他物種的圖片。自我學習比半監督學習更適合實際場景-----哪有一堆只有大象和犀牛的圖片給你呢?而自然影象的來源更加廣泛,可以從網際網路上隨便下載。

3.遷移學習

藉助遷移學習技術,我們可以直接使用預訓練過的模型,這種模型已經通過大量容易獲得的資料集進行過訓練(雖然是針對完全不同的任務進行訓練的,但輸入的內容完全相同,只不過輸出的結果不同)。 隨後從中找出輸出結果可重用的層。我們可以使用這些層的輸出結果充當輸入,進而訓練出一個所需引數的數量更少,規模也更小的網路。這個小規模網路只需要瞭解特定問題的內部關係,同時已經通過預培訓模型學習過資料中蘊含的模式。通過這種方式,即可將經過訓練檢測貓咪的模型重新用於再現梵高的畫作。
遷移學習技術的另一個重大收益在於可以對模型進行完善的“通用化”。大型模型往往會與資料過度擬合(Overfit),例如建模所用資料量遠遠超過隱含的現象數量,在處理未曾見過的資料時效果可能不如測試時那麼好。由於遷移學習可以讓模型看到不同型別的資料,因此可以習得更出色的底層規則。

4.遷移學習的真實案例

4.1影象識別


4.2物件檢測


4.3文字識別


遷移學習實現過程中的難點:
雖然可以用更少量的資料訓練模型,但該技術的運用有著更高的技能要求。只需要看看上述例子中硬編碼引數的數量,並設想一下要在模型訓練完成前不斷調整這些引數,遷移學習技術使用的難度之大可想而知。
遷移學習技術目前面臨的問題包括:
  • 找到預訓練所需的大規模資料集
  • 決定用來預訓練的模型
  • 兩種模型中任何一種無法按照預期工作都將比較難以除錯
  • 不確定為了訓練模型還需要額外準備多少資料
  • 使用預訓練模型時難以決定在哪裡停止
  • 在預訓練模型的基礎上,確定模型所需層和引數的數量
  • 託管並提供組合後的模型
  • 當出現更多資料或更好的技術後,對預訓練模型進行更新