搜尋意圖: 如果你在找「損失函數 是什麼」或「損失函數 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 損失函數衡量模型預測與實際值之間的差異,數值越小代表模型預測越準確,是模型訓練中優化目標的關鍵組成部分。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
你有沒有想過,模型到底該朝哪個方向學,才能知道自己有沒有進步? 你可以把損失函數想成,模型每次回答後被打出來的錯誤分數。 它其實就是衡量預測和真實答案差距的公式。 訓練時要做的事,就是把這個分數慢慢壓低。
你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。
容易混淆
損失函數 vs 代價函數 損失函數看單筆樣本,代價函數看整體平均。 一個是單題成績,一個是總平均。
損失函數 vs 評估指標 損失函數是訓練用的方向盤,評估指標是驗證用的成績表。 模型優化時看前者,上線比較時常看後者。
最關鍵的區別: 訓練時看它,評分時不一定只看它。
記住這句就好
分數越低,代表模型越接近答案。
實際案例
影像分類訓練 每張圖都會算出一個誤差,損失函數把這些誤差變成可優化的方向。
推薦排序 排序模型常用不同的損失函數去拉開好結果和壞結果的差距。
算法與應用
不同任務會用不同損失,例如分類常見交叉熵,回歸常見均方誤差。 訓練演算法就是在最小化這個函數,讓預測越來越接近真實值。 如果損失設計不對,模型很可能學偏。
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 損失函數 | 台灣正式用語 |
| 损失函数 | 簡體寫法 |
| Loss Function | 英文原名 |
| 代價函數(Cost Function) | 嚴格說指整個資料集的平均損失,實務上常混用 |
| 目標函數(Objective Function) | 涵蓋範圍更廣,最小化或最大化的對象都算 |
| 誤差函數 | 口語說法 |
三個詞的嚴謹區分是:損失函數算單一樣本的誤差,代價函數算整個批次或資料集的平均,目標函數是最終要最佳化的東西(常常是代價函數加上正則化項)。日常對話裡三個混用不會造成誤解,寫論文時要注意。
常見損失函數與適用任務
| 損失函數 | 任務 | 特性 |
|---|---|---|
| 均方誤差(MSE) | 迴歸 | 對離群值敏感,因為誤差取平方 |
| 平均絕對誤差(MAE) | 迴歸 | 對離群值穩健,但在 0 點不可微 |
| Huber 損失 | 迴歸 | 小誤差用平方、大誤差用絕對值,兼顧兩者 |
| 二元交叉熵 | 二分類 | 搭配 sigmoid 使用 |
| 類別交叉熵 | 多分類 | 搭配 softmax 使用 |
| Focal Loss | 極度不平衡的分類 | 降低容易樣本的權重,讓模型專注在難樣本 |
| Hinge Loss | 支援向量機 | 只要分對且超過邊界就沒有損失 |
| 對比損失、三元組損失 | 表示學習 | 拉近同類、推遠異類 |
選擇與實務上的坑
分類任務為什麼不用 MSE。 交叉熵搭配 softmax 時梯度形式簡潔(預測值減真實值),MSE 搭配 sigmoid 則在預測極度錯誤時梯度反而趨近 0,導致學不動。這叫做梯度飽和。
損失函數要跟業務指標對齊。 這是實務上最常被忽略的一點。詐欺偵測裡漏掉一筆詐欺的代價遠高於誤判一筆正常交易,用未加權的交叉熵等於假設兩種錯誤一樣貴。對策是加類別權重,或直接設計符合成本結構的自訂損失。
不可微的指標不能直接當損失。 準確率、F1、AUC 都是不可微的,不能直接做梯度下降。標準做法是訓練時用可微的代理損失(交叉熵),評估時看真正在意的指標,兩者不一致是正常的。
多個損失相加時要注意尺度。 兩個損失量級差一百倍,相加等於只在訓練其中一個。加權係數要調,或用自動平衡的方法。
損失下降不代表模型變好。 訓練損失一直降但驗證損失開始上升,就是過度擬合的標準訊號,這時候該停了。
情境判斷
Q1(直覺題): 模型訓練時一直在優化的核心數字是什麼?
Q2(判斷題): 只要損失函數下降,模型就一定能在真實世界表現很好嗎?
常見問題
損失函數和代價函數可以互換嗎?
很多時候可以口語互說,但嚴格來看,代價函數更偏整體平均。
損失函數一定要可微分嗎?
大多數基於梯度的方法都需要可微分,這樣才方便更新參數。
損失函數是不是越小越好?
在訓練集上通常是,但還要看驗證集表現,不能只追訓練分數。