最优化方法和理论一轮复习
最优化方法与理论一句话本质在一堆可选方案里按照某个评价标准找到最好的那个。数学形式通常写成在变量x的所有可能取值中找到让目标函数 f(x) 最小的那个 x。一、最优化到底在研究什么1. 最优化问题最优化问题就是有一个目标有一些变量有一些限制条件希望找到最优解。例如意思是找到一个 (x)让 (x^2) 最小。答案是 (x0)。机器学习里最常见的是其中符号含义本质θ模型参数你要调整的东西L(θ)损失函数模型错得有多严重min最小化让错误尽可能小所以训练神经网络本质就是最优化。2. 变量变量就是你可以改变的东西。比如这里 x,y 就是变量。在机器学习中变量通常是模型参数在线性回归里我们训练模型就是在找最好的 w,b。3. 目标函数目标函数就是你想优化的指标。比如你希望它越小越好。在机器学习中目标函数一般叫loss function损失函数cost function代价函数objective function目标函数。本质都差不多衡量当前方案有多差然后想办法让它变好。4. 最小化与最大化最优化通常分两类和但最大化可以转成最小化所以理论中经常只研究最小化。本质最大化收益等价于最小化负收益。二、无约束优化无约束优化就是没有额外限制(x) 可以随便取。例如这就是无约束优化。它是最优化里最基础的一类问题。三、导数告诉你函数往哪里变1. 一元函数导数导数是函数变化率。表示当 (x) 发生微小变化时(f(x)) 会怎么变。例如当 (x0)导数为正说明函数往右走会变大当 (x0)导数为负说明函数往右走会变小当 (x0)导数为 0可能是极小值点。导数的本质告诉你函数在当前位置的上升或下降趋势。2. 梯度多元函数里导数变成梯度。如果那么梯度是梯度本质函数上升最快的方向。所以如果你想让函数下降就应该往负梯度方向走这就是梯度下降的核心。四、梯度下降法1. 梯度下降公式每个符号的意思本质每次沿着当前最陡的下坡方向走一小步。2. 学习率学习率 (\alpha) 决定每次走多远。如果太小走得太慢。如果太大容易越过最低点甚至发散。所以学习率的本质是控制下降速度和稳定性之间的平衡。3. 为什么梯度下降能优化因为梯度告诉你当前函数增加最快的方向。反方向就是当前函数下降最快的方向。所以是在不断让目标函数变小。4. 梯度下降的缺点梯度下降简单但不完美问题解释学习率难选太大震荡太小太慢遇到鞍点可能变慢梯度接近 0但不是最优非凸问题可能陷入局部最优深度学习中常见病态问题收敛慢不同方向曲率差异大五、极值点、驻点、局部最优、全局最优1. 驻点如果那么 (x) 是驻点。驻点本质一阶变化趋势消失的点。但驻点不一定是最小值点。可能是极小值点极大值点鞍点。2. 局部最优局部最优就是在附近范围内最好但不一定全局最好。形式上对 (x^*) 附近的 (x) 成立。直觉在一座山谷里最低但旁边可能还有更低的山谷。3. 全局最优全局最优就是在整个可行范围内最好。形式上这是最理想的结果。4. 鞍点鞍点是有些方向看像最低点有些方向看像最高点。典型例子在 ((0,0))但它不是最小值也不是最大值。深度学习中鞍点非常常见。六、二阶信息Hessian 矩阵1. 二阶导数一阶导数看斜率二阶导数看弯曲程度。例如二阶导数大于 0说明函数向上弯是凸的。2. Hessian 矩阵多元函数的二阶导数组成矩阵叫 Hessian例如Hessian 的本质描述函数在不同方向上的弯曲程度。3. Hessian 判断极值在驻点 (x^*) 处Hessian 性质结论正定局部极小值负定局部极大值不定鞍点半正定需要进一步判断正定的意思是直觉往任何方向走函数都往上弯所以当前位置是谷底。七、凸优化凸优化是最优化里最重要的理论之一。1. 凸集集合 C是凸集如果任意两点连线都还在集合内。数学表达直觉集合内部没有凹进去的地方。圆、矩形、半平面是凸集。月牙形、环形一般不是凸集。凸集的意义保证在可行域里两点之间不会断开优化路径更稳定。2. 凸函数函数 (f) 是凸函数如果直觉函数图像在任意两点连线的下方。一维里像碗一样的函数就是凸函数凸函数的意义没有坏的局部最优局部最优就是全局最优。这是凸优化最强的地方。3. 凸优化问题一个凸优化问题通常是满足其中仿射函数就是凸优化的核心优势好解有理论保证局部最优就是全局最优。八、约束优化约束优化是subject to意思是在满足限制条件的范围内找最优解。例如subject to你不能随便选 x,y必须满足 xy1。约束优化的本质不是在整个空间找最优而是在允许的区域里找最优。九、等式约束与拉格朗日乘子法1. 问题形式subject to比如subject to2. 拉格朗日函数其中 λ叫拉格朗日乘子。意义把约束条件合并进目标函数。3. 一阶条件对 x和 λ求导也就是本质最优点处目标函数想下降的方向和约束边界的方向发生平衡。4. 拉格朗日乘子的直觉在约束边界上你不能随便走。最优点往往不是梯度为 0而是目标函数的下降趋势被约束挡住了。拉格朗日乘子 λ 可以理解为约束对最优解的影响强度。十、不等式约束与 KKT 条件1. 问题形式subject to2. KKT 条件是什么KKT 条件是约束优化中的核心最优性条件。包括四部分第一原始可行性意思是解必须满足原问题的约束。第二对偶可行性不等式约束对应的乘子必须非负。第三互补松弛这句话极其重要。意思是一个不等式约束要么不起作用要么刚好卡住。如果约束没卡住那么如果约束起作用那么直觉没有顶到边界的约束不影响最优解。第四平稳性意思是在最优点目标函数梯度和所有有效约束梯度达到平衡。3. KKT 条件的意义KKT 是约束优化的灵魂。它回答在有约束的情况下什么样的点才可能是最优点对凸优化来说在一定条件下KKT 条件不仅是必要条件也是充分条件。也就是满足 KKT 就是全局最优。十一、对偶问题1. 原问题原问题是你真正想解的问题subject to2. 对偶问题对偶问题是从拉格朗日函数构造出的另一个优化问题。它通常给原问题提供一个下界。简单理解原问题是直接找最优解对偶问题是从另一个角度估计最优值。3. 弱对偶弱对偶其中符号含义(p^*)原问题最优值(d^*)对偶问题最优值对最小化问题来说对偶最优值是原问题最优值的下界。4. 强对偶强对偶意思是对偶问题和原问题最优值相等。在凸优化中如果满足 Slater 条件通常有强对偶。5. 对偶的意义对偶理论的意义有三个意义解释理论分析判断最优性算法设计很多算法基于对偶经济解释拉格朗日乘子代表约束资源价格例如 SVM 就大量使用对偶问题。十二、常见优化算法1. 梯度下降法 GD公式特点优点缺点简单可能慢易实现学习率敏感深度学习常用非凸问题无全局保证适合大规模机器学习问题。2. 牛顿法牛顿法使用一阶和二阶信息。公式其中是 Hessian 矩阵。牛顿法本质用二次函数近似当前函数然后直接跳到这个二次近似的最低点。优点收敛快。缺点需要计算和求逆 Hessian成本高。适合中小规模、二阶信息可计算的问题。3. 拟牛顿法拟牛顿法不直接算 Hessian而是近似 Hessian。代表算法BFGSL-BFGS。本质用历史梯度变化来估计曲率。L-BFGS 中的 L 是 limited-memory意思是只保存少量历史信息。适合中等规模优化问题特别是传统机器学习和数值优化。4. 坐标下降法坐标下降法每次只优化一个变量。比如有变量每次只更新一个坐标本质不同时动所有变量而是一个方向一个方向地改。适合高维但结构稀疏的问题比如 Lasso。5. 随机梯度下降 SGD普通梯度下降用全部数据计算梯度SGD 每次只用一个或一小批数据。公式本质用带噪声的梯度近似真实梯度。优点优点解释快不用每次遍历全部数据适合大数据深度学习核心有噪声有时能跳出差的局部区域缺点震荡大不稳定。6. Mini-batch SGD每次用一小批样本计算梯度。这是深度学习最常用形式。本质在计算效率和梯度稳定性之间折中。7. MomentumMomentum 是动量法。更新方式可以理解为本质让优化带有惯性减少来回震荡加速稳定方向上的下降。像小球滚下山坡会积累速度。8. AdaGradAdaGrad 会对频繁更新的参数降低学习率对不常更新的参数保持较大学习率。本质每个参数有自己的学习率。适合稀疏特征问题。缺点学习率可能越来越小后期几乎不动。9. RMSPropRMSProp 改进 AdaGrad用指数滑动平均控制梯度平方。本质避免 AdaGrad 学习率无限衰减。适合非平稳目标深度学习中曾很常用。10. AdamAdam Momentum RMSProp。它同时考虑梯度的一阶矩估计梯度平方的二阶矩估计。本质既有动量又能自适应调整每个参数的学习率。深度学习中最常用优化器之一。优点收敛快调参相对容易。缺点泛化不一定总比 SGD 好。十三、机器学习中的最优化1. 经验风险最小化机器学习训练的核心是本质找一组参数让模型在训练数据上的平均错误最小。2. 损失函数损失函数衡量预测结果和真实结果的差距。常见损失函数任务损失函数回归MSE二分类Binary Cross Entropy多分类Cross Entropy排序Ranking Loss检测分类损失 框回归损失 置信度损失3. 正则化正则化是在目标函数中加入约束模型复杂度的项。例如其中是 L2 正则化。本质不只要求模型拟合训练集还要求模型不要太复杂。意义降低过拟合提高泛化能力。4. L1 正则化其中作用让很多参数变成 0产生稀疏性。适合特征选择、稀疏建模。5. L2 正则化作用让参数整体变小但不一定变成 0。适合防止参数过大提高稳定性。十四、线性回归中的最优化线性回归模型损失函数目标这是一个凸优化问题。它可以用梯度下降也可以直接求解析解本质找一个超平面使预测值和真实值的平方误差最小。十五、逻辑回归中的最优化逻辑回归用于分类。模型其中 sigmoid 函数损失函数本质让正确类别的概率尽可能大。逻辑回归的损失函数是凸的所以可以比较稳定地优化。十六、SVM 与最优化SVM 的核心目标找一个分类间隔最大的超平面。硬间隔 SVMsubject to为什么最小化 (|w|^2)因为分类间隔与 (|w|) 成反比所以最小化 (|w|^2) 等价于最大化间隔。SVM 的本质在保证分类正确的条件下让分类边界离样本尽可能远。十七、深度学习中的非凸优化神经网络损失函数通常是非凸的。非凸意味着可能有很多局部最优可能有很多鞍点没有简单的全局最优保证。但深度学习仍然能训练成功原因包括原因解释参数空间巨大好解区域可能很多SGD 有噪声有助于逃离某些坏区域过参数化模型容量大容易找到低损失解优化目标复杂但结构友好实际上常能收敛到可用解十八、几个非常重要的名词1. 可行域可行域是所有满足约束条件的点的集合。例如满足这个条件的所有 ((x,y)) 就组成可行域。本质你被允许选择的范围。2. 可行解可行解是满足约束条件的解。本质合法答案。3. 最优解最优解是在所有可行解中目标函数最好的解。本质合法答案里最好的那个。4. 最优值最优值是最优解对应的目标函数值。例如最优解最优值5. 收敛收敛是指算法不断迭代后越来越接近某个稳定结果。本质算法不再乱跑而是逐渐靠近目标。6. 收敛速度收敛速度表示算法接近最优解的快慢。常见说法线性收敛超线性收敛二次收敛。直觉上类型速度线性收敛稳定变快超线性收敛后期很快二次收敛非常快牛顿法在理想条件下可以二次收敛。7. 条件数条件数衡量问题是否病态。对于矩阵条件数大说明不同方向曲率差异很大优化会很慢。直觉圆形碗很好走狭长山谷很难走。8. Lipschitz 连续如果梯度变化不太剧烈可以说梯度满足 Lipschitz 条件。简单理解函数不能突然变得特别陡。意义便于证明梯度下降能稳定收敛。9. 强凸强凸比普通凸更强。普通凸像碗。强凸像有一定弯曲程度的碗。强凸的意义不仅有唯一全局最优而且梯度下降收敛更有保证。10. 光滑性光滑通常指函数可导而且梯度变化连续。本质函数表面不太尖锐方便用梯度方法优化。十九、两天速通路线第一天建立最优化直觉和核心理论上午基本概念必须掌握最优化问题变量目标函数约束可行域可行解最优解最优值局部最优全局最优。你要能说出最优化就是在可行域中找让目标函数最好的一组变量。下午导数、梯度、Hessian必须掌握导数偏导数梯度负梯度方向Hessian正定驻点鞍点二阶最优性条件。你要能说出梯度告诉我们函数上升最快的方向负梯度就是局部下降最快的方向。Hessian 描述函数的弯曲程度可以帮助判断极值类型。晚上凸优化必须掌握凸集凸函数凸优化一阶凸性条件二阶凸性条件局部最优等于全局最优强凸光滑性。你要能说出凸优化重要是因为它没有坏的局部最优只要找到局部最优就是全局最优。第二天算法与约束优化上午无约束优化算法必须掌握梯度下降学习率牛顿法拟牛顿法SGDMomentumAdam。你要能说出梯度下降利用一阶信息牛顿法利用二阶信息Adam 结合动量和自适应学习率是深度学习中常用优化器。下午约束优化必须掌握等式约束不等式约束拉格朗日函数拉格朗日乘子KKT 条件互补松弛对偶问题强对偶弱对偶。你要能说出KKT 条件描述了约束优化最优点处目标函数和约束之间的平衡关系。对凸优化在一定条件下满足 KKT 就是全局最优。晚上机器学习应用必须掌握经验风险最小化损失函数正则化L1L2线性回归逻辑回归SVM神经网络训练非凸优化。你要能说出机器学习训练本质上就是最优化通过调整模型参数使损失函数最小。二十、保研夏令营够用版重点如果你是为了计算机/人工智能方向保研最优化重点不是全书每个证明而是下面这些。第一优先级必须会知识点要掌握到什么程度梯度下降会解释公式和直觉学习率知道太大太小的问题凸函数知道为什么凸优化好局部/全局最优会区分Hessian知道二阶信息作用SGD知道为什么大数据常用Adam知道是动量 自适应学习率正则化知道防止过拟合L1/L2知道稀疏和防止过大KKT能说出四个条件的意义第二优先级最好会知识点用途牛顿法解释二阶优化拟牛顿法了解 BFGS/L-BFGS对偶问题理解 SVM、约束优化强凸理解收敛保证Lipschitz 梯度理解学习率条件条件数理解优化难度鞍点理解深度学习非凸优化第三优先级略懂即可知识点理由内点法偏理论/工程库使用较多单纯形法线性规划里重要但 AI 面试不一定重点ADMM高级分布式优化次梯度法非光滑优化中重要共轭梯度法数值线代相关复杂收敛证明两天速通不必深挖二十一、你最应该背下来的 20 句话最优化就是在可行域中找使目标函数最优的变量。机器学习训练本质上是最小化损失函数。梯度表示函数上升最快的方向。负梯度方向是局部下降最快的方向。梯度下降每一步都沿负梯度方向更新参数。学习率太大会震荡或发散太小会收敛慢。Hessian 描述函数的二阶曲率信息。Hessian 正定时驻点通常是局部极小值。凸函数没有坏的局部最优。凸优化中局部最优就是全局最优。强凸函数通常有唯一全局最优。约束优化是在满足条件的范围内找最优解。拉格朗日乘子法把约束合并进目标函数。KKT 条件是约束优化最优性的核心条件。互补松弛表示约束要么不起作用要么刚好卡住。对偶问题从另一个角度刻画原问题。SGD 用小批量样本近似总体梯度适合大规模训练。Momentum 利用惯性加速下降并减少震荡。Adam 结合了动量和自适应学习率。正则化通过限制模型复杂度来缓解过拟合。二十二、面试回答模板问什么是梯度下降可以答梯度下降是一种一阶优化方法。它利用梯度表示函数上升最快方向这一性质每次沿负梯度方向更新变量从而逐步降低目标函数值。公式是 (x_{k1}x_k-\alpha \nabla f(x_k))其中 (\alpha) 是学习率。学习率过大可能震荡或发散过小则收敛慢。问为什么凸优化重要可以答凸优化重要是因为它有良好的理论性质。对于凸函数在凸可行域上任意局部最优解都是全局最优解。因此相比非凸优化凸优化更容易分析也更容易获得全局最优性保证。问SGD 和 GD 的区别可以答GD 每次使用全部训练样本计算梯度梯度更准确但计算成本高。SGD 每次只使用一个样本或一个小批量样本估计梯度计算更快适合大规模数据但梯度带有噪声更新过程更震荡。深度学习中常用 mini-batch SGD。问Adam 为什么常用可以答Adam 结合了 Momentum 和 RMSProp 的思想。一方面它利用一阶矩估计引入动量加速稳定方向的下降另一方面它利用二阶矩估计为不同参数自适应调整学习率。因此 Adam 通常收敛较快调参相对容易是深度学习中常用的优化器。问什么是 KKT 条件可以答KKT 条件是约束优化问题的核心最优性条件包括原始可行性、对偶可行性、互补松弛和平稳性。它刻画了最优点处目标函数梯度与约束梯度之间的平衡关系。在凸优化并满足一定正则条件时KKT 条件不仅必要而且充分。二十三、最优化和你/项目的关系YOLOv8、APTOS、DNA 启动子识别项目本质上都离不开最优化。YOLOv8 目标检测YOLO 训练本质损失函数包括分类损失边界框回归损失置信度损失。优化器通过反向传播和梯度下降更新网络参数。APTOS 糖网病变分类你的分类模型训练本质使用交叉熵、类别权重、采样策略本质都是在调整优化目标或优化过程。Ordinal loss、threshold search 也都可以从优化角度解释。DNA 启动子识别CNN、BiLSTM、DNABERT 特征模型都要通过损失函数训练。本质是学习一组参数使模型能够更好地区分 promoter 和 non-promoter 序列。二十四、最终总结两天速通最优化抓住这条主线最核心的一句话最优化研究的是如何系统地调整变量使目标函数在约束条件下达到最优在机器学习中它就是模型训练的数学基础。你两天内最应该达到的水平是能解释梯度下降、凸优化、KKT、SGD、Adam、正则化并能把它们和机器学习训练联系起来。做到这个程度面对大多数 AI/软件工程方向保研夏令营中的最优化基础问题已经够用了。