目標函數(Objective Function)是什麼?

目標函數是機器學習模型訓練中用於評估模型表現的函數,其數值代表模型預測與實際值的差距,優化目標是最小化或最大化此函數。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

目標函數(Objective Function)是什麼? 機器學習深度學習

你有沒有想過,模型訓練到底是在努力把什麼變小或變大? 你可以把它想成考試標準,模型每次改參數,都在想辦法讓這個分數更好。 目標函數定義了優化方向,是訓練過程真正要追的目標。 這也讓它很適合先拿到可用答案,再慢慢把精度往上推。 這種寫法常用在需要先把問題定義清楚,再逐步提升模型品質的場景。

容易混淆

目標函數 vs 損失函數 目標函數:整體要優化的東西 損失函數:衡量單筆或一批樣本誤差的量 最關鍵的區別:先看它是在比什麼,再看它怎麼做。

目標函數 vs 評估指標 目標函數:訓練時拿來更新參數 評估指標:訓練後拿來看表現 最關鍵的區別:先看它是在比什麼,再看它怎麼做。

記住這句就好

訓練要追的總分,就是目標函數。

實際案例

分類模型 把交叉熵設成目標函數,模型就會想把錯分類降到最低。

推薦排序 把點擊或排序品質寫進目標函數,模型就會朝業務想要的方向學。

算法與應用

目標函數可以是最小化形式,也可以是最大化形式。 很多時候它會由多個損失項組成,再加上正則化項。 設計得好,模型學到的方向就對;設計錯,模型可能只是努力追錯目標。

情境判斷

Q1(直覺題): 你把交叉熵放進訓練流程,模型在優化什麼?

目標函數,也就是訓練時真正要追的分數。

Q2(判斷題): 訓練時損失一直下降,但線上業務指標沒變好,問題可能在哪?

目標函數和真正業務目標沒對齊。

常見問題

目標函數和損失函數有什麼差別?

目標函數更廣,損失函數通常是其中一部分。

它一定要是單一數值嗎?

訓練時通常要能轉成單一可優化目標。

怎麼知道設得好不好?

看它是否和真正任務、業務、或評估指標對齊。