模型與訓練

Loss Function 損失函數是什麼?模型怎麼知道自己錯了

Loss Function(損失函數)是用來衡量模型預測結果與真實結果之間差距的函數。它把「錯多少」換算成一個數字,數字越小代表模型表現越好。訓練的過程就是不斷降低這個數字的過程:算出損失、找出該往哪個方向調整參數、更新參數、再算一次,反覆迭代直到損失不再明顯下降為止。
Loss Function 損失函數是什麼?模型怎麼知道自己錯了:文章重點卡

Loss Function 損失函數是什麼?模型怎麼知道自己錯了

模型不會看著答案說「啊我錯了」。它需要一個可以計算的錯誤指標,而那個指標就是損失函數。

這是理解訓練的第一顆零件。沒有它,模型連往哪裡改都不知道。

你將學到什麼

定義

把預測值與真實值之間的差距換算成一個數字的函數。

白話比喻

像考卷的扣分規則。分數低代表扣得少,模型考得好。

訓練在做什麼

算損失、算梯度、更新參數、再算一次,重複到損失收斂。

怎麼挑

看任務。回歸常用 MSE 或 MAE,分類常用交叉熵。

定義

損失函數衡量模型的預測值與真實值差多少,並把它變成一個數字。數值越小,代表差距越小,模型表現越好。

訓練的目標就是找出一組參數,讓所有訓練資料上的損失總和或平均降到最小。

白話比喻

損失函數就像成績分數,只是方向相反:分數越低代表模型越好。

而且它不只算對錯,還算「錯得多離譜」。同樣是答錯,差一點跟差很多扣的分不一樣,模型才知道該用多大的力氣去修正。

訓練是怎麼跑的

流程是一個固定的循環:輸入訓練資料、模型做出預測、用損失函數算出差距、再由優化器沿著讓損失下降最快的反方向去更新參數。

然後回到第一步再跑一次。損失值一開始掉得很快,接著越來越慢,最後幾乎不動,那就是收斂了。

常見的幾種損失函數

名稱適用任務特點
MSE 均方誤差回歸,預測連續數值懲罰大誤差較重,對離群值敏感
MAE 平均絕對誤差回歸對離群值比較不敏感,更穩健
Binary Cross Entropy 二元交叉熵二分類,答案是零或一常與 Sigmoid 輸出搭配
Categorical Cross Entropy 多類別交叉熵分類常與 Softmax 輸出搭配

實際用例

以判斷病人有沒有生病的二分類為例。真實值是一而模型給出零點九,損失很小;真實值是一卻只給零點一,損失就會大很多。

模型會透過降低這些「大損失」的樣本,把整體平均拉下來,預測也就越來越準。你在微調時看到的那條下降曲線,量的就是這件事。

常見誤解

最常見的誤解是以為損失值可以跨模型比較。不同任務、不同損失函數算出來的數字尺度不一樣,零點三不一定比一點二好,只有同一套設定下的前後比較才有意義。

第二個誤解是把損失降到零當成目標。損失為零通常代表模型把資料背下來了,那是過度擬合,不是學會了。

本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

損失函數跟準確率有什麼不同?
準確率是給人看的成績,只告訴你對幾題。損失函數是給訓練用的,它連「錯得多離譜」都算進去,而且必須可微分才能推導出參數該往哪個方向調。所以兩個數字會一起看,但用途完全不同。
MSE 跟 MAE 差在哪?
MSE 是均方誤差,差距先平方再平均,對大誤差懲罰特別重,所以對離群值敏感。MAE 是平均絕對誤差,直接取絕對值,對離群值比較穩健。資料裡有少數極端值又不想被它牽著走,通常選 MAE。
損失一直降就代表模型會越來越好嗎?
不一定。訓練集的損失一直降,但驗證集的損失開始回升,就是過度擬合的典型訊號:模型把訓練資料背起來了,遇到沒看過的資料反而變差。所以要同時盯訓練與驗證兩條曲線。