アーランはNNに非常に適しています。
- ニューロンはプロセスによってモデル化できます(何百万ものニューロンが存在しても問題ありません)
- 接続/シナプスは、ターゲットニューロンのPIDで表すことができます。OTPの標準的な初期化手順の一部として、このようなネットワークを初期化するのは非常に簡単です。コミュニケーションはメッセージパッシングによって実現されます。
- ネットワーク構造の動的な再構成を行うために、ETS / mnesia(データストアに組み込まれている)にグローバルアドレス空間があるとよいでしょう。
- 受信ブロックでのパターンマッチングにより、ニューロンが受信する信号の種類を判別し、その場で変更することができます。
- このようなネットワークを監視するのは非常に簡単です。
また、ErlangNNは常に「ライブ」であると考えてください。ニューロン、レイヤー、ルーターなどをいつでも照会できます。C / C ++では、配列/データ構造の現在の状態を読み取るだけです。
パフォーマンスに関しては、C / C ++がErlangよりも桁違いに高速であることは誰もが知っていますが、NNトピックには注意が必要です。
ネットワークが非常に少数のニューロンを、非常に広いアドレス空間で、通常の配列で保持する場合、ネットワークを何度も繰り返すと、コストがかかる可能性があります(Cの場合)。Erlangの同等の状況は、ルート/ルート(入力層)ニューロンへの単一のクエリによって解決されます。これにより、クエリが適切にアドレス指定されたネイバーに直接伝播されます。