このプロジェクトについて

NEAT-AIは、Deno/TypeScriptで書かれた神経進化ライブラリで、2002年にStanleyとMiikkulainenが発表したNEAT(NeuroEvolution of Augmenting Topologies)アルゴリズムを実装・拡張しています。このプロジェクトは、古典的なNEATアプローチに現代の研究技術を重ねた、進化と勾配ベースのハイブリッドシステムへと成長しました。 コアアーキテクチャは「クリーチャー」を中心に構成されています。クリーチャーはTypeScriptで変異・交配するゲノムであり、フォワードパスはベンダー提供のWebAssembly(WASM)モジュール内で実行されます。オプションのRust拡張(NEAT-AI-Discovery)は、Deno FFIを介してGPU加速の構造解析を提供し、エラー誘導解析に基づいて新しいシナプスを提案します。 主な機能は以下の通りです: 1. **拡張可能な観測**: 入力・出力特徴は位置インデックスではなく安定したUUIDで識別され、進化を再起動せずに新しい観測を追加でき、マルチマシンでの再結合が可能です。 2. **分散トレーニング**: トレーニングと進化は複数の独立ノードで実行でき、最良のクリーチャーは中央コントローラーで結合され、進化アルゴリズムの島モデルを反映します。 3. **生涯学習**: 変化する環境での継続学習向けに設計され、数週間から数ヶ月にわたって新しいデータが到着する際の継続学習をサポートします。 4. **WASMアクティベーション**: ライブラリはWASMバックエンドを自動的に初期化し、呼び出し側は単一のフォワードパスに`activate()`を呼び出すだけです。 5. **ユニークなスクワッシュ関数**: 標準オプションに加えて、IF、MAX、MINなどの活性化関数をサポートします。 6. **ニューロンプルーニング**: トレーニング中に活性化が変化しないニューロンを、ゼロ次サリエンシー基準を使用して削除します。 7. **CRISPR**: 進化中に手作りの遺伝子(ニューロンとシナプス)を集団に注入でき、集団シーディングのために生物学の頭字語を借用しています。 8. **グラフティング**: 遺伝的に互換性のない親間での島間交配を可能にし、多様性を維持します。 9. **ミーム進化**: 最も適したクリーチャーのバイアスと重みを記録・利用して将来の世代を微調整し、学習した重みをゲノムに書き戻します(ラマルク的アプローチ)。 10. **エラー誘導構造進化(ディスカバリー)**: ニューロンの活性化とエラーを分析して、新しいシナプスを動的に特定・作成します。Rust拡張はGPU加速解析を実行し、FFIを介して構造候補を提案します。 11. **適応的突然変異率**: クリーチャーのサイズと適合度の進行に基づいて突然変異戦略を自動調整し、探索と活用のバランスを取ります。 12. **転移学習**: 訓練済みクリーチャーをメタデータ付きチェックポイントとしてエクスポートし、UUIDマッピングで新しいタスクにインポートし、事前訓練済みクリーチャーで集団をシードします。 13. **ONNXエクスポート**: 訓練済みクリーチャーをONNX形式にエクスポートし、標準ML推論パイプラインでのデプロイを可能にします。 14. **MCMC突然変異受容**: 突然変異受容にメトロポリス・ヘイスティングス基準を使用し、約23.4%の受容率に向けて適応的温度調整を行います。 15. **高度な育種戦略**: 遺伝的に互換性のないクリーチャーのための複数の戦略(入力重みコサイン類似度、サブグラフ移植、多様性駆動育種など)。 16. **合成シナプストレーニング**: バックプロパゲーション中に層間接続を一時的に密化し、トレーニング後にゼロに近いシナプスをプルーニングします。 17. **ランダム移民**: 集団が停滞したとき、最も弱い非エリートクリーチャーを新しくシードされたゲノムで置き換え、新しい遺伝物質を導入します。 このプロジェクトはJavaScript Registry(JSR)に公開されており、インストールは不要です。WASMバックエンドは初回使用時に自動初期化されます。これは、NEAT-AI-core(共有Rust計算クレート)、NEAT-AI-Discovery(GPU加速構造解析用Rust FFI拡張)、NEAT-AI-scorer(Rustスコアリングアプリケーション)、NEAT-AI-Backpropagation(ネイティブRustバックプロパゲーション)、NEAT-AI-Lamarck(実験的Rustオプティマイザー)、NEAT-AI-Explore(TypeScript可視化ツール)、およびその他の実験的オプティマイザーやツールを含むリポジトリファミリーの一部です。 このライブラリはDenoJS環境での使用向けに設計されており、基本的なクリーチャー作成・活性化から、高度な分散トレーニング、構造発見、ONNXエクスポートによる本番デプロイまで、神経進化のための包括的なツールキットを提供します。