分享

机器学习:在线学习与批量学习

 天承办公室 2024-04-15 发布于北京
图片

在机器学习(ML)领域,批量学习和在线学习是两种处理日益爆炸性增长数据的主要方法。Twitter每天产生超过12TB的数据,Facebook每天产生超过25TB,而Google的数据量则更加庞大。这些数据的持续产生迫切要求我们开发出能够处理和分析大批量数据的工具。

批量学习(Batch Learning)

图片

批量学习是指按照固定时间间隔,如每周、每两周、每月或每季度等对模型进行训练的过程。在这种模式下,模型不能逐步学习,而是必须在每次训练时使用所有可用的数据。批量学习的特点是模型一旦经过训练,就无法持续地从新数据中学习,因此需要较长的时间和更多的计算资源来对整个数据集重新训练。批量学习又被称为离线学习,只有当新数据训练出的模型表现良好时,这些模型才会定期投入生产环境。

例如:学生是否被录取不是基于过去一年的数据决定的,因为在这个过程中数据不是经常积累的。数据会在特定时间间隔,比如每年或每六个月积累。一年后,你需要将你的模型从生产阶段拉回到开发阶段,重新训练,并通过替换旧模型再次将其部署到生产环境。

另一个例子是动物图像分类,比如狗在十年后仍然是狗。

缺点:

1. 如果数据经常积累,这种方法就不太有用。
2. 当数据分布经常变化时,这种方法也不太有用。
3. 需要花费大量的时间和资源,比如CPU、内存空间等。


在线学习(Online Learning)

图片

在线学习是一种随着数据的顺序到达而更新模型的方法,与一次性使用全部训练数据集的批量学习技术形成对比。在线学习在数据量巨大到无法一次性处理的情况下尤为常见,此时需要用到超核心算法(out-of-core algorithms)。在线学习还适用于需要算法动态适应数据新模式的场景,比如随时间变化的数据,例如股票价格预测。在线学习算法可能会遭遇灾难性干扰,但增量学习方法能够有效解决这一问题。

在线学习系统的一个显著缺点是,一旦输入了错误的数据,模型性能会立即下降,影响立竿见影。因此,制定合适的数据治理策略至关重要。

在线学习的关键要素之一是学习率(learning rate),它决定了模型适应新数据集的速度。高学习率的系统会快速遗忘旧的学习内容,而低学习率的系统则更接近批量学习模式。学习率(λ)是一个超参数,用于调整网络权重以响应损失梯度下降,它直接影响我们接近最优权重的速度。

图片

超核心学习(Out-of-core learning)是指机器学习算法处理无法一次性装入单个机器内存的数据,而是存储在本地硬盘或网络存储库中的情况。

在线学习的一个挑战在于必须持续监控输入模型的数据质量,因为新的错误数据可能导致模型性能的下降。

图片


在在线机器学习(Online ML)中,训练是一个频繁且逐步的过程,随着数据的到来或以小批量形式不断进行。由于每个学习步骤都迅速且成本较低,因此系统能够即时学习新数据。在这种方式下,模型通常只在生产阶段频繁接受训练。

例如:Netflix 训练模型并将模型从开发阶段转移到生产阶段以根据偏好预测电影。但在部署后的一个小时内,Netflix收到了很多新电影,而这些新电影并没有进行训练。在这种情况下,Netflix需要再次将模型带回开发阶段,重新训练它,并通过替换旧模型将其发送到生产环境。这就是批量学习的情况,在这种情况下,模型会失败。

因此,在这种情况下,只有在生产阶段频繁积累新数据时,才使用在线学习。

算法-随机梯度下降(Stochastic Gradient Descent),它与线性回归相同,但它可以遵循在线学习使用partial_fit函数。每当有新数据点累积时,你可以调用partial_fit函数。它比离线学习需要的时间少。

用于在线学习的另一个库是 River 和 Vowpal Wabbit。

在线学习的优缺点

优点:

1)如果数据频繁积累非常有用,例如股票交易所

2)成本效益高,因为它使用的资源较少。

3)快速

缺点:

1)使用起来比较棘手

2)有风险(如果黑客试图在线上放置有偏见的数据,防止这种情况 — 检测异常,将服务器回滚到旧状态)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多