
Here is the second part batch learning and online learning…
Let’s Start learning about model learning.
In batch learning, the system is incapable of learning incrementally: it must be trained using all the available data. In nutshell, it take a lot of time and computing resources, so it is typically done offline.
First the system is trained, and then it is launched into production and runs without learning anymore; it just applies what it has learned. This is called offline learning.
If you want a batch learning system to know about new data, for example a new type of spam. You need to train a new version of system from scratch on the full dataset (not just the new data, but also the old data), then stop the old system and replace it with the new one.
Fortunately, the whole process of training, evaluating, and launching a Machine Learning system can be automated fairly easily. Also for this i will post how to build pipeline to make life easier.
This solution is simple and often works fine, but training using the full dataset can take many hours of learning, so you would typically train a new system only every 24 hours or more. If your system needs to adapt to rapidly changing data, such as stock market prices, then you need a more reactive solution.
In Online Learning, you train the system incrementally by feeding it data instances sequentially, either individually or by small groups of data called mini-batches. Each learning step is fast and cheap, so the system can learn about new data on the fly.
If you have limited computing resources: once an online learning system has learned about new data instances, it does not need them anymore, so you can discard them.
Out-of-core learning is usually done offline, so online learning can be a confusing name. Think of it as incremental learning.
One of the important parameter of online learning systems is how fast they should adapt to changing data, this is called learning rate.
If you set a high learning rate, then your system will rapidly adapt to new data, but it will also tend to forget the old data, in contrast if you set a low learning rate, the system will have more inertia.
For example, bad data cloud come from a malfunctioning sensor on a robot , or from someone spamming a search engine to try to rank high in search results. To reduce this risk, you need to monitor your system closely and promptly switch learning off.