ニューラルネットワークは現在、ハッカーの数、学生、研究者、そして企業の数が増えています。最後の復活は、World Wide WebやNo Leural Network Toolsがほとんどまたはまったくなかった場合、80年代、90秒にありました。現在の復活は2006年頃に始まりました。ハッカーの観点から、他のリソースと他のリソースと同様に提供されたのは、今すぐ申し出されていますか。私自身のために、ラズベリーPIのGPUはいいでしょう。
80年代と90年代
ニューラルネットワーク80S / 90年代の本だけでなく、MAGS
ヤングズのために、米国が世界的な幅広いウェブの前に何もすることができたのだろうか、ハードコピー雑誌は私たちが新しいことを意識させるのに巨大な部分を演じました。それほどそれは科学系誌の1992年9月の特別な問題であり、神経学的ネットワークに紹介された脳、生物学的および人工的な種類の両方を紹介しました。
それからあなたは自分のニューラルネットワークをスクラッチから書くか、または他の誰かからのソースコードを順序付けることができます。私はその科学的アメリカの問題のアマチュア科学者列からフロッピーを秩序だった。あなたはあなたのためにすべての低レベル、複雑な数学をするニューラルネットワークライブラリを同様に購入するかもしれません。トロント大学からのXERIONと呼ばれる無料シミュレータも同様でした。
本屋の科学のセクションに目を向けておくことは、被験者の時折の本を上げました。伝統的なものは、Rumelhart、McClelland et al。鉱山の好ましいものは、神経計算であり、自己組織化マップ:ロボットアームを制御するニューラルネットワークに興味を持っていた場合に有用である。
あなたが参加するかもしれない会議と同様に短いコースと同様に短いコースがありました。 1994年に参加したセミナーは、その後、Geoffrey Hinton、Toronto大学、そして今でも現場のリーダーです。当時の最善の年次セミナーは、今日はまだ強くなっている神経情報処理システム会議でした。
そして最後に、私は公開された論文のためにライブラリを命じることを思い出します。私のセミナー論文のスタック、プログラム配布資料、コピー記事、およびその期間からの手書きノートは約3インチの厚さです。
それから物事は比較的静かになった。ニューラルネットワークはいくつかのアプリケーションで使用を発見したが、彼らは限られた研究界の外で、世界の視点と同様に彼らの誇大宣伝に住んでいなかった、彼らは問題を止めた。いくつかのブレークスルーとともに、そしてそれから最後に2006年頃には、再び世界中で展開されたので、物事は静かに残った。
現在が届きます
私たちはここでのツールに焦点を当てていますが、これは主に行われました。
3層以上の深さを超えるネットワークのための新しいテクニック、今や深いニューラルネットワークと呼ばれる
トレーニングをスピードアップするためのGPU(グラフィック処理単位)の使用
多数のサンプルを含むトレーニングデータの可用性
ニューラルネットワークフレームワーク
現在、さまざまなライセンスで無料のライセンスを無料で使用するためのダウンロードのために提供されているフレームワークと呼ばれる数多くのニューラルネットワークライブラリがあり、それらの多くはオープンソースフレームワークです。より人気のあるもののほとんどは、GPU上のニューラルネットワークを実行することができます。また、ほとんどの種類のネットワークをサポートするのに十分な柔軟性があります。
これがより人気のあるもののほとんどがあります。彼らはすべてFNNを除いてGPUサポートを受けています。
テンソルフロー
言語:Python、C ++は作品にあります
TensorflowはGoogleの最新のニューラルネットワークフレームワークです。 GPUだけでなく、複数のマシンにわたってネットワークを配布するように設計されています。それは低レベルのものと見なすことができ、しかし、どちらもKERASのような高レベルのものよりも大きな学習曲線を提供することができます。ただし、それらはTensorflowに統合されたバージョンのKerasの生産に取り組んでいます。
私たちは、このハンマーですでにこのハンマーのハッキーでハックで、ビールボトルを認識するロボットとテンソルフローを使うことの紹介をしています。
Theano.
言語:Python.
これは多次元配列を含む効果的な数値計算を行うためのオープンソースライブラリです。それはモントリオール大学からのもので、Windows、Linux、そしてOS-X上で動作します。 Theanoは、2009年に0.1がリリースされました。
カフェ
言語:コマンドライン、Python、MATLAB
CaffeはBerkeley AIの研究、近隣の貢献者によって開発されています。モデルは、プレーンテキストデータで定義でき、コマンドラインツールを使用して処理できます。 MATLABインタフェースと同様にPythonも同様にあります。たとえば、プレーンテキストファイルにモデルを定義でき、ソルバーと呼ばれる2番目のプレーンテキストデータで訓練する方法についての詳細を説明しています。次にニューラルネットワークを訓練するFEコマンドラインツール。その後、Pythonプログラムを使用してこの訓練を受けたネットをロードすることと、それを使用して、画像の分類を行うことができます。
CNTK
言語:Python、C ++、C#
これは、Microsoftのコグニティブツールキット(CNTK)とWindowsとLinux上で実行されます。彼らは現在、Kerasで使用されるバージョンに取り組んでいます。
カラス
言語:Python.
Pythonで書かれたKerasは、その下にTensorflowまたはTheanoを使用しており、それらのフレームワークを使いやすくします。同様にCNTKをサポートする計画も同様にあります。 KerasをTensorFlowに統合するための作業が進行中です。その結果、別々のテンソルフロー専用バージョンのKerasが得られます。
TF Learn.
言語:Python.
Kerasのように、これはTensorflowの上にある高水準図書館です。
ファン
言語:15の言語を超える言語、GPUのサポートはありません
これはCに記載されている高レベルのオープンソースライブラリです。しかし、それは長年にわたって人気があり、そしてLinuxディストリビューションにさえ含まれています。最近ここでHackadayでは、補強学習を使用して歩くことを学んだロボットで、ニューラルネットワークを利用する機械学習技術です。
松明
言語:ルアー
C. C.に書かれたオープンソースライブラリは、トーチが埋め込まれています。
ピトーチ
言語:Python.
Pytorchは比較的新しく、彼らのウェブサイトはそれが初期リリースベータ版であると言います、しかしそれにはたくさんの関心事があるようです。それはLinuxおよびOS-X上で実行され、その下のトーチを使用します。
私が逃した他の人は疑問がありません。あなたがここにいないことを特に望んでいるならば、コメントで私たちに知らせてください。
どちらを使うべきですか?プログラミング言語またはOSが問題でない限り、あなたのスキルレベルは念頭に置いています。数学に不快な場合、またはニューラルネットワークのニュランスに深く掘り下げたくない場合は、高レベルのものを選びました。その場合は、Tensorflowから離れて、Kera、Tfrearn、または他の高レベルのものよりもAPIについて詳しく知らなければなりません。数学機能を強調するフレームワークは通常、ネットワークを作成するためにもっと多くの作業を行う必要があります。もう1つの要因は、根本的な研究をしているかどうかです。高レベルのフレームワークでは、おそらく複数の層にまたがっている接続、およびすべての方向に流れるデータと同様に、クレイジーネットワークを作成するのに十分な内側にアクセスできるようにすることはできません。
オンラインサービス
あなたはあなたのハックに提供するニューラルネットワークが何かを追加したいと思っていますか?そのためにあなたのハックをインターネットに接続することによって提供されるサービスがある。
私たちは、音声認識のためのAmazonのAlexaを利用する無数の例を見ました。グーグルは、ビジョンとスピーチを含むクラウドマシン学習サービスを持っています。そのビジョンサービスは、キャンディー選別のためのRaspberry Piを使用してここに示されています。 Wekinatorは、芸術家、そして私たちがニューラルネットワークを訓練するために芸術家や音楽家を訓練して、家の周りの様々なジェスチャーに対応し、仮想世界の最も激しいバイオリンを作るために様々なジェスチャーに対応することを目的としています。除外されないように、マイクロソフトと同様にその認知サービスAPIは、ビジョン、スピーチ、言語、その他のものも含めています。
TPUSと同様にGPU
ニューラルネットワークを通して繰り返します
ニューラルネットワークを訓練するには、ニューラルネットワークを通じて、ネットワークの正確さを改善するたびに、ニューラルネットワークを繰り返し、次に後方に繰り返します。ポイントまで、あなたができるより多くの反復は、あなたが止まるときの最終的な正確さがはるかに良いでしょう。反復回数は数百台または数千でもあります。 1980年代と1990年代のコンピュータで、十分な反復を達成すると、許容できない時間がかかる場合があります。記事によると、ニューラルネットワークにおける深い学習:2004年に、2004年には、完全に接続されたニューラルネットワークのためのGPUを用いて速度の20倍の増加が達成された。 2006年には、畳み込みニューラルネットワークのために4倍の増加が達成されました。 2010年までに、CPU対GPUのトレーニングを比較すると50倍の速度が速くなりました。その結果、精度ははるかに高かった。
NVIDIAタイタンXPグラフィックカード。画像クレジット:NVIDIA.
GPUはどのように役立ちますか?ニューラルネットワークを訓練する巨大な部分は、Matrix乗算を含み、それはCPUよりもGPU上ではるかに速く行われるものです。 GraphicsカードとGPUを作成するためのリーダーであるNVIDIAは、GPUを利用するためにニューラルネットワークソフトウェアによって使用されるCUDAと呼ばれるAPIを作成しました。私たちはこれを指摘しているので、CUDAという用語がたくさん見えます。深い学習の普及に伴い、NVIDIAは、CUDNN(深部ニューラルネットワーク用のCUDA)を含むAPIを追加しました。
NVIDIAは同様に独自のシングルボードコンピュータ、エセトンTX2を持っています。しかし、私たちの[Brian Benchoff]が指摘したので、価格地点は典型的なハッカーのために少し高いです。
グーグルは、そのテンソル処理装置の種類(TPU)のタイプの独自のハードウェア加速度に取り組んでいます。上記のGoogleのフレームワークの名前とTensorflowの名前と類似したことに気付いたかもしれません。 Tensorflowはテンソルを重く使用します(シングルとソフトウェアの多次元アレイを考えてください)。 TPU上のGoogleの論文によると、それはニューラルネットワークの推論段階のために設計されています。推論とは、ニューラルネットワークを訓練しないが、訓練された後にニューラルネットワークを使用することを指す。まだ任意の種類のフレームワークで使用されているのを見ていませんが、それは留意し続けるものです。
他の人のハードウェアを使う
あなたは訓練するのに長い時間がかかるが、サポートされているGPUを持っていない、またはあなたのリソースを結び付けたくないのはニューラルネットワークを持っていますか?その状況では、インターネット上でアクセス可能な他のマシンで使用できるハードウェアがあります。そのようなものは、個人のために、毎月の支払いなしに1時間あたりのペニーのみを犠牲にするフロイダブです。もう1つはAmazon EC2です。
データセット
ラベル付きデータを用いたニューラルネットワークを訓練する
ニューラルネットワークにおけるブレークスルーの1つは、数万の数万のサンプルを含むトレーニングデータの利用可能性であると述べた。監視されたトレーニングアルゴリズムを使用してニューラルネットワークを訓練することは、その入力でネットワークにデータを与えることを含みます。その状況では、データは同様にラベル付けされなければなりません。あなたがネットワークの入力に馬のイメージを与えるならば、そしてその出力はそれがチーターのように見えると言うならば、それはエラーが大きいだけでなく、より多くのトレーニングが必要であることを知る必要があります。予想される出力はラベルと呼ばれ、データは「ラベル付きデータ」です。
そのようなデータセットの多くはトレーニング目的でオンラインで提供されています。 MNSTは手書きの文字認識のためのものです。 ImagenetとCifarは、ラベル付き画像の2つの異なるデータセットです。このウィキペディアのページには、もっと多くのものがリストされています。上記のフレームワークの多くは、必要なデータセットを含むチュートリアルを持っています。
それはあなたが絶対に大きなデータセットを絶対に必要としていると言うことではありません。 FNNフレームワークを使用した歩行ロボットは、サーボモータの位置をトレーニングデータとして使用しました。
その他のリソース
80年スと90年代とは異なり、あなたはまだニューラルネットワークに関するハードコピー本を買うことができますが、オンラインで数多くのものがあります。私が楽しんだ2つのオンライン本は、Mit Pressとニューラルネットワークと深い学習による深い学習です。上記のフレームワークはすべて始めるのに役立つチュートリアルを持っています。そして、あなたが検索するどんなタイプのトピックに関するYouTubeのビデオだけでなく、無数の他のWebサイトもあります。私は録音された講義のYouTubeのビデオ、そしてセミナーの話は非常に便利です。
未来
GPUのラズベリーPI 7
疑わしい未来は、より多くのフレームワークが沿って来るのを見るでしょう。
私たちは長い間専門のニューラルチップと市場でのボードを見ましたが、90年代に戻っても、巨大な市場を発見したことがありません。ただし、これらの実際の成長区域、全員が取り組んでいるニューラルネットワークソフトウェアを提供するための特別に設計されていません。 GPUはその市場に役立ちます。画像のための数百万の接続を持つニューラルネットワークとして、そして音声処理、言語、そしてそのままより小さな消費者デバイスの邪魔にならないように、そのソフトウェアに合わせて調整されたより多くのGPUまたはプロセッサが必要とされることは、それをうまく何かをもたらすでしょう。ラズベリーPIまたはArduinoボード上の新しい要素になることができます。代わりに処理がオンラインサービスのままである可能性がありますが。編集:ラズベリーPIにGPUがあることがわかります。以下のコメントを参照してください。それは上記のすべてのフレームワークがそれを利用することを意味するのではありません。たとえば、TensorflowはNVIDIA CUDAカードのみをサポートしています。ただし、独自のカスタムニューラルネットワークコードにGPUを使用することはできます。そのコメントにはさまざまなリンクがあります。
TPUのようなASICからのGPUの競争がすでに競争があり、可能な限り、ニューラルネットワークからGPUを全く発売する可能性があります。
私たちの新しいコンピュータは