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