趋近智
在机器学习 (machine learning)模型中寻找最优参数 (parameter)本质上是一个优化问题。这个寻找过程的难易程度很大程度上取决于我们想要最小化的函数的特点,通常我们称之为损失函数 (loss function)或目标函数。在这些特点中,凸性是一种显著的性质,当它存在时,会极大简化优化过程。让我们来看看凸性为何如此重要。
在讨论凸函数之前,我们需要理解凸集。向量 (vector)空间中的一个集合被称为凸集,如果对于集合中任意两点和,连接和的整个线段也包含在中。数学上,这意味着对于任意介于0和1之间(含0和1)的标量,点也必须是的元素。
简单的几何形状可以说明这个思想:实心球体、立方体或任何实心三角形都是凸的。相反,像新月形或甜甜圈(环面)一样的集合不是凸的,因为可以在集合中找到某些点对,它们之间的线段会部分地落在集合之外。在许多机器学习 (machine learning)优化情形中,我们在整个空间(其中是参数 (parameter)的数量)上优化参数,这本身就是一个凸集。然而,有时会施加限制(例如,参数的非负性限制),这可能为优化定义一个更具体的凸定义域。
在确立了凸集的定义之后,我们可以定义凸函数。一个定义域为凸集的函数如果满足以下条件,则被归类为凸函数:其图形在连接图上任意两点的线段上方从不向上弯曲。
形式上,对于中任意两点和任意标量,以下不等式必须成立: 这个不等式表达了核心思想:在插值点()处计算的函数值小于或等于原始点和处函数值的线性插值。
如果当且严格介于0和1之间(即)时,此不等式严格成立(),该函数被称为严格凸函数。严格凸函数具有一个更强的性质:它们严格地向上弯曲,远离任何切线。
考虑函数。如果你在其抛物线图上选择任意两点,并在它们之间画一条直线(弦),抛物线本身将始终位于该线下方或触及该线。它从不会在弦上方凸起。这是凸性的视觉标志。
蓝色曲线()展示了凸性;连接曲线上两点的虚线红色弦始终位于曲线之上或与曲线接触。紫色曲线表示一个非凸函数,在这种情况下,弦可以穿过函数图的一部分下方。
优化凸函数的主要好处源于一个显著的性质:凸函数找到的任何局部最小值都被保证是全局最小值。
设想你正在使用像梯度下降 (gradient descent)这样的优化算法。如果算法在某点停止,因为它在当前附近找不到更低的值(使得成为局部最小值),凸性保证实际上是整个定义域上函数值最低的点。你无需担心算法会陷入次优的“山谷”,而其他地方存在更深的山谷。
当处理可微分的凸函数时,梯度会可靠地指向“上坡”方向。沿着相反方向,即移动,能保证函数值降低。标准的梯度下降算法,使用规则更新参数 (parameter),理论上保证会收敛到全局最小值,前提是使用了合适的步长(学习率)。尽管达到最小值的路径可能呈锯齿状,尤其是在更高维度中,它最终会达到全局最优解,而不会永久地停留在其他地方。
许多基础的机器学习算法都受益于凸目标函数:
然而,当我们转向深度学习 (deep learning)时,情况发生了巨大变化。深度神经网络 (neural network)相关的损失函数 (loss function)通常是高度非凸的。它们表现出复杂的几何形状,包含许多局部最小值、鞍点和平坦区域(高原),使优化变得更具挑战性。
尽管如此,理解凸性仍然十分重要:
对于二次可微分的函数,我们可以使用海森矩阵,记作,来判断凸性。海森矩阵是一个包含的二阶偏导数的方阵: 一个函数在其凸定义域上是凸的,当且仅当其海森矩阵在该定义域上的所有处都是**半正定(PSD)的。如果对于所有非零向量 (vector),矩阵满足,则称为半正定矩阵。 如果海森矩阵是正定(PD)**的(即对于所有,满足),那么函数是严格凸的。
尽管这提供了一个具体的数学检验方法,但计算海森矩阵并检查其定性对于大型机器学习 (machine learning)模型来说,计算成本通常过高。具有个参数 (parameter)的模型的海森矩阵有个条目,当达到数百万或数十亿时,这不切实际地难以存储或分析。尽管如此,这个思想对于理论理解和分析较小的问题仍然很重要。
总之,凸性是优化中一个理想的性质,它保证局部最优解是全局最优解,并简化了梯度下降 (gradient descent)等算法的收敛性分析。尽管在深度学习 (deep learning)等许多复杂机器学习场景中不具备凸性,但凸优化的研究为构建和理解更高级的优化技术奠定了基础。识别优化问题是否为凸问题是选择合适方法并设定其性能预期的第一步。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造