最后更新:2020-04-20 12:33:59 手机定位技术交流文章
在机器学习中,我们经常会遇到线性回归的问题,但是为什么我们可以用梯度下降算法来求解线性回归的代价函数呢?凸性理论可以使我们更容易理解这个问题。
凸面
首先,凸性由凸集和凸函数定义。凸集定义如下:

在二维空间中,我们可以把凸集看作一个形状,无论用什么线来连接集合中的两点,它们都不会在集合之外。

(左)凸集,(中)非凸集,(右)凸集
凸集的定义正好反映在凸函数的定义中,如下:

你可以直观地把凸函数想象成一个函数:如果你画一条从(x,f(x))到(y,f(y))的直线,那么凸函数的图像就在这条直线的下面。这里有三个例子。我们用这种直觉来判断一个函数是否是凸的。

(左)具有唯一优化器的凸函数,(中)非凸函数,(右)具有多个优化器的凸函数
我们可以看到中间的图不是凸的,因为当我们在图上画一条连接两点的线段时,一些点(x,f(x))比f(x)上相应的点大。
左边和右边的数字是凸的。不管你在这些图上画什么线段,这条线段总是在函数图上。
现在我们对凸集和凸函数有了一些直觉和理解,让我们转向线性回归,看看凸性在哪里起作用。
线性回归综述
假设n维空之间有m个数据样本。每个样本具有映射到单个输出值的N个特征。我们可以访问输入和输出数据,但是我们想知道输入数据和输出数据之间是否存在线性关系。这是线性回归模型的使用。该模型的形式为:

现在,我们确定最佳线性模型的方法是求解模型的系数,以使我们的估计输出值和实际输出值之间的误差最小。我们可以用线性最小二乘法。因此,我们的成本函数如下:

我们称这个函数为“成本”函数,因为我们计算估计值和实际值之间的总误差或成本。由于线性最小二乘问题是一个二次函数,我们可以使用分析方法来最小化这个成本函数。然而,对于大型机器学习数据集,使用称为梯度下降的迭代方法来寻找最佳系数通常更快。如何使用梯度下降来最小化成本函数的细节如下:

成本函数的凸性
现在让我们看看一些凸优化理论。如上所示,梯度下降法用于寻找成本函数的全局最小值。但是我们怎么知道有一个全球最小值呢?当最小化一个函数时,凸函数确保如果有最小值,它将是全局最小值。之前我们看到二次函数是凸函数。因为我们知道线性最小二乘问题是一个二次函数,我们也知道它是一个凸函数。
二次函数(如线性最小二乘问题)是强凸的。这意味着该函数有一个唯一的最小值,即全局最小值。因此,当我们应用梯度下降算法时,我们可以确定它将收敛到正确的最小值。如果我们试图最小化的函数是非凸的,梯度下降可能会收敛到局部最小值而不是全局最小值。这就是为什么使用非凸函数要困难得多。这很重要,因为许多机器学习模型(最显著的是神经网络)是非凸的。你可以看一个例子,梯度下降没有找到最简单形式的全局最小化。

非凸函数梯度下降收敛到局部极小值的例子
本文由 在线网速测试 整理编辑,转载请注明出处。