深入理解梯度下降、拉格朗日对偶与正则化(1)

1. 梯度下降

1.1 等高线的概念

首先看下图,很多学生可能对于等高线的定义都不是太清楚,首先我们先搞清楚等高线是个什么东西。

图1 等高线示意图

图2 等高线中的梯度走向

1.2 梯度方向为什么与等高线切线方向垂直?

有很多人可能有一个疑问,那就是梯度方向为什么是与等高线方向垂直的呢?

关于这部分的数学证明,网上有很多可以参考的资料,这里就不多做赘述,这里只谈论我本人的个人理解,以下图黄色圆圈为例:

1. 黄色圆圈上所有的点数值(函数结果)都一样

2. 既然数值一样那在整个黄色圆圈上数值都不会变化

3. 那对应于梯度来讲的话,黄色圆圈上任意一点的斜率为0

4. 那么梯度是什么?梯度是函数值增加最快的方向

5. 那梯度怎么才能变化最快呢?垂直于黄色圆圈上切线的方向变化最快

6. 所以梯度方向垂直于等高线

2. 拉格朗日函数

拉格朗日乘子法在众多领域都有广泛应用。最初它是为解决力学中的约束问题而提出的。在经典力学中,许多物体的运动受到各种约束条件的限制。例如,一个质点被限制在一个曲面上运动,或者多个质点之间存在着某种连接关系,使得它们的运动相互制约。拉格朗日乘子法能够将这些约束条件纳入到力学系统的分析中,通过引入拉格朗日乘子,将有约束的力学问题转化为无约束的变分问题,从而方便地求解物体的运动方程。

随着科学技术的发展,其应用范围不断扩大。在数学领域,常常需要在满足一定约束条件下求函数的极值。例如,求一个多元函数在某些等式约束下的最大值或最小值。拉格朗日乘子法为解决这类问题提供了一种通用的方法,它将约束条件与目标函数相结合,构造出拉格朗日函数,通过求解拉格朗日函数的驻点来找到原问题的可能极值点。

此外,在经济学中,可用于求解消费者在预算约束下的效用最大化问题,或者生产者在成本约束下的利润最大化问题;在工程学中,可用于结构优化设计、资源分配等问题;在计算机科学的机器学习领域,拉格朗日乘子法也被用于支持向量机等算法中的优化问题。

拉格朗日函数的本质:去约束

2.1 拉格朗日乘子法的基本概念

ps:对于约束函数 g(x_{1}, x_{2}, \cdot \cdot \cdot , x_{n}) 的理解不要单纯局限于变量,可以通过一下这个数学应用实例来进行更深一步的理解。

2.2 拉格朗日乘子法的数学应用实例

2.2.1 问题描述

假设我们要设计一个矩形,已知其周长 P 固定,需要找到长 x 和宽 y 的值,使得矩形的面积 A 最大。

2.2.2 数学建模

目标函数:矩形的面积 A(x, y) = xy,我们希望最大化这个函数。

约束条件:矩形的周长 P = 2x + 2y 是固定值,将其转化为g(x, y) = 2x + 2y - P = 0

ps: 为什么说对于约束函数 g(x_{1}, x_{2}, \cdot \cdot \cdot , x_{n}) 的理解不要单纯局限于变量呢,对于这里的约束条件来说,有的教程可能就会以 P = g(x, y)的形式出现,就相当于将g(x, y)等同于 2x + 2y,其实将P挪过来,再将整体等同于g(x, y)是一样的。

2.2.3 使用拉格朗日乘子法求解

1. 构造拉格朗日函数:引入拉格朗日乘子λ,构造拉格朗日函数

2. 求偏导数并令其为0:

3. 解方程组:由x = -2\lambday = -2\lambda可知x = y,将其代入约束条件

2x + 2y - P = 0

中,得到

2x + 2x -P = 0

4x = P, x = y = \frac{P}{4}

2.3 拉格朗日函数的数学原理

在深度学习中有过拟合的情况,一般采用……的方法,那么这种方法在深度学习中的具体应用是什么样的呢?以及在什么条件下会满足呢?

相关内容在第一节有详细介绍

那么约束条件与目标函数的关系在图像中的体现是怎么样的呢?怎么通过图像来理解这个概念呢?

注意:目标函数是一个曲面,而约束条件是一条曲线,其实也是一条等高线,只不过高度为0(在xoy平面)。

下图展示了一个目标函数等高线与约束条件的示意图:

那么拉格朗日函数的极值点在哪里呢?由于我们只能在约束条件的曲线上考虑目标函数的值,哪个点才是极值呢?明显对应于图中红色的那个点,但是有什么根据吗?

可以从以下两点考虑:

1.梯度,若想找到拉格朗日函数的极值点,那么极值点处的梯度必然为0,若想拉格朗日函数的梯度为0,那么目标函数和约束函数的梯度必须在一条直线上,因为梯度是标量,如果不在一条直线上,这两个函数的梯度相加必不可能等于0,因此目标函数和约束函数的等高线必相切。

2. 直观理解,如果极值点处不相切,那就肯定会有一个交点,设交点为A,那么从A出发沿着约束函数这条曲线往左和往右走,肯定会得到分别大于和小于A处目标函数数值的两个目标函数数值。那么A处肯定就不是极值点。

2.4 多个约束条件下的拉格朗日对偶函数

具体看如下例子:

要满足上面图片中的要求,就要满足以下条件:

下面这种情况就相当于所有的约束条件都是松弛的(因为最小值就在约束范围内,所有的\lambda都为0):

3. 拉格朗日对偶

拉格朗日乘数法有自己的优点,但是也有相应的问题,不能保证自己找出的点就是极值点就是最值,有可能是鞍点,比如下图这种情况:

但是最值只有1个。像这种极值点不止一个的问题称为非凸问题

那么什么是凸问题,什么是非凸问题?什么是凸函数,什么是凹函数?

1. 凸问题:目标函数是凸函数/凹函数,也就是说只有一个极值。在凸函数上求最小值,在凹函数上求最大值,一般情况下我们习惯于求最小值,因此遇到凹函数先加一个负号变成凸函数然后来求最小值,如下图所示:

但是并不是所有问题都是凸问题,如果遇到了非凸问题该怎么办呢?这个时候就需要用到拉格朗日对偶函数了,对于拉格朗日对偶问题有如下定义:

3.1 拉格朗日原问题

假设 f ( x ) , c i ( x ) , h j ( x ) f(x),c_i(x),h_j(x) f(x),ci​(x),hj​(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束最优化问题:

ps:很多人都在想为什么这么假设?这是一个通用性的假设,适用于所有情况!!!因为 c_{i}(x) \geq 0  他不就是 -c_{i}(x) \leq 0 吗?然后你就把 -c_{i}(x) 重新理解为 c_{i}(x) 不就完事了?有小于等于0,有大于等于0,还有等于0,这不就是适用于所有情况的一种假设吗?

将上述情况成为约束最优化问题的原始问题。

如果不考虑约束条件,原始问题就是:

因为假设其连续可微,利用高中的知识,f(x)求导数,然后令导数为0,就可解出最优解很简单。但是问题来了,这里有约束条件,必须想办法把约束条件去掉才行, 拉格朗日函数派上用场了。

利用上节介绍的拉格朗日函数来“去约束”:

网上很多资料都是将这个拉格朗日函数的计算分为两层,来实现对f(x)的等价求min,如下所示:

那么这种形式为什么能够在约束条件内的同时又求出min f(x)呢?

首先第一个式子是将x视为固定数值,也就是常量,求出 max L(x, \alpha , \beta ),,此时 f(x) 相当于常量,那么此时α和β取什么数值会使得L(x, \alpha , \beta )取到最大值呢?这里有两种情况:

1. x 符合约束条件,此时c_{i}(x) \leq 0,那么因为 α ≥ 0,因此 \alpha c_{i}(x) \leq 0 最大值为0,此时\alpha =0,因为符合约束条件因此h(x)=0,此时max L(x, \alpha ,\beta ) = f(x)

2. x不符合约束条件,此时c_{i}(x) > 0,那么因为 α ≥ 0,因此 \alpha c_{i}(x) > 0 最大值为\infty,此时\alpha =\infty,此时h(x)\neq 0,很轻易能够得到使得\beta h(x)=\infty\beta

至此\alpha\beta已经固定下来了,那么对于min来说,是将\alpha\beta视作常数,将x视作变量,此时会有如下情况:

1. 对于符合约束条件的x,由第一步已经推出max L(x, \alpha ,\beta ) = f(x),此时对其求最小值,就相当于对 f(x) 求最小值,这就等价于原问题了。

2. 对于不符合约束条件的x,由于其max为无穷大,\alpha =\infty\beta =\infty,对其求min没有意义,因为值太大了,肯定不会选择这个x。所以就将其直接排除掉了。具体可以如下这么理解:

3.2 拉格朗日对偶问题

上面讲述的都是拉格朗日原问题,那么拉格朗日对偶问题是什么呢?看如下图示:

对偶问题的提出就是为了解决非凸问题,对偶问题有一个特性:不论原问题是什么,换成对偶问题都是一个凸问题。

为了更好地理解对偶问题,我们有一些概念需要了解,例如凸集、凸优化

3.2.1 凸集

所谓凸集就是在该集合内任意两点之间的连线,这条线上的所有点都在集合范围内,下图中,左边就是非凸集,右边是凸集。

3.2.1.1 仿射集

上面的图片中对\theta有限制,就相当于是线段,当对\theta没限制的时候,就是一条直线,如果x_{1}x_{2}是多维度的话,那就是一个超平面,这种集合称为仿射集,仿射集一定是凸集。

多个仿射集相交也一定是凸集

3.2.2.2 半空间

半空间也是凸集,多个半空间的交集也是凸集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值