可分和

如果\(f\)可分为俩个变量:\(f(x, y)=\varphi(x) + \psi(y)\), 于是:



如果\(f\)是完全可分的,即\(f(x) = \sum_{i=1}^n f_i (x_i)\):

\[(\mathbf{prox}_f(v))_i = \mathbf{prox}_{f_i}(v_i)
\]

这个性质在并行算法的设计中非常有用。

基本的运算

如果\(f(x) = \alpha \varphi (x) + b\), \(\alpha > 0\):

\[\mathbf{prox}_{\lambda f} (v) = \mathbf{prox}_{\alpha \lambda \varphi} (v)
\]

如果\(f(x) = \varphi (\alpha x +b)\), \(\alpha \ne 0\):



证:

\[\begin{array}{ll}
\mathbf{prox}_{\lambda f}(v) &= \mathrm{argmin}_x \varphi(\alpha x+b) +\frac{1}{2\lambda}\|x-v\|_2^2 \\
&= \mathrm{argmin}_x \varphi(z) + \frac{1}{2\lambda}\|(z-b)/\alpha -v\|_2^2 \\
&= \mathrm{argmin}_x \varphi(z) + \frac{1}{2\lambda \alpha^2}\|z-b -\alpha v\|_2^2 \\
&= \frac{1}{\alpha} (\mathbf{prox}_{\alpha^2 \lambda \varphi}(\alpha v + b) - b)
\end{array}
\]

其中\(z=\alpha x+b\),证毕.

如果\(f(x) = \varphi(Qx)\),且\(Q\)为正交矩阵:

\[\mathbf{prox}_{\lambda f} (v) = Q^T \mathbf{prox}_{\lambda \varphi}(Qv)
\]

如果\(f(x) = \varphi(x) + a^Tx + b\),则:

\[\mathbf{prox}_{\lambda f}(v) = \mathbf{prox}_{\lambda \varphi} (v-\lambda a)
\]

证:

\[\begin{array}{ll}
\mathbf{prox}_{\lambda f}(v) &= \mathrm{argmin}_x \varphi (x) + a^Tx + b + \frac{1}{2\lambda} \|x-v\|_2^2 \\
&= \mathrm{argmin}_x \varphi(x) +\frac{1}{2 \lambda} (x^Tx -2v^Tx+2\lambda a^Tx)+c \\
&= \mathrm{argmin}_x \varphi(x) + \frac{1}{2 \lambda} \|x-(v-\lambda a)\|_2^2 \\
&= \mathbf{prox}_{\lambda \varphi}(v-\lambda a)
\end{array}
\]

其中\(c\)为与\(x\)无关的项.

如果\(f(x) = \varphi(x) + (\rho/2) \|x -a \|_2^2\), 则:

\[\mathbf{prox}_{\lambda f} (v) = \mathbf{prox}_{\widetilde{\lambda}\varphi}\big((\widetilde{\lambda}/\lambda)v + (\rho \widetilde{\lambda})a \big)
\]

其中\(\widetilde{\lambda} = \lambda / (1+\lambda \rho)\),证明方法和上面是类似的,重新组合二次项就可以了.

不动点 fixed points

点\(x^*\)最小化\(f\)当且仅当:

\[x^* = \mathbf{prox}_f (x^*)
\]

这说明,\(x^*\)是\(\mathbf{prox}_f\)的一个不动点,这个性质对于\(\lambda f\)也是成立的.



压缩映射的定义:

考虑映射\(T: (X, \rho) \rightarrow (X, \rho)\). 如果存在\(0 < a < 1\)使得对任意的\(x, y \in X\)有:

\[\rho (Tx, Ty) < a \rho(x, y)
\]

则称函数\(T\)是\((X, \rho)\)到自身的压缩映射.

如果\(\mathbf{prox}_f\)是一个压缩映射,那么显然,如果我们想要找出最小化\(f\)的\(x^*\),可以用下式迭代:

\[x^{n+1} = \mathbf{prox}_f(x^n) \rightarrow x^*
\]

比如\(\mathbf{prox}_f\)满足\(L<1\)的Lipschitz条件.

近端算子有这个性质:



这儿有关于这块内容的讨论.

\(x = \mathbf{prox}_f(v) \Leftrightarrow v-x \in \partial f(x)\),其中\(\partial\)表示次梯度.

设\(u_1 = \mathbf{prox}_f(x), u_2 = \mathbf{prox}_f(y)\),则:

\[x - u_1 \in \partial f(u_1) \\
y - u_2 \in \partial f(u_2)
\]

因为\(f\)是凸函数,所以\(\partial f\)是单调增函数:

\[<x - u_1 - (y-u_2), u_1-u_2> \ge 0 \\
\Rightarrow \|u_1 - u_2\|_2^2 \le (x-y)^T(u_1-u_2)
\]

上面的单调增函数,翻译的估计不对,主要是我对这方面的只是也不了解,原文用的是monotone mapping, 我们来看凸函数\(f(x)\):

\[f(y) \ge f(x) + \partial f(x)^T (y-x) \\
f(x) \ge f(y) + \partial f(y)^T(x-y)
\]

相加即得:

\[(\partial f(x) - \partial f(y))^T (x-y) \ge 0
\]

还有严格凸的情况下有个特殊情况,这个怎么证明啊...而且,似乎在不是严格凸的,利用上面的迭代公式也是能够收敛到不动点的,可似乎不满足不动点定理啊.

而且作者将这个与平均算子(averaged operators)联系起来:

\[T = (1-\alpha)I+\alpha N, \alpha \in (0, 1)
\]

以及迭代公式:

\[x^{k+1}:=(1-\alpha ) x^k + \alpha N
\]

Moreau decomposition

有以下事实成立:

以下的证明是属于



沿用其符号,令(注意是\(\inf\)不是\(\mathrm{argmin}\))

\[f_{\mu}(x) = \inf_y \{f(y) + \frac{1}{\mu} \|x-y\|_2^2\}
\]

我们可以其改写为:



注意\(-\sup A=\inf -A\)

假设\(f\)是凸函数且可微的,那么:

\[f^*(y)={x^*}^T \nabla f(x^*) - f(x^*)
\]

其中,\(x\)满足:\(y=\nabla f(x^*)\)。于是(注意\(\nabla f(x^*)=y\), 且上式是关于\(y\)求导):

\[\nabla f^* (y) = x^*
\]

这就是\(\nabla f_{\mu} (x)\)的由来.

我们再来看其对偶表示:



其拉格朗日对偶表示为:



如果满足强对偶条件:

所以:

\[f_{\mu}(x) = \frac{1}{2 \mu} \|x\|^2-\frac{1}{\mu}(\mu f+\frac{1}{2}\|\cdot\|^2)^*(x) =(f^* + \frac{\mu}{2} \|\cdot\|^2)^*(x) \\
\Rightarrow \frac{1}{2}\|x\|^2= ( \mu f + \frac{1}{2}\|\cdot\|^2)^*(x)+\mu (f^*+\frac{\mu}{2}\|\cdot\|^2)^*(x) \\
\Rightarrow x= \mathbf{prox}_{\mu f}(x) + \mu\mathbf{prox}_{\frac{1}{\mu}f^*}(\frac{x}{\mu})=x = \mathbf{prox}_{\mu f}(x) + \mathbf{prox}_{(\mu f)^*}(x)
\]

最后一步的结果通过对上式俩边求导得到的,不知道对不对,但是\(\mu=1\)的时候,下式是一定成立的:

\[x = \mathbf{prox}_f(x) + \mathbf{prox}_{f^*}(x)
\]

Proximal Algorithms 2 Properties的更多相关文章

  1. Proximal Algorithms

    1. Introduction Much like Newton's method is a standard tool for solving unconstrained smooth minimi ...

  2. Proximal Algorithms 6 Evaluating Proximal Operators

    目录 一般方法 二次函数 平滑函数 标量函数 一般的标量函数 多边形 对偶 仿射集合 半平面 Box Simplex Cones 二阶锥 半正定锥 指数锥 Pointwise maximum and ...

  3. Proximal Algorithms 5 Parallel and Distributed Algorithms

    目录 问题的结构 consensus 更为一般的情况 Exchange 问题 Global exchange 更为一般的情况 Allocation Proximal Algorithms 这一节,介绍 ...

  4. Proximal Algorithms 4 Algorithms

    目录 Proximal minimization 解释 Gradient flow 解释1 最大最小算法 不动点解释 Forward-backward 迭代解释 加速 proximal gradien ...

  5. Proximal Algorithms 3 Interpretation

    目录 Moreau-Yosida regularization 与次梯度的联系 改进的梯度路径 信赖域问题 Proximal Algorithms 这一节,作者总结了一些关于proximal的一些直观 ...

  6. Proximal Algorithms 1 介绍

    目录 定义 解释 图形解释 梯度解释 一个简单的例子 Proximal Algorithms 定义 令\(f: \mathrm{R}^n \rightarrow \mathrm{R} \cup \{+ ...

  7. Proximal Algorithms 7 Examples and Applications

    目录 LASSO proximal gradient method ADMM 矩阵分解 ADMM算法 多时期股票交易 随机最优 Robust and risk-averse optimization ...

  8. Proximal Gradient Descent for L1 Regularization

    [本文链接:http://www.cnblogs.com/breezedeus/p/3426757.html,转载请注明出处] 假设我们要求解以下的最小化问题:                     ...

  9. Propagation of Visual Entity Properties Under Bandwidth Constraints

    1. Introduction The Saga of Ryzom is a persistent massively-multiplayer online game (MMORPG) release ...

随机推荐

  1. 日常Java 2021/11/6

    Java多线程编程 Java给多线程编程提供了内置的支持.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个钱程,每条线程并行执行不同的任务.多线程是多任务的一种特别的形式,但多线程使用 ...

  2. 一起手写吧!call、apply、bind!

    apply,call,bind都是js给函数内置的一些api,调用他们可以为函数指定this的执行,同时也可以传参. call call 接收多个参数,第一个为函数上下文也就是this,后边参数为函数 ...

  3. express系列(1)概述

    在 Node.js 出现之前,前后端的开发必须使用不同的语言进行.为此你需要学习多种的语言和框架.有了 Node.js 之后,你就可以使用一门语言在前后端开发中自由切换,这是最吸引人的地方. 什么是 ...

  4. Linux(CentOS)升级gcc版本

    本人使用的是CentOS 6.2 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 系统信息查看命令: cat /etc/redhat-release 使用y ...

  5. 【Linux】【Services】【Docker】基础理论

    1. 名称空间:NameSpace 内核级别,环境隔离: 1.1. 名称空间的历史 PID NameSpace:Linux 2.6.24 ,PID隔离 Network NameSpace:Linux ...

  6. Java Log4j 配置文件

    ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.lo ...

  7. logrotate没有rotate的排查过程

    前言 背景 xxx,你过来把squid的日志检查一下,是否做了日志切割:于是乎开启了logrotate没有切割日志的排查旅程,em--.只能说过程很爽,平时疲于应付繁琐的事情,难得有点时间能一条线慢慢 ...

  8. 利用Windbg分析Magicodes.IE一次错误编写导致内存剧增

    由于这近一年时间一直忙于写书和工作,一直没有水文,但是近期有几位朋友使用我们的Magicodes.IE反馈在导出过程中内存暴涨...好吧,不管怎样,不能苦了我们朋友,接下来我们通过windbg来看一下 ...

  9. Mysql配置文件 基本设置

    [mysqld] #MySQL启动用户 user = mysql #设置mysql的安装目录 basedir=/usr/local/mysql #mysql.sock存放目录 socket=/var/ ...

  10. Tableau如何绘制堆叠柱状图

    一.将类别,子类别拖拽至列上 二.将度量值拖拽至行上 三.将度量名称拖拽至筛选器上,右键度量名称,编辑筛选器,选择销售额 四.将事先准备的目标销售额拖拽至度量值 五.将度量名称拖拽至标记,分别以颜色和 ...