2017-10-10 3 views
2

私はSA(Simulated Annealing)に関する広範な研究を行ってきました。それでも、私は入力パラメータを見つける方法を理解するのに苦労しています。Encog Simulated Annealing Parameters

私の研究のすべてで、あなたは暗闇の中で一発で始まり、そこから調整するようです。それは非常に非効率的で、質の高い結果をもたらす可能性は低いようです。

効率的で高品質の結果を得るために、Encogを使用してSAトレーニングアルゴリズム(Start Temp、Stop Temp、Cyclesなど)を使用してどのパラメータを使用するのが見えますか?

答えて

2

シミュレーテッドアニーリングは、目的関数のスコアを改善するために値のベクトルを調整するプロセスです。 Encogを使用してシミュレーテッドアニーリングでニューラルネットワークをトレーニングする場合、調整/最適化しようとしているベクトルはニューラルネットワークの重みです。目的関数は、ニューラルネットワークが与えられたデータセットの所望の出力と比較したときに現在の重みの集合に対してどのような誤差をとるかを単純に表したものです。最も簡単な最適化手法の1つであるランダムウォークを考えてみましょう。ここでは、1つのウェイトを選択し、ウェイトを増減する(完全にランダム)。体重の変化がエラーを低下させた場合、その体重変化は永続的になり、サイクルは新しい体重で繰り返されます。エラーが改善されない場合、重量の変更は取り消され、新しい重量が選択されます。無作為歩行は、ウェイト設定の間をランダムに歩いていると考えることができ、エラーが改善された場合にのみ新しい歩行位置を維持することができます。

シミュレートされたアニーリングは非常によく似ていますが、より良いエラーに進むためには、エラーが悪化した新しい位置を受け入れる必要があることがあります。時にはあなたは2歩前進するために一歩後退しなければならない場合があります。温度範囲は、単純にシミュレーテッドアニーリングが悪い動きを受け入れる可能性を指定します。より高い温度は低い温度より高い可能性があります。温度は高くなり始めます。より低い温度では、シミュレーテッドアニーリングは本質的にランダムウォークである。 cyclesパラメータは、アルゴリズムがより良い場所に移動しようとする回数を指定します。