家庭用AI学習/実験用のオープンソースツール?


9

ニューラルネットの進化(NEAT)を試してみたいと思います。私は90年代にC ++でいくつかのGAとニューラルネットコードをいじって書きましたが、DIYアプローチは労働集約型であることがわかったので、結局それを落としました。

それ以来、状況は大きく変化しており、興味のある人のために、非常に優れたオープンソースライブラリとツールがたくさんあります。私はさまざまなオープンソースライブラリ(DEAPなど)をグーグル化しましたが、適切なものを選択するのにいくつかの助けを借りることができます...

  • 私はコードの作成に多くの時間を費やして、何が起こっているのか(ニューラルネットの状態、ポピュレーションフィットネス)または最終結果(グラフなど)を視覚化しました。

    たぶん、これは別のオープンソースライブラリで実行する必要がありますが、視覚化のサポートにより、問題や解決策により多くの時間を費やすことができ、実装の詳細に費やす時間を減らすことができます。
  • C / C ++、Java、C#、Python、Javascriptなどを知っています。高級言語と家庭用ハードウェアでの優れたパフォーマンスとの間の適切なトレードオフである何かが良い選択でしょう。

経験のある人が優れたオープンソースライブラリまたはツールセットを提案できますか?


この質問は、softwarerecs.stackexchange.comに属しています。ところで、私には、あなたの質問は非常に広範に思えるので、とにかく閉じるべきです。
nbro

@nbro-ありがとう、これにはもっと良い場所があるのではないかと思っていましたが、softwarerecsについては知りませんでした。
スコットスミス

この質問に賛成票を投じた人が理由を教えてくれますか?
キンタムニア2017年

回答:


3

これはJavaScriptで記述されており、(まだ)GPUサポートを提供していないため、非常に低速です。ただし、柔軟なネットワークアーキテクチャをいじるのはとても良いことです。現在提供されている視覚化はネットワークアーキテクチャのマップだけですが、グラフは簡単に実装できます。

https://github.com/wagenaartje/neataptic


2

さて、TensorfFlowを選択して使用すると、TensorBoardがパッケージの一部として取得れます。それはあなたが探しているものに近いものかもしれません。

TensorFlowを使用すると、C ++、Python、およびその他のいくつかの言語でコードを作成できます(RubyとJavaの両方のバインディングもあると思いますが、おそらく他にもあります)。



2

あなたが説明したように神経進化システムであるDXNNもあります、それはErlangで書かれています。 https://github.com/CorticalComputer/DXNN2

モジュール化するためにいくつかの作業を行ったので、ライブラリとして使用し、コード/アプリケーションを分離したままにします。

以下は、DXNNをライブラリとしてダウンロードするコード例です。また、視覚化のためのgnuplot対応データファイルも生成します。


2

Fann(http://leenissen.dk/fann/wp/)は、無料のオープンソースニューラルネットワークライブラリです。

FANNの機能:

  • Cの多層人工ニューラルネットワークライブラリ
  • バックプロパゲーショントレーニング(RPROP、Quickprop、Batch、Incremental)
  • ANN(Cascade2)を動的に構築およびトレーニングする進化するトポロジートレーニング
  • 使いやすい(3回の関数呼び出しでANNを作成、トレーニング、実行)
  • 高速(他のライブラリの最大150倍の実行速度)
  • 汎用性(多くのパラメーターと機能をオンザフライで調整可能)
  • 十分に文書化されている(読みやすい紹介記事、完全なリファレンスマニュアル、実装に関する考慮事項を説明する50ページ以上の大学レポートなど)
  • クロスプラットフォーム(LinuxおよびUNIX用のconfigureスクリプト、windows用のdllファイル、MSVC ++用のプロジェクトファイル、およびBorlandコンパイラも機能すると報告されています)
  • いくつかの異なるアクティベーション関数が実装されています(速度をさらに上げるための段階的な線形関数を含む)
  • ANN全体の保存と読み込みが簡単
  • いくつかの使いやすい例
  • 浮動小数点数と固定小数点数の両方を使用できます(実際には、float、double、intの両方を使用できます)
  • 最適化されたキャッシュ(速度をさらに上げるため)
  • オープンソースですが、商用アプリケーションでも使用できます(LGPLでライセンス供与)
  • トレーニングデータセットを簡単に処理するためのフレームワーク
  • グラフィカルインターフェース
  • 多数の異なるプログラミング言語への言語バインディング
  • 広く使用されています(1日あたり約100ダウンロード)

2

遺伝的アルゴリズムについては、GeneticSharpを作成しました

.NET Coreおよび.NET Framework用のマルチプラットフォームの遺伝的アルゴリズムライブラリ。ライブラリには、選択、交差、突然変異、再挿入、終了などのGA演算子の実装がいくつかあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.