In our previous posts we learnt about the various building blocks of Neural Networks. We understood the Fundamentals of Neural Networks, Essential components of Architectures, widely used Layers and Functions within Neurons and a lot more.
In today's article we will finally be exploring the nuances involved with Implementing, Training and Evaluating your Hard work.
Before we dive in deeper, let's have a quick recap of all the concepts that we have covered -
- What are Artificial Neurons and their Fundamentals
- What are Layers and their different flavours
- What are Neural Architectures and their components
So now that we know how to build the skeleton, What do I do with it? Well the obvious response to such a question would be, start feeding it and let it grow.
Ideally speaking all of your Neural Architectures are absolutely useless if you do not have DATA to feed them and a teacher to Supervise their Learning. But then again there are Students who do learn things on their own. But no matter how one learns, they have to go through a process of Evaluation.
Now without beating around the bush for too long, let's get right to it.
What is Training?
Well in literal sense according to Dictionary -
Training means - the action of teaching a person a particular skill or type of behaviour
The only difference in the above definition and our meaning is, in our case we are not teaching any person but rather a Machine. In addition to that the skill or type of behaviour is the type of problem we are tackling, such as Classification, Regression or Detection.
Now the next obvious question is How do we train a Machine? Cause clearly talking to it won't help. Neither do we know How does it perceive Information?
How do we Train?
Let's take a look at some of the technical explanations to the basic steps involved in end to end lifecycle of an AI model.
Assuming that based on the steps mentioned above, you were able to Train your model, but how do you know if that is the best solution to take out in the market?
How to Evaluate?
This is where the process of Evaluation kicks in. There are multiple ways in which a Model can be Evaluated.
- Run Predictions of a Model on Evaluation Dataset
- Log the Graph for Loss and Accuracy of Training
- Release it as a Beta Version and gather your feedback
Based on the steps mentioned above, we can guess that 1st and the 3rd steps are either computational exhaustive or financially expensive or extremely time taking. That leaves us with one option - 2nd.
So How do we analyse if the model is suited for production release or not?
Types of Model Learnings
Every model based on the kind of data it is exposed to and the learning cycles along with its Hyper-parameters determine whether it is State of the Art or not.
The above statement might sound a little overwhelming for people new to these concepts or even may sound cryptic. So let's try and understand these concepts more intuitively.
Based on the learning curve of the Graph 3 kinds of inferences can be drawn -
- Under Fit
- Perfect Fit
- Over Fit
Under Fit - When a Student doesn't pay attention in class, but somehow manages to pass the Exam. But faces extreme difficulties in finding a Job because his fundamentals are weak. This is what we call as Under Fitting.
Perfect Fit - As the name suggests, the Student was able to identify his/her interest accurately and was able to pursue those as a passion and convert the same into Profession. Finally attaining Job and Monetary Satisfaction at the same time.
Over Fit - When a Student outperforms everybody in Internal exams but ends up messing up his Finals because the Questions were a little twisted as compared to what was there in the Textbook. This is what we call as Over Fitting when your Model becomes too comfortable with the Dataset that it fails to accept variations.
Based on our reading thus far, we have learnt the necessary steps involved in Training a Neural Network. We also learnt how to analyse and evaluate the models post training cycles before releasing it to the public.
In our future articles we will be learning How to modify the Model incase the Evaluation process Fails and How to speed up the process of Teaching Neural Networks.