class RANN::Neuron

Constants

ACTIVATION_FUNCTIONS

Public Class Methods

new(name, connection_count, type = :standard, af = nil) click to toggle source
# File lib/rann/neuron.rb, line 26
def initialize name, connection_count, type = :standard, af = nil
  @id                  = SecureRandom.hex
  @connection_count    = connection_count
  @type                = type
  @incoming            = []
  @activation_function = af || initial_activation_function
  @name                = name

  set_default_value!
end

Public Instance Methods

decrement_connection_count!() click to toggle source
# File lib/rann/neuron.rb, line 56
def decrement_connection_count!
  @connection_count -= 1
end
increment_connection_count!() click to toggle source
# File lib/rann/neuron.rb, line 52
def increment_connection_count!
  @connection_count += 1
end
push_value!(value) click to toggle source
# File lib/rann/neuron.rb, line 37
def push_value! value
  incoming << value
  set_value! if incoming.size == connection_count
end
reset!() click to toggle source
# File lib/rann/neuron.rb, line 47
def reset!
  set_default_value!
  @incoming.clear
end
set_value!() click to toggle source
# File lib/rann/neuron.rb, line 42
def set_value!
  intermediate = incoming.reduce :+
  self.value   = ACTIVATION_FUNCTIONS[activation_function].call intermediate
end

Private Instance Methods

initial_activation_function() click to toggle source
# File lib/rann/neuron.rb, line 76
def initial_activation_function
  if standard?
    :relu
  else
    :linear
  end
end
set_default_value!() click to toggle source
# File lib/rann/neuron.rb, line 67
def set_default_value!
  self.value =
    if context?
      value || 0.to_d
    elsif bias?
      1.to_d
    end
end