Deep Learning Theoretical Course (Course VII)July 19, 2020 2020-08-04 10:52
Deep Learning Theoretical Course (Course VII)
What are neurons?
A neuron is a computational unit which takes in a real-valued input of features, processes it and produces a real-valued output.
In standard practice, a neuron applies a non-linear function to the linear combination of all input features passed into the neuron. This is basically how it ‘computes’ as a computational unit in a deep neural network.
Mathematically, given a real-valued input of features with weights and a bias, , the neuron first calculates the linear combination of all the inputs and the weights, given by .
where, is a positive integer.
The linear combination, , is then passed through a non-linear activation function, , to get the final output, from the neuron.
The below figure shows how a neuron may look like conceptually as a diagram.
Using matrix notation
In practice, the number of input features, and their respective weights, is very large and thus, it is better to use matrix notation for it. The input features are denoted by a bold-faced and the weights are represented by a bold-faced .
So, the linear combination of and can be found out using the following expression,
where, represents the matrix transpose of (we need to transpose the weight matrix for matrix multiplication to be possible).
Finally, the output of the neuron can be found out as,
Note that, the values of inputs is the data we have in our dataset. However, the value of the weights is randomly initialized. It will make sense to you about why the weights are randomly initialized later down the course when you learn about how to train a deep neural network.
Real-life example of a neuron in action
Consider we are trying to predict if a person is obese or not given his height and weight and we have the following dataset:
|Height (in feet)||Weight (in kgs)||Condition (Not Obese/Obese)|
Here, . Now, let us randomly initialize our weights to say, and our bias .
Now, that we have a general intuition about what our inputs, weights and bias are, let us find the linear combination of all the inputs and the weights, .
Next, we will be using an activation function called the sigmoid function. We will be learning more about the sigmoid function as well as other activation functions in detail in the next lesson. The sigmoid function is computed as follows:
The sigmoid function gives a probability of input data belonging to a certain class, i.e. for two classes A and B, if the probability of the output is less than 0.5 the input data falls in class A else it falls in class B. So, in our case, we can assume that our class A is ‘Not Obese’ and class B is ‘Obese’.
Now, let us pass through the activation function .
Our output prediction has a probability greater than 0.5 and thus, our neuron correctly predicted that the input data shows characteristics of the person being ‘Obese’. However, think for a second. How did the prediction become accurate just because we passed the input data through two mathematical functions?
This is purely the result of luck. If the weights we had randomly initialized been different than the ones in the above example, then, our prediction may have been different. In the above example, our neuron is not learning anything from the dataset and it is just computing the information given to it. In short, there is no ‘Machine Learning’ going on over here.
Keep this in mind as we move onto future chapters for learning how to train a neuron in finding the best weights. But, for now, congratulations on knowing what neurons are!