Neural Network v0.2.0 NeuralNetwork.Neuron View Source

A neuron makes up a network. It’s purpose is to sum its inputs and compute an output. During training the neurons adjust weights of its outgoing connections to other neurons.

Link to this section Summary

Functions

Activate a neuron. Set the input value and compute the output Input neuron: output will always equal their input value Bias neuron: output is always 1. Other neurons: will squash their input value to compute output

Lookup and return a neuron

Create a neuron agent

Backprop using the delta. Set the neuron’s delta value

Pass in the pid, and a map to update values of a neuron

iex> {:ok, pid} = NeuralNetwork.Neuron.start_link
...> NeuralNetwork.Neuron.update(pid, %{input: 3, output: 2, incoming: [1], outgoing: [2], bias?: true, delta: 1})
...> neuron = NeuralNetwork.Neuron.get(pid)
...> neuron.output
2

Link to this section Functions

Link to this function activate(neuron_pid, activation, value \\ nil) View Source

Activate a neuron. Set the input value and compute the output Input neuron: output will always equal their input value Bias neuron: output is always 1. Other neurons: will squash their input value to compute output

Link to this function connect(source_neuron_pid, target_neuron_pid) View Source

Connect two neurons

Lookup and return a neuron

Link to this function start_link(neuron_fields \\ %{}) View Source

Create a neuron agent

Link to this function train(neuron_pid, target_output \\ nil) View Source

Backprop using the delta. Set the neuron’s delta value.

Link to this function update(pid, neuron_fields) View Source

Pass in the pid, and a map to update values of a neuron

iex> {:ok, pid} = NeuralNetwork.Neuron.start_link
...> NeuralNetwork.Neuron.update(pid, %{input: 3, output: 2, incoming: [1], outgoing: [2], bias?: true, delta: 1})
...> neuron = NeuralNetwork.Neuron.get(pid)
...> neuron.output
2