學習範式
課程學習(curriculum learning)
/ kuh-RIK-yuh-lum LER-ning /
學校不會開學第一天就上微積分——而是從數數開始,再到算術,然後代數,一級級往上壘。課程學習把這種次序帶進了機器訓練:你不再以隨機順序把例子一股腦砸給模型,而是先呈現容易的例子,再逐步過渡到難的,就像一位好老師那樣把課編排出層次。
普通訓練會把資料打亂,好讓模型每一步都看到一鍋難以預料的大雜燴。課程學習則刻意去塑造這個順序——先上簡單、乾淨、不含糊的例子,再逐漸加大難度、雜訊或稀有度。其直覺是:早期的容易例子能幫模型先找到一片合理的解的區域,然後再去碰那些容易把它帶上歧路的迷惑案例。你得有一個用來排序的「難度」概念——句子長度、影像清晰度、它與多少別的例子相像,或者模型自己在每個例子上的誤差。
它能加快訓練,有時還能抵達更好的最終結果,尤其在那些隨機順序會讓模型早早亂了陣腳的難題上。但證據是兩可的:對許多普通任務來說,一套調好的隨機順序方案同樣出色;而一份笨拙的課程可能因為餓著了模型對多樣性的需要、或因為你的難度排序排錯了,反而幫倒忙。把它當作一個有時管用的技巧,而非一條定律——並且要記得,最難的部分往往恰恰是判定「容易」和「難」究竟指什麼。
在訓練一個模型去解數學應用題時,團隊先餵給它簡短的一步題,再到兩步題,然後是冗長的多步題。從易處起步,模型先練就了可靠的基本功,再去面對盤根錯節的難題——而且比起一開始就把各種難度混作一團,它收斂得更快。
先易後難——給課程排個序,有時能幫訓練更好地落定。
課程學習是「有時取勝」,而非保票:一套調好的隨機順序常常與它打平,而錯誤的難度排序反而會更糟。最棘手的一步,恰恰是一開始就定義清楚什麼算「易」、什麼算「難」。
又稱
另見