Neural network 基于混合神经网络的编码

Neural network 基于混合神经网络的编码,neural-network,encog,Neural Network,Encog,当达到局部最小值时,使用模拟退火结合前馈神经网络与简单地重置权重(并将隐藏层放入新的误差谷)有何不同?FFNN使用模拟退火作为一种更系统的方法来移动权重以找到全局最小值,因此每次验证误差相对于训练误差开始增加时,只执行一次迭代。。。在错误函数中缓慢移动当前位置?在这种情况下,模拟退火独立于前馈网络,前馈网络的输出取决于模拟退火输出。如果不是,并且模拟退火直接依赖于FFNN的结果,我看不出模拟退火培训师在如何更新其自身权重方面如何接收这些信息(如果有意义的话)。其中一个例子提到了一个循环(多次迭代

当达到局部最小值时,使用模拟退火结合前馈神经网络与简单地重置权重(并将隐藏层放入新的误差谷)有何不同?FFNN使用模拟退火作为一种更系统的方法来移动权重以找到全局最小值,因此每次验证误差相对于训练误差开始增加时,只执行一次迭代。。。在错误函数中缓慢移动当前位置?在这种情况下,模拟退火独立于前馈网络,前馈网络的输出取决于模拟退火输出。如果不是,并且模拟退火直接依赖于FFNN的结果,我看不出模拟退火培训师在如何更新其自身权重方面如何接收这些信息(如果有意义的话)。其中一个例子提到了一个循环(多次迭代),这不符合我的第一个假设


我看过不同的Exmaple,其中使用了network.fromArray()和network.toArray(),但我只看到network.encodeToArray()和network.decodeFromArray()。将权重从一种类型的网络传输到另一种类型的网络的最新方式(v3.2)是什么?这与使用遗传算法等相同吗?

神经网络训练算法,如模拟退火,本质上是搜索。神经网络的权值本质上是向量坐标,用于指定高维空间中的位置

考虑爬山,这可能是最简单的训练算法。你调整一个权重,从而在一个维度上移动,看看它是否能提高你的分数。如果分数提高了,那就太好了,在下一次迭代中尝试不同的维度。如果你的分数没有提高,下次退却并尝试不同的维度。想象一下,一个人注视着他们一步就能到达的每一点,然后选择一个能最大程度地提高他们高度的台阶。如果没有台阶会增加高度(你正站在山谷的中间),那么你就被卡住了。这是当地的最低要求

模拟退火为爬山增加了一个关键因素。我们可能会搬到一个比较差的地方。(不是贪婪的)我们移动到较低位置的概率是由温度下降决定的

如果查看NeuralSimulated退火类的内部,您将看到对NetworkCODEC.NetworkToArray()和NetworkCODEC.ArrayToNetwork()的调用。这些是直接更新权重向量的方式