我对SA(模拟退火)做了一些广泛的研究。即便如此,我也很难理解如何找到输入参数。
在我的所有研究中,你似乎只是从黑暗中开始并从那里进行调整。这似乎效率极低,不太可能产生高质量的结果。
如何使用Encog(例如:Start Temp,Stop Temp,Cycles)找到在SA训练算法中使用的参数,以便产生高效和高质量的结果?
答案 0 :(得分:2)
模拟退火是调整值向量以改善目标函数得分的过程。如果您使用Encog训练具有模拟退火的神经网络,那么您尝试调整/优化的矢量是神经网络的权重。目标函数就是神经网络在与给定数据集的期望输出进行比较时获得的当前权重集的误差。考虑随机游走,这是最简单的优化方法之一。在这里你选择一个重量,然后增加或减少它(完全随机)。如果重量的变化降低了误差,则该重量变化变为永久性并且循环在新的重量上重复。如果错误没有改善,则撤消重量变化并选择新的重量。您可以将随机游走视为在重量配置之间随机行走,并且只有在错误改善时才保留新位置。
模拟退火非常相似,但它接受的事实是,有时你必须接受一个误差较大的新位置,以便向前推进以获得更好的误差。老有时你必须向后退一步才能向前迈出两步。温度范围简单地指定模拟退火接受不良移动的可能性。温度越高,温度越高。温度开始变高并变低。在较低温度下,模拟退火基本上是随机行走。 cycles参数指定算法尝试移动到更好位置的次数。