基于信赖域的动态径向基函数代理模型优化策略
- DRBF法回顾
- TR-DRBF简介
- 拉丁超方设计
- 信頼域思想
- 算例
DRBF法回顾
在上一篇基于动态径向基函数(DRBF)代理模型的优化策略中我们简要介绍了DRBF算法,这种算法收敛次数少,但由于收敛区间只缩小不扩张,该算法有着天然的劣势,如果在几次迭代当中并未搜索到最优解附近的区间,则更新新样本点的区间将缩减到足够小,以致矩阵奇异,从而算法失效。
也是由于这个原因,笔者并未对该算法进行详细展开。
TR-DRBF简介
在本篇文章中,将介绍一种新的算法,TR-DRBF(Trust region based dynamic radial basis function)算法。该方法同样用于模型优化,目的是找到某个函数的最小值,算法的大致描述如下:给定特定函数与搜索区间,首先在整个区间内采一些点,采点方法见拉丁超方设计。
采完第一组点后,利用径向基函数插值出一个代理模型,然后利用全局优化算法(如遗传算法等,笔者用的即为遗传算法)优化该代理模型,得到一个近似最优解,由于当前采集的特征点较少,代理模型并不能很好的代表原函数,接下来就需要运用基于信赖域的采样空间更新策略更新采样空间,得到一组新的样本点,与之前的样本点一起保存进样本点数据库中,然后用这些样本点一起构造新的代理模型,直至相邻两次代理模型求得的全局最优解带入真实模型中,满足收敛条件即可跳出循环。
流程图如下
拉丁超方设计
拉丁超方设计是保证空间均布性与投影均匀性的计算实验设计方案。其实现用matlab自带的lhsdesign函数即可
信頼域思想
信赖域采样空间更新策略的主要目的是使基于当前代理模型的子优化能够实现目标函数值的显著下降。
信赖域采样空间更新策略就是根据当前已知信息,并结合信赖域思想,进行采样空间更新,确定更新后的采样空间的边界。需用参数取值为c1=0.75,c2=1.25,r1=0.1,r2=0.75,信赖域半径上限Δ 取为初始设计空间的半径R,本文中lambda=0.05。
信赖域采样空间更新策略可以总结如下。
第 1 步,确定新采样空间的中心点xc。若真实目标函数值下降,则
当前可能最优解 xk 作为更新后采样空间的中心点x_c,反之,则将上一次的可能最优解 xk -1作为更新后采样空间的中心点 x_c。
% matlab code
if(Y_star_k_1 > Y_star_k)X_c = X_star_k;
elseX_c = X_star_k_1;
end
第 2 步,更新信赖域半径delta_k。将信赖域思想引入采样空间更新策略中,根据已知信息,求解获得信赖因子r 。根据r 的大小,按照对信赖域半径进行适当缩放。
r = GetTRFactor(Y_star_k_1,Y_star_k,Y_star_predict_k);
delta_k = UpdateDelta(r,X_star_k,X_star_k_1,c1,c2,r1,r2,Delta);
function [ output_args ] = GetTRFactor( Y_star_k_1,Y_star_k,Y_star_predict_k )
output_args = (Y_star_k_1 - Y_star_k)/(Y_star_k_1 - Y_star_predict_k);%该过程衡量最优解值的改善情况end
function [ output_args ] = UpdateDelta(r,X_star_k,X_star_k_1,c1,c2,r1,r2,Delta)
if r < r1output_args = c1*abs(X_star_k - X_star_k_1);
elseif r > r2output_args = min(c2*abs(X_star_k - X_star_k_1),Delta);
elseoutput_args = abs(X_star_k - X_star_k_1);
end
end
第3 步,信赖域采样空间边界控制。多次迭代之后可能会出现所求信赖域半径delta_k太小,导致新增样本点过于集中在一个狭小空间中,对于提高RBF 代理模型的近似精度没有明显帮助,同时为使优化策略更容易跳出局部最优解,给定最小信赖域半径,可以根据实际问题来确定。此外,获得的信赖域采样空间可能超出初始设计空间,则选取二者交集作为信赖域采样空间边界。则整个基于信赖域思想的采样更新策略如下。
function [ output_args ] = shrinkspace(Y_star_k_1,Y_star_k,Y_star_predict_k,X_star_k,X_star_k_1,lb,ub,lbc,ubc,Delta,c1,c2,r1,r2,lambda)
if(Y_star_k_1 > Y_star_k)X_c = X_star_k;
elseX_c = X_star_k_1;
end
r = GetTRFactor(Y_star_k_1,Y_star_k,Y_star_predict_k);
delta_k = UpdateDelta(r,X_star_k,X_star_k_1,c1,c2,r1,r2,Delta);
delta_k = max(delta_k,lambda*Delta);
lbc = X_c - delta_k;
ubc = X_c + delta_k;
lbc = max(lbc,lb);
ubc = min(ubc,ub);
output_args = [lbc;ubc];
end
算例
SC_Function
比如我们期望对SC 函数进行优化,该函数是常见的一种优化测试函数,其函数图像如下图
首先,在[-2 -2;2 2]内由拉丁超方方法采集6个点,构造代理模型及所采的6个点如下图
可以看到,代理模型过每一个采样点,所以说径向基函数为差值型。采用ga算法进行优化求解,得到第一个最优解为[0.9377 -0.4421]处,最优值是1.0767,此时代理模型与原函数相去甚远,所以我们还要进一步更新该代理模型。
选取六个点中的最小值[-0.6615 -0.0811]为中心点更新采样空间,由更新策略得新的采样空间为[-0.6615 -0.8031; 2 -0.0811],然后再在该更新后的空间中重新采6个点,与原来的6个点一起保存到样本库中,进入第二轮循环。
在第二轮循环中,由这12个点构建新的代理模型,得下图
可以看到,曲面中部的近似于原函数的精度已明显有所提高,动态更新策略仅对兴趣区域采集新的点,所以曲面靠近边界处的精度并未提高,我们也并不关心,因为从代理模型来看,函数的全局最优解仅有可能出现在该次循环所计算的更新后的采样区间当中。
如此进行数次迭代,在第8次循环后,满足收敛条件,循环结束,最后一次构造的代理模型如图
最终找到的全局最优解为-1.0314,与SC_Function的真实最优解-1.0316相差很小。并且这只代表该次的结果,在笔者多次的实验中,大部分时候可以精确找到真实全局最优解,少数情况会过早结束循环,所得结果略大于真实解。要解决这一问题,可以适当调整收敛判据,使之更严格。
该算例最终结果如下
Test Function | Theoretical Optimum | Intermediate Optimum | Function Calls |
---|---|---|---|
SC | -1.0316 | -1.0314 | 48 |
GN_Function
f(x) = \sum_{i=1}^{n_v}x_i^2/200-\prod_{i=1}^{n_v}cos(x_i/\sqrt{i})+1
x_1,x_2\in[-100,100]\ n_v=2
Test Function | Theoretical Optimum | Intermediate Optimum | Function Calls |
---|---|---|---|
GN | 0 | 0.0002 | 204 |
基于信赖域的动态径向基函数代理模型优化策略相关推荐
- 基于动态径向基函数(DRBF)代理模型的优化策略
基于动态径向基函数(DRBF)代理模型的优化策略 在工程计算中,我们经常遇到需要求解优化问题,尤其在现在十分有前景的机器学习领域,如何快速.高效的求解优化问题,成为机器学习算法是否高效.准确的必要条件 ...
- seo vue 动态路由_基于vue.jsvue-router的动态更新TDK(SEO优化)
本文基于工作项目开发,做的整理笔记 前几天帮朋友解决这个问题,顺带学习了一下,做个笔记Mark下. 前提条件: 你已经了解并使用vue,能够搭建应用站点. 编码环境: system:OS X EI C ...
- 机器学习算法-09-深度学习、BP神经网络、Hopfield神经网络、基于数学原理的神经网络、径向基函数RBF(B站一条会说666的咸鱼)
Deep Learning 深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是有一种深度学些的结构 ,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征的 ...
- 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究
点击上方"网络空间安全学术期刊"关注我们 基于RBF神经网络的网络安全态势 感知预测研究 钱建, 李思宇 摘要 针对网络安全态势的感知问题,结合巨龙山和者磨山风电场的运行情况,文章 ...
- matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...
参考资料 Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB. P.387 P401 数值实现 Matlab 2019a ...
- matlab十字路口车流量仿真,基于高斯径向基函数神经网络的十字路口车流量预测...
2006年3月 摘要: 采用径向基函数预测功能的神经网络,对十字路口的车流量进行实时预测,仿真实验结果表明使用该神经网络对交叉口车流量进行预测可以得到令人满意的结果.关键词:神经网络:径向基函数:十字 ...
- 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码
目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...
- 基于径向基函数(RBF)的函数插值
基于径向基函数的函数插值 1. 函数插值 2. RBF函数插值 代码实现 1. 函数插值 函数插值问题: 用形式简单的插值函数 f^(x)\hat f(x)f^(x) 近似原函数 (1)\qquad ...
- 基于Dogleg思想和精确Hessian的信赖域方法及实例(附MATLAB程序)
关于信赖域方法的完整介绍,请参照博客信赖域方法. 优化问题简介 此处我们简要介绍理论计算: 给定无约束优化问题minx∈Rnf(x),\min\limits_{x\in \mathbb{R}^n}f ...
最新文章
- ros::spinOnce()机制 有点东西
- 微生物组实验手册计划正式启动、诚邀同行共同打造本领域方法百科全书
- Windows XP权限
- python菜鸟编程-Python3 函数
- 邮件服务器收发邮件时常发生的问题
- 公文字体字号标准2020_手把手教你写公文——红头文件的制作技巧
- php curl cookie 读写
- 正则表达式——获取指定IP的物理地址(二)
- 7 款 Python 开源框架的优劣总结
- Netty线程模型和核心概念
- UVa 116 (多段图的最短路) Unidirectional TSP
- mysql数据库复习
- FullPage.js – 轻松实现全屏滚动(单页网站)效果
- ubuntu18安装wine QQ——2021.11.9
- VB2010实例(3)_闪烁的窗体
- Python 如何随机生成姓名?
- SpringCloud微服务之学生管理
- 魏俊妮《非人力资源的人力资源管理技术提升》课程大纲
- PageOffice 安装使用说明
- ajax的响应与取消响应