 It's 2019 and one of the biggest buzzwords in the AI community is machine learning. Traditionally, if we wanted a computer to perform a specific task like separating spam emails from non-spam emails, we would need to write code explicitly to do this. And this code is only useful for performing this specific task. So if you wanted the computer to also perform another task like digit recognition, that is, recognizing handwritten digits, then we would need to write completely different code to take care of it. With the advent of machine learning, both these tasks can be lumped together in the same category of classification problems, and so the same code can accomplish both tasks. We would just need to format input data and feed it to some classifier. And there are many classifiers to choose from. Each of these classifiers work differently to achieve the same objective, that is, classifying the input into different predefined categories. There is yet another type of classifier called a neural network, and this is the fundamental structure of a subcategory of machine learning called deep learning. So that's a funny name. Why do we have deep in deep learning? What is deep? I'll explain that in a bit. But first, we have this thing called a neural network to talk about. So neural network, it is a network of neurons, yes, like the neurons in your brain. But these are represented by circles here. The analogy here is that we want to make computers perform tasks like humans do. So to achieve this, it makes sense to develop a system that thinks like a human and processes information like a human. This here is the goal of modern artificial intelligence research, and it's called artificial general intelligence, AGI for short. Just like how the brain is an interconnection of neurons, a neural network is also an interconnection of neurons that processes information. However, the brain is way more complicated than this simple network. In a vanilla neural network, neurons are arranged in layers. Neurons in one layer are connected only to the neurons in the previous layer and the next layer. This here is the simplest neural network called the feed forward neural network. To answer our question before, what is deep in deep learning? Well, it's the layered architecture of a neural network. A network can have many of these layers. More than a number of layers, the deeper is the network. Now we'll follow up question. Why do we need deep networks? What is the difference between a network with 3 layers and another network with say 10 layers? Let's take a look at the high level working of a neural network to answer this. It takes some input data on the left and it spits out some output values on the right. So you can think of the network part in the middle as the part that solves the problem. Some problems are simple, some are complex. For simpler problems like classification of email as spam and not spam, a shallower network may be good enough to understand the patterns in the input emails to make decisions. For more complex problems like generating the caption of an input image, we would need deeper networks. So we need to go deeper to solve complex problems. Nice. We got that out of the way. But here's another basic question. What exactly are the neurons? These circles, what do they consist of and what are these connections, what are these edges? Think of them all as just containing numbers or scalars. To compute the numbers in these nodes, just take the sum of products of all input neurons and their corresponding edge weights, from the left layers to the right. And this is called the forward propagation of values. The values in the last layer are then compared to the actual answers, and we update the values of the edges from the last layer to the first, that is in the backward direction, hence is called the backward propagation of values. Using a set of these forward propagation and backward propagation of values after seeing every data input sample, the network eventually learns how to solve the problem. We actually answered a major question here. How do neural networks learn to solve problems? It's through a number of forward propagations and backward propagations. With this, I think you have a basic idea behind a neural network and its structure and also how it learns to solve problems, at least simple ones. So you can see how this network can take an input email and then determine if it is spam or not spam as the output. A similar network can take some handwritten number as an input and determine as the output the actual digit. But how do we solve problems where the output isn't a simple category? At this point, let's take a look at the same neural network, but from a more mathematical perspective. So back to square one. What is a neural network? Our original answer? It is a network of neurons where the information flows from one end to the other. But it is also simply a mathematical function. Like how we say y is equal to f of x. Here x is the input, y is the output, and f is just some function. This function has one main property. It is smooth. Or it's differentiable. Now differentiable, what's that? So say we have a curve, y is equal to f of x in some two-dimensional space. F is differentiable if we are able to draw a tangent to the curve at every single point. For this reason, a function y is equal to x square is differentiable, and a function like y is equal to modulus x is not differentiable. So now we have a second definition of a neural network. It is a differentiable function. More specifically, it is the layers of the network that are differentiable functions. And because they are differentiable, we can do some pretty cool things with these layers. We can concatenate as many layers as we want. After all, concatenating layers is just function chaining mathematically. The final output will be just another differentiable function. This is a good transition to more complex interconnection of neurons. So a really prominent type of neural network is called the convolutional neural network. These take information in the form of a grid, like images, and it can spit out categorical values. The digit recognition problem that I talked about before can be solved with CNNs with an accuracy of over 99.99%. Another type of neural network is the recurrent neural networks. They deal with data in the form of sequences. Now sequences are pieces of information that have a defined ordering. For example, sentences can be sequences because the words that constitute a sentence have to be in some particular order to actually make sense. Note that all the layers in these networks, whether vanilla neural networks, convolutional networks, or recurrent neural networks, all of them are differentiable functions. So we can connect them in different ways to solve complex problems. So let's take a look at some complex applications. One of them could be image captioning. It's a burgeoning field in AI research. Given an image, how do you think the network can generate a description of the image? We can feed an image input through the CNN to perform some processing, and then pass the processed input into an RNN to generate English sentences. Now another popular field is machine translation. In a sentence in English, how can the network generate a translation in, say, French? Well, we can use one RNN to encode the English sentence into some form that the computer can understand. And then we can use another RNN to decode the data into the translated French sentence. And this is exactly how widely used applications like Google Translate works. Now we often hear in news that AI can now create fake images of people that look eerily real. How do you think neural networks can accomplish this? It's by using an architecture called generative adversarial networks. It has fundamentally many parts, but the base structure is the good old convolutional neural network. Now these are just a handful of applications. I'll leave it up to your imagination to assess the potential of neural networks in deep learning in general. It's an exciting field to dive into, and who knows what's going to come up next. Hope I left you curious about deep learning, and what do you think about the current state of AI? I'd love to hear your response in the comments down below. If you like what you saw, hit that like button, hit that subscribe button for some more amazing content, ring that bell for notifications, and if you still need your daily dose of AI, click or tap one of the videos on screen for an awesome video, and I'll see you in the next one. Bye!