AI rápido
Redes neuronales en ruby

Rubyfann, o "Ruby-Fann" es una gema Ruby (no se requieren rieles) que se una a Fann (red neuronal artificial rápida) desde un entorno de Ruby/Rails. Fann es A es una biblioteca de redes neuronales nativas de código abierto nativa gratuita, que implementa redes neuronales artificiales de múltiples capas, que respalda las redes totalmente conectadas y con escasamente conectadas. Es fácil de usar, versátil, bien documentado y rápido. RubyFann hace que trabajar con redes neuronales sea muy fácil utilizando ruby , con el beneficio adicional de que la mayor parte del trabajo pesado se realiza de forma nativa.
Una charla dada por nuestro amigo Ethan de Big-Oh Studios en Lone Star Ruby 2013: http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
Agregue esta línea al archivo gem de su aplicación:
gem 'ruby-fann'
Y luego ejecutar:
$ bundle
O instálelo usted mismo como:
$ gem install ruby-fann
Primero, ve aquí y lee sobre Fann. No necesita instalarlo antes de usar la gema, pero la comprensión de Fann lo ayudará a comprender lo que puede hacer con la gema Ruby-Fann: http://leenissen.dk/fann/
Documentación de 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 ] )Esta función de devolución de llamada se puede llamar durante el entrenamiento cuando se usa Train_on_Data, Train_on_File o Cascadetrain_on_data.
Es muy útil para hacer cosas personalizadas durante la capacitación. Se recomienda utilizar esta función al implementar procedimientos de capacitación personalizados, o al visualizar la capacitación en una GUI, etc. El args que toma la función de devolución de llamada son los parámetros dados al Train_on_Data, además de un parámetro de épocas que indica cuántas épocas tienen la capacitación. tomado hasta ahora.
El método de devolución de llamada debe devolver un entero, si la función de devolución de llamada devuelve -1, la capacitación terminará.
La devolución de llamada (Training_Callback) se llamará automáticamente si se implementa en su subclase de la siguiente manera:
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 )