首页 > 其他分享 >自适应的两点步长梯度法

自适应的两点步长梯度法

时间:2023-02-03 00:22:27浏览次数:40  
标签:max min 梯度 leq 步长 mathop 两点 alpha

自适应的两点步长梯度法

该算法来自于戴彧虹研究员的一篇论文,该文章将两点步长梯度法与非单调搜索结合,并且对非单调搜索的法则进行了改进
_____________________________________________________________________________

问题引入:
考虑无约束优化问题:$$\mathop{min}\limits_{x\in \mathbb{R}^n} \quad f(x)$$两点步长的迭代法则是:$$x_{k+1}=x_k-\alpha_kg_k$$其中$g_k=\nabla f(x_k),\alpha_k=\frac{s_{k-1}^Ts_{k-1}}{s_{k-1}^Ty_{k-1}},s_{k-1}=x_k-x_{k-1},y_{k-1}=g_k-g_{k-1}$

一般的非单调搜索是寻找满足下面条件的$\alpha_k$:$$f(x_k+\alpha_kd_k) \leq \mathop{min}\limits_{0 \leq i \leq m(k)}f(x_{k-i})+\delta\alpha_kg_k^Td_k$$其中$m(k)=min(k,M-1)$,在实际运算中,数值效果很大程度上取决于$M$的选择
_____________________________________________________________________________
改进思路如下:

令:$f_{min}=\mathop{min}\limits_{0 \leq i \leq k}f(x_i)$,$l=k-k_{min}$,而$k_{min}$是取到目前最小值的第一个下标。

又令:$f_{max}=\mathop{max}\limits_{0 \leq i \leq min\{k,M-1\}}f(x_{k-i}),f_c=\mathop{max}\limits_{k_{min} \leq i \leq k}f(x_{i})$

一种改进方法是设置参考值$f_r$代替一般非单调搜索中$\mathop{min}\limits_{0 \leq i \leq m(k)}f(x_{k-i})$的位置,具体地:当$l=L(某个正整数)$时,取$f_r=f_{max}$。但是有时会出现$f_{max}$太大的情况,这时戴老师的处理方法是取$f_r=f_c$,即:
$$ f_r=\left\{
\begin{array}{rcl}
f_c & , & if \quad \frac{f_{max}-f_{min}}{f_c-f_{min}} > \gamma_1 \\
f_{max} & , & otherwise
\end{array} \right. $$
其中$\gamma_1$为一个大于1的常数。这个修改我们称为(1).

另外一种情况是,非单调搜索算法在之前很多的迭代次数内都直接接受初始步长$\alpha_k^{(1)}$作为迭代步长,令$p$为之前连续接收的次数,即$\alpha_{k-1}^{(1)},\alpha_{k-2}^{(1)},\dots,\alpha_{k-p}^{(1)}$都被接受,而$\alpha_{k-p-1}^{(1)}$不被接受。如果$p$太大了,这很可能是因为$f_r$一直不改变所引起的。此时,戴老师的改进方法是:当$p >P$(正整数、常数),令:
$$ f_r=\left\{
\begin{array}{rcl}
f_{max} & , & if \quad f_{max} > f(x_k) \quad and \quad \frac{f_{max}-f_{min}}{f_c-f_{min}} \geq \gamma_2 \\
f_r & , & otherwise
\end{array} \right. $$

其中$\gamma_2$为一个大于1的常数。这个修改我们称为(2).

_____________________________________________________________________________

综上,改进的非单调搜索方法如下:

Step1(修改参考值):
如果$l=L$,按(1)的方式更新$f_r$,同时令$l=0$;
如果 $ p \geq P$,按(2)的方式更新$f_r$,同时令$l=0$;

Step2(测试原始步长):
如果$$f(x_k+\alpha_k^{(1)}d_k) \leq f_r+\delta\alpha_k^{(1)}g_k^Td_k$$则令$\alpha_k=\alpha_k^{(1)}$和$p=p+1$,并转到Step4;否则,令$p=0$;

Step3(调整步长满足条件):
$(i)$令$\alpha_{old}=\alpha_k^{(1)}$;
$(ii)$取$\alpha_{new} \in [\sigma_1 \alpha_{old},\sigma_2 \alpha_{old}].$如果$$f(x_k+\alpha_{new}d_k) \leq \mathop{min}(f_r,f_{max})+\delta\alpha_{new}g_k^Td_k$$则令$\alpha_k=\alpha_{new}$,并转向Step4;否则,令$\alpha_{old}=\alpha_{new}$,并重复$(ii)$;

Step4(更新一些数值):
$(i)$令$f_{k+1}=f(x_k+\alpha_kd_k)$;
$(ii)$如果$f_{k+1} < f_{min}$,设$f_c=f_{min}=f_{k+1}$且$l=0$;否则,令$l=l+1$;
$(iii)$如果$f_{k+1} > f_c$,令$f_c=f_{k+1}$;
$(iv)$计算$f_{max}$,并令$k=k+1$.

 

本文未完待续

 

标签:max,min,梯度,leq,步长,mathop,两点,alpha
From: https://www.cnblogs.com/wjma2719/p/17087823.html

相关文章

  • 梯度 方向导数
    基本概念方向导数:是一个数;反映的是f(x,y)在P0点沿方向v的变化率。梯度:是一个向量;每个元素为函数对一元变量的偏导数;它既有大小(其大小为最大方向导数),也有方向。Ref:​​方向......
  • 反向传播与梯度下降详解
    一,前向传播与反向传播1.1,神经网络训练过程神经网络训练过程是:先通过随机参数“猜“一个结果(模型前向传播过程),这里称为预测结果$a$;然后计算$a$与样本标签值$y$的差......
  • 在 PyTorch 中使用梯度检查点在GPU 上训练更大的模型
    作为机器学习从业者,我们经常会遇到这样的情况,想要训练一个比较大的模型,而GPU却因为内存不足而无法训练它。当我们在出于安全原因不允许在云计算的环境中工作时,这个问题经......
  • JMeter压测——从0开始创建测试计划(RT&TPS分析、常规&梯度加压线程组)
    之前做过一部分的接口性能自测,主要使用的JMeter,记录下测试计划如何创建的过程。1.插件准备安装好JMeter后,由于默认没有RT&TPS分析及梯度加压等的配置,所以需要引入插件管......
  • 深度学习基础课:卷积层的梯度检查
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 梯度下降法(1)
    1.梯度下降法基本原理1.1什么是梯度梯度下降法(gradientdescent)是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单、最经典的方法之一。梯度下降最典型......
  • 研究一下加速梯度下降的方法(试图找到一种不会收敛于局部最优的方法)
    研究一下加速梯度下降的方法(试图找到一种不会收敛于局部最优的方法)发现自己很久没有更新了,现在又在学习着机器学习的内容,正好对梯度下降这里比较感兴趣,因此写了一篇......
  • m基于梯度优化的混沌PSO磁悬浮球系统模型优化的matlab仿真
    1.算法描述基本确定融合后的优化控制算法,即混沌粒子群优化算法,将该算法应用于对PID的参数整定上,通过仿真验证算法的可行性。将混沌思想引入PSO算法,前期工作首先对混沌算法......
  • m基于梯度优化的混沌PSO磁悬浮球系统模型优化的matlab仿真
    1.算法描述         基本确定融合后的优化控制算法,即混沌粒子群优化算法,将该算法应用于对PID的参数整定上,通过仿真验证算法的可行性。将混沌思想引入PSO算法,前期......
  • dvgis计算两点间距离的问题
    先贴一段代码,是dvgis里的distance.js源码,dvgis是cesium的二次封装,可以参考参考:1import{Cesium}from'@dc-modules/namespace'2import{Transform}from'@dc-modules/trans......