在线学习/离线学习

一直以来对这个有所疑惑,所里师姐和师兄的解释好像和论文中的在线离线有所不同。现在国内外有这么几种理解方式。

我就在这边给自己做个小笔记吧。有不对的地方望予以指正,本人必虚心改正。

在线学习和离线学习(online learning and offline learning)

理解方式一:

在这一次训练中:

在线学习:一个数据点训练完了直接更新权重(而不是一个batch),看到了没?直接更新权重,这里有危害处!(我们无法得知这一次的更新权重是正确的还是错误的,如果恰恰是错误的一次更新,那么我们的模型会有可能渐渐地走向错误方向,残差出现)

离线学习:一个batch训练完才更新权重,这样的话要求所有的数据必须在每一个训练操作中(batch中)都是可用的,个人理解,这样不会因为偶然的错误把网络带向极端。

这种理解方式在国外论文中出现比较多,国外称为online and batch learning.离线就是对应batch learning.这两种方式各有优点,在线学习比较快,但是有比较高的残差,离线(batch)学习能降低残差。

理解方式二:

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

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

理解方式三:

这一种是知乎一位兄弟的解释。我在实际代码中基本没见过。可能还是学习太少了。暂时收录下吧。

作者:IvonChen
链接:https://www.zhihu.com/question/35607456/answer/150511176
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


作者:膝盖走路JYM
来源:CSDN
原文:https://blog.csdn.net/a133521741/article/details/79221015
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(在线学习/离线学习)