neuron (AN) is a model of the biological neuron. Figure \[fig:ArtificialNeuron\] shows a representation of an AN. Similarly, the AN receives a set of input signals $(x_1, x_2, ..., x_n)$ from an external source or from another AN. A weight $w_i$ $(i = 1, ..., n)$ is associated with each input signal $x_i$ $(i = 1, ..., n)$. Additionally, each AN that is not in the input layer has another input signal called the *bias* with value 1 and its associated weight $b$. The AN collects all the input signals and calculates a *net* signal as the weighted sum of all input signals as $$\label{eq:net}
    net = \sum_{i=1}^{n+1} w_i x_i,$$ where $x_{n+1} = 1$ and $w_{n+1} = b$.

Next, the AN calculates and transmits an output signal, $y$. The output signal is calculated using a function called an *activation* or *transfer* function, which depends on the value of the *net* signal, $y = f(net)$.

![An artificial neuron.[]{data-label="fig:ArtificialNeuron"}](Artificial_Neuron-eps-converted-to.pdf){width="\linewidth"}

ANNs consist of a number of highly interconnected ANs which are processing units. One simple way to organize ANs is in layers, which gives a class of ANN called multi-layer ANN. ANNs are composed of an input layer, one or more hidden layers 