凸优化算法:Chambolle-Pock算法


Chambolle-Pock算法

一个挺好的凸优化算法,能很好地求解许多正则化的问题,像L1正则化、TV(TGV、TNV)等等。参考文献[1]是原算法,[2]是对一些优化问题的应用。个人觉得[2]更容易理解,所以本文基于文献[2]。下面1和2先简要介绍凸共轭(convex conjugate)和近似点算子(proximal operator),因为算法中会用到,然后3列出算法步骤

1. 凸共轭(convex conjugate)

比如,对于一个函数 H ( z ) H(\mathbf{z}) H(z),它的凸共轭函数就如下式所示(加粗的xy表示向量):
H ∗ ( y ) = max ⁡ z { y T z − H ( z ) } H^{*}(\mathbf{y})=\max_{\mathbf{z}}\{\mathbf{y}^T\mathbf{z}-H(\mathbf{z})\} H(y)=zmax{ yTzH(z)}
介绍凸共轭主要是为了简化求解问题的计算。对于形如 minimize x { F ( A x ) + G ( x ) } \text{minimize}_{\mathbf{x}}\{F(\mathbf{Ax})+G(\mathbf{x})\} minimizex{ F(Ax)+G(x)}的问题,可以用类似ADMM的方法来拆分问题从而方便求解。具体方法如下:
(1)先把问题重新表达成约束问题
minimize x , z   F ( z ) + G ( x ) subject to  z = A x \text{minimize}_{\mathbf{x, z}}\ F(\mathbf{z})+G(\mathbf{x})\\ \text{subject\ to\ }\mathbf{z=Ax} minimizex,z F(z)+G(x)subject to z=Ax
(2)用拉格朗日乘子法(y是对偶变量),问题变成:
min ⁡ x , z   max ⁡ y   F ( z ) + y T ( A x − z ) + G ( x ) = min ⁡ x

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值