A Neural Network written in Ruby with an objected oriented implementation. Training is done using http://en.wikipedia.org/wiki/Backpropagation and http://en.wikipedia.org/wiki/Gradient_descent.
The simple API was inspired from https://github.com/harthur/brain
network = Noggin::Network.new
network.train([
{ input: [0, 0], expected: 0 },
{ input: [0, 1], expected: 1 },
{ input: [1, 0], expected: 1 },
{ input: [1, 1], expected: 0 }
])
network.run [0, 0] # 0.0163
network.run [0, 1] # 0.9873
network.run [1, 0] # 0.9702
network.run [1, 1] # 0.0142
gem install the_noggin
Noggin::Network.new(
training_laps: 100000, # How many propgation of errors to do when training
learning_rate: 0.1, # How fast the network learns
momentum: 0.2, # How much of previous weight deltas should be applied to next delta
hidden_layer_size: 1 , # Number of hidden layers
hidden_layer_node_size: 2, # Number of nodes each hidden layer has
)