Encog 模拟退火参数

Encog Simulated Annealing Parameters

我对 SA(模拟退火)做了一些广泛的研究。即便如此,我还是很难理解如何找到输入参数。

在我的所有研究中,您似乎只是从在黑暗中拍摄开始,然后从那里进行调整。这似乎效率极低,而且不太可能产生高质量的结果。

您如何找到在使用 Encog 的 SA 训练算法中使用哪些参数(例如:Start Temp、Stop Temp、Cycles)以产生高效和高质量的结果?

模拟退火是一个调整值向量以提高 objective 函数得分的过程。如果您使用 Encog 通过模拟退火训练神经网络,那么您尝试 adjust/optimize 的向量就是神经网络的权重。 objective 函数只是神经网络在与给定数据集的所需输出进行比较时,针对当前一组权重得到的误差。考虑随机游走,这是最简单的优化方法之一。在这里你选择一个权重然后增加或减少它(完全随机)。如果重量的变化降低了误差,那么该重量变化将成为永久性的,并且循环会在新的重量上重复。如果错误没有改善,则撤销权重更改并选择新的权重。您可以将随机游走视为在权重配置之间随机游走,并且仅在误差改善时才保持新位置。

模拟退火非常相似,但它接受这样一个事实,即有时您必须接受一个错误更严重的新位置,以便向前移动到更好的错误。旧的有时候你必须退一步才能进两步。温度范围简单地指定了模拟退火接受错误着法的可能性。较高的温度比较低的温度更有可能。温度从高到低。在较低温度下,模拟退火本质上是一种随机游走。 cycles 参数指定算法尝试移动到更好位置的次数。