凹凸函数是数学中用于描述函数曲线形状的概念。这两个术语分别表示函数曲线的“凹”和“凸”性质。以下是它们的定义:
凹凸函数的性质是相对于函数的曲线形状而言的,而不是函数值的大小。这些概念在优化问题、经济学、凸优化等领域中都有广泛的应用。
一些重要的性质:
如果一个函数是凹函数,那么它的负值就是凸函数。
凸函数在任意区间上的局部极小值就是全局极小值。
凹函数在任意区间上的局部极大值就是全局极大值。
判定损失函数是凸函数的好处在于我们可能很肯定的知道我们求得的极值即最优解,一定是全局最优解。
如果是非凸函数,那就不一定可以获取全局最优解~
来一个更加立体的效果图:
判定凸函数的方式: 判定凸函数的方式非常多,其中一个方法是看黑塞矩阵是否是半正定的。
黑塞矩阵(hessian matrix)是由目标函数在点 X 处的二阶偏导数组成的对称矩阵。
对于我们的式子来说就是在导函数的基础上再次对θ来求偏导,结果就是 $X^TX$。所谓正定就是 $X^TX$ 的特征值全为正数,半正定就是 $X^TX$ 的特征值大于等于 0, 就是半正定。
$J'(\theta) =X^TX\theta -X^Ty$ $J''(\theta) =X^TX$这里我们对 $J(\theta)$ 损失函数求二阶导数的黑塞矩阵是 $X^TX$ ,得到的一定是半正定的,自己和自己做点乘嘛!
这里不用数学推导证明这一点。在机器学习中往往损失函数都是凸函数,到深度学习中损失函数往往是非凸函数,即找到的解未必是全局最优,只要模型堪用就好!机器学习特点是:不强调模型 100% 正确,只要是有价值的,堪用的,就Okay!