凸函数#
术语解释#
凸函数(Convex Function) 是指其图像上方的区域构成凸集的函数。直观上,凸函数的形状通常像字母 U 或抛物线:从一端下降到谷底再上升到另一端,中间没有"凹陷"或"波浪",即函数图像上任意两点的连线永远位于图像上方或之上,如下图所示。
相反,以下函数就是凸函数,如图所示。
在机器学习中,大量常见目标函数都是凸函数:
-
$L_2$ 损失($L_2$ Loss):$\frac{1}{n}\sum (y_i - \hat{y}_i)^2$
-
Log Loss(对数损失):$- \frac{1}{n}\sum \bigl[y_i \log \hat{p}_i + (1-y_i)\log(1-\hat{p}_i)\bigr]$
-
$L_1$ 正则化($L_1$ Regularization):$\lambda \sum |w_i|$
-
$L_2$ 正则化($L_2$ Regularization):$\lambda \sum w_i^2$
凸性的可加性也是非常实用的性质:两个凸函数之和仍是凸函数。因此「$L_2$ loss + $L_1$ 正则」「$L_2$ loss + $L_2$ 正则」组成的整体目标函数依然是凸函数,因此可以放心使用为凸优化设计的求解器。
需要特别强调的是:深度学习模型几乎从不是凸函数,多层神经网络的复合使损失充满局部极小值、鞍点与平坦区域,结构远比 U 形复杂。不过为凸优化设计的算法(如梯度下降、SGD)在深度网络上仍常常能找到不错的解——虽然这个解不被保证是全局最优。
相关术语#
-
梯度下降
-
随机梯度下降
-
$L_2$ 损失
-
对数损失
-
$L_1$ 正则化
-
$L_2$ 正则化
引用#
[1] https://developers.google.com/machine-learning/glossary#convex-function