損失函數 (Loss Function),又稱為代價函數 (Cost Function) 或目標函數 (Objective Function),是機器學習中一個核心概念。它是一個函數,用於衡量模型的預測輸出與真實標籤之間的差異程度。簡而言之,損失函數告訴我們模型在單個訓練樣本或整個訓練集上的預測有多「糟糕」。
損失函數的主要作用:
- 量化誤差: 損失函數將模型的預測結果與真實值之間的差異轉換為一個可以衡量的數值。這個數值越大,表示模型的預測誤差越大;數值越小,表示模型的預測越接近真實值。
- 引導模型學習: 在訓練過程中,機器學習模型的目標是找到一組參數(例如,神經網路的權重和偏置),使得損失函數的值最小化。優化演算法(例如梯度下降)會利用損失函數的梯度信息來調整模型參數,逐步減小預測誤差,使模型能夠更好地擬合訓練數據。
- 模型性能評估的基礎: 雖然評估模型最終性能通常會使用準確率、精確度、召回率等評估指標,但損失函數是模型訓練過程中直接優化的目標,並且其值也可以作為模型性能的一個初步參考。
- 迴歸任務 (Regression): 預測一個連續的數值。常見的損失函數包括:
- 均方誤差 (Mean Squared Error, MSE): 計算預測值與真實值之間差的平方的平均值。對較大的誤差給予更高的懲罰。
- 平均絕對誤差 (Mean Absolute Error, MAE): 計算預測值與真實值之間絕對差值的平均值。對所有誤差都給予相同的權重。
- Huber 損失 (Huber Loss): 結合了 MSE 和 MAE 的優點。對於較小的誤差使用平方誤差,對於較大的誤差使用絕對誤差,使其對離群值更魯棒。
- 二元分類任務 (Binary Classification): 將數據分為兩個類別。常見的損失函數包括:
- 二元交叉熵損失 (Binary Cross-Entropy Loss) / 對數損失 (Log Loss): 常與 Sigmoid 激活函數一起使用,衡量模型預測概率與真實標籤之間的差異。
- 合頁損失 (Hinge Loss): 常用於支持向量機 (SVM),目標是最大化不同類別之間的間隔。
- 多類別分類任務 (Multi-class Classification): 將數據分為多個類別。常見的損失函數包括:
- 分類交叉熵損失 (Categorical Cross-Entropy Loss): 常與 Softmax 激活函數一起使用,衡量模型預測的類別概率分布與真實標籤的 one-hot 編碼之間的差異。
- 稀疏分類交叉熵損失 (Sparse Categorical Cross-Entropy Loss): 與分類交叉熵類似,但適用於真實標籤是整數編碼的情況,而不是 one-hot 編碼。
選擇合適的損失函數非常重要,它直接影響模型的學習效果。 選擇時需要考慮任務的類型、輸出的形式、以及對不同類型誤差的容忍程度。例如,在某些應用中,我們可能更關心避免假負例(召回率),而在另一些應用中,則更關心避免假正例(精確度),這也會影響損失函數的選擇。
總而言之,損失函數是機器學習模型訓練的指導信標,它量化了模型的預測錯誤,並通過優化過程引導模型學習到更準確的預測能力。