Brainy - An Artificial Neural Network 
Brainy is an Artificial Neural Network (ANN) using the Backpropagation algorithm. It was originally created as part of the Neural NFL project here, but was broken out into a gem to be more reusable.
NOTE: As of v2.0 Brainy is JRuby only. This decision was made for performance reasons, as it can now leverage the fast linear algebra functionality found in the JBLAS Java library.
Usage
From examples/sin.rb:
# Example using sin wave function
require_relative '../lib/brainy'
net = Brainy::Network.new(1, 3, 1, learning_rate: 1.0)
# training
4000.times do
i = rand(0..(Math::PI/2))
o = Math.sin(i)
net.train!([i], [o])
end
# testing
mse = 1000.times.map do
i = rand(0..(Math::PI/2))
o = Math.sin(i)
(o - net.evaluate([i]).first) ** 2
end.reduce(:+) / 1000
puts "your MSE: #{ mse.round(6) }" # smaller is better