报名热线:

0898-08980898

个/性/化/教/育/行/业/领/跑/者

天辰注册

CURRICULUM

天辰APP下载

0898-08980898

广东省清远市

123456789

天辰新闻 >更多
天辰新闻

当前位置: 首页 > 天辰新闻

介绍一个全局最优化的方法:随机游走算法(Random Walk)

2024/05/26

全局最优化是一个非常复杂的问题,目前还没有一个通用的办法可以对任意复杂函数求解全局最优值。上一篇文章讲解了一个求解局部极小值的方法——梯度下降法。这种方法对于求解精度不高的情况是实用的,可以用局部极小值近似替代全局最小值点。但是当要求精确求解全局最小值时,梯度下降法就不适用了,需要采用其他的办法求解。常见的求解全局最优的办法有拉格朗日法、线性规划法、以及一些人工智能算法比如遗传算法、粒子群算法、模拟退火算法等(可以参见我之前的博客)。而今天要讲的是一个操作简单但是不易陷入局部极小值的方法:随机游走算法。

\(f(x)\)是一个含有\(n\)个变量的多元函数,\(x=(x_1,x_2,...,x_n)\)\(n\)维向量。

  1. 给定初始迭代点\(x\),初次行走步长\(\lambda\),控制精度\(\epsilon\)(\(\epsilon\)是一个非常小的正数,用于控制结束算法)。
  2. 给定迭代控制次数\(N\)\(k\)为当前迭代次数,置\(k=1\)
  3. \(k<N\)时,随机生成一个\((-1,1)\)之间的\(n\)维向量\(u = (u_1,u_2,\cdots,u_n),(-1<u_i<1,i=1,2,\cdots,n)\),并将其标准化得到\(u^{'} = \frac{u}{\sqrt{\sum_{i=1}^{n} u_i ^2 }}\)。令\(x_1 = x + \lambda u^{'}\),完成第一步游走。
  4. 计算函数值,如果 \(f(x_1)<f(x)\),即找到了一个比初始值好的点,那么\(k\)重新置为1,将\(x_1\)变为\(x\),回到第2步;否则\(k = k+1\),回到第3步。
  5. 如果连续\(N\)次都找不到更优的值,则认为,最优解就在以当前最优解为中心,当前步长为半径的\(N\)维球内(如果是三维,则刚好是空间中的球体)。此时,如果\(\lambda < \epsilon\),则结束算法;否则,令\(\lambda = \frac{\lambda}{2}\),回到第1步,开始新一轮游走。

这里使用的测试函数为\(f(r) = \frac{sin(r)}{r} + 1,r=\sqrt{(x-50)^2+(y-50)^2}+e,0 \leq x,y \leq 100\),求\(f(r)\)的最大值。该函数是一个多峰函数,在\((50,50)\)处取得全局最大值\(1.1512\),第二最大值在其全局最大值附近,采用一般的优化方法很容易陷入局部极大值点。这里是求解函数的最大值问题,可以将其转化为求目标函数的相反数的最小值问题。具体代码如下:

 

输出结果如下:

 

基本的随机游走算法对于初始点比较敏感,可以看出,当初始点位于最优点附件时,可以很好地达到全局最优点;如果将初始点设置得离最优点较远,比如设置初始点为\((10,10)\)时,其他参数不变,得到结果为:

 

可以发现,随机游走陷入了局部最优点。当然,如果增大迭代次数\(N\)以及初始步长\(\lambda\),可以在一定程度上增加寻优能力,比如设置\(N=3000,\lambda=10.0\),得到结果如下:

 

可以看出,当增大迭代次数以及初始步长之后,函数最终达到了全局最优点。但是迭代次数增加的代价则是运行时间的增加。总得来说,基本的随机游走算法可以很好地达到全局最优点,但是有时会依赖于初始点的选择。

改进的随机游走算法的不同之处是在于第3步,原来是产生一个随机向量\(u\),现在则是产生\(n\)个随机向量\(u_1,u_2,\cdots,u_n\)\(n\)是给定的一个正整数。将\(n\)\(u_i(i=1,2,\cdots,n)\)标准化得到\(u_1^{'},u_2^{'},\cdots,u_n^{'}\),利用公式\(x_i = x + \lambda u_i^{'}\),令\(min\{x_1,x_2,\cdots,x_n\}\)替换原来的\(x_1\),其他步骤保持不变。通过这种方式改进之后,随机游走算法的寻优能力大大提高,而且对于初始值的依赖程度也降低了。令\(n=10\),初始点为\((-100,-10)\),\(N=100,\lambda=10.0,\epsilon = 0.00001\),改进的随机游走算法实现代码如下:

 

输出结果如下:

 

可以发现,即使迭代次数\(N=100\)不大,初始点\((-100,-10)\)离最优点\((50,50)\)非常远,改进的随机游走算法依然可以达到最优点。这说明了改进的随机游走算法具有更强大的寻优能力以及对于初始点更低的依赖性。

注:经过多次试验发现,无论是随机游走算法还是改进的随机游走算法,对于步长都是非常依赖的。步长\(\lambda\)越大,意味着初始可以寻找最优解的空间越大,但同时也意味着更多的迭代次数(要搜索空间变大,寻找次数变多,相应时间自然要增加)。如果步长取得过小,即使\(N\)很大,也很难达到最优解。无论对于随机游走算法还是改进的随机游走算法皆是如此。所以理论上步长\(\lambda\)越大越好。但是步长越大,迭代总次数越高,算法运行时间越长。所以实践中可以多试验几次,将\(\lambda\)取得适当地大即可。

关于天辰娱乐 /ABOUT US
天辰最安全、信誉、快捷的娱乐【skype:zhumeng1688】,是亚洲极具公信力的娱乐游戏公司,以互联网技术为基础,引进海外高科技人才,天辰公司自主研发了基于playcraft引擎的H5网页版游戏,致力于带给天辰平台玩家最新颖、最高效的服务与娱乐体验。...

友情链接:

微信平台

手机官网

网站首页| 关于天辰娱乐| 天辰注册| 天辰新闻| 天辰注册| 天辰登录| 天辰平台| 天辰APP下载| 天辰代理加盟|

平台注册入口