关于 SPSA 调优实用的指导方针

要调优 SPSA,请参阅 Spall 在他的书中介绍的半自动调优方法随机搜索与优化导论(ISSO)

有 3 个主要的变量,两个增益序列(_a_ 和 _c_)和扰动分布,δ。

δ 最好选择为 Bernoulli(+/- 1),因为它是渐近最优的(它不能是正态或均匀的,参见 ISSO)。

关于增益序列的性质有一些规则。标准格式很好用,遵循以下格式:

a(k) = a / (k + 1 + A) ^ alpha
c(k) = c / (k + 1) ^ gamma

这里,alpha 和 gamma 的值是联系在一起的,渐近最优的是 _alpha_ = 1 和 _gamma_ = 1/6,但是值 _alpha_ = .602 和 _gamma_ = .101 对于有限情况是适用的。
_A_ 约为总迭代次数的 10 %,_c_ 约为标准误差损失函数的。
_a_ 是最易失性的参数,必须仔细调优。

一般来说,应该选择 _a_(通过选择 _R_),使第一步不会太大,从而使算法向错误的方向发送。

为了能够成功地使用 SPSA 进行调优,需要确定系数 ck 和 Rk 的良好值。
在大多数情况下,确定理想值是不可能的。
对于评估相关参数,我们成功地使用了以下值:

最后一次迭代的:

参数 位置
Rk CSV-file,列 5
0.002
ck CSV-file,列 4
4 centipawns(8,在 Stockfish 的内部)

但是如果 parameter 在 elo 上非常不敏感,则需要使用较大的 ck 值
此外,如果你对参数的 elo 敏感性有一些想法,以及它离最优值有多远,你可以使用内置的模拟器来发现 Rk 和 ck 的良好值。

猜你喜欢

转载自blog.csdn.net/ad44275783/article/details/114154945