线上学习VS线下学习?

机器算法验证 机器学习 在线算法
2022-02-09 08:26:57

离线学习和在线学习有什么区别只是学习整个数据集(离线)还是增量学习(一次一个实例)?两者中使用的算法示例是什么?

3个回答

在线学习意味着你在数据进来时就在做。离线意味着你有一个静态数据集。

因此,对于在线学习,您(通常)拥有更多数据,但您有时间限制。可能影响在线学习的另一个问题是您的概念可能会随着时间而改变。

假设您要构建一个分类器来识别垃圾邮件。您可以获取大量电子邮件,对其进行标记,并在其上训练分类器。这将是离线学习。或者,您可以获取所有进入系统的电子邮件,并不断更新您的分类器(标签可能有点棘手)。这将是在线学习。

“在线”这个词被过度使用了,因此在机器学习领域引起了混乱。

“在线”的反义词是批量学习。在批量学习中,学习算法在消耗整个批次后更新其参数,而在在线学习中,算法在从 1 个训练实例中学习后更新其参数。小批量学习是一端的批量学习和另一端的在线学习之间的中间点。

此外,数据“何时”进入,或者是否能够存储,与在线或批量学习是正交的。

与批量学习相比,在线学习被认为收敛到最小值的速度较慢。但是,在整个数据集无法放入内存的情况下,使用在线学习是一个可以接受的折衷方案。

在线学习(也称为增量学习):我们考虑对示例进行单一呈现。在这种情况下,每个示例以学习算法规定的方式顺序使用,然后丢弃。在给定阶段所做的权重变化具体取决于所呈现的(当前)示例,并且可能取决于模型的当前状态。这是随时间变化的规则的自然过程,其中示例可能根本无法一次获得。

离线学习:权重变化取决于整个(训练)数据集,定义了一个全局成本函数。重复使用这些示例,直到实现此成本函数的最小化。