我正在scipy中使用differential evolution优化器,但我不理解tol参数背后的直觉。在文档中具体说:
tol:浮动,可选
当总体能量的平均值乘以tol时,除 通过总体能量的标准偏差大于1 解决过程终止:
convergence = mean(pop) * tol / stdev(pop) > 1
从用户的角度来看,设置功能代表什么?
答案 0 :(得分:2)
也许文档中的公式以以下形式更易于理解(请参见the code中的第508和526行):
{{1}}
这意味着当总体中每个个体的能量标准偏差(以平均值为标准)小于给定的公差值时,就可以收敛。
优化算法是迭代的。在每次迭代中,都会找到更好的解决方案。公差参数用于定义停止条件。停止条件实际上是所有个人(参数集)具有大约相同的能量,即具有相同的成本函数值。然后,返回给出最低能量的参数集作为解。
这也暗示着所有个体在参数空间中彼此相对接近。因此,在以后的世代中没有更好的解决方案。