Sto cercando di addestrare una rete feedforward affinché funzioni per eseguire operazioni XOR con la libreria AI4R di Ruby. Tuttavia, quando valuto per lo XOR dopo l'allenamento. Non sto ottenendo l'output corretto. Qualcuno ha usato questa libreria prima dello e l'ha ricevuta per imparare l'operazione XOR.Rete neurale di addestramento per XOR in Ruby
Sto usando due neuroni di input, tre neuroni in uno strato nascosto e uno strato per l'output, come ho visto una rete neurale precoce di alimentazione di tipo XOR come in precedenza.
require "rubygems"
require "ai4r"
# Create the network with:
# 2 inputs
# 1 hidden layer with 3 neurons
# 1 outputs
net = Ai4r::NeuralNetwork::Backpropagation.new([2, 3, 1])
example = [[0,0],[0,1],[1,0],[1,1]]
result = [[0],[1],[1],[0]]
# Train the network
400.times do |i|
j = i % result.length
puts net.train(example[j], result[j])
end
# Use it: Evaluate data with the trained network
puts "evaluate 0,0: #{net.eval([0,0])}" # => evaluate 0,0: 0.507531383375123
puts "evaluate 0,1: #{net.eval([0,1])}" # => evaluate 0,1: 0.491957823618629
puts "evaluate 1,0: #{net.eval([1,0])}" # => evaluate 1,0: 0.516413912471401
puts "evaluate 1,1: #{net.eval([1,1])}" # => evaluate 1,1: 0.500197884691668
Ted
potresti essere interessato a questa risposta: http://stackoverflow.com/a/38767930/5082406 –