跳到主内容
快讯直播
AI智模界
AI 词典

非凸优化:损失曲面千沟万壑,深度学习凭什么还能训出好模型

一句话定义:非凸优化(Non-convex Optimization)就是在形状崎岖的目标函数上找最低点——通常找不到全局最低,只能找到一个"足够好"的低点,而深度学习恰恰是靠它运转的。

为什么叫"非凸"

把优化想象成在山地里找最低处。凸优化(Convex Optimization)的地形像一只碗:不管从碗里哪个位置出发,顺着下坡走,最后一定落到唯一的碗底,而且这个碗底就是全局最优。非凸则像一片真实山脉——有深谷、有浅坑、有鞍部、有高原,你从哪儿出发、迈多大步子,都会影响最后停在哪个坑里。

深度学习要最小化的损失函数(loss function)就是这样一片山脉。模型参数动辄百万到上万亿个,每个参数是一个方向,曲面在超高维空间里的形状既画不出来也解不出来。所以实践中靠的是梯度下降(Gradient Descent)及其变体:算出当前点的梯度(最陡的下坡方向),迈一小步,如此反复。既然没法保证走到谷底,为什么效果还不错?

  • 高维空间里"坏坑"很少。随机初始化后,梯度为零的点大多是鞍点(saddle point),而鞍点在至少一个方向上仍有下坡路可走,不会被卡死。
  • 坑与坑之间差别不大。很多局部最优的损失值彼此接近,甚至与全局最优接近;而模型真正需要的是泛化(generalization),不是数值上的绝对最低。
  • 噪声在帮忙。随机梯度下降(SGD)每次只看一小批数据,天然的抖动会把参数从浅坑里晃出来;动量、学习率调度也是同样的作用。
  • 过参数化(over-parameterization)反而好走。参数多到远超样本量时,可通行的路径变多,"能不能拟合"不再是瓶颈。

和相邻概念的区别

凸优化非凸优化
曲面形状一只碗,唯一最低点千沟万壑,多个局部最优与鞍点
能否保证最优能,可在多项式时间内求全局最优一般不能,只求"够好"的解
典型问题线性规划、最小二乘、逻辑回归神经网络训练、矩阵分解、聚类
真正的难点规模与约束处理初始化、学习率、逃离鞍点

对从业者的意义

调参时不必执念于"找到全局最优",更该关心初始化、学习率、批大小和正则化——它们决定你会掉进哪个坑,以及从坑里出来的模型泛不泛化。对普通职场人,这解释了为什么训练模型看起来像"玄学":换一个随机种子,结果就不同;同一个流程重跑一遍,指标未必复现。这种不确定性不是工程没做好,而是问题本身的性质。想彻底消除它,就得退回凸问题,但那样能表达的东西会少得多。各家框架的具体算法实现与默认参数,以官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。