19

新しい種類のネットワークを作成しているので、ニューラルネットワークライブラリを探していません。そのためには、優れた「データフロー」言語が必要です。

もちろん、これはC、C ++、Javaなどで実行できます。しかし、マルチスレッドなどをゼロから処理するのは悪夢です。

もう一方の端では、OzやErlangのような言語はより適応しているように見えますが、ライブラリが多くなく、習得するのが困難です(それらを操作するのは簡単ですが、完全なソフトウェアを作成しても大丈夫ですか?)。

あなたは何を提案しますか?

4

10 に答える 10

15

ニューラルネットワークにErlangを使用することについての興味深い会議のプレゼンテーションを見ました。あなたはそれをチェックしたいかもしれません:

テレコムネットワークからニューラルネットワークへ。意図しないニューラルネットワークプログラミング言語としてのErlang

著者のツイートによると、提示されたシステムはいつでもオープンソースになることも知っています。

于 2011-07-01T14:46:50.230 に答える
10

アーランはNNに非常に適しています。

  1. ニューロンはプロセスによってモデル化できます(何百万ものニューロンが存在しても問題ありません)
  2. 接続/シナプスは、ターゲットニューロンのPIDで表すことができます。OTPの標準的な初期化手順の一部として、このようなネットワークを初期化するのは非常に簡単です。コミュニケーションはメッセージパッシングによって実現されます。
  3. ネットワーク構造の動的な再構成を行うために、ETS / mnesia(データストアに組み込まれている)にグローバルアドレス空間があるとよいでしょう。
  4. 受信ブロックでのパターンマッチングにより、ニューロンが受信する信号の種類を判別し、その場で変更することができます。
  5. このようなネットワークを監視するのは非常に簡単です。

また、ErlangNNは常に「ライブ」であると考えてください。ニューロン、レイヤー、ルーターなどをいつでも照会できます。C / C ++では、配列/データ構造の現在の状態を読み取るだけです。

パフォーマンスに関しては、C / C ++がErlangよりも桁違いに高速であることは誰もが知っていますが、NNトピックには注意が必要です。

ネットワークが非常に少数のニューロンを、非常に広いアドレス空間で、通常の配列で保持する場合、ネットワークを何度も繰り返すと、コストがかかる可能性があります(Cの場合)。Erlangの同等の状況は、ルート/ルート(入力層)ニューロンへの単一のクエリによって解決されます。これにより、クエリが適切にアドレス指定されたネイバーに直接伝播されます。

于 2011-07-03T00:12:23.923 に答える
6

教科書で作成および紹介されたDXNN1およびDXNN2:Erlangを介したNeuroevolutionのハンドブック:http://www.amazon.com/Handbook-Neuroevolution-Through-Erlang-Gene/dp/1461444624/ref=zg_bs_760204_22

オープンソースであり、https ://github.com/CorticalComputerで入手できます。

于 2013-06-29T18:57:30.690 に答える
3

データフロープログラミングとマルチスレッドに興味がある場合は、NationalInstrumentsLabVIEWをお勧めします。この場合、マルチスレッドはすでに存在するため、気にする必要はありません。また、OOPはLabVIEWでもネイティブであるため、OOPを使用することもできます。LabVIEW OOPも、純粋にデータフロープログラミングパラダイムに基づいています。

于 2012-12-17T10:07:34.647 に答える
2

Javaの経験がある場合は、Erlangと同じ「アクター」の概念に基づくJVM言語であるScalaを使用してください。ただし、Erlangほど厳密ではなく、既存のJavaライブラリを簡単に使用できます。

次に、Erlangでより適切に機能する計算コストの高いタスクを見つけたら、Erlangのjinterfaceライブラリを使用して、Scalaコードと分散Erlangノードの間で通信できます。

于 2011-07-07T05:07:34.357 に答える
1

Javaを使用することは、マルチスレッドをゼロから処理することを意味するのではなく、多数のJavaアクターライブラリの1つを使用するだけです。

于 2011-12-27T03:28:54.130 に答える
0

なぜ車輪の再発明をするのですか?PyBrainをお試しください。それは無料で非常に包括的です:

于 2011-07-01T10:52:27.520 に答える
0

それ自体は言語ではありませんが、Emergentは非常に強力で、高度にカスタマイズできます(完全なスクリプト言語があります)。

これもオープンソースであり、新しいアーキテクチャ用に独自のバージョンを作成する必要がある場合のガイドとして役立つ可能性があります。

于 2011-07-01T10:55:13.613 に答える
0

Erlangのもう1つの大きな利点は、Drakonとの完全な統合です。

http://drakon-editor.sourceforge.net/drakon-erlang/intro.html

于 2015-08-08T23:41:44.473 に答える
-1

それはすべてあなたのアプリケーションに依存します。C ++、Pythonは、機械学習に適したプログラミング言語です。

于 2017-07-06T08:22:35.630 に答える