RubyFann文档翻译:介绍,RubyFann
利用Ruby 来实现人工智能
RubyFann,或者"ruby-fann",是一个ruby gem,它将一个ruby/rails 环境与FANN(快速人工神经网络)(Fast Artificial Neural Network)绑定在一起。FANN是一个免费的开源神经网络库,它实现了多层的人工神经网络,并且同时支持完全连接和松散连接的网络。它有着众多优点:易于使用;功能齐全;文档丰富;快。RubyFann呢,更是让妳通过ruby 来更加轻松地使用神经网络,同时呢,所有繁重的工作都是由原生代码来做的。
向妳的应用程序的Gemfile 中加入下面这行代码:
gem 'ruby-fann'
然后执行:
$ bundle
或者,亲自安装它:
$ gem install ruby-fann
首先 ,请拜读FANN 文档。 在使用这个gem 之前,妳并不需要安装FANN,但是呢,理解 了FANN 的话,有助于妳理解 妳能够使用 ruby-fann 这个 gem 来做什么: http://leenissen.dk/fann/ 。
ruby-fann 的 RDocs : http://ruby-fann.rubyforge.org/
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 次训练, 每隔 10 个错误进行一次报告 ,预期 的均方差(MSE (mean-squared-error))为 0.1
outputs = fann.run([ 0.3 , 0.2 , 0.4 ])
train.save( 'verify.train' )
train = RubyFann :: TrainData . new ( :filename => 'verify.train' )
# 再次训练 ,最多进行 10000 轮训练, 每隔 20 个错误报告一次,预期 的均方差(MSE (mean-squared-error))是 0.01
# 这会耗费更多时间:
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。
在训练过程中做一些自定义的事情,这是狠有意义的。建议在以下情况下使用这个方法:实现自定义的训练过程;或,需要在图形界面中显示出训练过程。将会提供给这个回调函数的参数包括:之前传递给train_on_data 的那些参数;以及,一个训练轮数(epochs)参数,它表示的是,从开始到现在,已经训练了多少轮。
这个回调方法应当返回一个整数,如果它所返回的数值为-1,则,训练过程会终止。
如果妳按照以下方式来实现自己的子类,那么,该回调函数(training_callback)会自动被调用:
class MyFann < RubyFann::Standard
def training_callback (args)
puts "ARGS: #{ args.inspect }"
0
end
end
https://github.com/bigohstudios/tictactoe
未知美人
Your opinionsHxLauncher: Launch Android applications by voice commands