动手学深度学习 - 优化算法 - 12.2 凸性


动手学深度学习 - 优化算法 - 12.2 凸性

凸性(Convexity)是优化算法中最重要的数学基础之一。尽管深度学习中的优化问题通常是非凸的,但很多时候,它们在局部区域近似凸,这使得很多凸优化的结论与技术仍然具有指导意义。学习凸性不仅帮助我们理解优化算法的收敛行为,还为理论分析和新算法设计打下基础。


12.2.1 定义

12.2.1.1 凸集

我们首先定义凸集。简单来说,一个集合是凸的,当你在集合中任选两个点,它们之间连成的整条线段也仍然完全包含在这个集合中。

数学表达式如下:

这可能听起来有点抽象,所以我们通过图 12.2.1 来直观理解它:

  • 左边那个像吃豆人的图形就不是凸的,因为两个点之间的线段穿出了集合;

  • 中间和右边两个集合则是凸的。

定义凸集的意义在于,它们对优化问题具有良好性质。例如,凸集的交集仍然是凸的,但并集不一定是凸的,如图 12.2.2 与图 12.2.3 所示。


12.2.1.2 凸函数

定义完凸集,我们就可以定义凸函数。给定一个定义在凸集上的函数 ff,如果对于任意两点 x,x′∈Xx, x' \in \mathcal{X},满足:

我们就称 ff 是凸函数。

图中展示了几个典型函数:

  • 抛物线和指数函数是凸的;

  • 余弦函数则不是凸函数,因为其连线会穿出函数图像上方。


12.2.1.3 詹森不等式

詹森不等式是凸函数的重要性质:

也就是说,凸函数作用在期望上总小于或等于将其作用到样本再求期望。这一不等式在变分推理、EM 算法等场景中尤为常见。


12.2.2 凸函数的性质

12.2.2.1 局部最小值也是全局最小值

这是凸函数最重要的性质之一:

  • 对于凸函数,只要一个点是局部最小值,它一定也是全局最小值

这个性质意味着,我们不会被“困在”某个差的局部最小值里。图示函数 f(x)=(x−1)2f(x) = (x - 1)^2 在 x=1x=1 处有唯一最小值,即局部也是全局。

12.2.2.2 下水平集是凸集

对于一个凸函数 ff,其下水平集:

是一个凸集。这一性质对约束优化尤为重要。


12.2.2.3 凸性与二阶导数

判断一个函数是否是凸的最常用方法是:

  • 如果函数二阶可导,且其 Hessian 矩阵是正半定(所有特征值非负),那么函数就是凸的。

对于一维函数,这简化为:

多维情况则需检查:


12.2.3 凸约束与优化策略

凸优化一个非常好的性质就是:

只要目标函数是凸的,约束也是凸的,那么整个问题就能高效求解。

我们通常写成:


12.2.3.1 拉格朗日乘子法

通过拉格朗日函数 L(x,λ,ν)\mathcal{L}(x, \lambda, \nu),我们将约束优化转化为鞍点问题:

在深度学习中,它常用于软约束和对偶优化,如 SVM。


12.2.3.2 罚函数法(Penalty)

我们可将约束写入目标函数中,加上罚项:

例如权重衰减(L2 正则化)就是一种典型的罚函数策略,用于控制参数范围。


12.2.3.3 投影(Projection)

另一种方法是:每次参数更新后,将其投影回凸集内,保证约束始终满足:

如图 12.2.4,点被投影到球或菱形内,确保满足凸集约束。


🎓 理论理解

  1. 凸集 = 连线全在集内;凸函数 = 图像在弦线下方

    • 凸集定义强调几何意义,是优化问题的“搜索空间”;

    • 凸函数定义强调函数形状,是目标函数“山谷形态”的刻画;

    • 两者共同构成“好优化问题”的充分条件。

  2. 局部最小 = 全局最小 ⇒ 搜索路径更安全
    在凸函数下,任何局部最小值都是全局最小值。这意味着我们可以放心地使用梯度下降这类“只看当前方向”的贪心算法,不用担心陷入次优坑。

  3. Hessian 正半定 ⇔ 函数凸性(连续可导条件下)
    数学上最常用的判断标准是:

    • 一维函数 f′′(x)≥0f''(x) \geq 0f′′(x)≥0;

    • 多维函数 Hessian 矩阵正半定,即所有特征值非负。

  4. Jensen 不等式连接了概率与优化
    Jensen 不等式将凸性从几何推广到了概率空间,是贝叶斯推断、变分方法、最大期望算法(EM)中的理论核心。

  5. 凸优化的三种约束处理方式互有取舍:

    • 拉格朗日法:结构严谨,适合分析解推导;

    • 罚项法:灵活稳健,适合深度学习中软约束;

    • 投影法:可控收敛,常用于梯度裁剪、范数控制等。


🏭 工程实践理解(以 Google / Meta / 字节跳动为参考)

  1. Google & NVIDIA:用“投影 + 正则”稳健训练大模型
    在大模型(如 GPT、BERT、ViT)训练中,工程团队会引入:

    • 梯度范数投影(例如最大值裁剪到 L2 Ball);

    • 权重正则化(L2 罚项即 soft constraint);

    • Warmup + Cosine Decay 的学习率调度;
      这些操作虽不明说“凸”,但本质都与凸约束投影或惩罚优化有关。

  2. 字节跳动:在推荐模型中用 Jensen 不等式构造变分下界
    在 CTR、CVR 模型中,为了解决隐变量带来的对数似然不可解析问题,会使用 Jensen 不等式引入变分下界,使优化目标可计算。

  3. Meta:在 Meta-Learning 中引入凸正则项,约束模型迁移稳定性
    多任务学习中,为防止模型过拟合每个任务,会用 convex loss + convex regularizer(如 KL 距离、entropy bounds)构造组合目标函数,确保解空间稳定。

  4. 常见误区避免:

    • 并不是所有“看起来像碗”的函数都是凸的,要看定义域;

    • L1 正则虽然不是严格凸,但仍然能诱导稀疏解;

    • 投影方法要搭配梯度更新,否则会产生“折返”行为。


🧠 大厂面试题:12.2 凸性


✅ 面试题 1【基础理论题】

Q:什么是凸函数?请写出数学定义,并说明它与优化问题中的全局最优解有何关系。

参考答案:
一个函数 ff 定义在一个凸集上,如果满足对任意 x,x′∈Xx, x' \in \mathcal{X} 和 λ∈[0,1]\lambda \in [0,1]:

则 ff 是凸函数。在优化中,这一性质意味着局部最小值一定是全局最小值,因此搜索过程可以放心地使用局部算法(如梯度下降)。


✅ 面试题 2【判断与推导题】

Q:如何判断一个连续可导的函数是凸函数?多维情况下该如何判断?

参考答案:

  • 一维情况下:若 f′′(x)≥0f''(x) \geq 0,则 ff 是凸的;

  • 多维情况下:若 ∇2f(x)\nabla^2 f(x) 是正半定矩阵(所有特征值 ≥0\geq 0),则 ff 是凸函数;

  • 正半定可通过判断 z⊤∇2f(x)z≥0, ∀zz^\top \nabla^2 f(x) z \geq 0,\ \forall z 来验证。


✅ 面试题 3【应用场景题】

Q:你正在训练一个带 L2 正则项的深度模型,这个正则项是否改变了目标函数的凸性?为什么?

参考答案:
L2 正则项(如 λ∥w∥22\lambda \|w\|_2^2)本身是凸函数;如果原始损失函数也是凸的(如 MSE),则加上 L2 正则之后仍是凸的,因为凸函数的加法仍为凸函数;但如果原始损失非凸,加正则项无法保证整体凸性。


✅ 面试题 4【Jensen 不等式题】

Q:写出 Jensen 不等式,并说明它在深度学习中一个常见应用场景。

参考答案:
Jensen 不等式:对凸函数 ff,有

应用场景:在变分自编码器(VAE)或 EM 算法中,用 Jensen 不等式推导变分下界,使对数似然函数近似可优化。


✅ 面试题 5【投影操作】

Q:什么是凸集上的投影?它在深度学习中有哪些实际用法?

参考答案:
凸集 X\mathcal{X} 上对点 xx 的投影定义为:

作用是将点强制限制在可行区域内;
工程中常用于:

  • 梯度裁剪(clip to L2 Ball);

  • 参数范数约束;

  • 训练阶段的可行域投影(如强化学习的 action clipping)。


✅ 面试题 6【开放性思考题】

Q:为什么大多数深度学习优化问题是非凸的?我们为什么仍然能“训练得很好”?

参考思路:

  • 深度模型由非线性组合(如 ReLU、BatchNorm)构成,导致整体目标函数非凸;

  • 但在训练过程中,参数路径局部可能呈现近似凸性

  • 加之现代优化器(如 Adam、SGD+momentum)+ 初始策略 + 正则技术,使得即便非凸,仍能找到“好解”。

场景题(12.2 凸性)


📌 场景题 1:字节跳动推荐算法团队 - CVR 多任务模型失稳

背景:
你在字节跳动的广告推荐系统中参与训练一个包含 CTR(点击率)和 CVR(转化率)联合建模的多任务网络。近期业务方反馈模型在某些类目下性能波动严重,经检查发现 loss 曲线波动异常,有时甚至 loss < 0。

任务描述:
请判断是否可能是 loss 函数设计或优化空间不具备凸性 导致不稳定?你会如何进行理论分析与工程验证?

要求:

  • 判断原始 loss 函数(如 logloss + 加权 sum)是否为凸函数;

  • 提出是否可以通过调整 loss 结构或加入 convex regularizer 提升训练稳定性;

  • 是否可以使用 Jensen 不等式推导出某种更鲁棒的下界替代优化目标?


📌 场景题 2:阿里达摩院视觉模型 - 优化路径陷入非凸局部最小值

背景:
你在阿里视觉团队训练一个多分支的图像风格转换网络,损失函数包括内容损失、风格损失和感知损失。训练过程中发现模型性能高度依赖初始化,稍有扰动便陷入较差的解,推测是由于目标函数强非凸性导致。

任务描述:
你作为优化专家,如何运用凸分析工具来分析 loss surface 并重构目标函数的优化路径?

要求:

  • 判断是否存在在局部区域近似凸的可能;

  • 提出如何通过投影策略或添加 convex component(如 L2 正则、TV loss)构造更“凸”的优化区域;

  • 可否通过可视化(如 Hessian 特征谱、loss landscape)分析当前非凸性程度?


📌 场景题 3:Google Research - 变分自编码器中的 Jensen 不等式设计

背景:
你参与 Google Brain 团队的一项图像生成项目,采用变分自编码器(VAE)训练结构图模型,目标是最大化数据的对数似然,但由于存在隐变量 Z,该对数似然无法直接求解。

任务描述:
你需要推导一个优化目标函数,使其既可导、可优化,又满足一定理论上界。

要求:

  • 请写出如何使用 Jensen 不等式构造 Evidence Lower Bound(ELBO);

  • 解释 ELBO 函数的凸性与优化稳定性的关系;

  • 如果原始问题是非凸的,你是否可以将目标函数改写为局部凸函数组合?


📌 场景题 4:NVIDIA Jetson 边缘端部署 - 模型参数投影优化策略

背景:
你负责 Jetson Nano 平台上部署一个嵌入式目标检测模型。由于设备内存小、计算限制多,模型权重大小和梯度更新必须严格控制。

任务描述:
每次权重更新后,你需将参数投影到约束空间中,以防止模型过拟合和溢出。

要求:

  • 如何在训练中引入凸投影策略来强制模型参数满足 L2 范数不超过某阈值?

  • 如何实现这一步的高效投影(考虑批量更新)?

  • 请说明投影策略与凸集几何之间的关系(参考图 12.2.4)?


📌 场景题 5:百度 Apollo 自动驾驶 - 规划模块中的凸优化路径搜索

背景:
你在 Apollo 自动驾驶系统中负责轨迹规划模块。车辆需要在障碍物之间寻找一条最优路径,该路径必须是连续、平滑且避开所有障碍。

任务描述:
请用凸优化方法构造轨迹搜索模型,保障轨迹的安全性与可解性。

要求:

  • 目标函数是否可以构造成 convex(如最短路径 + 平滑度惩罚)?

  • 障碍物是否能被定义为 convex constraint(如凸多边形)?

  • 若加速度、曲率等约束存在,如何使用 Lagrangian 乘子法或 penalty 策略整合这些约束?


✅ 总结

这些大厂场景题体现出一个共性:即使深度学习整体是非凸问题,凸性依然是设计高效优化算法的理论支柱与工程落地手段。

应用场景凸性作用
推荐系统构造更鲁棒的损失下界(Jensen)
图像生成构建变分优化目标,保证可优化性
边缘部署投影权重参数,控制模型范数
自动驾驶规划用 convex cost + constraints 建模

 


✅ 总结

考点常见题型对应章节内容
凸函数定义数学公式书写题12.2.1.2
凸性的判断标准二阶导数推导、Hessian 特征值判断12.2.2.3
Jensen 不等式推导题、变分下界场景题12.2.1.3
投影方法工程应用题(梯度裁剪、参数限制)12.2.3.3
凸约束处理拉格朗日法、罚项法、投影策略12.2.3

12.2.4 小结

  • 凸集: 任意两点之间的连线在集合内;

  • 凸函数: 连线在函数图像之下;

  • 局部最优即是全局最优 是凸函数的核心特性;

  • Hessian 正半定 ⇔ 函数凸性(在连续可导条件下)

  • 凸优化可用拉格朗日、罚函数或投影方法求解;

  • Jensen 不等式等式工具常用于理论分析;

  • 在实践中,即便问题非凸,很多区域局部凸性也可用上述方法近似处理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值