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