高速AI
rubyのニューラルネットワーク

Rubyfann、または「Ruby-Fann」は、Ruby/Rails環境内からFann(高速人工ニューラルネットワーク)に結合するRuby宝石(レールは不要)です。 FANNは無料のオープンソースニューラルネットワークライブラリであり、多層人工ニューラルネットワークを実装し、完全に接続されたものとまばらに接続されたネットワークの両方をサポートしています。使いやすく、用途が広く、十分に文書化され、高速です。 RubyFann 、ニューラルネットワークでの作業をrubyを使用して風にします。
Lone Star Ruby 2013のBig-OH Studiosの友人Ethanが行った講演:http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
この行をアプリケーションのGemfileに追加します。
gem 'ruby-fann'
そして実行してください:
$ bundle
または、自分でインストールします:
$ gem install ruby-fann
まず、こちらに行ってファンについて読んでください。宝石を使用する前にインストールする必要はありませんが、ファンを理解することで、Ruby-FannGem:http://leenissen.dk/fann/で何ができるかを理解するのに役立ちます。
Ruby-Fannドキュメント: http://tangledpath.github.io/ruby-fann/index.html
require 'ruby-fann'
train = RubyFann :: TrainData . new ( :inputs => [ [ 0.3 , 0.4 , 0.5 ] , [ 0.1 , 0.2 , 0.3 ] ] , :desired_outputs => [ [ 0.7 ] , [ 0.8 ] ] )
fann = RubyFann :: Standard . new ( :num_inputs => 3 , :hidden_neurons => [ 2 , 8 , 4 , 3 , 4 ] , :num_outputs => 1 )
fann . train_on_data ( train , 1000 , 10 , 0.1 ) # 1000 max_epochs, 10 errors between reports and 0.1 desired MSE (mean-squared-error)
outputs = fann . run ( [ 0.3 , 0.2 , 0.4 ] ) train . save ( 'verify.train' )
train = RubyFann :: TrainData . new ( :filename => 'verify.train' )
# Train again with 10000 max_epochs, 20 errors between reports and 0.01 desired MSE (mean-squared-error)
# This will take longer:
fann . train_on_data ( train , 10000 , 20 , 0.01 ) fann . save ( 'foo.net' )
saved_nn = RubyFann :: Standard . new ( :filename => "foo.net" )
saved_nn . run ( [ 0.3 , 0.2 , 0.4 ] )このコールバック関数は、TRAIN_ON_DATA、TRAIN_ON_FILE、またはCASCADTRAIN_ON_DATAを使用する場合、トレーニング中に呼び出すことができます。
トレーニング中にカスタムのことをするのに非常に役立ちます。カスタムトレーニング手順を実装するとき、またはGUIなどでトレーニングを視覚化するときにこの関数を使用することをお勧めします。コールバック関数がとるARGは、TRAIN_ON_DATAに与えられたパラメーターと、トレーニングがいくつのエポックを与えるエポックパラメーターです。これまでに撮った。
コールバックメソッドは、コールバック関数が-1を返す場合、トレーニングが終了します。
コールバック(Training_Callback)は、次のようにサブクラスに実装されている場合に自動的に呼び出されます。
class MyFann < RubyFann :: Standard
def training_callback ( args )
puts "ARGS: #{ args . inspect } "
0
end
endhttps://github.com/bigohstudios/tictactoe
git checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature )