据我了解,与批量学习相反,在线学习在每个时间步都采取行动,而不是在整个(或一个大的时期)数据集上累积计算;流式学习是指具有有限的时间和空间限制,以及在数据上运行的传递次数。
从我教授的演讲幻灯片来看,它们的主要区别是:
------------------------------------------------------------------------------
| Online | Streaming |
------------------------------------------------------------------------------
| Endless data stream | Stream of (known and typically big) length of N |
------------------------------------------------------------------------------
| Fixed amount of memory | Memory available is o(N) |
------------------------------------------------------------------------------
| Tested at every time step | Tested only once at the very end |
------------------------------------------------------------------------------
| Each point seen only once | More than one pass may be possible |
------------------------------------------------------------------------------
并来自维基百科流式算法条目:
这些算法与在线算法有许多相似之处,因为它们都需要在所有数据可用之前做出决定,但它们并不完全相同。数据流算法只有有限的可用内存,但它们可能能够推迟操作,直到一组点到达,而在线算法需要在每个点到达时立即采取行动。
我仍然无法理解它们有什么根本不同:在线算法的时间、空间和通过次数非常有限,这与流算法非常相似。