Offline learning is faster and cheaper. It is used when you don’t expect the input to behave uncharacteristically. For instance, suppose you want to identify faulty machine parts on an assembly line using their images acquired through camera mounted over the conveyer belt. You would train the classifier using all sorts of pictures of good machine parts and badly mutilated machine parts. You would not expect the manufacturing process to damage the parts far too much. Offline learning would do reasonably well in this case, as the classifier doesn’t have to keep on learning constantly. It can be stopped, taken offline, retrained and redeployed. But the training can safely happen offline. Online learning keeps the classifier/regressor learning. Consider a recommendation system on a site like IMDB that is constantly learning from the ratings given by users to movies and making appropriate recommendations to users. This system should not stop learning, or it will become obsolete as soon as a considerable number of newer movies and newer reviews come around. The training of a recommender system can happen offline, but only if you can afford to take it offline, as in the earlier example. The disadvantages are that online learning can be more complex and therefore slower and more expensive than offline learning.