由OpenAI推出的GPT系列被公認是AI領域的領導者之一,不過當2019年GPT-2登場時,這個擁有15億參數、基準測試領先的模型卻被人們發現一個奇怪現象: 當輸入不特定提示詞時,它可能會照本宣科吐出訓練中看到的資料,一點也不像當時最先進的AI模型。
這個現象是大型語言模型中的「過擬合」(overfitting),即使是訓練量龐大的先進模型,也可能因為學到訓練資料中不必要的細節,變得只會重複當時看到的內容,無法發揮實力。時至今日,過擬合仍是AI領域必須認真面對的挑戰。
「過擬合」是什麼?AI學太仔細也不行?
過擬合是一種不理想的機器學習行為。 當演算法與訓練資料過於接近,就會發生過擬合,使得AI學到的只是資料的細節,甚至是不具代表性的巧合,而不是規律,以至於根本無法對新資料進行準確預測。
與過擬合相對的概念則是欠擬合,指模型無論在訓練資料或新資料上,都表現不佳。AI訓練的目標便是在過擬合和欠擬合之間找到最佳平衡點。
出現過擬合現象的模型,就像是一位只懂得死背考古題的學生,儘管解起考古題來滾瓜爛熟,一旦正式考試題目出現變動,就不知如何變通,在針對訓練資料和測試資料出現的準確度上,有著巨大的差距。
好比說, 當你想訓練一個AI模型辨別包含「狗」的圖像時,如果訓練用的資料絕大多數是狗在公園或戶外玩耍的照片,它可能學到「看到草皮=有狗」,結果室內的狗就認不出來。
用同樣的「狗」例子:如果你拿一堆狗的照片訓練模型,但模型太簡單或訓練不足,它只學到很粗的特徵, 例如「有四條腿、毛茸茸」。結果遇到室內、戶外、長毛或短毛的變化,它都分不清,甚至連訓練集裡的狗也常判錯。這就是欠擬合 ——不管在舊資料或新資料上都表現差,因為模型沒有抓到辨識「狗」的有效規律,只停留在過度簡化的概括。
MatLab開發商MathWorks就透過這張圖表,直白地表現過擬合究竟是什麼狀況。這邊的分類(Classification)和迴歸(Refression)是指AI兩種最基本、最常見的任務。
分類任務是指將資料點歸類到不同離散類別之中,白話來講就是識別任務,例如判斷圖片裡的動物是貓還是狗,一封電子信件是不是詐騙郵件;而迴歸任務則是指預測一個連續的數值,像是根據過去一週資料,預測明天的氣溫或股票價格,或者依照房子的布局、大小推斷房價等等。
這張圖無論在分類或迴歸任務上,都可以看出過擬合出現同樣的核心問題: 模型過度執著資料中的每個點,忽略了背後呈現的規律。
過擬合的原因是什麼?
過擬合又是什麼情況會出現?建立機器學習演算法時,通常會運用大量樣本資料來訓練模型, 但當訓練時間過長,或者模型過於複雜,資料量太小時,AI可能會開始記憶訓練資料中不量不相關的資訊,導致模型過度專注於訓練材料,失去對新資料進行預測的能力。
具體而言,亞馬遜在介紹過擬合的文章中,給出以下幾點原因:
1.訓練資料太大或太小,且不包含足夠的範例,無法準確呈現所有可能輸入的資料
2.訓練資料包含大量不相關的資訊,或稱為雜訊資料
3.模型在單一資料夾上訓練時間過長
4.模型擁有高複雜度,因此能夠學習訓練資料中的雜訊
當年GPT-2出現過擬合,一部分原因就被認為與資料集太小有關,GPT-2訓練資料僅僅只有40GB,與高達15億的參數量比例失衡。相當於一位聰明絕頂、過目不忘的學生,課本卻只有薄薄一本,學生很快就背完所有內容,反而無法舉一反三。
過擬合的案例?
Google Flu Trends
早期以搜尋關鍵字預測流感盛行,但因搜尋行為與演算法調整偏移,連年高估或低估流感趨勢。簡單來說,就是把搜尋熱度當成流感指標,因此AI模型其實在記「平台習慣」,不是「疾病訊號」,所以一上線就常年高估或低估。
馬拉松世界紀錄曲線擬合
用多項式或指數曲線外推「破二」年份,在訓練期擬合極好但對未來預測常失準;反映用過度靈活的函數擬合少量紀錄點,容易把偶然波動當成結構性趨勢。
股價預測(個股技術指標堆疊)
在歷史資料上回測準確率極高,但出場到新時段或不同市場崩潰;常見原因是過度調參、指標叢林與資料探勘偏誤,把隨機噪音當模式。換言之,就是AI是「記住」了某段行情的噪音與巧合;一換時期或市場,績效立刻崩。
影像分類的背景洩漏
軍用車輛辨識模型在訓練集表現亮眼,但實測失敗;事後發現模型主要依賴天空/背景的亮度與攝影條件而非車輛特徵,屬「隱性特徵過擬合」,學到的是「場景」不是「物件」。
醫療影像中的醫院水印/設備偏差
癌症偵測模型在內部數據表現優異,跨院落地效果大幅下降;模型學到的是特定醫院的掃描器特徵、水印或處理流程痕跡,而非病灶本身。
過擬合怎麼解決?5種常見方法應對
而在過擬合受到AI產業重視後,如今實務上也有幾種常見的解決方案,或者避免AI模型落入過擬合的辦法。
1.提前停止:見好就收
顧名思義,提前停止(early stopping)就是在模型開始學習訓練資料中的雜訊前,及早暫停訓練。不過如何把握時機會是關鍵,如果太早停止訓練也可能導致欠擬合問題。
這是一張展現AI模型在訓練過程中,隨著模型複雜度增加,在訓練資料及測試資料上誤差的變化趨勢。而提前停止的目標就是要在測試資料的誤差回升前停止訓練,確保在過擬合和欠擬合之間找到平衡點。
2.資料增強:讓資料更多樣
資料增強(data augmentation)也是一種機器學習技術,透過小幅變更輸入資料來豐富訓練資料的多樣性,例如在圖像識別領域,可以利用旋轉、剪裁、調整亮度等手段,讓模型看見更多不同樣貌的資料,進而提昇模型舉一反三的能力。
3.特徵選擇:幫AI畫重點
特徵選擇(feature selection)則是透過從原始資料中,找出對模型任務最有幫助的特徵,或者稱變數、變量,並移除不相關、重複或可能誤導模型的資訊,這可能是人為挑選,也可能是利用數學方法自動化選擇,像是幫學生在課本上畫重點,避免AI被沒有直接關聯的雜訊所影響。
4.正則化:幫AI上緊箍咒
正則化(regularization)就是對模型的行為設定約束和懲罰,來避免AI太過「自信」。正則化會對特徵的權重大小施加懲罰,權重是指AI認為這個特徵有多重要。模型在訓練時除了要讓預測結果準確,還要確保權重維持在一定範圍內。為了達成這個目標,如果一個特徵對提昇準確度幫助不大,模型就會降低它的權重。
舉例來說,假如AI模型在預測房價時,給予「城市氣溫」這個特徵極高權重(認為它對房價影響很大),正則化就會給予這個大權重施加懲罰。而為了避免懲罰,模型會自動學習降低城市氣溫的權重,同時提昇「平均收入」或「人口成長」等關鍵特徵的權重,透過懲罰機制讓模型自主學會什麼是重要的。
5.集成方法:AI分工合作
集成方法(Ensemble methods)就像是建立一個「專家小組」,集結不同AI的判斷綜合得出最全面的結論。常見的是有Bagging(投票/取平均)、Boosting(輪流糾錯)等方式,Bagging會讓多個AI用不同資料子集訓練,例如當你想要預測電影票房,可以讓100個模型用不同年份的電影資料訓練,最後再平均這100個模型得出的票房結果。
而Boosting則是讓不同模型依序訓練,第二個模型會針對第一個模型預測不準確的電影類型加強訓練,一步步彌補前一個模型的不足,分工合作解決複雜問題。
資料來源:AIML.com、Mathworks、IBM、AWS
責任編輯:李先泰