class Noggin::Edge

Attributes

backward_input[RW]
backward_output[RW]
derivative[RW]
dest[RW]
forward_input[RW]
forward_output[RW]
origin[RW]
weight[RW]

Public Class Methods

new(origin: origin, dest: dest, weight: rand(0.20...0.80), momentum: 1, learning_rate: 0.3) click to toggle source
# File lib/noggin/edge.rb, line 6
def initialize origin: origin, dest: dest, weight: rand(0.20...0.80), momentum: 1, learning_rate: 0.3
  @origin = origin
  @dest = dest
  @weight = weight
  @momentum = momentum
  @previous_derivative = 0
  @learning_rate = learning_rate
end

Public Instance Methods

backward_activate!() click to toggle source
# File lib/noggin/edge.rb, line 19
def backward_activate!
  @backward_output = dest.backward_output * weight
  @derivative = dest.backward_output * origin.forward_output
end
forward_activate!() click to toggle source
# File lib/noggin/edge.rb, line 15
def forward_activate!
  @forward_output = @forward_input * weight
end
learn!() click to toggle source
# File lib/noggin/edge.rb, line 24
def learn!
  @weight -= @learning_rate * @derivative + (@previous_derivative * @momentum)
  @previous_derivative = @derivative
end