跳转至

P2-6.1 最优化(optimization)到底在寻找什么

Section ID: P2-6.1 Version: 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? 在这里,我们并不是把 ab 直接写成答案,而是要去比较几条候选直线,再找出更好的那一条,这正是最优化。

  • a = 10, b = 45 是一个候选。
  • a = 12, b = 40 是另一个候选。
  • 什么更好,要靠一个标准来判断,例如它和真实分数是否更接近。
  • 在后面的章节里,我们会把这个标准叫作 损失(loss),而把让直线朝着损失变小方向移动的方法叫作 梯度下降(gradient descent)
这一节先抓住什么 紧接着下一节会问什么 以后会再次用在哪里
最优化是“寻找好值”的问题这种感觉 在 P2-6.2 中看损失函数与目标函数 会在 Part 3 的模型选择与 Part 4 的学习流程解释里再次使用
把候选、标准、约束分开来看 在 P2-6.3 中看梯度下降怎样朝更好的候选移动 会成为理解优化器与超参数讨论的基础
把学习读成参数调整问题的视角 会在 P2-6.2P2-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)。候选不是已经确定的答案,而是“如果是这个值会怎样?”这种可以尝试的值。

例如,假设我们想画一条直线去拟合数据。

y = ax + b

这里,ab 怎么定,直线就会跟着变。

1
2
3
a = 1, b = 0
a = 2, b = -3
a = 0.5, b = 4

每一种组合都是一个候选。最优化就是想在这些候选里,找出更符合标准的值。

如果用 Chapter 6 的共同场景来读,这就是不断调整 ab,去寻找那条更能解释学习时间与分数数据的直线。后面小节中的损失函数,会把 哪个候选更贴合 变成数字;梯度下降则会解释 怎样朝着这个数字减小的方向移动

即使候选很多,没有 标准(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 与物流、排程、网络优化等实际问题相连的历史语境。