StupidBeauty
Read times:2380Posted at: - no title specified

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_datatrain_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

这是一个示例项目,它使用RubyFann来玩井字游戏(tic-tac-toe

https://github.com/bigohstudios/tictactoe

未知美人

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands