深度学习花书-4.4 约束优化

4.4 约束优化

这篇博客不是对照花书写的,但是对你看花书这一节是有用的

minmax不等式-宁做凤尾不做鸡头

在看到白板推导的up主看着下式说鸡头凤尾的时候,觉得真是太有趣了,很形象有没有
max ⁡ y min ⁡ x f ( x , y ) ≤ min ⁡ x max ⁡ y f ( x , y ) \max _{y} \min _{x} f(x, y) \leq \min _{x} \max _{y} f(x, y) ymaxxminf(x,y)xminymaxf(x,y)

花书里面有出现类似的式子,当时没有看懂,看到白板推导SVM的视频的时候再次遇到了约束优化和对偶问题,又查了一些资料才搞懂。以下内容参考minmax不等式和对偶问题 - 知乎 (zhihu.com)

有的时候你可能想不明白一个问题到底是怎么回事,但是当你用纯数学的方式推导得到答案的时候,你就知道它是对的,比如上面的式子,乍一看,不知道为什么,但是请看下方的式子
min ⁡ x f ( x , y 0 ) ≤ f ( x 0 , y 0 ) ≤ max ⁡ y f ( x 0 , y ) \min _{x} f(x, y_0) \leq f(x_0,y_0) \leq \max _{y} f(x_0, y) xminf(x,y0)f(x0,y0)ymaxf(x0,y)
有顿悟的感觉吗

知乎的博主还对这个式子做了一些阐述,但对我而言,这一串式子比任何阐述都要来的直观。看到这个式子的时候,我已经知道接下来的步骤了,拿掉中间的过渡,有
min ⁡ x f ( x , y 0 ) ≤ max ⁡ y f ( x 0 , y ) \min _{x} f(x, y_0) \leq \max _{y} f(x_0, y) xminf(x,y0)ymaxf(x0,y)
然后因为 x 0 , y 0 x_0,y_0 x0,y0​ ​​是任意的,因此必须让不等式左边的最大值小于等于右边的最小值,上式才能恒成立,从而得证。

优化问题

问题定义

min ⁡ x f ( x )  subject to  h i ( x ) ≤ 0 i = 1 , 2 , ⋯   , m l j ( x ) = 0 j = 1 , 2 , ⋯   , n \begin{array}{rl} \min _{x} & f(x) \\ \text { subject to } & h_{i}(x) \leq 0 \quad i=1,2, \cdots, m \\ & l_{j}(x)=0 \quad j=1,2, \cdots, n \end{array} minx subject to f(x)hi(x)0i=1,2,,mlj(x)=0j=1,2,,n

广义拉格朗日函数

L ( x , λ , η ) = f ( x ) + ∑ i λ i g ( i ) ( x ) + ∑ j η j h ( j ) ( x ) L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta})=f(\boldsymbol{x})+\sum_{i} \lambda_{i} g^{(i)}(\boldsymbol{x})+\sum_{j} \eta_{j} h^{(j)}(\boldsymbol{x}) L(x,λ,η)=f(x)+iλig(i)(x)+jηjh(j)(x)
然后我们我们有下面这个式子,先看它是如何成立的,然后再说为什么要做这个转化。
min ⁡ x max ⁡ λ ≥ 0 , η L ( x , λ , η ) = min ⁡ x f ( x ) \min _{x} \max _{\lambda \geq 0, \eta} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta})=\min _{x} f(\boldsymbol x) xminλ0,ηmaxL(x,λ,η)=xminf(x)
乍一看这是什么玩意儿?

直到在博客里面看到下面这个式子
max ⁡ λ ≥ 0 , η L ( x , λ , η ) = { f ( x ) ,   x  满足约束  + ∞ ,   x  不满足约束  \max _{\lambda \geq 0, \eta} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta})=\left\{\begin{array}{ll} f(x) & ,\ x \text { 满足约束 } \\ +\infty & ,\ x \text { 不满足约束 } \end{array}\right. λ0,ηmaxL(x,λ,η)={ f(x)+, x 满足约束 , x 不满足约束 
我感觉我又行了,嘿嘿,看下面
min ⁡ x max ⁡ λ ≥ 0 , η L ( x , λ , η ) = min ⁡ x ( f ( x ) , + ∞ ) = min ⁡ x f ( x ) \min _{x} \max _{\lambda \geq 0, \eta} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta})=\min _{x}(f(x),+\infin) = \min _{x}f(x) xminλ0,ηmaxL(x,λ,η)=xmin(f(x),+)=xminf(x)
那么,我们为什么要这么转化呢,我们就需要引入对偶的概念了

对偶问题

对于强对偶问题(先别管强对偶是什么),我们可以得到
max ⁡ λ ≥ 0 , η min ⁡ x L ( x , λ , η ) = min ⁡ x max ⁡ λ ≥ 0 , η L ( x , λ , η ) \max _{\lambda \ge0,\eta} \min _{x} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta}) = \min _{x} \max _{\lambda \geq 0, \eta} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{\eta}) λ0,ηmaxxminL(x,λ,η)=xminλ0,ηmaxL(x,λ,η)
我们希望通过将原问题转化为对偶问题,然后对对偶问题求解以获得原问题的解。我们之所以做这个转化是因为原问题有的时候不好求解,但具体为什么,你问我我问谁去。哈哈,待我学成归来再告诉你。。。补充:我学成归来了,看到一个解释是说,转换成对偶问题可能是为了引入核技巧(为了引入核技巧而引入对偶,wc牛逼呀),因为对偶问题进行计算时,有关于两个点内积的计算: x i T x j x_i^Tx_j xiTxj,这可以方便的用核函数替代 κ ( x i , x j ) \kappa(x_i,x_j) κ(xi,xj),便于处理非线性可分的情况

至于对偶问题怎么求解,那么又要引入新东西了,它叫KKT条件

KKT条件

我们得到对偶问题的表述后,怎么利用它求得极值,KKT条件告诉了我们极值点需要满足的要求

KKT 条件和强对偶关系是等价关系。KKT 条件对最优解的条件为:

在这里插入图片描述

上图来自支撑向量机 · 语雀 (yuque.com)

指路

最后,想说明一下,我这篇文章没有更多的推导实例讲解,一方面是内容很多,涉及凸优化问题,slater条件等等的一些基础理论我都缺乏了解,学习之路任重道远。。。另一方面就是手打公式太累了,没时间。。。

这篇文章就当是指个路吧,通过SVM学凸优化哈哈

白板推导视频【机器学习】【白板推导系列】【合集 1~23】_哔哩哔哩_bilibili

白板推导笔记支撑向量机 · 语雀 (yuque.com)

博客支持向量机原理(一) 线性支持向量机 - 刘建平Pinard - 博客园 (cnblogs.com)

因为白板推导是没有讲 λ \lambda λ​​​的求解的,这个一般是用SMO算法求解,上面这篇博客有讲,但是我还没看懂。。。


更新

现在smo懂了个大概吧,有一些细节不清楚,可以看我的这篇文章白板推导系列Pytorch-支持向量机(SVM)

我真的是很想写个svm手推呀,奈何没有平板,又不想写在纸上拍照。。。
快了快了,就快有了。。。

Guess you like

Origin blog.csdn.net/qq_41335232/article/details/120999640