An artificial neural network (ANN) is an algorithm designed to mimic the functioning of the human brain. It consists of three main parts: dendrites, soma, and axon. Dendrites receive signals for the neuron, soma is the cell body where signals are processed, and axon transmits signals. Neurons are connected through synapses, which are junctions between axons and dendrites. Neurons collect inputs, add them together, and if the sum is greater than a threshold, they fire. When multiple neurons are connected, they can work together to process and transmit information. In our brain, billions of interconnected neurons enable us to sense, think, and act.
In the artificial neuron, inputs are equivalent to dendrites, the activation function is analogous to soma, and the output is analogous to axons. Each input has a weight associated with it. The weighted sum of the inputs is sent as an input to the neuron, and an activation function is applied to it to squash the input between 0 and 1. The result of the activation function determines if the neuron fires or not.
The McCulloch-Pitts neuron, proposed in 1943, takes binary inputs and produces a binary output. The weight for this neuron is chosen based on problem analysis and can be either excitatory or inhibitory. If the weight is positive, it is excitatory, and if it is negative, it is inhibitory. The neuron fires if the net input is higher than the threshold value. An example of implementing a logical AND gate using the McCulloch-Pitts neuron is provided.
The code in Python demonstrates the implementation of the McCulloch-Pitts neuron. The threshold function is used to determine if the weighted sum is higher than the threshold value. The fire function iterates over the input data, calculates the weighted sum, and applies the threshold function to determine the output. The output is then displayed using a pandas DataFrame.
In summary, the McCulloch-Pitts neuron is an early artificial neuron that operates similar to the human brain but lacks the ability to learn. The weights and threshold values need to be manually determined before use. In the next part, the perceptron algorithm will be introduced, which can learn the weights over time.