在线学习算法和流式学习算法有什么区别?

机器算法验证 在线算法
2022-04-01 19:40:56

据我了解,与批量学习相反,在线学习在每个时间步都采取行动,而不是在整个(或一个大的时期)数据集上累积计算;流式学习是指具有有限的时间和空间限制,以及在数据上运行的传递次数。

从我教授的演讲幻灯片来看,它们的主要区别是:

------------------------------------------------------------------------------
|          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       |
 ------------------------------------------------------------------------------

并来自维基百科流式算法条目:

这些算法与在线算法有许多相似之处,因为它们都需要在所有数据可用之前做出决定,但它们并不完全相同。数据流算法只有有限的可用内存,但它们可能能够推迟操作,直到一组点到达,而在线算法需要在每个点到达时立即采取行动。

我仍然无法理解它们有什么根本不同:在线算法的时间、空间和通过次数非常有限,这与流算法非常相似。

1个回答

在线算法应用程序的一个示例是投资,您必须在新数据到来时重新考虑投资决策。您不能推迟这个决定,也不能修改旧的决定。我不熟悉流算法,但似乎(根据您教授的幻灯片)数据压缩是一个可以多次扫描文件以确定近似最佳压缩码本的公平示例,但它仍然不可行(因为内存要求)离线分析整个文件。