P2-6.1 最优化(optimization)到底在寻找什么¶
Section ID:
P2-6.1Version:v2026.07.20
在 P2-5 章中,我们把数据总结成数字,用样本估计整体,并通过代码确认了均值和方差。现在问题变了。
只会计算一个值就够了吗?在多个候选值之中,我们该怎样找到更好的那个?又该凭什么标准说它更好?
这个问题有一点陌生。均值或方差一旦去算,结果会马上出来。但寻找 更好的值 不一样。答案并不是一开始就给好的,而是要把几个候选放在一起比较。
就在这个地方,最优化(optimization) 这个词出现了。这里把最优化当作一个名字,用来抓住这样一个问题:如果要选一个值,选哪个会让结果更好?
这里会重新整理 最优化(optimization)、候选(candidate)、标准(criterion)、约束(constraint)、最小化/最大化(minimization/maximization)。如果说 Chapter 5 讲的是读取数据与估计,那么这一节则把“在多个候选中寻找更好值的问题”重新整理成学习的入口。
这里并不是去计算最优化算法,而是把重点放在:把学习重新读成“寻找更好值的问题”。如果先抓住候选、标准、约束、最小化这些感觉,后面再看到损失函数(loss function)、梯度下降(gradient descent)、优化器(optimizer)时,脑中会先浮现问题场景,而不是先被公式卡住。
先抓住的共同场景¶
在 Chapter 6 中,我们会在三个小节里反复使用一个小例子。假设四个学生的学习时间 x 与随堂测验分数 y 如下。
| 学生 | 学习时间 x | 测验分数 y |
|---|---|---|
| A | 1 | 55 |
| B | 2 | 65 |
| C | 3 | 80 |
| D | 4 | 90 |
现在的问题是:如果输入学习时间,我们该怎样选择那条预测分数的直线 y = ax + b? 在这里,我们并不是把 a 和 b 直接写成答案,而是要去比较几条候选直线,再找出更好的那一条,这正是最优化。
a = 10, b = 45是一个候选。a = 12, b = 40是另一个候选。- 什么更好,要靠一个标准来判断,例如它和真实分数是否更接近。
- 在后面的章节里,我们会把这个标准叫作
损失(loss),而把让直线朝着损失变小方向移动的方法叫作梯度下降(gradient descent)。
| 这一节先抓住什么 | 紧接着下一节会问什么 | 以后会再次用在哪里 |
|---|---|---|
| 最优化是“寻找好值”的问题这种感觉 | 在 P2-6.2 中看损失函数与目标函数 | 会在 Part 3 的模型选择与 Part 4 的学习流程解释里再次使用 |
| 把候选、标准、约束分开来看 | 在 P2-6.3 中看梯度下降怎样朝更好的候选移动 | 会成为理解优化器与超参数讨论的基础 |
| 把学习读成参数调整问题的视角 | 会在 P2-6.2、P2-6.3 中继续连到“朝减少损失的方向移动”的含义 | 会在 Part 4 的反向传播、Part 5 的调参与评估语境里再次出现 |
如果用教科书语言来说,最优化是在给定变量(variable)和约束(constraint)之内,去寻找能够最小化(minimize)或最大化(maximize)目标函数(objective function)的值的问题。
但如果只先看到这一定义,它会很难。所以这里不会把定义抹掉,而是要把那个需要这一定义的场景一起放出来看。
现在还不需要知道精确公式或算法。这里的目的,是先建立一种感觉:我们不是直接把答案写出来,而是摆出候选、用标准比较,再往更好的方向移动。
核心判断标准:最优化(optimization)到底在寻找什么¶
- 能把最优化解释成不是直接写答案,而是寻找更好候选的视角。
- 能区分
候选(candidate)、标准(criterion)、约束(constraint)。 - 能把
最小化(minimization)与最大化(maximization)解释为基本方向。 - 能说明
最优(optimal)并不总是意味着现实中的完美答案。 - 能说明在 AI 学习中,模型不是直接写出正确规则,而是沿着减少或增加某个标准的方向去调值。
三个判断标准¶
| 标准 | 为什么重要 | 这里需要的理解层次 |
|---|---|---|
| 最优化是在可能的候选中寻找更好的选择 | 它说明在计算之前,先要有比较标准。 | 能理解成“摆出候选,再找更好的值的问题”就足够了。 |
| 目标与约束决定什么算好 | 它说明“最优”不是绝对品质,而是带条件的判断。 | 理解只有标准和约束一起存在,比较才有意义。 |
| AI 学习也是寻找能减少损失的更好参数的过程 | 它把最优化和学习流程入口连起来,而不是只停在抽象数学。 | 抓住把学习读成调值问题的视角。 |
从寻找好值的场景开始¶
如果一开始就想从数学术语去理解 最优化(optimization),它会显得很僵硬。先想 寻找好值的场景。例如,找最短的移动路线、以最低成本买到东西、挑等待时间最短的队伍,或者找到能拿到最高分的设置。
我们不需要把这些例子全都称为数学最优化。但它们很适合练最优化的感觉。它们的共同点是:候选不止一个、有一个判断谁更好的标准,而且在现实里我们不能随便选,所以还会有约束。
数学和 AI 想做的,就是把这种流程变成可计算的形式。这时候 最优化 这个词才真正出现。
前面的学习时间-分数表也有相同结构。我们可以画出很多候选直线,但如果想知道哪条直线更好,就需要一个标准,去计算它和真实分数之间的差距。也就是说,好直线 不是靠目测决定的,而是在比较标准上决定的。
重新把定义读松一些¶
我们把前面看到的教科书式定义重新拿回来。最优化是在给定变量和约束之内,寻找能够最小化或最大化目标函数的值的问题。
这个句子里包含四个词。
| 术语 | 先理解成什么 |
|---|---|
| 变量(variable) | 可以拿来改变试试的值 |
| 约束(constraint) | 必须守住的条件 |
| 目标函数(objective function) | 计算好坏的标准 |
| 最小化/最大化(minimize/maximize) | 想减少或增加的方向 |
之所以会觉得这个定义难,不只是因为公式难,也是因为这种思考本身不熟悉:要把“好”变成数字、要先划出可以选择的范围、还要在这个范围里找更好的值。
把候选、标准、约束拆开来看¶
最优化不是一开始就拿着 答案 出发。首先会有 候选(candidate)。候选不是已经确定的答案,而是“如果是这个值会怎样?”这种可以尝试的值。
例如,假设我们想画一条直线去拟合数据。
这里,a 和 b 怎么定,直线就会跟着变。
每一种组合都是一个候选。最优化就是想在这些候选里,找出更符合标准的值。
如果用 Chapter 6 的共同场景来读,这就是不断调整 a 和 b,去寻找那条更能解释学习时间与分数数据的直线。后面小节中的损失函数,会把 哪个候选更贴合 变成数字;梯度下降则会解释 怎样朝着这个数字减小的方向移动。
即使候选很多,没有 标准(criterion) 也无法比较。
| 场景 | 候选(candidate) | 标准(criterion) |
|---|---|---|
| 选择移动路线 | 多条路线 | 所需时间更短吗? |
| 购买商品 | 多种商品 | 成本更低吗? |
| 选择排队队伍 | 多条队伍 | 等待时间更短吗? |
| 选择模型设置 | 多组设置值 | 评估分数更好吗? |
现实里还会有 约束(constraint)。例如,成本不能超过 10 万韩元、响应时间必须在 1 秒内结束、内存不能超过某个容量、要遵守法律和政策、不能破坏用户体验等等。
所以最优化并不只是把某个数字做到最大或最小。它是把候选、标准、约束一起放进来看待的问题。
很多领域都需要这种思考¶
最优化不是只在 AI 里使用的思考方式。只要 我们想做出好选择,但同时存在标准与约束,类似的问题就会出现。
| 领域 | 想找到什么 | 标准 | 约束 |
|---|---|---|---|
| 物流 | 配送路径 | 距离、时间、成本 | 车辆数量、时间限制、配送顺序 |
| 制造 | 生产计划 | 产量、不良率、成本 | 设备容量、库存、交期 |
| 广告 | 预算分配 | 转化率、销售额、点击率 | 预算、曝光限制、政策 |
| 服务运营 | 服务器资源部署 | 响应速度、稳定性、成本 | 服务器费用、流量波动 |
| 搜索/推荐 | 结果排序 | 点击、满意度、相关性 | 多样性、安全性、政策 |
| 机器学习 | 模型参数 | 损失、准确率、评估分数 | 数据、计算量、时间 |
在工作中,这些问题通常会长成下面这样。
- 如果多花一点成本,会好多少?
- 在当前标准下,应该先减少什么?
- 如果提速,质量会不会下降?
- 如果提高准确率,成本或延迟会不会上升?
- 在遵守约束的前提下,什么才是更好的选择?
这些问题很难一下子把答案写出来。我们必须设定标准、比较候选、检查约束,然后一步步去寻找更好的选择。
从历史上看,它是从“可计算的选择问题”里长出来的¶
最优化(optimization) 并不是随着 AI 出现才突然有的词。在更早的脉络里,它更接近这样的问题:在多个选择里,有限资源该如何分配?
例如,在战争、物流、生产、排程里,关键问题往往是:用有限车辆走哪条路线、用有限人手安排哪些工作、用有限原料生产多少产品、在有限时间里按什么顺序处理事情。
这些问题不是靠“更努力计算”就能解决的。因为候选太多,而且标准与约束会同时存在。所以数学和计算开始尝试把这些问题变成可计算的形式。
线性规划(linear programming) 就是这种历史脉络的代表例子。先定目标(objective),再设约束(constraint),然后在可行选择里找更好的值。George Dantzig 的 simplex method 也常常和物流、排程、网络最优化这类现实问题一起被提到。
这里不会展开线性规划或 simplex method 的计算过程。重要的是这条历史方向:现实中的选择问题被改写成带标准和约束的计算问题,再被整理成寻找更好值的算法,而这条脉络后来连接到了 AI 学习中调整模型数值的问题。
所以,最优化可以理解成:不是 AI 专用技术,而是一种很久以前就存在的计算思路,它原本就在标准与约束下寻找更好值,后来进入了 AI 学习。
有最小化,也有最大化¶
最优化问题通常会用两个方向来表达。值越小越好的问题,是 最小化(minimization);值越大越好的问题,是 最大化(maximization)。
例如,移动时间、成本、误差、损失,通常都是想减少的。
相反,准确率、收益、满意度,通常都是想增加的。
在 AI 学习里,经常会出现“想让它变小的值”。我们会把预测和真实值有多不同变成一个数字,再把模型值朝着这个数字变小的方向调整。现在还不需要精确知道这个数字是什么。下一节会以 损失函数(loss function) 的名字再见到它。
最优并不等于完美¶
最优(optimal) 这个词要小心地读。光看字面,它很像完美答案,但在现实里往往不是这样。
通常,它只是指:在给定候选范围内、相对于给定标准、并且守住给定约束时,找到的更好值。
所以,当我们看一个最优化结果时,还要一起问下面这些问题。
- 它是按什么标准被称为最优的?
- 它是在什么候选范围里找到的?
- 它考虑了哪些约束?
- 现实中的其他条件有没有被漏掉?
这个视角会原样延续到 AI 模型评估中。某个模型即使在某个基准上得分很高,也不表示它在所有现实问题里都是最优。我们必须不断追问:它到底是在什么标准下更好?
AI 学习也可以看作一个最优化问题¶
在 AI 学习中,人往往不会把规则一条条直接写出来。相反,会调整模型内部拥有的数值,让它更贴合数据。这正是容易让人感到陌生的地方。
学习可以看成这样一个流程:先做预测,看看错了多少,再稍微改一点,然后再预测一次。
如果把这个流程写得稍微技术一点,就是:模型先预测,计算预测与真实之间的差距,再把模型数值朝着减少这个差距的方向调整,然后继续预测。
这个流程可以从最优化的视角来读。就算你现在还不能完全理解也没关系。现在只要先抓住一个连接:学习可以被解释成一种不断寻找更好值的重复过程。这里,候选是当前的模型参数,标准是那个表示“预测有多糟”的数字,目标则是让这个数字下降。
这里有一个需要小心的点。本节中的 parameter 指的是模型通过学习去调整的值。它和 P2-5.3 里出现的统计学 parameter 语境不同。模型参数是在学习过程中被调整的值,而统计学参数则是总体的真实性质。
即使是同一个英文单词,也要看语境。下一节会把这个“表示预测有多糟的数字”整理成 损失函数(loss function) 与 目标函数(objective function) 这两个词。
用案例来看¶
案例 1. 广告预算应该怎么分配¶
假设某个团队准备把本月 1,000 万韩元的广告预算分配到搜索广告、横幅广告、再营销广告上。实务中,人们通常会先看上个月表现:哪个渠道效果好、哪个贵、哪个转化低。
但这并不意味着把所有预算都砸到表现好的渠道上,就一定立刻成为最优选择。搜索广告可能已经接近饱和,所以继续加预算效果不大;横幅广告可能曝光高但转化低;再营销广告效率不错,但可触达用户数可能有限。
在这个场景里,最优化不是 知道答案,而是 拿多个候选分配方案,用标准和约束去比较。候选是预算分配方案,标准可能是转化数或销售额,约束则可能是总预算、各渠道最低投放额、曝光政策等条件。也就是说,在说某个分配“好”之前,必须先一起定清楚:什么算好,以及 什么不能超过。
可以被确认的结果,是把几种分配方案的预期转化数和成本放到表里比较。比如 A 方案转化 1,200 次、成本 980 万韩元;B 方案转化 1,150 次、成本 900 万韩元;C 方案转化 1,260 次但超出了政策上限。这样一来,问题就不再只是 哪个数字最大,而是 哪个候选在同时满足标准和约束的情况下更好。
检查清单¶
- 能把最优化解释成不是直接写答案,而是寻找更好候选的过程。
- 能区分
候选(candidate)、标准(criterion)、约束(constraint)。 - 能用例子解释
最小化(minimization)与最大化(maximization)。 - 能说明
最优(optimal)并不总是现实中的完美答案。 - 能把 AI 学习解释成通过调整模型参数来改进标准的过程。
- 能说明损失函数与梯度下降会在下一节更具体展开这一边界。
- 能把学习重新读成不是单纯计算,而是
寻找更好值的问题。
来源与参考资料¶
- Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004, 确认日期: 2026-07-20。用于确认在目标函数与约束条件下最小化某个值的最优化问题形式。
- 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 与物流、排程、网络优化等实际问题相连的历史语境。