拉格朗日对偶问题——
解决的是
我们有一个函数,要求函数的最值,同时呢我们对这个函数的定义域有一定的约束条件。
俺现在就是不知道,为什么加了约束条件之后,可以这样写公式。
蓝色的是f(x,y)的等高线,中心位置最小。
一眼就能看出来相切的地方值最小。
既然是相切那就说明,他们的偏导数方向一致。
当我们的约束条件是一个区域的时候。
这样的话呢,可以很明显的看出,左上角的那个点是极值点。
只有两个边对这个梯度是有贡献的。
不起作用的就是松弛的
起作用的就是紧致的。
这里我们应该定性分析问题:
1:首先,可行域是什么呢
可行域是一堆超平面切割出来的部分。
那超平面是什么呢,超平面把空间分割成了两部分,一部分大于零,一部分小于零
这里我们的可行域就是一堆超平面的交集,好像叫什么多面体。反正就是一堆小于零的不等式组。
这里我们还是定性分析问题。就反正两种情况,大于零或者小于零
我们先对原问题进行拉格朗日对偶。
得到
这时候,肯定有朋友要问了,为什么是min x 再max 呢?
首先呢,反正我们最后一步一定是取最小值的。我们max再min的作用是为了让
拉格朗日函数最后那个x啊,一定在可行域内。
因此可行域是超平面分割完小于0的那个部分。
如果x不在可行域内,最大值一定是无穷大的。
所以x只能在可行域内。
那问题来了,最后的min咋求呢?
??我们原问题不会求,只能求对偶问题了
这里很显然对偶问题的最后的范围和原问题不一样啊。
最小值咋整呢,我们可以用多元微分求梯度的方法。
对偶问题最后都会变成一种仿射变换
反正就是一条直线的意思。
因为,如果原问题在没有边界的条件下,总能求到最小值。这时候就只剩下两个参数了,就变成了线性函数。
原问题的解一定是大于等于对偶问题的解的。
这个大于的意思就是,求出来的那个极值点肯定是比对偶问题大的。(数值上来说)
我把这个叫做瘦死的骆驼比马大。对最大值求最小,肯定也比对最小值求最大来得大。
因为我的下限就是你的上限。
为什么曲线的梯度是法向量
在这幅图中,我们发现曲线的梯度为法向量。
那么问题来了,为什么曲线的梯度为法向量呢?
参考资料:https://www.zhihu.com/question/61049516/answer/183385871
首先蓝色的梯度都是法向量这个很好理解吧。
那我们再看,蓝色是不是有很多条蓝色的曲线组成的。相当于每一条都是等高线。
那黄色的不也一样,我们多画几条黄色的不就跟蓝色的一样了,所以曲线的梯度是法向量。
这里数学论证不严谨,但是能理解就行。
对偶问题和原问题的可行域在什么时候确定的?
利用拉格朗日对偶问题,把原问题对偶成一个凸问题。
为什么要进行拉格朗日对偶?
如果已知原函数,和定义域求最值,我们完全可以用拉格朗日乘数法来求解。
先对原函数进行变换,然后再求梯度为0的值。
现在有个问题就是,我们求出来的极值点可能是局部最小值,或者是鞍点,毕竟我们只是求两个曲线梯度相等的地方。
那为什么会出现这种情况呢,主要原因还是这个函数是个非凸函数。
但是凸问题的话,极值就是最值,这种函数的特性就非常好。
目标函数是凸函数。
对偶函数一定是凸函数。
所以说,对偶的目的在于锁定x,最后让原问题变成以另一种参数表达的,线性函数,就是凸问题。
凸优化的核心目的就在于求最值
在机器学习中,我们要经常用到凸优化这个概念。
凸优化的目的就是把一个函数变成凸函数,然后利用凸函数的优质特性求解它的最小值。
比如说,机器学习中的损失函数,我们经常用到熵这个概念。因为熵就是一个凸函数,我们要求熵的最小值的时候,就可以直接求导,导数为0的点就是最值点。