数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization)

本文介绍了无梯度优化(DFO)方法,特别关注在目标函数梯度不易获取或存在噪声的情况下进行优化。讨论了有限差分和误差处理,强调了基于模型的方法,如二次模型近似,并探讨了坐标和模式搜索策略。文章还涵盖了其他DFO算法,如共轭方向法,Nelder-Mead方法和Implicit Filtering方法,为解决复杂优化问题提供了思路。

概述

在实际应用中,有些目标函数的梯度不容易计算,即使使用有限差分等近似算法,也会因为噪声的存在导致结果不精确。无梯度优化算法(DFO-Derivative-Free Optimization)可以在不计算梯度的情况下进行问题的最优化,主要有两类思路,一是根据目标函数的样本进行拟合,对拟合函数进行最优化;二是用一些启发式算法。
1. 有限差分和误差
2. 基于模型近似的方法
3. 坐标和模式搜索方法
4. 其他DFO方法
5. 总结

有限差分和误差

有限差分方法在某些情况下可能会有一定的误差,例如如果函数值需要通过随机试验进行模拟,此时会引入人为误差或者仪器误差。
因此对问题进行建模时,将误差引入目标函数中,然后利用有限差分和梯度相关算法进行优化。

f(x)=h(x)+ϕ(x)
其中函数h表示某平滑函数,ϕ表示误差分布函数,该函数可以和参数x有关也可以无关。

对误差进行建模后,然后利用中心有限差分方法,进行梯度的计算

fxif(x+ϵei)f(xϵei)2ϵ

噪声水平(Noise Level)定义为:
在x附近噪声最大值。η(x;ϕ)=sup||zx||ϵ|ϕ(z)|

此时使用有限差分方法,近似误差来源于固有误差和噪声误差

基于模型的方法

主要思路是,在第k步迭代时,基于该点进行模型近似,通过采样推导出模型中的参数,基于该模型进行最优化计算。

二次模型近似

在第k步迭代时,构建一个二次模型进行近似

mk(xk+p)=c+gTp+12pTGp
,其中g和G分别表示函数f的一阶和二阶梯度。
由于该模型参数c、g和G都是未知的,因此需要1+n+(n+1)n/2=(n+1)(n+2)/2个未知数需要计算。
所以基于点Xk需要采样这么多个点进行未知数计算。
样本Y=y1,y2...yq,假设该集合中的点值都比x_k大。根据拟合等式mk(yl)=f(yl)
此时可以唯一确定模型m,然后利用信赖域或者梯度方法进行最优化。

在实际应用中,我们仅需要更新模型M即可,不用每次都重新计算。可以选择合适方便计算的基函数。

算法过程如下
这里写图片描述
这里写图片描述

算法过程如下
1. 构建插值集合Y=y1,y2...yq需要保证线性方式的解存在。
2. 求解插值方程
3. 根据二次模型进行最优解计算
4. 根据最优解的效果,决定是否采用该解。
5. 根据一个几何过程更新几何Y。

二次模型的缺点:样本点选择是O(n^2)的,如果维度越高计算复杂度越大。因此可以考虑线性模型,此时只有O(n+1)个样本需要求解,复杂度会降低。

坐标和模式搜索方法

不同于梯度相关的算法,基于模式搜索方法的搜索方向都是事先确定好的,该方法需要从方向集合中选择一个下降方向作为搜索方向并且更新该方向集合,之后利用线搜索决定步长,逐步迭代得到最优解。
坐标下降是模式搜索方法中的一个特例。

坐标搜索方法(Coordinate SearchMethod)

该方法也称之为坐标下降法或者变量交替方法,主要思路是依次沿着坐标轴方向进行线搜索。
详细过程如下
1. 选择某个迭代点x=(x1,x2…xn),固定x2…xn,优化x1使得目标函数最小
2. i=2..n 优化x_i使得目标函数最小
3. 重复以上步骤
对于二维情况下,搜索过程如下
这里写图片描述

  1. 从上图中可以看出,对于条件数比较大的问题,收敛速度非常低。
  2. 实际中,如果沿着线性独立的搜索方向搜索,可能不能保证收敛。但是优点是不需要计算梯度,并且对于变量松耦合的情况下,收敛速度可以接受。
  3. 另外为了进行优化,搜索方向可以选择为{e1,e2...en,en1...e1}

模式搜索方法

每次搜索方向都是从一个“结构集”中选取,找到某个下降点,进行线搜索,否则修改步长,重复该过程。
该方法会受到噪声点、函数值不精确、不平滑的影响。算法过程如下这里写图片描述
算法描述如下
定义
* Dk表示第k迭代的方向集合
* γk表示第k步线性搜索参数,即步长,如果找到下降方向,则xk+γkpk为最优点
* ρ(t)为递增函数,并且当t接近0时,该函数值为0
算法过程
1. 初始化搜索方向集合D0
2. 循环迭代一下过程,直到搜索步长满足给定阈值。
3. 如果找到满足一定下降条件的搜索方向,则修改最优值点,并且增大步长。
4. 否则减少步长
关键点

  1. 初始化搜索方向集合D0如何选取,需要保证包含最优解的方向。
  2. 有理论保证如果搜索方向满足一下条件,则一定能保证收敛。
    κ(Dk)=minvRnmaxpDkvTp||v||||p||δ
    βmin||p||βmaxpDk
  3. 条件1说明需要保证最少有一个搜索方向和最优方向的夹角小于90,即cos(θ) > δ,不能再相反的方向,否则不容易收敛。
  4. 条件2说明搜索方向的模不能相差太大,因此搜索步长统一进行缩放。
  5. 满足条件的搜索方向有 {e1,e2...en,e1...en},供2n个搜索方向或者{pi=12neei,pn+1=12ne},供n+1个点
  6. 递增函数可以选择为ρ(t)=Mt3/2

其他DFO算法

共轭方向算法

类似于共轭梯度方法,该方法的目标是最优化

f(x)=12xTAxbTx
,不同点在于共轭方向的计算仅仅依靠函数值得到,不依赖梯度的计算。

Parallel subspace property

通过该方法可以找到一系列共轭方向,并且沿着该方向可以得到最优解,以二维情况为例
这里写图片描述
如上图如果直线l1和l2平行,并且x1*和x2*是目标函数沿着该直线的最优解,则x1*-x2*共轭于直线的法向量。
因此只要沿着某两个平行子空间寻找最优解,则最优解的差就共轭于该平面的法向量。
假设{p1,p2...pl}是线性独立的向量,定义两个平行平面

s1={x1+i=1..lαipi}
s2={x2+i=1..lαipi}
并且目标函数沿着该平面的最优解分布为x1*和x2*,则x2*-x1*共轭于p1,p2...pl

证明很简单
由于x1*是最优解,则有

f(x1+αipi)αi=f(x1+αipi)pi
,当αi=0f(x1)pi=0
0=(f(x1)f(x2))pi=(Ax1bAx2+b)pi=(x1x2)Api

根据共轭条件可以得到。

Nelder-Mead 方法

也叫做Nelder-Mead simplex reflection方法。
保存n+1个点,并且这些点构成一个单纯性,在每次循环中搜索使得函数值最低的点,去掉后,用其他更好的点替代。

Implicit Filtering方法

对比于带有噪声的有限微分方法,适用于noise level随着迭代减小的情形。

总结

通过该小结的学习,可以了解到
1. 对于梯度不可求的复杂函数,可以通过DFO的方式进行优化
2. 通过随机试验估计函数值的最优化问题,可以考虑带噪声的有限差分。
3. 了解基于模型的方法,但是复杂度可能会比较大
4. 了解坐标下降法和模式搜索算法
5. 了解基于共轭方向等其他方法。

继续python实现:生物启发式自配置算法 生物启发式全局优化算法通过模拟自然界中生物进化、迁徙等行为寻找优化问题的最优解。这种算法以自然界生物的生存智慧为蓝本,为解决复杂的优化问题提供了独特且有效的途径。其中,细菌觅食优化(BFO)算法和遗传算法(GA)是常见的生物启发式优化方法 [80] 。 细菌觅食优化算法用于模拟细菌的趋化、繁殖与迁徙行为,其在环境中根据营养物质或有害物质的含量变化调整细菌的运动方向(趋化),通过保留健康个体、淘汰不健康个体(繁殖),以及以一定概率跳跃至新位置(迁徙)等机制,不断在搜索空间中进行优化搜索,逐步逼近问题的最优解,其广泛应用于各类复杂优化问题的求解。而遗传算法是一种基于自然进化过程的随机搜索算法,其核心思想源于生物的遗传、变异与自然选择机制。在由多个个体组成的种群中,每个个体代表一个潜在解。算法通过适应度评估、选择、交叉和变异等操作,引导种群不断迭代进化,使整体适应度逐步提升,最终获得全局最优解或其近似解。 图5 基于梯度优化的自配置算法。(a)基于在线反向传播的结构示意图 [76] ;(b)数值梯度下降算法的实验装置示意图 [77] ;(c)自适应时刻估计(Adam)算法与梯度下降算法相结合的实验装置示意图 [78] ;(d)基于直接导数计算方式的结构示意图 [79] 下载图片 图5 基于梯度优化的自配置算法。(a)基于在线反向传播的结构示意图 [76] ;(b)数值梯度下降算法的实验装置示意图 [77] ;(c)自适应时刻估计(Adam)算法与梯度下降算法相结合的实验装置示意图 [78] ;(d)基于直接导数计算方式的结构示意图 [79] Fig.5 Schematic diagrams of gradient-optimization-based self-configuration approaches.(a) Architecture of online backpropagation-based configuration [76] ;(b) experimental setup for numerical gradient descent algorithm [77] ;(c) experimental setup combining Adam algorithm with gradient descent algorithm [78] ;(d) architecture using direct derivative computation method [79] 2021年,Zhang等 [81] 提出了一种基于遗传算法的光电智能计算芯片的配置方法,如图6(a)所示。该方法通过模拟自然选择、交叉和变异等过程,将进化机制应用于光子器件参数的调控,从而实现芯片性能的优化,并且该方法在复杂环境的干扰下展现出了良好的训练稳定性。 2022年,Cong等 [82] 将细菌觅食优化算法应用于光电智能计算芯片的投影式光子分类器训练任务中,如图6(b)所示。该方法有效实现了基于投影的非线性分类,在异或(XOR)和鸢尾花(Iris)等典型数据集上进行实验分析,取得了较优的训练效果,为片上训练提供了一种高效且鲁棒的策略,并拓展了光电智能计算芯片在非线性任务中的应用空间。 2024年,Chai等 [83] 在传统遗传算法的基础上融合单点变异、均匀变异和高斯变异三种算子,提出了一种混合变异策略遗传算法。在进化早期,该算法通过动态组合不同的变异算子,增强了解空间的全局搜索能力,显著降低了传统算法中常见的“早熟收敛”风险,即早期超个体的出现导致种群多样性迅速丧失,从而陷入局部最优。与标准遗传算法(SGA)相比,该方法在收敛速度和鲁棒性方面均表现出更优的性能,配置流程如图7所示。
07-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值