Estoy tratando de entrenar una red de feedforward para que trabaje para realizar operaciones XOR con Ruby Library AI4R. Sin embargo, cuando evalúo el XOR después de entrenarlo. No estoy obteniendo el resultado correcto. Alguien ha usado esta biblioteca antes del y la ha obtenido para conocer la operación XOR.Red neuronal de entrenamiento para XOR en Ruby
Estoy utilizando dos neuronas de entrada, tres neuronas en una capa oculta, y una capa para la salida, ya que vi una red neuronal precomputada XOR como antes.
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
puede que le interese esta respuesta: http://stackoverflow.com/a/38767930/5082406 –