I am trying to deploy a machine learning solution online into an application for a client. One thing they requested is that the solution must be able to learn online because the problem may be non-stationary and they want the solution to track the non-stationarity of the problem. I thought about this problem a lot, would the following work?
- Set the learning rate (step-size parameter) for the neural network at a low fixed value so that the most recent training step is weighted more.
- Update the model only once per day, in a mini-batch fashion. The mini-batch will contain data from the day, mixed with data from the original data set to prevent catastrophic interference. By using a mini batch update, I am not prone to biasing my model to the latest examples, and completely forgetting the training examples from months ago.
Would this set-up be "stable" for online/incremental machine learning? Also, should I set up the update step so it samples data from all distributions of my predicted variable uniformly so it gets an "even" update (i.e., does not overfit to the most probabilistic predicted value)?