测试函数优化后为什么不是全局最优值?是不是程序错了?怎么评估算法性能?

首先明确一下,测试函数的作用的是用来测试优化算法的性能,以方便比较各种优化算法性能上的优劣。目前在优化算法领域,测试函数专指cec(国际进化计算会议))上每年发布的函数,如下图:
 



cec测试函数每年或者每几年都会更新,测试函数分为单峰、多峰、动态、静态等,测试函数会给定变量范围、维度以及该函数的全局最优解,方便大家在测试的时候进行对比。不同的测试函数可以测试算法不同方面的性能,当某个测试函数优化后为全局最优值时,说明该算法在该测试函数上达到了理想效果;如果没有达到全局最优值,说明在该测试函数上效果还不是最好的,但是可以和其他优化算法去进行最优值的比较,以显示算法的优劣。一般,测试函数在测试的时候肯定不会只选用一个测试函数,而是会选用多个测试函数(最好是不同类型的),以方便对算法进行各方面的评判。

所以,优化算法进行测试时没有达到全局最优解,那是一个很正常的事情,不用去太过怀疑代码是不是有问题。相反,如果一个算法优化效果很好,所有的测试函数测试了都是全局最优解,那优化算法这个领域以后就不用研究和学习了,因为这个学科领域已经被“通关”了........................

那么一个优化算法在进行测试函数测试了之后,该如何评判测试效果呢。最简单的就是看求得的最优值是不是够小或者够大,是不是全局最优值,不同算法之间对比即可,这是最简单的方法。

最严谨最正式的评测方法是多次运行算法对同一个测试函数进行优化,记录每次的最优目标,然后计算目标多次运行的平均值和方差。平均值可以用来规避算法中随机数对计算结果的影响,可以比较客观的评价算法的收敛效果。方差可以表征算法优化的稳定性,当然这

。。。。。。。。。。。。。。。。。

版权原因,完整文章,请参考如下:测试函数优化后为什么不是全局最优值?是不是程序错了?怎么评估算法性能?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值