Following our conversation from our previous blog, we understand the concept of supervised machine learning. Now let’s go through the previous example again and try to think about it more deeply.
Imagine a student, and its teacher. We want the student to learn what a "dog looks like". The teacher will show the student different pictures, some of which are dogs, and the rest could be pictures of other animals like cat, pig, cow. When a student sees a dog, the teacher shouts "This is a dog!" When it's not a dog, the teacher shouts "This is not a dog!" After doing this several times with the student, the teacher shows student a random picture and asks "Is it a dog?" and the student will correctly say "This is a dog!" or "This is not a dog!" depending on what the student has learned from previous pictures.
Now let us go beyond that example, the teacher wants the student to learn about different breeds of dogs. So the teacher started working on it and took different pictures of dogs and showed it to the student. But first, the teacher repeated the previous session with the student so that the student can differentiate between dogs and other animals and then the teacher taught the student about a particular breed of a dog. Every time the teacher has to teach about different breeds of dogs, the teacher always first teaches how to differentiate between dogs and other animals and then teaches about the breed characteristics.
Is it the right way to teach? Isn’t this a waste of time? Sure there are many who will argue that this refreshes student memory but wouldn’t it be nice if a student would have taken notes and before the teacher starts the lecture student would refresh himself. And let's go one step ahead, how about if a new student comes to class and he/she can also update their knowledge with the existing student notes.
Think About it !
Wouldn’t this procedure of sharing intelligence save time and teacher energy?
The answer is YES.
Now let's think for a second can this process be applied to machine learning also.
Can we make a machine learn a model and ask the machine to take notes on the model that can be shared with a new machine.
The Answer is YES.
When it comes to machine learning especially supervised machine learning starting always from the scrap or zero is not required. To solve this particular problem we have to think in an INNOVATIVE way.
To cope with this situation AARK Technology Hub has designed a POC(Proof of Concept) where we use Intelligence sharing for ML models between machines. For this POC we are using the ML KNN model, IRIS dataset, and MongoDB. The Code is publicly available at GITHUB. In this case we are training the KNN model with iris dataset and saving the model knowledge in binary format in MongoDB. Next we are creating a new KNN modal but we are not training it, we are just picking up the data from mongoDB and loading it to the new KNN model. Not only that in AARK Technology Hub R&D Lab we were able to use it across multiple machines over private cloud. The results were astonishing. When it comes to large problems, this perspective of solving a problem can make Machine Learning more efficient.
AARK Technology Hub always focuses on providing efficient and innovative solutions. AARK Technology Hub combines deep technology expertise, architecture solution capabilities and program management skills to come up with innovative solutions such as ML intelligence Sharing which is explained above.
This AARK Technology Hub Proof of Concept is is freely available on our GITHUB and you can easily download and use it anywhere.