# Proximal Algorithm 入门

## 为什么L1能够产生稀疏解

minzRL=λ|z|+γ2(zx)2$min_{z \in R\quad}{L = \lambda|z| + \frac{\gamma}{2} {(z - x)}^2}$

Lz=λ+γ(zx)=0$\frac{\partial L}{\partial z} = \lambda + \gamma(z - x) = 0$

z=xλγ(z>0)$z = x - \frac{\lambda}{\gamma} \quad\quad (z > 0)$

Lz=λ+γ(zx)$\frac{\partial L}{\partial z} = -\lambda + \gamma(z - x)$

z=x+λγ(z<0)$z = x + \frac{\lambda}{\gamma} \quad\quad (z < 0)$

minzRL=12λz2+γ2(zx)2$min_{z \in R\quad}{L = \frac{1}{2}\lambda {z}^2 + \frac{\gamma}{2} {(z - x)}^2}$

Lz=λz+γ(zx)=0$\frac{\partial L}{\partial z} = \lambda z + \gamma(z-x) = 0$

z=γλ+γx$z = \frac{\gamma}{\lambda + \gamma} x$

## 理解Proximal Algorithm

### 为什么使用Proximal Algorithm

• 求解慢
• 通常不会产生稀疏解

Proximal Algorithm 自然肩负了要解决这两个问题的使命。

### Proximal Algorithm

proxλf(v)=argminx(f(x)+12λ||xv||2)$prox_{\lambda f}(v) = argmin_x {(f(x) + \frac{1}{2\lambda}{||x - v ||}^2)}$

for t = 1,2…n

1) Gradient Step，定义$${v}^t$$是沿着$$l(x)$$梯度方向找到的一个点：

vt=xtγl(xt)${v}^t = {x}^t - \gamma\bigtriangledown l({x}^t)$

2) Proximal Operator Step，使用prox式子优化$$phi(x)$$

xt+1=proxλϕ(vt)${x}^{t+1} = prox_{\lambda \phi} ({v}^t)$

repeat

1. $$z = prox_{\lambda \phi} ({v}^t)$$

2. break if $$f(z) <= f({v}^t) + \bigtriangledown {f}^T({v}^t)({v}^2 - z) + \frac{1}{2\lambda}{||{v}^t - z||}^2$$

3. $$\lambda = \frac{1}{2}\lambda$$

return $${x}^{t+1} = z$$

### Proximal Algorithm和SGD

SGD是把目标函数进行一阶泰勒展开，Proximal Algorithm也是同样的，只不过Proximal Aglorithm更为严格，要求目标函数$$F(x) = l(x) + \phi(x)$$，其中$$\bigtriangledown l(x)$$满足Lipschitz continuity，有：

F(x)=l(x)+ϕ(x)l(x0)+(xx0)Tl(x0)+12γ||xx0||2+ϕ(x)$F(x) = l(x) + \phi(x) \leqslant l(x_0) + {(x-x_0)}^{T}\bigtriangledown l(x_0) + \frac{1}{2\gamma}{||x-x_0||}^{2} + \phi(x)$

whereγ(0,1L]$where \quad \gamma \in (0, \frac{1}{L}]$

x=argminxl(x0)+(xx0)Tl(x0)+12γ||xx0||2+ϕ(x)$x = argmin_{x}{{l(x_0) + {(x-x_0)}^{T}\bigtriangledown l(x_0) + \frac{1}{2\gamma}{||x-x_0||}^{2} + \phi(x)}}$

x=argminx(f(x)+12λ||xu||2)$x = argmin_x {(f(x) + \frac{1}{2\lambda}{||x - u ||}^2)}$

whereu=x0γl(x0)$where\quad u= x_0 - \gamma\bigtriangledown l(x_0)$

### Proximal Algorithm和Trust Region

proxλf(v)=argminx(f(x)+12λ||xv||2)$prox_{\lambda f}(v) = argmin_x {(f(x) + \frac{1}{2\lambda}{||x - v ||}^2)}$

Proximal Algorithm的式子里也体现着这种思想，最小化f(x)且要求新求得的x点不能和上一轮迭代得到的v点距离太远。

### Ref

1 《Big Machine Learning》 James Kwok, CCF ADL70

2 《Proximal Algorithms in Statistics and Machine Learning》 Nicholas G. Polson, James G. Scott, Brandon T. Willard

3 《Proximal Algorithms》 Neal Parikh,Stephen Boyd

• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120