【要約】『暇なときAIは何をする?』脳のバグから自発活動が湧き出るSNNモデルをNumPyで作った記録 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、外部入力がない状態でも活動を維持するSNNの構築を試みた際、モデルが「沈黙」または「飽和」の二択に陥る問題に直面した。単純なアプローチでは、生物のような自発的なリズムは得られなかった。
- ・ノイズ注入のみでは、進化は「入力がない時は黙る」という受動的な解を選択する。
- ・報酬に自走を加えても、入力切断直後の過渡的な減衰を自走と誤判定する。
- ・リザバー計算の理論(スペクトル半径)も、離散的なSNNモデルには直接適用できない。
// Approach
開発者が、報酬設計による最適化ではなく、生物学的な仕組みをモデルに直接組み込むアプローチを採用した。これにより、回路構造そのものを進化させるのではなく、構造が自然に生まれる環境を整えた。
- ・内因性電流の導入: 各ニューロンに微小な定常入力を与え、活動の火種を作る。
- ・クラスタ構造の構築: 興奮性ニューロンを複数の群に分け、回路の分化を促す。
- ・側方抑制と適応電流の追加: 群同士の抑制と、発火による疲労(閾値上昇)を導入し、交代リズムを創発させる。
// Result
実験の結果、外部入力がゼロの状態でも、ニューロン群が5〜50Hzの範囲で持続的に活動し、群間で交代するリズムが確認された。生物学的な仕組みの導入が、創発に不可欠であることを示した。
- ・内因性電流により、入力OFF後も活動が永続的に持続した。
- ・クラスタ構造と側方抑制、適応電流の組み合わせにより、群同士が山を譲り合う「掛け合い」が創発した。
- ・実装はNumPyのみで完結しており、GitHubで公開されている。
Senior Engineer Insight
> 報酬設計による「賢い探索」よりも、モデルの「物理的構造」が創発を決定づけるという知見は、複雑な自律システム設計において極めて重要である。ただし、パラメータが手動探索に依存しており、スケーラビリティや汎用性には課題が残る。実戦投入には、構造の自動最適化手法との組み合わせが必要だろう。