off-line & on-line learning
在线学习和离线学习的区别在于数据的来源以及训练方式
offline learning
离线学习也叫批学习(batch learning),就是在数据训练阶段对数据进行训练集和测试集的划分,然后放入模型分批进行训练,一个batch训练完模型参数更新一次
模型训练好之后的使用的数据都是来源于之前训练的数据,如果有数据集更新那么就要重新训练。
伪代码
initialize all weights to random value
repeat:
for t in training_set:
compute train_error for t
adjust weights base on train_error
until error rate is very small or error rate variation stops
online learning
在线学习的数据输入形式是以流状的,不用提前对数据进行划分,接受一个一个的数据点, 一个数据点训练完了直接庚辛模型的权重, 按照顺序处理数据, 不需要在一开始就准备完整的数据集
对实时数据的接受和训练更有优势
伪代码
initialize all weights to random value
for t in training_set:
repeat:
compute train_error for t
adjust weights base on train_error
until error rate is very small or error rate variation stops
overview
在线学习和离线学习是模型的两种学习方法, 两种方法的不同点在于数据训练的方式, 同时两种学习方法训练出来的模型的实际应用场景也不同
- 在线学习的基本数据单位是条, 一条数据训练完就更新权重
- 不需要在一开始就提供完整的数据集
- 在线学习更注重对实时数据的接受、训练以及反馈
- 训练方式更具有灵活性, 因为在训练过程中可能有条数据放入模型中训练两次就满足了模型精度要求, 而有条数据训练了八次才满足模型训练要求
- 可以在模型训练期不断地接受新数据从而提高模型的准确性, 对数据的适应性和调整性更强
- 模型容易跑偏, 因为每条数据之后都要进行参数更新, 不知道更新的方向是对是错
- 涵盖范围较广: 其中还包含增量学习和递减学习
- 离线学习的基本数据单位是批, 一批数据训练完才更新权重
- 在一开始就要提供完整的数据集, 模型要在数据到达后进行训练
- 要求每一批中的所有数据都是有效的
参考文档
在线学习on-line learning和增量学习Incremental Learning区别