最优化方法(学习笔记)-第十一章等式约束优化问题
等式约束优化问题
- 等式约束的基本定义
- 消除等式约束
- 基于feasible初值的牛顿法
- 基于infeasible初值的牛顿法
- 通过解原对偶问题解释原理
- 求解KKT系统
- 实例
- 总结
等式约束的基本定义
等式约束问题
minf(x),s.t.Ax=b,A∈Rp×n,rank(A)=p\min{f(x)},s.t. Ax=b,A\isin R^{p\times n},rank(A)=pminf(x),s.t.Ax=b,A∈Rp×n,rank(A)=pf是凸函数,二次可微,假设p∗p^*p∗是存在且确定的,p<np<np<n,即约束条件小于变量维数,可以存在多解,否则可能会无解
等式约束的对偶问题
拉格朗日函数:L(x,ν)=f(x)+νT(Ax−b)L(x,\nu)=f(x)+\nu^T(Ax-b)L(x,ν)=f(x)+νT(Ax−b),设最优点x∗x^*x∗由此得到KKT条件方程组{Ax∗=b∇f(x∗)+ATν∗=0\begin{cases}Ax^*=b \\ \nabla f(x^*)+A^T\nu^*=0 \end{cases}{Ax∗=b∇f(x∗)+ATν∗=0
x∗是最优点,ν∗是对偶最优点,p∗=infx{f(x)∣Ax=b}=f(x∗)x^*是最优点,\nu^*是对偶最优点,p^*=\inf_x\{f(x) | Ax=b\}=f(x^*)x∗是最优点,ν∗是对偶最优点,p∗=infx{f(x)∣Ax=b}=f(x∗)
例子:二次规划问题
{min12xTPx+qTx+rAx=b⟹{Ax=bPx+q+ATν∗=0\begin{cases}\min{\frac12x^TPx+q^Tx+r} \\ Ax=b \end{cases}\implies\begin{cases}Ax=b \\ Px+q+A^T\nu^*=0 \end{cases}{min21xTPx+qTx+rAx=b⟹{Ax=bPx+q+ATν∗=0
前一个左边的矩阵(n+p)×(n+p)(n+p)\times(n+p)(n+p)×(n+p),复杂度是O((n+p)3)O((n+p)^3)O((n+p)3)
二次规划问题仅求导一次就可以实现KKT条件,所以- 牛顿法(迭代步需要求二阶导):利用二次函数(存在海森矩阵)去逼近普通函数(下文的目标)
- 梯度下降法:利用一次函数(存在导数)去逼近普通函数
消除等式约束
通过变量替换实现等式消除
变量替换x∗=Fz∗+x^x^*=Fz^*+\hat{x}x∗=Fz∗+x^
若x^\hat{x}x^是任意的一个特解,那么可以实现变换{x∣Ax=b}={Fz+x^∣z∈R(n−p)}\{x|Ax=b\}=\{Fz+\hat{x}|z\isin R^{(n-p)}\}{x∣Ax=b}={Fz+x^∣z∈R(n−p)}
于是得到A(Fz+x^)=b⟹AFz=0⟹Ap×nFn×(n−p)=0于是得到A(Fz+\hat{x})=b\implies AFz=0\implies A_{p\times n}F_{n\times(n-p)}=0于是得到A(Fz+x^)=b⟹AFz=0⟹Ap×nFn×(n−p)=0
于是A的行组成空间与F的列组成空间正交,即A的零空间就是F的值空间。
minf(x),s.t.Ax=b⟺minzF^(z)=f(Fz+x^)\min{f(x)},s.t. Ax=b \iff \min_z \hat{F}(z)=f(Fz+\hat{x})minf(x),s.t.Ax=b⟺minzF^(z)=f(Fz+x^)【把等式约束加到目标函数里,变成无约束问题】
求解对偶最优解 ν∗\nu^*ν∗
原问题的KKT系统:∇f(x∗)+ATν∗=0\nabla f(x^*)+A^T\nu^*=0∇f(x∗)+ATν∗=0,同时左乘矩阵A(实现满秩运算)
得到ν∗=−(AAT)−1A∇f(x∗)\nu^*=-(AA^T)^{-1}A\nabla f(x^*)ν∗=−(AAT)−1A∇f(x∗)
验证目标:∇f(x∗)−AT(AAT)−1A∇f(x∗)=0\nabla f(x^*)-A^T(AA^T)^{-1}A\nabla f(x^*)=0∇f(x∗)−AT(AAT)−1A∇f(x∗)=0
左乘一个满秩矩阵
基于KKT系统,存在u使得∇f(x∗)+ATu=0\nabla f(x^*)+A^T u=0∇f(x∗)+ATu=0,同时左乘FTF^TFT,再因为AF=0AF=0AF=0
于是推导得FT∇f(x∗)=0F^T\nabla f(x^*)=0FT∇f(x∗)=0;左乘矩阵A可以发现等式恒成立,综上,得证。原问题转变成
通过对偶问题实现等式消除
L(x,ν)=f(x)+νT(Ax−b)L(x,\nu)=f(x)+\nu^T(Ax-b)L(x,ν)=f(x)+νT(Ax−b)
g(ν)=infxL(x,ν)=−bTν+infx(f(x)+νTAx)g(\nu)=\inf_xL(x,\nu)=-b^T\nu+\inf_x(f(x)+\nu^TAx)g(ν)=infxL(x,ν)=−bTν+infx(f(x)+νTAx)
=−bTν−supx(−(ATν)Tx−f(x))=−bTν−f∗(−ATν)=-b^T\nu-\sup_x(-(A^T\nu)^Tx-f(x))=-b^T\nu-f^*(-A^T\nu)=−bTν−supx(−(ATν)Tx−f(x))=−bTν−f∗(−ATν)【共轭函数-第三章凸函数】
对偶问题:max(−bTν−f∗(−ATν)),g(ν∗)=p∗\max{(-b^T\nu-f^*(-A^T\nu))},g(\nu^*)=p^*max(−bTν−f∗(−ATν)),g(ν∗)=p∗
例子
- 变量替换
重点是找到特解x^\hat xx^
- 对偶问题
- 变量替换
基于feasible初值的牛顿法
牛顿法:利用二次导数逼近【设△xnt=v\triangle x_{nt}=v△xnt=v】
问题变成:minvf^(x+v)=f(x)+∇f(x)v+12vT∇2f(x)v,s.t.A(x+v)=b\min_v\hat f(x+v)=f(x)+\nabla f(x)v+\frac12v^T\nabla^2f(x)v, \quad s.t. A(x+v)=bminvf^(x+v)=f(x)+∇f(x)v+21vT∇2f(x)v,s.t.A(x+v)=b
设x是一个可行解(Ax=b,Av=0Ax=b,Av=0Ax=b,Av=0),基于KKT系统,存在w使得∇vf^(x+v)+ATw=0\nabla_v \hat f(x+v)+A^Tw=0∇vf^(x+v)+ATw=0
将∇f^(x+v)=0\nabla \hat f(x+v)=0∇f^(x+v)=0带入KKT条件得:{∇f(x)+∇2f(x)v+ATw=0Av=0\begin{cases}\nabla f(x)+\nabla^2f(x)v+A^Tw=0 \\ Av=0 \end{cases}{∇f(x)+∇2f(x)v+ATw=0Av=0
(演变成求解该矩阵方程,求△xnt=v,对偶w\triangle x_{nt}=v,对偶w△xnt=v,对偶w)
当A=0时,该等式问题就退化到无约束问题Newton decrement
性质
部分证明
λ(x)=(△xntT∇2f(x)△xnt)12\lambda(x)=(\triangle x_{nt}^T\nabla^2f(x)\triangle x_{nt})^{\frac12}λ(x)=(△xntT∇2f(x)△xnt)21,衡量x到x∗x到x^*x到x∗的距离,可以作为二阶逼近下的停止条件。
f^(x+△x)=f(x)+∇f(x)T△x+12△xT∇2f(x)△x\hat f(x+\triangle x)=f(x)+\nabla f(x)^T\triangle x+\frac12\triangle x^T\nabla^2f(x)\triangle xf^(x+△x)=f(x)+∇f(x)T△x+21△xT∇2f(x)△x
设H=∇2f(x),g=∇f(x),△x=△xnt=vH=\nabla^2f(x),g=\nabla f(x),\triangle x=\triangle x_{nt}=vH=∇2f(x),g=∇f(x),△x=△xnt=v, KKT系统:{H△x+ATw=−gA△x=0\begin{cases}H\triangle x+A^Tw=-g \\ A\triangle x=0 \end{cases}{H△x+ATw=−gA△x=0
第一个式子左右两边左乘△xT\triangle x^T△xT,得到△xTH△x=−△xTg\triangle x^TH\triangle x=-\triangle x^Tg△xTH△x=−△xTg,
带回得f^(x+△x)=f(x)−12△xT∇2f(x)△x\hat f(x+\triangle x)=f(x)-\frac12\triangle x^T\nabla^2f(x)\triangle xf^(x+△x)=f(x)−21△xT∇2f(x)△x
f(x)−infv{f^(x+v)∣A(x+v)=b}=f(x)−f^(x+△x)=12λ2(x)f(x)-\inf_v\{\hat f(x+v)|A(x+v)=b\}=f(x)-\hat f(x+\triangle x)=\frac12\lambda^2(x)f(x)−infv{f^(x+v)∣A(x+v)=b}=f(x)−f^(x+△x)=21λ2(x)
结论
- 误差f(x)−p∗f(x)-p^*f(x)−p∗不断变小
- 方向导数恒小于0
算法步骤
牛顿法=消除等式+牛顿法
【把等式约束加入(x可行域内)一起做牛顿下降法】,等价于【把变量消除掉,再去做牛顿法】结论:minxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b\min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=bminxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b
两种问题对比
证明
∇f~(z)=FT∇f(Fz+x^),∇2f~(z)=FT∇2f(Fz+x^)F\nabla \tilde f(z)=F^T\nabla f(Fz+\hat x),\nabla^2\tilde f(z)=F^T\nabla^2 f(Fz+\hat x)F∇f~(z)=FT∇f(Fz+x^),∇2f~(z)=FT∇2f(Fz+x^)F【加入等式约束】
牛顿迭代步:△znt=−∇2f~(z)−1∇f~(z)=−(FT∇2f(Fz+x^)F)−1FT∇f(Fz+x^)\triangle z_{nt}=-\nabla^2 \tilde f(z)^{-1}\nabla \tilde f(z)=-(F^T\nabla^2 f(Fz+\hat x)F)^{-1}F^T\nabla f(Fz+\hat x)△znt=−∇2f~(z)−1∇f~(z)=−(FT∇2f(Fz+x^)F)−1FT∇f(Fz+x^)
X=Fz+x^⟹△xnt=F△zntX=Fz+\hat x\implies\triangle x_{nt}=F\triangle z_{nt}X=Fz+x^⟹△xnt=F△znt
一阶KKT条件:∇f(x+△xnt)+ATw=0\nabla f(x+\triangle x_{nt})+A^Tw=0∇f(x+△xnt)+ATw=0 ,得到w=−(AAT)−1A(∇f(x)+∇2f(x)△xnt)w=-(AA^T)^{-1}A(\nabla f(x)+\nabla^2f(x)\triangle x_{nt})w=−(AAT)−1A(∇f(x)+∇2f(x)△xnt)
二阶KKT条件:∇2f(x)△xnt+ATw+∇f(x)=0\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0∇2f(x)△xnt+ATw+∇f(x)=0 ,得到[FTA][∇2f(x)△xnt+ATw+∇f(x)]=0\begin{bmatrix}F^T\\A\end{bmatrix}\begin{bmatrix} \nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x) \end{bmatrix}=0[FTA][∇2f(x)△xnt+ATw+∇f(x)]=0
根据FTATw=0F^TA^Tw=0FTATw=0,发现矩阵方程成立,于是得到λ~2(z)=λ2(x)\tilde \lambda^2(z)=\lambda^2(x)λ~2(z)=λ2(x),即迭代逼近的效果相同
基于infeasible初值的牛顿法
初始点infeasible,但是希望x+△xntx+\triangle x_{nt}x+△xnt满足二阶KKT条件{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b\begin{cases}\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0\\A(x+\triangle x_{nt})=b\end{cases}{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b
通过解原对偶问题解释原理
- 设置迭代步r(x,v)r(x,v)r(x,v)满足KKT条件,希望迭代步r(x,v)r(x,v)r(x,v)不断逼近0
注:雅可比矩阵
- 算法步骤
- 下降性质
infeasible初值的不一定一直保持下降,虽然函数不一定下降,但是残差一定下降
求解KKT系统
- KKT系统
- 求解方法
LDLTLDL^TLDLT分解
B=PLDLTPTB=PLDL^TP^TB=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵
复杂度:O(13(n+p)3)O(\frac13(n+p)^3)O(31(n+p)3)消元法
结果:v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)v=-H^{-1}(g+A^Tw),w=(AH^{-1}A^T)^{-1}(h-AH^{-1}g)v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)
时间复杂度O(n3+p3)O(n^3+p^3)O(n3+p3)
实例
例子&如何降低计算
等式约束牛顿法
对偶问题+无约束牛顿法
infeasible初值的牛顿法
结论:无论哪种方法,(设D是正对角阵)总要计算 ADATw=hADA^Tw=hADATw=h
Network flow optimization
Analytic center of linear matrix inequality
总结
基本定义:minf(x),s.t.Ax=b\min{f(x)},s.t. Ax=bminf(x),s.t.Ax=b
直接解KKT条件(例子-二次规划函数)
{Ax∗=b∇f(x∗)+ATν∗=0\begin{cases}Ax^*=b \\ \nabla f(x^*)+A^T\nu^*=0 \end{cases}{Ax∗=b∇f(x∗)+ATν∗=0消除等式约束
- 通过变量替换
- x=Fz+x^x=Fz+\hat xx=Fz+x^【通解+特解】
- 求解对偶变量ν∗=−(AAT)−1A∇f(x∗)\nu^*=-(AA^T)^{-1}A\nabla f(x^*)ν∗=−(AAT)−1A∇f(x∗)【LSE逼近】
- 通过对偶问题
max(−bTν−f∗(−ATν)),g(ν∗)=p∗\max{(-b^T\nu-f^*(-A^T\nu))},g(\nu^*)=p^*max(−bTν−f∗(−ATν)),g(ν∗)=p∗
- 通过变量替换
基于feasible初值的牛顿法
- 二阶展开,先做二阶展开,带入KKT求导得到极值,再套上迭代量含义。(一阶展开,将迭代量带入KKT条件,再做一阶展开)
- Newton decrement:λ(x)=(△xntT∇2f(x)△xnt)12\lambda(x)=(\triangle x_{nt}^T\nabla^2f(x)\triangle x_{nt})^{\frac12}λ(x)=(△xntT∇2f(x)△xnt)21
可以衡量x到x∗x到x^*x到x∗的距离,可以作为二阶逼近下的停止条件- 误差f(x)−p∗f(x)-p^*f(x)−p∗不断变小
- 方向导数恒小于0
- 牛顿法=消除等式+牛顿法
minxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b\min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=bminxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b
基于infeasible初值的牛顿法
基本定义:
初始点infeasible,但是希望x+△xntx+\triangle x_{nt}x+△xnt满足二阶KKT条件{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b\begin{cases}\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0\\A(x+\triangle x_{nt})=b\end{cases}{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b
通过解原对偶问题解释原理
- 设置迭代步r(x,v)r(x,v)r(x,v)满足KKT条件
- 希望迭代步r(x,v)r(x,v)r(x,v)不断逼近0
下降性质
infeasible初值的不一定一直保持下降,虽然函数不一定下降,但是残差一定下降具体的算法流程
KKT系统方程的求解
LDLTLDL^TLDLT分解
普通矩阵B=PLDLTPTB=PLDL^TP^TB=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵
复杂度:O(13(n+p)3)O(\frac13(n+p)^3)O(31(n+p)3)
消元法
v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)v=-H^{-1}(g+A^Tw),w=(AH^{-1}A^T)^{-1}(h-AH^{-1}g)v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)
时间复杂度O(n3+p3)∼O(n3)O(n^3+p^3)\sim O(n^3)O(n3+p3)∼O(n3)
三种求解牛顿法的实例
- 等式约束牛顿法
- 对偶问题+无约束牛顿法
- infeasible初值的牛顿法
最优化方法(学习笔记)-第十一章等式约束优化问题相关推荐
- 《Go语言圣经》学习笔记 第十一章 测试
<Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...
- [go学习笔记.第十一章.项目案例] 2.客户信息管理系统
一.基本介绍 1.需求说明 项目需求分析 1.模拟实现基于文本界面的 < 客户信息管理软件 > 2.该软件实现对客户对象的插入.修改和删除(用切片实现),并能够打印客户明细表 2.界面设计 ...
- [go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目
一.基本介绍 1.项目开发流程说明 2.项目需求说明 目标: 模拟实现一个基于文本界面的<<家庭记账软件>> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点 : (1).局部 ...
- 《统计学习方法》学习笔记 第二十一章 PageRank算法
目录 1 PageRank的定义 1.1 基本想法 1.2 有向图和随机游走模型 1 有向图(directed graph) 2 随机游走模型 3 PageRank的基本定义 4 PageRank的一 ...
- 《机器学习》周志华(西瓜书)学习笔记 第十一章 特征选择与稀疏学习
机器学习 总目录 第十一章 特征选择与稀疏学习 11.1 子集搜索与评价 给定属性集,其中有些属性可能很关键.很有用,另一些 属性则可能没什么用.我们将属性称为"特征" (feat ...
- 西瓜书学习笔记——第十一章:特征选择与稀疏学习
第十一章:特征选择与稀疏学习 11.1 子集搜索与评价 子集搜索 特征子集评价 11.2 过滤式选择 Relief的相关统计量 11.3 包裹式选择 拉斯维加斯方法和蒙特卡罗方法: 11.4 嵌入式选 ...
- 最优化方法(学习笔记)-第六章逼近与拟合
文章目录 范数逼近和最小范数 观测m≥\geq≥未知n 范数逼近的定义及解释 罚函数逼近 观测m≤\leq≤未知n 最小范数问题 最小罚函数问题 正则化逼近 正则化理解 标量化问题 Tikhonov ...
- 最优化方法(学习笔记)-第七章统计估计
Statistical estimation Logistic 回归-二分类 整体分类思路 最大化似然函数 最大似然估计MLE 带独立同分布噪音的线性测量模型 viv_ivi是高斯分布 viv_iv ...
- 邓俊辉数据结构与算法学习笔记-第十一章
文章目录 11.串 11.a ADT 11.b 串匹配 11.b1 串匹配 11.b2 蛮力匹配 11.c KMP算法 11.c1 KMP算法:从记忆力到预知力 11.c2 KMP算法查表 11.c3 ...
最新文章
- System.arraycopy(src, srcPos, dest, destPos, length) 与 Arrays.copyOf(original, newLength)区别
- 子数组最大值设计02
- 强化学习(一)---绪论
- LeetCode 198 House Robber Python
- android 动态调用apk,通过反射动态加载未安装apk
- linux下覆盖文件命令,在Linux中使用命令行进行文件覆盖的操作
- Mac VSCode配置C语言环境(可以调试)
- oracle 对象的审计,初识!聊聊ORACLE的审计功能
- testNg 关闭浏览器异常解决办法
- 作业中会遇到【不能实现】部分。这时,正确的处理的方法~
- C++ STL 容器的合并、求差集、交集等操作实例 含详细注释版
- 「深度」物料成本不到1500的iPhone6s凭什么5288元起售?
- .net core2 发送电子邮件封装
- CMS垃圾回收器总结
- linux文件解压缩加解密
- selenium 操作 IE11--无法开启新窗口
- Go语言使用谷歌浏览器打开指定网址
- 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
- 一信通短信接口对接_短信接口对接流程
- 隐马尔可夫模型(Baum Welch算法与Viterbi算法)