Machine learning has gotten a big boost recently because it works particularly well with artificial neural networks (often referred to simply as neural networks) — computer systems that are modeled after the neural structure of the human brain.
A biological brain is composed of billions of neurons that communicate with one another electrochemically across minute gaps called synapses. A single neuron can have up to 10,000 connections with other neurons. The human brain has about 100 billion neurons communicating with one another across well over 100 trillion synapses (up to 1,000 trillion synapses by some estimates).
These neurons increase the strength of their connections based on learning and practice. For example, when you’re learning to juggle, your neurons strengthen existing connections and create new connections for developing that skill. That’s why the more you practice the better you get; your brain builds new paths to improve your hand-eye coordination.
Artificial neural networks consist of interconnected nodes organized into layers: an input layer, hidden layers and an output layer.
All layers are connected through connections between nodes in the various layers.
Imagine the nodes as players in a marching band and each row as a layer. Assume that none of the players knows how to read music. Unlike a traditional marching band, in which all the players can see the drum major (the leader of the band) during practice, in this marching band, only the first layer of players can see the drum major. The drum major gives the first layer of players a signal that’s passed through the rows (layers), enabling all players to coordinate their movements and the playing of their instruments.
Initially, players would be bumping into one another and playing the wrong notes, but as they moved and played, they would choose a number that indicated their confidence level in the movement they made or note they played; for example, they might indicate that they’re 90 percent confident that they played the right note or made the right move. If they were really off, they may signal a 10 percent confidence level. Over time, they would make adjustments based on signals from the layer in front of them to increase their confidence level, with the goal of achieving 100 percent confidence.
The idea behind these artificial neural networks is that the nodes will eventually make enough adjustments to produce the correct output, without receiving any additional information at the input level. In the marching band example, even though nobody in the band knows how to read music, they eventually make the right moves and play the right notes through trial and error, learning from their mistakes.
A key challenge of this approach is that it can be very time-consuming. You have many different players with different instruments each of whom is trying to match the sound and movement and communicate their confidence levels. To overcome this challenge, experts in artificial neural networks often try to tweak the network to make it more efficient. For example, they may give the drum section more weight, because the drums set the rhythm of the music and movement.
Another key challenge is that the neural network is not generalizable. You have to clearly define a task at the beginning. So our neural network is tasked with producing music. We can’t change our marching band’s task to mowing lawns, baking cakes or washing cars. The band specializes in performing a specific task. In neural networks this is usually called defining an optimization function.
Eventually, the band delivers a nicely choreographed and well-orchestrated performance to the output layer. When this occurs, the neural network creates and stores a model for future reference. The model can be as simple as a description of all the band member positions, their instruments and their movements along with the confidence scores. After the neural network has the model, you can pass a million songs through it, and it can tell you with complete confidence whether or not that song matches the model.
As you can see, the real benefit of an artificial neural network is that it trains itself to understand the input and can then recognize that input when looking through massive amounts of data.