Machine-Learning

目標函數、成本函數、損失函數:它們是一回事嗎?

  • October 25, 2015

在機器學習中,人們談論目標函數、成本函數、損失函數。它們只是同一事物的不同名稱嗎?什麼時候使用它們?如果它們並不總是指同一件事,那麼有什麼區別?

這些不是非常嚴格的術語,它們是高度相關的。然而:

  • 損失函數通常是在數據點、預測和標籤上定義的函數,並衡量懲罰。例如:
  • 平方損失 $ l(f(x_i|\theta),y_i) = \left (f(x_i|\theta)-y_i \right )^2 $ , 用於線性回歸
  • 鉸鏈損失 $ l(f(x_i|\theta), y_i) = \max(0, 1-f(x_i|\theta)y_i) $ , 用於支持向量機
  • 0/1 損失 $ l(f(x_i|\theta), y_i) = 1 \iff f(x_i|\theta) \neq y_i $ , 用於理論分析和精度定義
  • 成本函數通常更通用。它可能是您的訓練集上的損失函數加上一些模型複雜度損失(正則化)的總和。例如:
  • 均方誤差 $ MSE(\theta) = \frac{1}{N} \sum_{i=1}^N \left (f(x_i|\theta)-y_i \right )^2 $
  • SVM 成本函數 $ SVM(\theta) = |\theta|^2 + C \sum_{i=1}^N \xi_i $ (有額外的約束連接 $ \xi_i $ 和 $ C $ 並帶有訓練集)
  • 目標函數是您在訓練期間優化的任何函數的最通用術語。例如,在最大似然方法中生成訓練集的概率是一個定義明確的目標函數,但它不是損失函數也不是成本函數(但是你可以定義一個等效的成本函數)。例如:
  • MLE 是一種目標函數(您可以最大化)
  • 類之間的散度可以是一個目標函數,但它幾乎不是一個成本函數,除非你定義一些人為的東西,比如 1-Divergence,並將其命名為成本

長話短說,我想說:

損失函數是成本函數的一部分,成本函數目標函數的一種。

話雖如此,這些術語遠非嚴格,並且根據上下文,研究小組,背景,可以轉移並以不同的含義使用。主要(唯一?)共同點是“損失”和“成本”函數是想要最小化的東西,而目標函數是想要優化的東西(可以是最大化或最小化)。

引用自:https://stats.stackexchange.com/questions/179026

comments powered by Disqus