【Practical】条件极值与具体案例
- 第一部分介绍拉格朗日乘数法,等式约束以及不等式约束;第二部分介绍对偶问题以及对偶问题与原始问题的关系;第三部分对于支持向量机与最大熵模型中的实际使用做简单介绍。
文章目录
- 条件极值.
- 等式约束.
- 不等式约束.
- 对偶问题.
- 对偶问题と原始问题の关系.
- 支持向量机.
- 最大熵模型.
条件极值.
- 在实际问题中,很多问题可以转化为对函数自变量有附加约束条件的极值问题,例如一个水箱的长、宽、高分别为 x , y , z x,y,z x,y,z,那么其表面积可以表示为: S ( x , y , z ) = x y + 2 ⋅ ( y z + z x ) S(x,y,z)=xy+2·(yz+zx) S(x,y,z)=xy+2⋅(yz+zx)现固定水箱的容量为 V V V,要求水箱的最小面积,那么上述问题可以形式化表述如下: min x , y , z S ( x , y , z ) \min_{x,y,z}S(x,y,z) x,y,zminS(x,y,z) S . t . x y z = V ; x > 0 ; y > 0 ; z > 0 S.t.~~~~~xyz=V;x>0;y>0;z>0 S.t. xyz=V;x>0;y>0;z>0
- 这种对于自变量有附加约束条件的极值问题称为条件极值,有些条件极值问题可以转化为无条件极值问题求解,但大部分都难以做到,Lagrange Multiplier Method拉格朗日乘数法就是一种直接求条件极值的方法。我们将约束条件分为两部分来讲述,第一部分仅有等式约束,第二部分加入不等式约束。
等式约束.
- 以二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y) 为例,考虑其在等式约束条件 ϕ ( x , y ) = 0 \phi(x,y)=0 ϕ(x,y)=0 下取得极值的必要条件,如果点 p 1 ( x 1 , y 1 ) p_1(x_1,y_1) p1(x1,y1) 是满足约束条件的函数极值点,那么该点首先必须满足: ϕ ( x 1 , y 1 ) = 0 (con.1) \phi(x_1,y_1)=0\tag{con.1} ϕ(x1,y1)=0(con.1)
- 假设在 p 1 p_1 p1 的 δ \delta δ 邻域内, f ( x , y ) f(x,y) f(x,y) 与 ϕ ( x , y ) \phi(x,y) ϕ(x,y) 都有连续的一阶偏导数,并且 ϕ y ( x 1 , y 1 ) ≠ 0 \phi_y(x_1,y_1)\neq0 ϕy(x1,y1)=0,那么根据隐函数存在定理可知,上面的约束条件 ( c o n . 1 ) (con.1) (con.1) 能够在 p 1 p_1 p1 的 δ \delta δ 邻域内确定一个单值连续且具有连续导数的函数 y = g ( x ) y=g(x) y=g(x),代入原函数 z = f ( x , y ) z=f(x,y) z=f(x,y) 得到一元函数: z = f ( x , g ( x ) ) z=f\Big(x,g(x)\Big) z=f(x,g(x))
- 由于 p 1 p_1 p1 是函数 f ( x , y ) f(x,y) f(x,y) 的极值点,那么意味着 x 1 x_1 x1 也是一元函数 z = f ( x , g ( x ) ) z=f\Big(x,g(x)\Big) z=f(x,g(x)) 的极值点,所以该点导数为零,形式化表示如下: d z d x ∣ x = x 1 = f x ( x 1 , y 1 ) + f y ( x 1 , y 1 ) ⋅ g ′ ( x 1 ) = 0 (1) \frac{dz}{dx}\Big|_{x=x_1}=f_x(x_1,y_1)+f_y(x_1,y_1)·g'(x_1)=0\tag{1} dxdz∣∣∣x=x1=fx(x1,y1)+fy(x1,y1)⋅g′(x1)=0(1)
- 另外对约束条件 ( c o n . 1 ) (con.1) (con.1) 使用隐函数求导法则,得到: g ′ ( x 1 ) = d y d x ∣ x = x 1 = − ϕ x ( x 1 , y 1 ) ϕ y ( x 1 , y 1 ) (2) g'(x_1)=\frac{dy}{dx}\Big|_{x=x_1}=-\frac{\phi_x(x_1,y_1)}{\phi_y(x_1,y_1)}\tag{2} g′(x1)=dxdy∣∣∣x=x1=−ϕy(x1,y1)ϕx(x1,y1)(2)
- 将 ( 2 ) (2) (2) 代入 ( 1 ) (1) (1) 可得: f x ( x 1 , y 1 ) − f y ( x 1 , y 1 ) ⋅ ϕ x ( x 1 , y 1 ) ϕ y ( x 1 , y 1 ) = 0 f_x(x_1,y_1)-f_y(x_1,y_1)·\cfrac{\phi_x(x_1,y_1)}{\phi_y(x_1,y_1)}=0 fx(x1,y1)−fy(x1,y1)⋅ϕy(x1,y1)ϕx(x1,y1)=0引入拉格朗日乘数记号: λ 1 = − f y ( x 1 , y 1 ) ϕ y ( x 1 , y 1 ) \lambda_1=-\frac{f_y(x_1,y_1)}{\phi_y(x_1,y_1)} λ1=−ϕy(x1,y1)fy(x1,y1)于是上述约束条件可以写为: f x ( x 1 , y 1 ) + λ 1 ⋅ ϕ x ( x 1 , y 1 ) = 0 (con.2) f_x(x_1,y_1)+\lambda_1·\phi_x(x_1,y_1)=0\tag{con.2} fx(x1,y1)+λ1⋅ϕx(x1,y1)=0(con.2)
- 最后考虑如下等式: λ 1 ⋅ ϕ y ( x 1 , y 1 ) = − f y ( x 1 , y 1 ) \lambda_1·\phi_y(x_1,y_1)=-f_y(x_1,y_1) λ1⋅ϕy(x1,y1)=−fy(x1,y1)于是得到第三个约束条件: f y ( x 1 , y 1 ) + λ 1 ⋅ ϕ y ( x 1 , y 1 ) = 0 (con.3) f_y(x_1,y_1)+\lambda_1·\phi_y(x_1,y_1)=0\tag{con.3} fy(x1,y1)+λ1⋅ϕy(x1,y1)=0(con.3)
- 至此二元函数 f ( x , y ) f(x,y) f(x,y) 在等式约束条件 ϕ ( x , y ) \phi(x,y) ϕ(x,y) 下取得极值的必要条件为: { ϕ ( x 1 , y 1 ) = 0 f x ( x 1 , y 1 ) + λ 1 ⋅ ϕ x ( x 1 , y 1 ) = 0 f y ( x 1 , y 1 ) + λ 1 ⋅ ϕ y ( x 1 , y 1 ) = 0 \left\{\begin{aligned} &\phi(x_1,y_1)=0\\ &f_x(x_1,y_1)+\lambda_1·\phi_x(x_1,y_1)=0\\ &f_y(x_1,y_1)+\lambda_1·\phi_y(x_1,y_1)=0 \end{aligned}\right. ⎩⎪⎨⎪⎧ϕ(x1,y1)=0fx(x1,y1)+λ1⋅ϕx(x1,y1)=0fy(x1,y1)+λ1⋅ϕy(x1,y1)=0引入拉格朗日函数如下: L ( x , y , λ ) = f ( x , y ) + λ ⋅ ϕ ( x , y ) L(x,y,\lambda)=f(x,y)+\lambda·\phi(x,y) L(x,y,λ)=f(x,y)+λ⋅ϕ(x,y)可以将上述必要条件简洁地记为: { ∂ ∂ λ L = 0 ∂ ∂ x L = 0 ∂ ∂ y L = 0 \left\{\begin{aligned} &\cfrac{\partial}{\partial\lambda}L=0\\ &\cfrac{\partial}{\partial x}L=0\\ &\cfrac{\partial}{\partial y}L=0 \end{aligned}\right. ⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧∂λ∂L=0∂x∂L=0∂y∂L=0
【隐函数存在定理】设函数 F ( x , y ) F(x,y) F(x,y) 在点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 的某个邻域内有连续偏导数,且 F ( x 1 , y 1 ) = 0 , F y ( x 1 , y 1 ) ≠ 0 F(x_1,y_1)=0~,F_y(x_1,y_1)\neq0 F(x1,y1)=0 ,Fy(x1,y1)=0,则方程 F ( x , y ) = 0 F(x,y)=0 F(x,y)=0 在点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 的某个邻域内能够确定唯一的函数 y = f ( x ) y=f(x) y=f(x),满足 y 1 = f ( x 1 ) y_1=f(x_1) y1=f(x1),且连续导数为: d y d x = − F x F y \frac{dy}{dx}=-\frac{F_x}{F_y} dxdy=−FyFx
不等式约束.
- 上面的拉格朗日乘数法仅允许约束条件中存在等式约束,如果对其进行推广,引入不等式约束后再对其进行数学处理,就能得到一种针对约束优化问题适应力非常强的解决方案 —— Karush-Kuhn-Tucker Method,简称为 K K T \mathcal{KKT} KKT 方法.
- 首先一般化地定义我们的约束优化问题: min x f ( x ) \min_{\bm x}f(\bm x) xminf(x) S . t . ∀ i ∈ { 1 , 2 , ⋯ , m } , g i ( x ) = 0 ; S.t.~~~~~\forall~i\in\{1,2,\cdots,m\}~,g_i(\bm x)=0~; S.t. ∀ i∈{1,2,⋯,m} ,gi(x)=0 ; ∀ j ∈ { 1 , 2 , ⋯ , n } , h j ( x ) ≤ 0. (Q) ~~~~~~~~~~\forall~j\in\{1,2,\cdots,n\}~,h_j(\bm x)\leq0.\tag{Q} ∀ j∈{1,2,⋯,n} ,hj(x)≤0.(Q)
- 为每个约束引入KKT乘子 —— λ i , α j \lambda_i,\alpha_j λi,αj,定义广义拉格朗日函数如下: L ( x , λ , α ) = f ( x ) + ∑ i = 1 m λ i ⋅ g i ( x ) + ∑ j = 1 n α j ⋅ h j ( x ) L(\bm x,\bm\lambda,\bm\alpha)=f(\bm x)+\sum_{i=1}^m\lambda_i·g_i(\bm x)+\sum_{j=1}^n\alpha_j·h_j(\bm x) L(x,λ,α)=f(x)+i=1∑mλi⋅gi(x)+j=1∑nαj⋅hj(x)只要上述条件极值问题 ( Q ) (Q) (Q) 至少存在一个可行点(满足约束的点)并且 f ( x ) f(x) f(x) 不取 ∞ \infin ∞,那么我们可以断言下面这个无约束优化问题 ( Q ∗ ) (Q^*) (Q∗) 与上面的约束优化问题 ( Q ) (Q) (Q) 同解: min x max λ max α , α ≥ 0 L ( x , λ , α ) (Q*) \min_{\bm x}\max_{\bm\lambda}\max_{\bm\alpha,\bm\alpha\geq0}L(\bm x,\bm\lambda,\bm\alpha) \tag{Q*} xminλmaxα,α≥0maxL(x,λ,α)(Q*)
- 上述断言简单验证如下,对于满足约束条件的 x \bm x x,即: g i ( x ) = 0 ∧ h j ( x ) ≤ 0 g_i(\bm x)=0~\wedge~h_j(\bm x)\leq0 gi(x)=0 ∧ hj(x)≤0那么问题 ( Q ∗ ) (Q^*) (Q∗) 内层的两个最大化问题结果就是 f ( x ) f(\bm x) f(x),从而 ( Q ∗ ) (Q^*) (Q∗) 转化为了 ( Q ) (Q) (Q),这里注意到对于不等式约束的KKT乘子限制了 α j ≥ 0 \alpha_j\geq0 αj≥0,目的就是使上面的论证成立,如果 α j \alpha_j αj 可以取到负值,那么对于满足约束条件的 x \bm x x 而言, ( Q ∗ ) (Q^*) (Q∗) 内层两个最大化问题的结果就不是 f ( x ) f(\bm x) f(x);另外对于违反了任意一条约束的 x \bm x x,即: g i ( x ) ≠ 0 ∨ h j ( x ) > 0 g_i(\bm x)\neq0~\vee~h_j(\bm x)>0 gi(x)=0 ∨ hj(x)>0对于 ( Q ∗ ) (Q^*) (Q∗) 内层的两个最大化问题,必然存在 λ , α \bm\lambda,\bm\alpha λ,α 使得其结果为 ∞ \infin ∞。综上,违反了约束条件的 x \bm x x 必然不会是问题 ( Q ∗ ) (Q^*) (Q∗) 的解,而满足约束条件的点都会纳入 ( Q ∗ ) (Q^*) (Q∗) 外层最小化问题的考虑中。
- 关于不等式约束 h j ( x ) ≤ 0 h_j(\bm x)\leq0 hj(x)≤0,如果存在一个 x ∗ \bm {x^*} x∗ 使得 h j ( x ∗ ) = 0 h_j(\bm{x^*})=0 hj(x∗)=0,那么我们称这个不等式约束活跃Active,对于一个不活跃的不等式约束来说, h j ( x ) < 0 h_j(\bm x)<0 hj(x)<0 成立,因此在问题 ( Q ∗ ) (Q^*) (Q∗) 中: min x max λ max α , α ≥ 0 [ f ( x ) + ∑ i = 1 m λ i ⋅ g i ( x ) + ∑ j = 1 n α j ⋅ h j ( x ) ] \min_{\bm x}\max_{\bm\lambda}\max_{\bm\alpha,\bm\alpha\geq0}\Big[f(\bm x)+\sum_{i=1}^m\lambda_i·g_i(\bm x)+\sum_{j=1}^n\alpha_j·h_j(\bm x)\Big] xminλmaxα,α≥0max[f(x)+i=1∑mλi⋅gi(x)+j=1∑nαj⋅hj(x)]必然会导致 α j = 0 \alpha_j=0 αj=0 以取到最大值。
对偶问题.
- 在上部分中我们给出了与约束优化问题 ( Q ) (Q) (Q): min x f ( x ) \min_{\bm x}f(\bm x) xminf(x) S . t . ∀ i ∈ { 1 , 2 , ⋯ , m } , g i ( x ) = 0 ; S.t.~~~~~\forall~i\in\{1,2,\cdots,m\}~,g_i(\bm x)=0~; S.t. ∀ i∈{1,2,⋯,m} ,gi(x)=0 ; ∀ j ∈ { 1 , 2 , ⋯ , n } , h j ( x ) ≤ 0. ~~~~~~~~~~\forall~j\in\{1,2,\cdots,n\}~,h_j(\bm x)\leq0. ∀ j∈{1,2,⋯,n} ,hj(x)≤0.等价的无约束优化问题 ( Q ∗ ) (Q^*) (Q∗): min x max λ max α , α ≥ 0 L ( x , λ , α ) = min x max λ max α , α ≥ 0 [ f ( x ) + ∑ i = 1 m λ i ⋅ g i ( x ) + ∑ j = 1 n α j ⋅ h j ( x ) ] \min_{\bm x}\max_{\bm\lambda}\max_{\bm\alpha,\bm\alpha\geq0}L(\bm x,\bm\lambda,\bm\alpha) =\min_{\bm x}\max_{\bm\lambda}\max_{\bm\alpha,\bm\alpha\geq0}\Big[f(\bm x)+\sum_{i=1}^m\lambda_i·g_i(\bm x)+\sum_{j=1}^n\alpha_j·h_j(\bm x)\Big] xminλmaxα,α≥0maxL(x,λ,α)=xminλmaxα,α≥0max[f(x)+i=1∑mλi⋅gi(x)+j=1∑nαj⋅hj(x)]
- 我们称上面两个解等价的问题为原始问题Primitive Problem,它可以表示为广义拉格朗日函数的极大极小问题,出于记号简洁,我们将 ( Q ∗ ) (Q^*) (Q∗) 内层的两个最大化问题记为 x \bm x x 的函数: θ p ( x ) = max λ max α , α ≥ 0 [ f ( x ) + ∑ i = 1 m λ i ⋅ g i ( x ) + ∑ j = 1 n α j ⋅ h j ( x ) ] \theta_p(\bm x)=\max_{\bm\lambda}\max_{\bm\alpha,\bm\alpha\geq0}\Big[f(\bm x)+\sum_{i=1}^m\lambda_i·g_i(\bm x)+\sum_{j=1}^n\alpha_j·h_j(\bm x)\Big] θp(x)=λmaxα,α≥0max[f(x)+i=1∑mλi⋅gi(x)+j=1∑nαj⋅hj(x)]因此上述问题的解可以表示如下: p ∗ = min x θ p ( x ) \bm{p^*}=\min_{\bm{x}}\theta_p(\bm x) p∗=xminθp(x)这里的记号 p p p 代表原始.
- 定义KKT
【Practical】条件极值与具体案例相关推荐
- 相机模型--A Unifying Theory for Central Panoramic Systems and Practical Implications
A Unifying Theory for Central Panoramic Systems and Practical Implications ECCV 2000 Abstract Omnidi ...
- 侯捷译Practical Java(含源码)
侯捷译Practical Java(含源码) [url=http://www.123xz.net/soft/49/297/308/2007/20070517105923.html][B]侯捷译Prac ...
- Practical Common Lisp
Practical Common Lisp Practical Common Lisp
- Plenty Of Tricks to Get Irradiance Caching Practical
Plenty Of Tricks to Get Irradiance Caching Practical http://cgg.mff.cuni.cz/~jaroslav/papers/2008-ir ...
- Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略
Python之sklearn:LabelEncoder函数简介(编码与编码还原).使用方法.具体案例之详细攻略 目录 LabelEncoder函数的简介(编码与编码还原) Methods LabelE ...
- Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...
- Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略
Python之Pandas:pandas.DataFrame.to_csv函数的简介.具体案例.使用方法详细攻略 目录 pandas.DataFrame.to_csv函数的简介 pandas.to_c ...
- Python之sklearn:GridSearchCV()和fit()函数的简介、具体案例、使用方法之详细攻略
Python之sklearn:GridSearchCV()和fit()函数的简介.具体案例.使用方法之详细攻略 目录 GridSearchCV()和fit()函数的使用方法 GridSearchCV( ...
- Python之Pandas:pandas.read_csv()函数的简介、具体案例、使用方法详细攻略
Python之Pandas:pandas.read_csv()函数的简介.具体案例.使用方法详细攻略 目录 read_csv()函数的简介 read_csv()函数的简介 ...
最新文章
- MBR与GPT分区格式(实例-创建大于2TB的分区)
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
- 四周第四次课 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 x
- 关于TP框架的微信开发服务器配置TOKEN验证失败解决方案
- python类基础知识注意点
- firedac连接mysql,FireDAC连接数据库
- 深入理解Spark 2.1 Core (六):Standalone模式运行的原理与源码分析
- SpringBoot中常见注解
- 基于RNGCryptoServiceProvider的洗牌算法
- eclipse编译android工程提示无翻译字符串错误的忽略方法
- Java 范例 - 线程
- Linux高级管理之ACL(访问控制列表)实战应用
- JavaScript提高:006:ASP.NET使用easyUI TABS标签updatepanel
- 封校大学生无聊玩起图像大找茬——游戏脚本(一起领略Python脚本的风采吧)
- mysql6.2中文补丁_2.6. 在NetWare中安装MySQL - MySQL 中文手册
- RuntimeError: Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count() is 1.
- 全网比较火的爱心代码
- CobaltStrike优质学习资源
- 用FLASH制作RPG
- BOM浏览器对象模型(Browser Object Model)
热门文章
- 相机模型--A Unifying Theory for Central Panoramic Systems and Practical Implications