Recently, I’ve been doing a lot of work learning about AI and neural networks–specifically by creating deep learning models from scratch. So, I thought I’d document some of that learning in a multi-part series about deep learning.

In case you’re not already familiar, neural networks are AI processes that are modeled after the human brain and can solve problems by simulating human methods of learning.

For example, in the same way that your brain has learned to differentiate between cats and dogs, we can also teach a neural network to classify types of pets (among other things).

But how is a computer able to learn like a person?

Well, let’s first look at one of the most essential building blocks of the human brain:

neuron

Image courtesy of https://www.simplypsychology.org/neuron.html

As you can see, this is a model of a neuron. For our purposes, we’ll mostly focus on the dendrites and axons of the neuron.

In your brain, neurons link together to form neuron chains, which propagate chemical signals from neuron to neuron. These chemical signals are what ultimately determine whether or not certain neurons fire.

In order to form these chains, the dendrites of one neuron connect to the axons of another (via axon terminals) over a space called a synapse. By connecting these ends, you can see how neurons can be strung together to form really long chain chains.

It’s kind of like plugging extension cords into each other:

extension cords

Using the extension cord example, it’s easy to see how a lot of neurons could be connected together (billions of ’em) and how they can fire in succession based on chemical signals that travel through the neuron chains.

Ok, so?

In essence, a neural network tries to simulate these complex chains of neurons to make decisions like a human would.

Computationally speaking, we can do this by representing neurons using code, and then simulating how neuron chains would fire to make a decision or judgment like a human brain.

Of course, this is just a brief overview of the philosophy behind neural networks and it barely even scratches the surface of their complexity. Look out for Part 1 where I’ll go more in depth into the code required to create the foundation of a neural network.