Быстрый ай
Нейронные сети в ruby

Rubyfann, или «Ruby-Fann»-это рубиновый камень (не требуется рельсы), который связывается с Fann (быстрая искусственная нейронная сеть) из среды Ruby/Rails. Fann-это бесплатная библиотека нейронной сети с открытым исходным кодом, которая реализует многослойные искусственные нейронные сети, поддерживая как полностью подключенные, так и редко соединенные сети. Это прост в использовании, универсальный, хорошо документированный и быстрый. RubyFann делает работу с нейронными сетями бризом, используя ruby , с дополнительным преимуществом, что большая часть тяжелой работы выполняется назначенным.
Разговор, данный нашим другом Итаном из Big-Oh Studios на Lone Star Ruby 2013: http://confreaks.com/videos/2609-lonestarruby2013-neural-networks-with-rubyfann
Добавьте эту строку в Gemfile вашего приложения:
gem 'ruby-fann'
А затем выполнить:
$ bundle
Или установите его самостоятельно как:
$ gem install ruby-fann
Во -первых, зайдите сюда и прочитайте о Фанне. Вам не нужно устанавливать его перед использованием драгоценного камня, но понимание Fann поможет вам понять, что вы можете сделать с драгоценным камнем Ruby-fann: 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 или Cascadetrain_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 )