总目录

一、 凸优化基础(Convex Optimization basics)

  1. 凸优化基础(Convex Optimization basics)

二、 一阶梯度方法(First-order methods)

  1. 梯度下降(Gradient Descent)
  2. 次梯度(Subgradients)
  3. 近端梯度法(Proximal Gradient Descent)
  4. 随机梯度下降(Stochastic gradient descent)

三、对偶

  1. 线性规划中的对偶(Duality in linear programs)
  2. 凸优化中的对偶(Duality in General Programs)
  3. KKT条件(Karush-Kuhn-Tucker Conditions)
  4. 对偶的应用及拓展(Duality Uses and Correspondences)
  5. 对偶方法(Dual Methods)
  6. 交替方向乘子法(Alternating Direction Method of Multipliers)

Introduction

前一节我们介绍了对偶的应用以及共轭函数的性质。利用这些性质,我们本节讨论基于对偶的方法。

对偶梯度法

即使我们不能推导出闭合形式的对偶或共轭,我们依然可以使用基于对偶的次梯度法或梯度法(Dual gradient methods)。
比如考虑以下问题
min ⁡ x f ( x ) s u b j e c t t o A x = b \min_xf(x)\quad subject\ to\ Ax=b xmin​f(x)subject to Ax=b

其对偶问题为
max ⁡ u − f ∗ ( − A T u ) − b T u \max_u -f^*(-A^Tu)-b^Tu umax​−f∗(−ATu)−bTu

其中 f ∗ f^* f∗是 f f f的共轭。定义 g ( u ) = − f ∗ ( − A T u ) − b T u g(u)=-f^*(-A^Tu)-b^Tu g(u)=−f∗(−ATu)−bTu,则
∂ g ( u ) = A ∂ f ∗ ( − A T u ) − b \partial g(u)=A\partial f^*(-A^Tu)-b ∂g(u)=A∂f∗(−ATu)−b

因而,根据共轭的性质,我们可以得到
∂ g ( u ) = A x − b w h e r e x ∈ arg ⁡ min ⁡ z f ( z ) + u T A z \partial g(u)=Ax-b\quad {\rm where}\quad x\in\arg\min_z f(z)+u^TAz ∂g(u)=Ax−bwherex∈argzmin​f(z)+uTAz

对偶次梯度法(dual subgradient method)(最大化对偶目标函数)从一个初始的对偶变量 u ( 0 ) u^{(0)} u(0)开始,并对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...次迭代重复
x ( k ) ∈ arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x x^{(k)}\in \arg\min_x f(x)+(u^{(k-1)})^TAx x(k)∈argxmin​f(x)+(u(k−1))TAx u ( k ) = u ( k − 1 ) + t k ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b) u(k)=u(k−1)+tk​(Ax(k)−b)

步长 t k t_k tk​可采用标准梯度方法选择。

当 f f f是严格凸函数,那么 f ∗ f^* f∗是可微的,因而该方法变为对偶梯度上升(dual gradient ascent),对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x ( k ) = arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx x(k)=argxmin​f(x)+(u(k−1))TAx u ( k ) = u ( k − 1 ) + t k ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(Ax^{(k)}-b) u(k)=u(k−1)+tk​(Ax(k)−b)

此时每次迭代的 x ( k ) x^{(k)} x(k)都是唯一的。同样地,近端梯度方法及其加速方法都可以像通常的那样应用。

收敛分析

Lipschitz梯度和强凸性

假设 f f f是闭合的凸函数,那么 f f f关于参数 d d d强凸等价于 ∇ f ∗ \nabla f^* ∇f∗关于参数 1 / d 1/d 1/d满足Lipschitz连续条件。

收敛保证

给定上述结论,我们可以得到对偶次梯度法的收敛率

  • 如果 f f f是关于参数 d d d强凸的,那么使用固定步长 t k = d t_k=d tk​=d的对偶梯度上升方法的收敛率为 O ( 1 / ϵ ) O(1/\epsilon) O(1/ϵ)。
  • 如果 f f f是关于参数 d d d强凸的,且 ∇ f \nabla f ∇f是关于参数 L L L Lipschitz连续的,那么使用固定步长 t k = 2 / ( 1 / d + 1 / L ) t_k=2/(1/d+1/L) tk​=2/(1/d+1/L)的对偶梯度上升方法的收敛率为 O ( l o g ( 1 / ϵ ) ) O(log(1/\epsilon)) O(log(1/ϵ))。

对偶分解

等式约束

考虑如下问题
min ⁡ x ∑ i = 1 B f i ( x i ) s u b j e c t t o A x = b \min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ Ax=b xmin​i=1∑B​fi​(xi​)subject to Ax=b

其中 x = ( x 1 , . . . , x B ) ∈ R n x=(x_1,...,x_B)\in R^n x=(x1​,...,xB​)∈Rn分为 B B B组变量,每个变量 x i ∈ R n i x_i \in R^{n_i} xi​∈Rni​。我们可以以此分割 A A A
A = [ A 1 , . . . , A B ] , w h e r e A i ∈ R m × n i A=[A_1,...,A_B], \quad {\rm where} \quad A_i\in R^{m\times n_i} A=[A1​,...,AB​],whereAi​∈Rm×ni​

在计算梯度时,我们可以将其分割分解为 B B B个分离的问题:
x + ∈ arg ⁡ min ⁡ x ∑ i = 1 B f i ( x i ) + u T A x x^+\in \arg\min_x\sum^B_{i=1}f_i(x_i)+u^TAx x+∈argxmin​i=1∑B​fi​(xi​)+uTAx ⟺ x i + ∈ arg ⁡ min ⁡ x i f i ( x i ) + u T A i x i , i = 1 , . . . , B \Longleftrightarrow x^+_i\in \arg\min_{x_i}f_i(x_i)+u^TA_ix_i,\quad i=1,...,B ⟺xi+​∈argxi​min​fi​(xi​)+uTAi​xi​,i=1,...,B

对偶分解算法:对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x i ( k ) ∈ arg ⁡ min ⁡ x i f i ( x i ) + ( u ( k − 1 ) ) T A i x i , i = 1 , . . . , B x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B xi(k)​∈argxi​min​fi​(xi​)+(u(k−1))TAi​xi​,i=1,...,B u ( k ) = u ( k − 1 ) + t k ( ∑ i = 1 B A i x i ( k ) − b ) u^{(k)}=u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b) u(k)=u(k−1)+tk​(i=1∑B​Ai​xi(k)​−b)

可以将这两个步骤描述为:

  • 广播(Broadcast):将 u u u发送给 B B B个处理器,B个处理器并行优化找到各自的 x i x_i xi​;
  • 聚集(Gather):从每个处理器收集 A i x i A_ix_i Ai​xi​,然后更新全局对偶变量 u u u;

不等式约束

考虑如下问题
min ⁡ x ∑ i = 1 B f i ( x i ) s u b j e c t t o ∑ i = 1 B A i x i ≤ b \min_x\sum^B_{i=1}f_i(x_i)\quad subject\ to\ \sum^B_{i=1}A_ix_i\leq b xmin​i=1∑B​fi​(xi​)subject to i=1∑B​Ai​xi​≤b

对偶分解算法(投影次梯度法):对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x i ( k ) ∈ arg ⁡ min ⁡ x i f i ( x i ) + ( u ( k − 1 ) ) T A i x i , i = 1 , . . . , B x_i^{(k)}\in \arg\min_{x_i} f_i(x_i)+(u^{(k-1)})^TA_ix_i,\quad i=1,...,B xi(k)​∈argxi​min​fi​(xi​)+(u(k−1))TAi​xi​,i=1,...,B u ( k ) = ( u ( k − 1 ) + t k ( ∑ i = 1 B A i x i ( k ) − b ) ) + u^{(k)}=(u^{(k-1)}+t_k(\sum^B_{i=1}A_ix_i^{(k)}-b))_+ u(k)=(u(k−1)+tk​(i=1∑B​Ai​xi(k)​−b))+​

其中 u + u_+ u+​表示 u u u的正部分,即 ( u + ) i = max ⁡ { 0 , u i } , i = 1 , . . . , m (u_+)i=\max\{0,u_i\},\quad i=1,...,m (u+​)i=max{0,ui​},i=1,...,m。

增广拉格朗日方法(乘子法)

对偶上升法的缺点在于其要求较强的约束条件来保证收敛。使用增广拉格朗日方法(Augmented Lagrangian method)(也称为乘子法,method of multipliers)可以对其做改进。我们将原问题变为:
min ⁡ x f ( x ) + ρ 2 ∥ A x − b ∥ 2 2 s u b j e c t t o A x = b \begin{aligned} \min_{x}f(x)+\frac{\rho}{2}\|Ax-b\|^2_2\\ subject\ to\quad Ax=b\\ \end{aligned} xmin​f(x)+2ρ​∥Ax−b∥22​subject toAx=b​

其中 ρ > 0 \rho>0 ρ>0是一个参数。该形式明显等价于原问题,且当 A A A是满列秩时目标函数是强凸的。使用对偶梯度上升:对于 k = 1 , 2 , 3 , . . . k=1,2,3,... k=1,2,3,...,重复迭代
x ( k ) = arg ⁡ min ⁡ x f ( x ) + ( u ( k − 1 ) ) T A x + ρ 2 ∥ A x − b ∥ 2 2 x^{(k)}= \arg\min_x f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2 x(k)=argxmin​f(x)+(u(k−1))TAx+2ρ​∥Ax−b∥22​ u ( k ) = u ( k − 1 ) + ρ ( A x ( k ) − b ) u^{(k)}=u^{(k-1)}+\rho(Ax^{(k)}-b) u(k)=u(k−1)+ρ(Ax(k)−b)

注意到步长选择变为了 t k = ρ , k = 1 , 2 , 3 , . . . t_k=\rho,\quad k=1,2,3,... tk​=ρ,k=1,2,3,...。这是因为,既然 x ( k ) x^{(k)} x(k)最小化 f ( x ) + ( u ( k − 1 ) ) T A x + ρ 2 ∥ A x − b ∥ 2 2 f(x)+(u^{(k-1)})^TAx+\frac{\rho}{2}\|Ax-b\|^2_2 f(x)+(u(k−1))TAx+2ρ​∥Ax−b∥22​,那么
0 ∈ ∂ f ( x ( k ) ) + A T ( u ( k − 1 ) + ρ ( A x ( k ) − b ) ) = ∂ f ( x ( k ) ) + A T u ( k ) \begin{aligned} 0&\in \partial f(x^{(k)})+A^T(u^{(k-1)}+\rho(Ax^{(k)}-b))\\ &=\partial f(x^{(k)})+A^Tu^{(k)} \end{aligned} 0​∈∂f(x(k))+AT(u(k−1)+ρ(Ax(k)−b))=∂f(x(k))+ATu(k)​

这是原问题的稳定性条件。因此,在相对温和的条件下( A x ( k ) − b Ax^{(k)}-b Ax(k)−b接近0),KKT条件就可以满足, x ( k ) , u ( k ) x^{(k)}, u^{(k)} x(k),u(k)可达到最优值。

乘子法有较好的收敛性质,但缺点是失去了可分解性。那有没有同时具有好的收敛性和可分解性的方法呢,我们下次来做介绍。

对偶方法(Dual Methods)相关推荐

  1. Python编程基础:第三节 字符串方法String Methods

    第三节 字符串方法String Methods 前言 实践 前言 本节我们一起来学习一些常用的字符串方法,包括计算字符串长度,获取某个字母的位置等等. 实践 假设你有一个名为name的变量,且其取值为 ...

  2. 光流 | 基于对偶方法的变分光流改进算法

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 PCNN以及基于对偶方法的光流代码 ...

  3. 【概率论】1-2:计数方法(Counting Methods)

    title: [概率论]1-2:计数方法(Counting Methods) categories: Mathematic Probability keywords: Counting Methods ...

  4. VCL组件之主要方法(Methods)和通用事件(Events)

    组件的主要方法(Methods) 大多数组件有20多个公用方法,窗口组件有40多个公用方法可以选择.有趣地是,并不是都被广泛使用.组件的多数功能通过属性来完成.例如,隐蔽一组件,可调用其Hide方法或 ...

  5. SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods

    SAPUI5 View Controller lifecycle methods Create an Application Project for SAPUI5 打开 Eclipse 并转到菜单选项 ...

  6. python 内置方法 BUILT-IN METHODS

    setattr getattr hasattr 1. abs() returns absolute value of a number 返回绝对值 integer = -20 print('Absol ...

  7. AOR4 原始对偶方法

    原始对偶算法 原始对偶算法利用了及其巧妙的方法减少参数,优化解,最后找到最优解. 互补松弛定理:最优解的等价命题为: 对于所有的j, 有(AjTy−cj)xj=0(A_j^Ty-c_j)x_j=0(A ...

  8. 方法(Methods)

    实例方法 (Instance Methods) 在实例方法中修改值类型 结构体和枚举是值类型.默认情况下,值类型的属性不能在它的实例方法中被修改. 但是,如果你确实需要在某个特定的方法中修改结构体或者 ...

  9. 线性规划的影子价格(shadow price)|对偶价格(dual price) 与 gurobi 实现

    在列生成的问题中,大量用到 dual price, 有一些文章会翻译为影子价格,有一些则是对偶价格,叫知乎有一个写得比较好的文章 什么是影子价格?-- 线性规划的对偶解,及拉格朗日乘数 模型为: 下面 ...

最新文章

  1. 如何减少WIN7响应时间
  2. UI分层中使用PageFactory
  3. vim使用四个空格代替TAB键
  4. python之路-SQLAlchemy
  5. ISSN和EAN原理及转换【转载】
  6. 谷歌、DeepMind提出高效Transformer评估基准
  7. Java学习笔记2.3.2 运算符与表达式 - 赋值运算符
  8. 学习手记——技术博文汇总(持续更新)
  9. linux中SPI相关API函数,linux spi驱动开发学习(一)-----spi子系统架构
  10. 2. mirth connect探索------------ cs模式客户端登录
  11. 人行地区代码一览表_全国行政区划与银行地区代码对应关系一览表模板
  12. PCIe Gen4 Equlization失败掉速到Gen3的问题排查
  13. 少儿编程Scratch3.0初识
  14. 又一名程序员被判刑了!百度92年程序员改当“审核员”,编写脚本违规“开绿灯”
  15. 编程之类的文案_精选50句文案,个个都是让你灵感喷涌的句子!
  16. 青龙面板快s极速版(本地)
  17. 渗透测试 | IP信息收集
  18. 微信小程序,物流助手对接(中通篇)待续
  19. 音视频之模拟今日头条列表视频
  20. :-1: error: [debug/qrc_image.cpp] Error 1

热门文章

  1. python win7正常的文件路径到win10报错_如何更改临时文件路径_win10怎么更改临时文件夹的路径图文步骤...
  2. java中poi导出Excel表格(前台流文件接收)
  3. tcl电视android无响应,应用不足:Android智能电视陷入困境
  4. 解决更新音频驱动后显示驱动异常——Smart Sound Technology
  5. SpringBoot定时器+文件Md5码实现文件变动检测
  6. 总结前端三剑客之一(HTML基础)
  7. 1111. Blash/Blah数集 (Standard IO)
  8. 玩转json——json-->txt
  9. ztree autoCheckTrigger=true时 子节点复选框选中 导致父节点onCheck触发多次问题处理
  10. iBeacon销声匿迹了吗?