理解凸性:为什么梯度下降适用于线性回归

在机器学习中我们总会遇到线性回归问题,但是为什么我们可以用梯度下降算法来求解线性回归成本函数呢?凸性理论可以让我们更容易理解这个问题。

凸性

首先,通过凸集和凸函数定义凸度。凸集的定义如下:

在二维中,我们可以将凸集视为一个形状,无论您用什么线连接集中的两个点,都不会在集外。

(左)凸集,(中)非凸集,(右)凸集

凸集的定义正好体现在凸函数的定义中,如下所示:

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

(左)具有唯一优化器的凸函数,(中)非凸函数,(右)具有多个优化器的凸函数

我们可以看到中间的图不是凸的,因为当我们绘制连接图上两个点的线段时,有一些点(x,f(x))大于f(x)上对应的点。

左边和右边的图形都是凸的。不管你在这些图上画什么线段,这个线段总是在函数图的上面或者等于函数图。

现在我们对凸集和凸函数有了一些直觉和理解,让我们转向线性回归,看看凸性在哪里起作用。

线性回归回顾

假设在n维空间中有m个数据样本。每个样本都有n个映射到单个输出值的特性。我们可以访问输入和输出数据,但是我们想弄清楚输入数据和输出数据之间是否存在线性关系。这就是线性回归模型的用处。该模型的形式为:

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

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

成本函数的凸性

现在我们来看一些凸优化理论。如上所示,梯度下降法被应用于寻找成本函数的全局最小值。但是我们怎么知道存在一个全局最小值呢?当最小化函数时,凸函数可确保如果存在最小值,则它将是全局最小值。前面我们看到二次函数是凸函数。因为我们知道线性最小二乘问题是二次函数,所以我们也知道它是一个凸函数。

二次函数(例如线性最小二乘问题)是强凸的。这意味着该函数具有唯一的最小值,而该最小值是全局最小值。因此,当我们应用梯度下降算法时,我们可以确信它将收敛于正确的最小值。如果我们试图最小化的函数是非凸的,则梯度下降可能会收敛于局部最小值而不是全局最小值。这就是为什么使用非凸函数要困难得多。这很重要,因为许多机器学习模型(最著名的是神经网络)是非凸的。您可以看一个示例,梯度下降以最简单的形式没有找到全局最小化器。

在非凸函数上收敛到局部最小值的梯度下降的示例

(0)

相关推荐

  • 神经网络如何学习的?

    像下山一样,找到损失函数的最低点. 毫无疑问,神经网络是目前使用的最流行的机器学习技术.所以我认为了解神经网络如何学习是一件非常有意义的事. 为了能够理解神经网络是如何进行学习的,让我们先看看下面的图 ...

  • 浅谈随机梯度下降&小批量梯度下降

    机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...

  • 梯度下降直觉 - 机器是如何学习的

    梯度下降法是一种求函数最小值的算法.在机器学习中,预测值和实际值之间的差称为误差.将所有数据点上的所有误差加在一起时称为成本. 当然,我们希望最小化代表此成本的函数 - 成本函数. 在机器学习中梯度下 ...

  • 梯度下降方法的视觉解释(动量,AdaGrad,RMSProp,Adam)

    > Animation of 5 gradient descent methods on a surface: gradient descent (cyan), momentum (magent ...

  • 梯度下降(Gradient Descent)小结

    在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法.这里就对梯度下降法做一个完整的总结. 1. 梯度 在微 ...

  • 梯度下降[梯度下降]

    %% 最速下降法图示% 设置步长为0.1,f_change为改变前后的y值变化,仅设置了一个退出条件.syms x;f=x^2;step=0.1;x=2;k=0;         %设置步长,初始值, ...

  • 不能兼顾速度与精度,利物浦大学、牛津大学揭示梯度下降复杂度理论,获STOC 2021最佳论文

    机器之心报道 机器之心编辑部 梯度下降算法具有广泛的用途,但是关于它的计算复杂度的理论研究却非常少.最近,来自利物浦大学.牛津大学的研究者从数学的角度证明了梯度下降的计算复杂度,这项研究也入选 STO ...

  • 梯度下降—Python实现

    梯度下降是数据科学的基础,无论是深度学习还是机器学习.深入了解梯度下降原理一定会对你今后的工作有所帮助. 你将真正了解这些超参数的作用以及处理使用此算法可能遇到的问题. 然而,梯度下降并不局限于一种算 ...

  • 机器学习干货,一步一步通过Python实现梯度下降的学习

    Gradient Descent - 梯度下降 梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上 ...

  • 步子太快容易牺牲精度,梯度下降复杂度这一简单道理,获严格数学证明

    本文经AI新媒体量子位(ID:QbitAI)授权转载 晓查 发自 凹非寺 梯度下降是机器学习中求最小值最常用的一种算法.尽管这种算法应用广泛,但是人们关于它计算复杂度的理论研究却寥寥无几. 在今年AC ...