問題タブ [es-hyperneat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - Encog の助けが必要な時系列予測のための HyperNEAT ネットワーク
HyperNEAT ネットワークを使用した時系列予測に Encog AI フレームワークを使用しています。
ネットワークを作成するために使用する簡単なコードを次に示します。
ここで、columns は機能の数で、windowSize は将来の値を予測するために必要な過去の日数です (私の例では windowSize は 1 です)。
私はこの例外を受け取ります:
Exception in thread "pool-2-thread-416" java.lang.ArrayIndexOutOfBoundsException
at org.encog.util.EngineArray.arrayCopy(EngineArray.java:107)
at org.encog.neural.neat.NEATNetwork.compute(NEATNetwork.java:194)
at org.encog.util.error.CalculateRegressionError.calculateError(CalculateRegressionError.java:46)
at org.encog.neural.networks.training.TrainingSetScore.calculateScore(TrainingSetScore.java:61)
at org.encog.ml.ea.score.parallel.ParallelScoreTask.run(ParallelScoreTask.java:83)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
スレッドの処理に問題があるようです。誰かがこの問題を解決するのを手伝ってくれますか? 2 番目の質問は、Encog でバックプロパゲーションを使用して NEAT ネットワークをトレーニングするにはどうすればよいですか?
machine-learning - ニューロエボリューション オブ オーグメンティング トポロジー (NEAT) とグローバル イノベーション ナンバー
NEAT のすべての新しい接続遺伝子にグローバル イノベーション番号を付ける必要がある理由を見つけることができませんでした。
NEAT に関する私のわずかな知識から、すべてのイノベーション番号は node_in、node_out のペアに直接対応するので、イノベーション番号の代わりにこの ID のペアだけを使用しないのはなぜですか? この革新番号にはどのような新しい情報がありますか? 年表?
アップデート
アルゴリズムの最適化ですか?
machine-learning - HyperNEAT - 基質活性化機能とCPPN活性化機能の違い
HyperNEAT をいじっていて、ちょっとした問題に遭遇しました。私が理解していることから、基板はノードの初期レイアウトであり、後で CPPN を照会して接続の重みを提供するために使用されます。CPPN 活性化関数は、CPPN の各ノードに表示される活性化関数のセットに過ぎないことは理解していますが、基質活性化関数は何を参照していますか? 基板は必ずしもネットワークではなく、問題のジオメトリを CPPN のパターン生成能力に組み込むために使用されるレイアウトに過ぎないという印象を受けました。では、基質活性化機能はどこから来るのでしょうか?
編集:SharpNEATをUnityに移植したUnityNEATを使用しています。
ありがとう
machine-learning - NeuroEvolution: NEAT アルゴリズムのイノベーション数
拡張トポロジーの NeuronEvolution について読んでいますが、ちょっと気になることがあります。Kenneth Stanley の NEAT に関する論文を読んでいるときに、次の図を見つけました。
イノベーション数は、最初の突然変異で 1,2,3,4,5,6 から 1,2,3,4,5,6,7 になります。
2 番目のものでは、1,2,3,4,5,6 から 1,2,3,4,5,6,8,9 になります。
私の質問は、なぜ 7 番を飛ばして 8 番に直行するのですか? イノベーション番号の削除に関連するものは見つかりませんでした。
この 2 番目の図でも同じですが、親 1 はどのようにして 6.7 を失い、8 番目の遺伝子は親 2 のどこに移動したのでしょうか?

