在线学习与离线学习的区别

Online Learning And Offline Learning

第一种理解

在线学习

在线学习,通常是一次输入一条数据(而不是一个batch),训练完了直接更新权重。一个一个地按照顺序处理数据,但是每一个数据训练完后都会直接更新权重,但不知道是对是错,如果某一次权重更新错误,在这之后的权重更新可能一直都是错的,最后得到的模型可能就会逐渐走向错误方向,残差出现。在线学习先按顺序处理数据,他们产生一个模型,并把这个模型放在实际操作中,不需要一开始就提供完整的训练数据集。随着更多实时数据进入模型,模型会在操作中不断被更新

离线学习

离线学习,类似于批量学习,假设整个样本有m个数据,离线训练会训练m的整数倍次数,然后带入下一条,直至跑完整个样本,这个时候误差率可能不让你满意,把整个样本又做个上述操作,直至误差很小。离线学习是一个batch训练完才更新权重,因此要求所有数据必须在每一个训练训练操作中(batch)中都是可用的,这样不会因为个别数据的更新错误把网络带向极端。

第二种理解

在在线学习中,恰恰相反,在线算法按照顺序处理数据。它们产生一个模型,并在把这个模型放入实际操作中,而不需要在一开始就提供完整的的训练数据集。随着更多的实时数据到达,模型会在操作中不断地更新

在离线学习中,所有的训练数据在模型训练期间必须是可用的。只有训练完成了之后,模型才能被拿来用。简而言之,先训练,再用模型,不训练完就不用模型。

简单来说

在线学习:一个样本训练完,直接更新权重
离线学习:全部样本训练完,再更新权重
在线学习与离线学习的区别_第1张图片

你可能感兴趣的:(机器学习基础知识,学习,机器学习,算法)