real-time training algorithm