P2-6.1 最优化(optimization)到底在寻找什么¶
Section ID:
P2-6.1Version:v2026.09.15
最优化(optimization)是在指定条件下,寻找使目标函数(objective function)最小或最大的值。必须明确可调整的值、比较标准以及应遵守的约束,才能判断哪个选择更好。
学习时间与分数预测¶
假设四名学生的学习时间与测验分数如下。
| 学生 | 学习时间 x | 测验分数 y |
|---|---|---|
| A | 1 | 55 |
| B | 2 | 65 |
| C | 3 | 80 |
| D | 4 | 90 |
现在的问题是:如果输入学习时间,我们该怎样选择那条预测分数的直线 y = ax + b? 在这里,我们并不是把 a 和 b 直接写成答案,而是要去比较几条候选直线,再找出更好的那一条,这正是最优化。
这里,学习时间 x 和真实分数 y 是已经观测到的固定数据。要改变的是直线的斜率 a 和截距 b。a 表示学习时间增加 1 时预测分数的增量;b 表示学习时间为 0 时直线预测的分数。
a = 10, b = 45是一个候选。a = 12, b = 40是另一个候选。- 什么更好,要靠一个标准来判断,例如它和真实分数是否更接近。
- 将预测与真实分数的差距汇总成数字的标准,称为损失(loss)。
两个候选的预测值如下。
| 学习时间 | 真实分数 | a = 10, b = 45 | a = 12, b = 40 |
|---|---|---|---|
| 1 | 55 | 55 | 52 |
| 2 | 65 | 65 | 64 |
| 3 | 80 | 75 | 76 |
| 4 | 90 | 85 | 88 |
用预测误差平方的均值比较,第一个候选为 (0 + 0 + 25 + 25) / 4 = 12.5,第二个为 (9 + 1 + 16 + 4) / 4 = 7.5。第一个候选准确预测了两个点,但按此标准综合四个点,第二个候选更好。
flowchart TD
accTitle: 比较两个候选直线
P["1. 参数组合<br/>候选 1: a = 10, b = 45<br/>候选 2: a = 12, b = 40"]
Y["2. x = 1, 2, 3, 4 时的预测<br/>候选 1: 55, 65, 75, 85<br/>候选 2: 52, 64, 76, 88"]
L["3. 误差平方的均值<br/>候选 1: 12.5<br/>候选 2: 7.5"]
S["4. 两个候选中更好的选择<br/>a = 12, b = 40<br/>7.5 < 12.5"]
P --> Y --> L --> S
classDef selected fill:#f0fdf4,stroke:#16a34a,color:#14532d
class S selected
图中将两组参数应用于相同数据,再比较损失。选择第二个候选,只表示它在所比较的两个候选中更好,并不表示它是所有可能直线中的最优解。
最优化问题的组成¶
| 要素 | 在直线预测例子中的含义 |
|---|---|
| 变量(variable) | 可调整的参数 a, b |
| 候选(candidate) | 一组变量值,例如 a=10, b=45 |
| 目标函数(objective function) | 四个点的预测误差平方的均值 |
| 最小化(minimization) | 寻找平均损失更小的候选 |
| 约束(constraint) | 此例中 a, b 为实数,没有额外限制 |
最优化问题也可以没有约束。但如果规定了广告预算等必须遵守的上限,即使目标函数值较好,超出上限的候选也不能被选择。
各领域的最优化问题¶
最优化不是只在 AI 里使用的思考方式。只要 我们想做出好选择,但同时存在标准与约束,类似的问题就会出现。
| 领域 | 想找到什么 | 标准 | 约束 |
|---|---|---|---|
| 物流 | 配送路径 | 距离、时间、成本 | 车辆数量、时间限制、配送顺序 |
| 制造 | 生产计划 | 产量、不良率、成本 | 设备容量、库存、交期 |
| 广告 | 预算分配 | 转化率、销售额、点击率 | 预算、曝光限制、政策 |
| 服务运营 | 服务器资源部署 | 响应速度、稳定性、成本 | 服务器费用、流量波动 |
| 搜索/推荐 | 结果排序 | 点击、满意度、相关性 | 多样性、安全性、政策 |
| 机器学习 | 模型参数 | 损失、准确率、评估分数 | 数据、计算量、时间 |
资源分配与线性规划¶
线性规划(linear programming)用变量的线性表达式表示目标函数和约束。各变量乘以固定系数后相加,不把变量相乘或平方。George Dantzig 的单纯形法(simplex method)是求解这类问题的代表方法。
假设两种液体产品的产量为 u, v 升。每升利润分别为 3 千韩元和 2 千韩元,所需原料分别为 2kg 和 1kg。可用原料共 8kg,第一种产品最多可销售 3 升。产量允许为小数升。
| 要素 | 表达式 | 含义 |
|---|---|---|
| 目标 | 最大化 3u + 2v | 总利润,单位为千韩元 |
| 原料约束 | 2u + v ≤ 8 | 原料使用量不超过 8kg |
| 销售约束 | u ≤ 3 | 第一种产品最多 3 升 |
| 产量条件 | u ≥ 0, v ≥ 0 | 产量不能为负数 |
u=3, v=2 使用 8kg 原料,利润为 13 千韩元。u=0, v=8 同样使用 8kg 原料,利润却为 16 千韩元。第一种产品每升利润虽高,但原料消耗是另一种的两倍,因此在原料上限下,第二个方案更有利。u=3, v=3 的利润为 15 千韩元,却需要 9kg 原料,因此被排除。
最小化与最大化¶
最优化问题通常会用两个方向来表达。值越小越好的问题,是 最小化(minimization);值越大越好的问题,是 最大化(maximization)。
例如,移动时间、成本、误差、损失,通常都是想减少的。
相反,准确率、收益、满意度,通常都是想增加的。
在 AI 学习里,经常有需要减小的值。把预测与真实值的差距表示为数字,再调整模型值以减小这个数字。这个标准就是损失函数(loss function)。
目标与范围决定的最优值¶
最优(optimal) 这个词要小心地读。光看字面,它很像完美答案,但在现实里往往不是这样。
全局最优解是在满足约束的全部候选中,目标函数值最好的候选。只比较部分候选后得到的最好结果是否为全局最优,还需另行确认。
原料分配例子还可以确定所有可行候选的利润上限。把总利润改写为 3u+2v = 2(2u+v)−u,由 2u+v≤8 和 u≥0 可知,利润不超过 16 千韩元。u=0, v=8 确实达到这一利润,因此是这些条件下的全局最优解。最优解是产量组合 (0, 8),最优值是对应的目标函数值 16。
所以,当我们看一个最优化结果时,还要一起问下面这些问题。
- 它是按什么标准被称为最优的?
- 它是在什么候选范围里找到的?
- 它考虑了哪些约束?
- 现实中的其他条件有没有被漏掉?
这个视角会原样延续到 AI 模型评估中。某个模型即使在某个基准上得分很高,也不表示它在所有现实问题里都是最优。我们必须不断追问:它到底是在什么标准下更好?
参数改变如何影响损失¶
第二个候选 a=12, b=40 的预测值为 52, 64, 76, 88,分别比真实分数低 3, 1, 4, 2。四个预测值都偏低,因此可以固定斜率 a=12,提高截距 b。截距增加 2,四个预测值也都增加 2。
| 固定斜率 a | 调整后的截距 b | 预测值 | 误差平方的均值 |
|---|---|---|---|
| 12 | 40 | 52, 64, 76, 88 | 7.5 |
| 12 | 42 | 54, 66, 78, 90 | 1.5 |
| 12 | 42.5 | 54.5, 66.5, 78.5, 90.5 | 1.25 |
| 12 | 43 | 55, 67, 79, 91 | 1.5 |
| 12 | 45 | 57, 69, 81, 93 | 7.5 |
b=42.5 时,真实值减去预测值的误差为 0.5, −1.5, 1.5, −0.5,平方均值为 (0.25 + 2.25 + 2.25 + 0.25)/4 = 1.25。提高截距起初使损失降低,但继续提高又会使损失增大。最优化并不意味着一味增大数值,或始终朝同一方向改变。
这里的 a, b 是通过学习调整的模型参数(parameter)。观测数据保持不变,改变参数后重新计算预测值与损失。候选表呈现比较结果,但没有给出自动选择下一个候选的规则。应区分规定寻找什么的最优化问题与执行搜索的最优化算法。
此处减小的是这四名学生数据上的损失。对新学生的预测是否也有改善,需要用另外的数据检查。模型参数这一用法,应与描述总体均值等性质的统计参数(parameter)区分语境。
广告预算与转化数¶
假设目标为 最大化预期转化数,约束为 总成本不超过 1,000 万韩元。其他条件相同,且可选方案只有以下三个。
| 方案 | 总成本 | 预期转化数 | 是否满足预算约束 |
|---|---|---|---|
| A | 980 万韩元 | 1,200 次 | 满足 |
| B | 900 万韩元 | 1,150 次 | 满足 |
| C | 1,050 万韩元 | 1,260 次 | 不满足 |
C 的预期转化数最多,但超出预算,因此排除。A 与 B 相比,A 的转化数更多,因此选择 A。
如果目标改为 最小化每次转化的成本,A 约为 8,167 韩元/次,B 约为 7,826 韩元/次,因此选择 B。即使候选与预算相同,目标改变也会使最优选择改变。此比较使用自行构造的预期数值,不保证实际转化效果。
改变条件后重新选择¶
在以下条件改变后,重新计算或选择候选。预算或销售上限改变时,需要检查原来的选择是否仍然可行。
- 固定直线的
a=12,将b改为 41,预测值与平均损失分别是多少?是否比b=40更好? - 若第二种液体产品也有销售上限
v≤4,在原料为 8kg 时,什么产量组合的利润最大? - 若广告预算降至 900 万韩元,应选择哪个方案?再降至 850 万韩元时,还有可行方案吗?候选仅限正文中的三个方案。
解答: ① 预测值为 53, 65, 77, 89,平均损失为 (4+0+9+1)/4=3.5,小于 7.5。② u=2, v=4 时利润为 14 千韩元。由 3u+2v = 1.5(2u+v)+0.5v ≤ 12+2=14 可知,不可能取得更高利润。③ 预算为 900 万韩元时仅 B 可行;850 万韩元时没有可行方案。没有候选满足约束时,不能把“超出上限最少”的候选选为最优解。
检查清单¶
- 能把最优化解释成不是直接写答案,而是寻找更好候选的过程。
- 能区分
候选(candidate)、标准(criterion)、约束(constraint)。 - 能用例子解释
最小化(minimization)与最大化(maximization)。 - 能说明
最优(optimal)并不总是现实中的完美答案。 - 能把 AI 学习解释成通过调整模型参数来改进标准的过程。
-
能把学习重新读成不是单纯计算,而是
寻找更好值的问题。 -
当候选、标准与约束混在一起时,能区分应比较什么、应遵守什么。
-
能区分固定数据与可调整参数,并计算候选的预测值与损失。
- 能改变条件,区分最优解、最优值与没有可行候选的情况。
来源与参考资料¶
- Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004, 确认日期: 2026-09-15。依据 §1.1–1.2 核对最优化问题形式、线性目标与约束及单纯形法。液体产品原料分配的数值为自行构造的例子。
- SciPy Developers, Optimization and root finding, SciPy API Reference, 确认日期: 2026-07-20。用于确认最优化工具会最小化或最大化目标函数,并可能包含约束的实际 API 语境。
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, Chapter 8: Optimization for Training Deep Models, MIT Press, 2016, 确认日期: 2026-07-20。用于确认深度学习中通过降低成本函数(cost function)来调整参数的语境。
- Gary Wolf, The Optimizer, Wired, 2001-12-01, 确认日期: 2026-07-20。用于确认 George Dantzig 和 simplex method 与物流、排程、网络优化等实际问题相连的历史语境。