class Noggin::Neuron
Attributes
backward_error_output[RW]
backward_input[RW]
backward_output[RW]
derivative[RW]
dests[RW]
expected[RW]
forward_error_output[RW]
forward_input[RW]
forward_output[RW]
origins[RW]
Public Class Methods
connect_neurons(origin, dest, momentum)
click to toggle source
# File lib/noggin/neuron.rb, line 39 def connect_neurons origin, dest, momentum edge = Noggin::Edge.new origin: origin, dest: dest, momentum: momentum origin.dests << edge dest.origins << edge end
new()
click to toggle source
# File lib/noggin/neuron.rb, line 7 def initialize @origins = [] @dests = [] end
Public Instance Methods
backward_activate!()
click to toggle source
# File lib/noggin/neuron.rb, line 21 def backward_activate! @backward_output = @forward_output * ( 1 - @forward_output ) * @backward_input origins.each do |edge| edge.backward_input = @backward_output edge.backward_activate! end end
backward_activate_error!()
click to toggle source
# File lib/noggin/neuron.rb, line 33 def backward_activate_error! @backward_error_output = @forward_output - @expected @backward_input = @backward_error_output end
forward_activate!()
click to toggle source
# File lib/noggin/neuron.rb, line 12 def forward_activate! @forward_output = 1 / ( 1 + Math.exp(-1 * forward_input) ) dests.each do |edge| edge.forward_input = @forward_output edge.forward_activate! end forward_activate_error! unless @expected.nil? end
forward_activate_error!()
click to toggle source
# File lib/noggin/neuron.rb, line 29 def forward_activate_error! @forward_error_output = 0.5 * (@expected - @forward_output)**2 end