---
title: "目標函數（Objective Function）"
slug: objective-function
language: zh-TW
source: https://aiterms.tw/terms/objective-function
updated_at: 2026-07-29
tags: [機器學習, 深度學習, 模型訓練, 最佳化, 模型評估, 數學基礎, iPAS中級]
ipas_term: false
---

# 目標函數（Objective Function）

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

> **目標函數 vs 損失函數**
> 目標函數：整體要優化的東西
> 損失函數：衡量單筆或一批樣本誤差的量
> 最關鍵的區別：先看它是在比什麼，再看它怎麼做。
>
> **目標函數 vs 評估指標**
> 目標函數：訓練時拿來更新參數
> 評估指標：訓練後拿來看表現
> 最關鍵的區別：先看它是在比什麼，再看它怎麼做。
>
### 記住這句就好

> 訓練要追的總分，就是目標函數。
>
### 實際案例

> **分類模型**
> 把交叉熵設成目標函數，模型就會想把錯分類降到最低。
>
> **推薦排序**
> 把點擊或排序品質寫進目標函數，模型就會朝業務想要的方向學。
>
### 算法與應用

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

### 中英對照與常見說法

| 說法 | 出現場合 |
| --- | --- |
| 目標函數 | 台灣正式用語 |
| 目标函数 | 簡體寫法 |
| Objective Function | 英文原名 |
| 代價函數（cost function）、損失函數（loss function） | 常被混用，但涵蓋範圍不同 |
| 適應度函數（fitness function） | 演化演算法脈絡下的對應詞，通常是要最大化 |

### 跟損失函數的關係

| | 損失函數 | 目標函數 |
| --- | --- | --- |
| 範圍 | 衡量預測與真實值的差距 | 整個最佳化過程要最小化或最大化的東西 |
| 方向 | 一定是越小越好 | 可能是最小化也可能是最大化 |
| 包含什麼 | 只有誤差項 | 誤差項加正則化項，可能還有其他約束的懲罰 |

> 用一條式子說明兩者關係：
>
> **目標函數 = 損失項 + λ × 正則化項**
>
> 損失項要模型貼合訓練資料，正則化項要模型保持簡單，λ 決定兩者的取捨。這就是為什麼「目標函數」的說法比「損失函數」更完整：實際在最佳化的從來不只是誤差。

### 帶約束的最佳化

> 很多實際問題不是「把某個值弄到最小」這麼單純，而是「在滿足一堆條件的前提下把某個值弄到最小」。
>
> 例如投資組合：目標是最大化預期報酬，約束是風險不超過某個上限、每檔持股不超過總資產的一定比例、權重總和等於 1。
>
> 處理約束的標準工具是**拉格朗日乘數法**：把約束乘上一個係數併進目標函數，變成無約束問題。不等式約束則用 KKT 條件。深度學習裡的權重衰減，本質上就是「權重範數不超過某個值」這個約束的拉格朗日形式。

### 設計目標函數時最容易犯的錯

> **目標函數就是你真正在要求的東西，不是你以為你在要求的東西。** 系統會精確地最佳化你寫下的式子，包括你沒想到的那些解法。
>
> 常見的失敗是**指標與意圖不一致**：以觀看時長為目標的推薦系統會學會推聳動內容；以點擊率為目標的標題生成會學會做標題黨；只以準確率為目標的醫療模型在陽性率 1% 的資料上會學會全部猜陰性，準確率 99% 但完全沒用。
>
> 對策有三個方向：**加約束**（準確率為目標，但召回率不得低於某值）、**多目標加權**（同時考慮觀看時長與滿意度評分）、**改用更貼近意圖的指標**（用 F1 或 AUC 取代準確率）。
>
> 檢查方法很簡單：問自己「如果有人只想把這個數字衝高，他會怎麼作弊？」想得到的作弊方式，模型遲早會找到。

### 情境判斷

> **Q1（直覺題）：你把交叉熵放進訓練流程，模型在優化什麼？**
> → 目標函數，也就是訓練時真正要追的分數。
>
> **Q2（判斷題）：訓練時損失一直下降，但線上業務指標沒變好，問題可能在哪？**
> → 目標函數和真正業務目標沒對齊。
>
### 常見問題

> **Q：目標函數和損失函數有什麼差別？**
> 目標函數更廣，損失函數通常是其中一部分。
>
> **Q：它一定要是單一數值嗎？**
> 訓練時通常要能轉成單一可優化目標。
>
> **Q：怎麼知道設得好不好？**
> 看它是否和真正任務、業務、或評估指標對齊。
>
### 相關術語

> - **損失函數**：這是目標函數最常見的組成。
> - **演算法**：優化目標要靠演算法來跑。
> - **超參數調校**：目標函數常會和它一起調。
> - **深度學習**：訓練神經網路時一定會碰到。
> - **交叉驗證**：設計好目標後，還要驗證是否真的有效。

---

來源：https://aiterms.tw/terms/objective-function
快查頁：https://aiterms.tw/terms/objective-function
最後更新：2026/07/29
深度解說：https://aiterms.tw/learning/what-is-objective-function