首页 > 其他分享 >临近点梯度法

临近点梯度法

时间:2024-05-06 16:13:13浏览次数:15  
标签:right Vert 梯度 nabla 临近 beta theta left

可微凸优化临近点梯度法
求解约束优化问题:
\begin{align*}
\mathop{min}\limits_{x} & \quad f(x)\\
s.t. & \quad x \in S
\end{align*}
其中,$f$是可微凸函数,$S$是凸集合。这个问题等价于:
\begin{align*}
\mathop{min}\limits_{x} & \quad f(x)+I_S(x)\\
\end{align*}
其中$I_S$为集合$S$的指示函数。
取$\beta \in \mathbb{R}^+$,使得$I+\beta \partial I_S$为极大单调算子,设$x^*$为问题的最优解,则
\begin{align*}
&0 \in \nabla f(x^*) + \partial I_S(x)\\
\iff & 0 \in \beta \nabla f(x^*) + \beta \partial I_S(x)\\
\iff & 0 \in x^* - \left( x^* -\beta \nabla f(x^*)\right) + \beta \partial I_S(x^*)\\
\iff & \left( x^* -\beta \nabla f(x^*)\right) \in x^* +\beta \partial I_S(x^*)\\
\iff & \left( I -\beta \nabla f\right)(x^*) \in \left( I +\beta \partial I_S\right) (x^*)\\
\iff & x^* =\left( I +\beta \partial I_S\right)^{-1}\left( I -\beta \nabla f\right) (x^*)
\end{align*}
由此将最优化问题转化为不动点问题,根据不动点迭代的做法,我们得到迭代方式:
$$ x^{k+1} =\left( I +\beta \partial I_S\right)^{-1}\left( I -\beta \nabla f\right) (x^k)$$
再将这个格式打开:
\begin{align*}
& x^{k+1} =\left( I +\beta \partial I_S\right)^{-1}\left( I -\beta \nabla f\right) (x^k)\\
\iff & \left( I +\beta \partial I_S\right)(x^{k+1}) =\left( I -\beta \nabla f\right) (x^k)\\
\iff & x^k-\beta \nabla f(x^k)-x^{k+1}\in \beta \partial I_S(x^{k+1})\\
\iff & (x-x^{k+1})^\top \frac{1}{\beta}\left( x^k-\beta \nabla f(x^k)-x^{k+1} \right) \leq 0,\forall x \in S\\
\iff & (x-x^{k+1})^\top \frac{1}{\beta}\left( x^{k+1}-\left( x^k-\beta \nabla f(x^k) \right) \right) \geq 0,\forall x \in S\\
\iff & x^{k+1}=\mathop{argmin}\limits_{x} \{\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}
\end{align*}
这就推导出来临近点梯度法的迭代格式:
$$x^{k+1}=\mathop{argmin}\limits_{x} \{\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}$$
进一步:
\begin{align*}
x^{k+1}=&\mathop{argmin}\limits_{x} \{\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}\\
=&\mathop{argmin}\limits_{x} \{\frac{1}{2\beta}\Vert x-x^k\Vert^2+\nabla f(x^k)^\top (x-x^k)+\frac{1}{2} \beta \Vert \nabla f(x^k) \Vert^2 | x\in S\}\\
=&\mathop{argmin}\limits_{x} \{f(x^k)+\nabla f(x^k)^\top (x-x^k) +\frac{1}{2\beta}\Vert x-x^k \Vert^2 | x\in S\}
\end{align*}
可以看出临近梯度法实际上是将目标函数在当前迭代点进行二次近似得到下一个迭代点。

复合凸优化临近点梯度法
求解复合凸优化问题:
\begin{align*}
\mathop{min}\limits_{x} & \quad f(x)+\theta (x)\\
s.t. & \quad x \in S
\end{align*}
其中,$f$是可微凸函数,$f$是凸函数但不一定可微,$S$是凸集合。这个问题等价于:
\begin{align*}
\mathop{min}\limits_{x} & \quad f(x)+\theta (x)+I_S(x)\\
\end{align*}
其中$I_S$为集合$S$的指示函数。
对此,可以将目标函数中的$\theta (x)+I_S(x)$看成一个凸函数$(\theta+I_S)(x)$,则和第一部分一样的操作,将优化问题转化为不动点问题:
$$x^* =\left( I +\beta ( \partial \theta + \partial I_S) \right)^{-1}\left( I -\beta \nabla f\right) (x^*)$$
于是得到迭代方式:
$$x^{k+1} =\left( I +\beta ( \partial \theta + \partial I_S) \right)^{-1}\left( I -\beta \nabla f\right) (x^k)$$
再将这个格式打开:
\begin{align*}
& x^{k+1} =\left( I +\beta ( \partial \theta + \partial I_S) \right)^{-1}\left( I -\beta \nabla f\right) (x^k)\\
\iff & \left( I +\beta ( \partial \theta + \partial I_S\right)(x^{k+1}) =\left( I -\beta \nabla f\right) (x^k)\\
\iff & x^k-\beta \nabla f(x^k)-x^{k+1}\in \beta \partial( \theta + I_S)(x^{k+1})\\
\iff & \theta(x) + I_S(x) -\left(\theta(x^{k+1}) + I_S(x^{k+1}) \right) -(x-x^{k+1})^\top \frac{1}{\beta}\left( x^k-\beta \nabla f(x^k)-x^{k+1} \right) \geq 0 , \forall x
\end{align*}
根据最后一个不等式,取$x \in S$,这样可以通过反证法得到$x^{k+1} \in S$,于是:
\begin{align*}
& \theta(x) + I_S(x) -\left(\theta(x^{k+1}) + I_S(x^{k+1}) \right) -(x-x^{k+1})^\top \frac{1}{\beta}\left( x^k-\beta \nabla f(x^k)-x^{k+1} \right) \geq 0 , \forall x \\
\iff & \theta(x) + I_S(x) -\theta(x^{k+1}) +(x-x^{k+1})^\top \left( x^{k+1} -\left( x^k-\beta \nabla f(x^k)\right) \right) \geq 0 , \forall x \\
\iff & \theta(x) -\theta(x^{k+1}) +(x-x^{k+1})^\top \frac{1}{\beta}\left( x^{k+1} -\left( x^k-\beta \nabla f(x^k)\right) \right) \geq 0 , \forall x \in S \\
\iff &x^{k+1}=\mathop{argmin}\limits_{x} \{\theta(x)+\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}
\end{align*}
这就推导出来临近点梯度法的迭代格式:
$$x^{k+1}=\mathop{argmin}\limits_{x} \{\theta(x)+\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}$$
进一步:
\begin{align*}
x^{k+1}=&\mathop{argmin}\limits_{x} \{\theta(x)+\frac{1}{2\beta}\Vert x-\left( x^k-\beta \nabla f(x^k)\right) \Vert^2 | x\in S\}\\
=&\mathop{argmin}\limits_{x} \{\theta(x)+ \frac{1}{2\beta}\Vert x-x^k\Vert^2+\nabla f(x^k)^\top (x-x^k)+\frac{1}{2} \beta \Vert \nabla f(x^k) \Vert^2 | x\in S\}\\
=&\mathop{argmin}\limits_{x} \{\theta(x)+f(x^k)+\nabla f(x^k)^\top (x-x^k) +\frac{1}{2\beta}\Vert x-x^k \Vert^2 | x\in S\}
\end{align*}
可以看出临近梯度法实际上是将目标函数中的可微的部分在当前迭代点进行二次近似得到下一个迭代点。

标签:right,Vert,梯度,nabla,临近,beta,theta,left
From: https://www.cnblogs.com/wjma2719/p/18175206

相关文章

  • Machine Learning - 梯度下降
    一、梯度下降:目的是为了寻找到最合适的$w$和$b$,让成本函数的值最小\[w=w-α\frac{\partialJ(w,b)}{\partialw}\]\[b=b-α\frac{\partialJ(w,b)}{\partialb}\]    其中\(α\)的值通常在\(0-1\)之间,用于控制梯度下降算法的幅度。\(α\)太大,会造成发......
  • 次梯度算法的收敛性
    次梯度算法: 梯度下降法的迭代格式为$$x_{k+1}=x_k-\alpha_k\nablaf(x_k)$$ 但是对于不可微的凸函数,梯度并不存在,于是使用此梯度算法: $$x_{k+1}=x_k-\alpha_kg_k)$$其中$g_k\in\partialf(x_k)$次梯度算法的收敛性证明:假设:$f$是凸函数且存在最小值点$f^*$,且是$G-$利普西茨连......
  • 梯度下降法的两个收敛性证明
    **梯度下降法:** 对于无约束最优化问题:$$\mathop{min}_{x}f(x)$$其中$f$是可微函数,梯度下降法的更新方式如下: $$x_{k+1}=x_k-\alpha_k\nablaf(x_k)$$ 步长$\alpha_k$有多种选择方式,普通的梯度法就选择固定步长$\alpha$。 下面介绍固定步长的梯度下降法在凸函数以及强凸函数......
  • amCharts粒状梯度柱形图
    代码案例<!DOCTYPEhtml><html><head><scriptsrc="https://cdn.amcharts.com/lib/5/index.js"></script><scriptsrc="https://cdn.amcharts.com/lib/5/xy.js"></script><scriptsrc=&qu......
  • JMeter的梯度压测
        ApacheJMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试。   一般大家说熟悉的压测脚本方案是,通过一次次去提高线程数量,来对接口性能峰值进行摸底,如果压测任务中出现了几十几百个接口,每个接口都去压5min的(10、20、30、40.。。并发)这样......
  • 方向导数和梯度
    今天我们来讨论一下梯度与方向导数。偏导数的概念非常容易理解,例如下图,z=$x^{2}$+$y^{2}$,x与y形成的二维平面上,每个点(对应一组xy值)都能在z的函数图像上找到对应的投影点,这个点的高度就是z值的大小。z对x的偏导数就在保持变量y大小不变的情况下(粉色切面上y值均相等),沿着x轴的方向,z......
  • 回归问题求解 python---梯度下降+最小二乘法
      MSE=1/m*∑i=1m(yi−y^i)2 a=[1.,2.,3.,4.,5.,6.,7.,8.,9.]b=[3.,5.,7.,9.,11.,13.,15.,17.,19.]points=[[a[i],b[i]]foriinrange(len(a))]lr=0.001eps=0.0001m=len(......
  • SciTech-BigDataAIML-Adam动量自适应的梯度快速收敛
    http://faculty.bicmr.pku.edu.cn/~wenzw/optbook/pages/stograd/Adam.html版权声明此页面为《最优化:建模、算法与理论》、《最优化计算方法》配套代码。代码作者:文再文、刘浩洋、户将,代码整理与页面制作:杨昊桐。Adam算法考虑优化问题:minx∈Rnf(x)=1N∑i=1Nfi(x).Adam算......
  • Qt加Opencv实现 梯度矫正 功能
    废话:有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做梯度矫正,需要用到的技术是Opencv的透视变换。这个只是一个简单的演示demo,如果完善一下,比如物品检测,可以应用更多的场景,比如常见的:文件、资料上传,软管摄像头的应用等,怎么说也是一个......
  • 梯度下降法及变式(代码实现)
    梯度下降BGDdefbatchGradientDescent(x,y,theta,alpha,m,maxInteration):'''批梯度下降算法简单实现x:输入y:输出theta:w和b组成的向量alpha:学习率m:批数据数量maxInteration:最大迭代次数'''x_train=x.transpose......