From the course: Artificial Intelligence Foundations: Thinking Machines

Artificial neural networks

- Machine learning has gotten a big boost from artificial neural networks. An artificial neural network is a computer program that tries to mimic the structure of the human brain. Think of it this way. A biological brain is filled with billions of neurons. These neurons connect to one another and sends signals as a way to learn and react to the outside world. These neurons communicate through synapses. These synapses allow the neuron to fire signals to other connected neurons. The neurons will increase the strength of their connections based on your experiences. So, if you want to learn how to juggle, your brain will create new connections and strengthen existing signals. That's why you can often improve your juggling over time. Your brain is strengthening these paths to help control your eyes and hands. The neurons in an artificial neural network are organized into layers. These layers are like players in a marching band. You start with the first players in the input layer and then hop from player to player until you get to the final output layer. All the players in between the input layer and the output layer are called the hidden layer. Now, imagine you took this marching band and wanted to give them the ability to recognize a song. The band leaders in front wouldn't have any instruments. Instead, their job is to listen to the music and pass the individual notes to the rest of the band. Each player in the hidden layers would tune their instruments to see if it sounds like the note. If it sounded a lot like the note, they would pass it to the next layer. They would also create a number that showed their confidence, something like I'm 90% certain that this is the same sound. If it didn't sound anything like the note, then they might pass it back with just a little confidence, maybe something like I'm 10% certain that this is the same sound. If they were sure it wasn't the sound, they wouldn't even pass it back to the hidden layer. The idea behind these artificial neural networks is that if you pass the song through enough times, soon you'd have a complete picture of all the sounds. You'd also have a complete picture of the notes it takes to play them. No one in the marching band knows how to read music and yet they can learn to play the song through large scale trial and error. The only challenge with this approach is that it can be really time consuming. You have many different instruments and each one is trying to tune into the sound and communicate their confidence. So, experts in artificial neural networks will often try to tweak the network to make it more efficient. Maybe they found that every song they listen to has at least some notes played by guitar. If that's the case, they might decide to give the guitar player a little bit more weight. They might encourage the guitar player to have a little bit more confidence. That might allow the rest of the band to learn the song much more quickly. It's much more common for artificial neural networks to have a weight between zero and one or zero to 100%. If one band member gives their note a confidence of one, it means that they are certain it's the same sound. Maybe something like a .8 is a little less confident. The number zero means that the player is certain it's not the sound. Also, keep in mind that these marching band players can adjust their own weights. In fact, that's a key part of how these artificial neural networks learn. If one poor band member were stuck with an oboe, then they would probably routinely communicate with confidence that the note did not come from their instrument. Over time, you could have a marching band that perfectly plays the song that's passed in the input layer. All the players in the marching band would have a high confidence level and know which instrument to play to make each sound. The same way you strengthen your signals as you learn to juggle, the artificial neural network will strengthen its ability to recognize music. In the end, this is the real benefit of an artificial neural network. It could train itself to understand the input and then recognize that input when looking through massive amounts of data.

Contents