Schnelle Ai
Neuronale Netze in ruby

Rubyfann oder "Ruby-Fann" ist ein Ruby-Edelstein (keine Schienen erforderlich), das aus einer Ruby/Rails-Umgebung an Fann (schnelles künstliches neuronales Netzwerk) bindet. Fann ist eine kostenlose native Open-Source-Bibliothek, die mehrschichtige künstliche neuronale Netzwerke implementiert und sowohl vollständig vernetzte als auch spärlich vernetzte Netzwerke unterstützt. Es ist einfach zu bedienen, vielseitig, gut dokumentiert und schnell. RubyFann macht die Arbeit mit neuronalen Netzwerken mit ruby zum Kinderspiel, mit dem zusätzlichen Vorteil, dass der größte Teil des schweren Hebens nativ erfolgt.
Ein Vortrag unseres Freundes Ethan von Big-oh Studios bei Lone Star Ruby 2013: http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
Fügen Sie diese Zeile der GemFile Ihrer Anwendung hinzu:
gem 'ruby-fann'
Und dann ausführen:
$ bundle
Oder installieren Sie es selbst als:
$ gem install ruby-fann
Gehen Sie zuerst hier und lesen Sie über Fann. Sie müssen es nicht installieren, bevor Sie das Edelstein verwenden, aber das Verständnis von Fann hilft Ihnen, zu verstehen, was Sie mit dem Ruby-Fann-Gem: http://leenissen.dk/fann/ tun können
Ruby-Fann-Dokumentation: 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 ] )Diese Rückruffunktion kann während des Trainings aufgerufen werden, wenn train_on_data, train_on_file oder cascadetrain_on_data.
Es ist sehr nützlich, um im Training benutzerdefinierte Dinge zu tun. Es wird empfohlen, diese Funktion bei der Implementierung benutzerdefinierter Schulungsverfahren oder bei der Visualisierung des Trainings in einer GUI usw. zu verwenden so weit genommen.
Die Rückrufmethode sollte eine Ganzzahl zurückgeben. Wenn die Rückruffunktion -1 zurückgibt, wird das Training beendet.
Der Rückruf (Training_Callback) wird automatisch aufgerufen, wenn er wie folgt auf Ihrer Unterklasse implementiert ist:
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 )