學習範式

遷移學習(transfer learning)

/ TRANS-fer LER-ning /

一個已經會彈鋼琴的人,上手管風琴會比純新手快得多——多年練就的識譜、節奏和手指控制都能帶過去。遷移學習就給了機器同樣的「起跑優勢」:你不必為每個新任務都從零訓練一個模型,而是拿一個已經在某個相關的大任務上學過東西的模型,把它改造來對付你那個較小的任務。

實踐中,你從一個在巨型資料集上預訓練過的模型起步——比方說數百萬張通用圖片,或一大堆文字。它學到的東西多半是通用的:影像裡的邊緣和紋理,文字裡的語法和詞義。你把這些保留下來,只重新訓練最後幾層,或者對整個模型輕輕一推,讓它在你自己那份不大的資料上學。這一步叫做微調。因為模型已經懂得基礎,它要在你那項具體任務上變得拿手,所需的資料和算力都少得多。

遷移學習是現代機器學習裡最有用的點子之一,也正因為它,一支小團隊才能用幾百個例子就訓出一個不錯的分類器。要誠實地提個醒:它只在原任務與你的任務足夠相關、借來的知識真能用得上時才奏效。把一個在照片上訓練的模型遷到醫學影像,也許有幫助——也可能把某些誤導它的假設一併帶過去。兩個領域離得越遠,遷移就越弱,有時甚至幫倒忙。

一家初創公司想區分健康與染病的葡萄葉,手頭卻只有800張照片。從零訓練一個網路會嚴重過擬合。於是他們拿來一個在數百萬張日常圖片上預訓練過的網路,凍住它前面的層,只在那800張葉片上重新訓練最後的分類器。效果不錯——預訓練的那些層早就懂得邊緣、形狀和紋理了。

複用通用知識,只微調任務相關的那一部分。

源任務與目標任務越相關,遷移幫助越大;領域差異極大時,它可能把錯誤的假設一併遷過去,反而有害——即「負遷移」。決定它划不划算的是相關性,而非單看模型大小。

又稱
transferfine-tuning迁移学习遷移學習微调