【问题标题】:Explain the intuition for the tol paramer in scipy differential evolution解释scipy差分进化中top参数的直觉
【发布时间】:2018-09-03 03:54:59
【问题描述】:
我在 scipy 中使用 differential evolution 优化器,但我不明白 tol 参数背后的直觉。具体在文档中说:
tol:浮动,可选
当人口能量的平均值乘以 tol,除以
由总体能量的标准差大于 1
求解过程终止:
convergence = mean(pop) * tol / stdev(pop) > 1
从用户的角度来看,设置 tol 代表什么?
【问题讨论】:
标签:
scipy
differential-evolution
【解决方案1】:
也许文档中的公式更容易理解为以下形式(参见the code 中的第 508 和 526 行):
std(population_energies) / mean(population_energies) < tol
这意味着当群体中每个个体的能量标准偏差(由平均值标准化)小于给定的容差值时,就达到了收敛。
优化算法是迭代的。每次迭代都会找到更好的解决方案。公差参数用于定义停止条件。停止条件实际上是所有个体(参数集)具有大致相同的能量,即相同的成本函数值。然后,给出最低能量的参数集作为解返回。
这也意味着所有个体在参数空间中彼此相对接近。因此,在接下来的几代人中,不能指望有更好的解决方案。