函数(g)的一些性质
-
Lipschitz continuity
[Vert heta Vert_2 leq D Rightarrow Vert g'( heta)Vert_2 leq B ] -
Smoothness
[Vert g'( heta_1) - g'( heta_1)Vert_2 leq L Vert heta_1 - heta_2Vert_2 ] -
Strong convexity
[g( heta_1) geq g( heta_2) + g( heta_1)^T( heta_2- heta_1) + frac{mu}{2}Vert heta_1 - heta_2Vert_2 ]
Smoothness函数的性质
光滑凸函数的性质
-
如果(g)是二阶可微的,则
[Vert g''( heta)Vert leq L ] -
二阶上界
[g( heta_1) leq g( heta_2) + g'( heta_2)( heta_1- heta_2) + frac{L}{2}Vert heta_1- heta_2Vert ]可以直接通过上述的(g''( heta)leq L)导出
-
下界
[g( heta_1) geq g( heta_2) + g'( heta_2)( heta_1- heta_2) + frac{L}{2}Vert heta_1- heta_2Vert ]令(h( heta) = g( heta) - heta^T g'( heta_2)),(h( heta))为凸函数且在( heta_2)取得最小值,(h( heta)leq h( heta-frac 1 L g'( heta))),将进行泰勒展开可以得到结果。
-
co-coercivity
[frac 1 L Vert g'( heta) - g'(eta)Vert_2^2 leq [g'( heta) - g'(eta)]^T( heta-eta) ] -
到最优点的距离
[g( heta) - g( heta_*)leq g'( heta)^T( heta- heta_*) ] -
如果(g)是(mu) 强凸的,那么
[g( heta) leq g(eta) + g'(eta)( heta-eta) + frac{1}{2 mu}Vert g'( heta) - g(eta)Vert ]同样,令(h( heta)=g( heta) - heta^T g'(eta))并利用强凸的定义即可。
-
如果(g)是(mu)强凸,那么到最优点的距离
[g( heta) - g( heta_*) leq frac{1}{2mu} Vert g'( heta) Vert^2 ]
光滑函数梯度下降
令光滑函数梯度下降的迭代过程为( heta_t = heta_{t-1} - frac 1 L g'( heta_{t-1}))
-
如果(g)是(mu)强凸的,那么
[Vert g( heta_t) - g( heta_*)Vertleq (1-mu/L)^t[g( heta_0) - g( heta_*)] ]即,梯度下降算法是(1- mu/L)线性收敛的。
最后使用(Vert g'( heta) - g'( heta_*)Vert^2 geq 2mu (g( heta) - g( heta_*)))
-
如果(g)仅仅是(L-smooth)的,那么
[g( heta_t) - g( heta) leq frac{2LVert heta_0 - heta_*Vert}{t+4} ]将( heta_t)的迭代过程带入,并利用(co-coercivity)
利用凸函数的性质和柯西施瓦茨不等式可以得到
[g( heta_{t-1} )- g( heta_*)leq g'( heta_{t-1})( heta_{t-1}- heta)leqVert g'( heta_{t-1})Vert Vert heta_{t-1}- hetaVert ]同时利用上一步的结果(g( heta_t)leq g( heta_{t-1}) -frac{1}{2L}Vert g'( heta_{t-1})Vert^2)
定义
倒数第二步骤,从(1-t)的加和,两边都是加上前一步结果后,左式的(frac{1}{Delta_{k-1}})被消除,因此就等于最后的结果。
加速梯度下降
对于(L-smooth)函数(g),以及下述优化流程
则会有(g( heta_t)-g( heta_*)leq frac{2LVert heta_0 - heta_*Vert^2}{(t+1)^2})
如果(g)还是一个(mu)强凸函数,那么下属流程
则会有(g( heta_t)-g( heta_*)leq LVert heta_0 - heta_* Vert^2( 1-sqrt{1-mu/L})^t)
文章说的ten-line proof并没看懂...
Proximal gradient descent
Proximal gradient descent
针对的是
其中(g(x))是Lipschitz
连续,(h(x))是凸函数不一定可微分。
其要找到一个(z)使得
推导过程为,假设除去(h(x))按照正常的梯度下降方法,
对其在(x)点进行二阶展开
最后一个等式去除了一些无关的常数项,因此最后一行其实是原式子的上界,通过对其上界进行优化从而实现其下降。
求解过程如下
加入没有(g(x))这一项,对(g(x))进行求导,可以得到
继而可以得到( abla f(x^{(t)})=L(x^{(t)}-x^{(t+1)})),为了表示方便,令(gamma = frac{1}{L}),同时设(G_{gamma} = frac{1}{gamma}(x-x^{(t+1)}))。现在证明(G_{gamma}=0 Rightarrow partial g(x)+h(x))
因为(x^{(t+1)}=argmin_z {frac{1}{2gamma} Vert z-(x^{(t)}-gamma abla g(x^{(t)}))Vert + h(z)}),上式对(z)求导即可得到结果
这个结果进一步说明了Proximal Gradient Descent
与通常的梯度下降间的联系。
令(f(x)=g(x)+h(x))证明:
[f(y)geq f(x^{(t+1)})+<G_gamma(x), y-x>+frac alpha 2 Vert y-xVert^2+gamma (1-frac{eta gamma}{2})Vert G_gamma(x)Vert^2 ]将(x^{(t+1)}=x - gamma G_gamma(x))代入(f(x))得到
[egin{align*}f(x^{(t+1)})&=g(x-gamma G_gamma(x))+h(x^{t+1})\&leq g(x) - gamma< abla g(x), G_gamma(x)>+frac{eta gamma}{2}Vert G_gamma(x)Vert^2 \&leq g(y)+< abla g(x), x-y>-frac alpha 2 Vert x-yVert^2\&quad -gamma< abla g(x), G_gamma(x)>+frac{eta gamma}{2}Vert G_gamma(x)Vert^2\&= g(y)+< abla g(x), x-y-gamma G_gamma(x)>-frac alpha 2 Vert x-yVert^2\&quad +frac{eta gamma}{2}Vert G_gamma(x)Vert^2\end{align*} ]
参考文献
- Francis Batch, Statistical machine learning and convex optimization
- [Ryan Tibshirani, Convex Optimization](