An Artificial Neural Network (ANN) is a type of machine learning model that is built using principles of neuronal organization discovered by connectionism in the biological neural networks constituting animal brains. ANNs are comprised of a collection of connected units or nodes called artificial neurons, which loosely model the neurons in a biological brain. Each connection, like the synapses in a biological brain, can transmit a signal to other neurons. An artificial neuron receives signals, processes them, and can signal neurons connected to it. The "signal" at a connection is a real number, and the output of each neuron is computed by some non-linear function of the sum of its inputs. ANNs have the ability to learn and model non-linearities and complex relationships. This is achieved by neurons being connected in various patterns, allowing the output of some neurons to become the input of others. ANNs have evolved into a broad family of techniques that have advanced the state of the art across multiple domains.