主要内容

增量学习概述

什么是渐进式学习?

增量学习,或在线学习,是机器学习的一个分支,涉及连续和实时地处理来自数据流的传入数据——可能对预测变量的分布、样本大小、预测或目标函数的各个方面(包括适当的调优参数值)知之甚少,以及观察结果是否有标签。

增量学习算法灵活、高效、自适应。增量学习与传统机器学习的区别在于:

  • 增量模型能够快速有效地适应数据,这意味着它能够实时地适应变化(或)的数据分布。

  • 因为当相应的预测器数据可用时可能缺少观察标签,所以算法必须能够快速地从最新版本的模型生成预测,并推迟培训模型。

  • 在渐进式学习开始之前,我们对人口的了解可能很少。因此,该算法可以用冷启动.例如,对于分类问题,类名可能在模型处理观察结果之后才知道。当在学习开始之前就知道足够的信息时(例如,您对线性模型系数有很好的估计),您可以指定这些信息来为模型提供温暖的开始

  • 因为观测可以通过流到达,所以样本大小可能是未知的,而且可能很大,这使得数据存储效率低下或不可能。因此,算法必须在观测值可用时处理它们,并且在系统丢弃它们之前处理它们。这种增量学习特性使得超参数调优变得困难或不可能。

在传统的机器学习中,利用一批标记数据进行交叉验证,估计泛化误差,调整超参数,推断预测变量分布,并拟合模型。然而,如果底层分布发生漂移或模型退化,则生成的模型必须从一开始就重新训练。尽管在增量学习环境中很难进行交叉验证来调整超参数,但增量学习方法是灵活的,因为它们可以实时适应分布漂移,随着模型训练更多的数据,预测精度接近传统训练模型。

假设一个增量模型准备生成预测并度量其预测性能。给定传入的观察数据块,增量学习方案以下列任何一种方式实时处理数据,但通常按照指定的顺序:

  1. 评估模型:当真实标签可用时,跟踪模型的预测性能,无论是在传入数据上,还是在观察的滑动窗口上,或在用于增量学习的模型的整个历史上。

  2. 检测漂移检查结构断裂或分布漂移。例如,确定任何预测变量的分布是否发生了足够的变化。

  3. 火车模型:当真实标签可用或当前模型已经足够退化时,通过对传入观测进行训练来更新模型。

  4. 生成预测:预测最新型号的标签。

此过程是一个增量学习的特殊情况,其中所有传入的块都被视为测试(HoldOut)集。该过程称为交叉test-then-train或者prequential评价[1]

如果存在不足的信息以生成预测的增量模型,或者您不想跟踪模型的预测性能,因为它尚未培训足够,您可以包括可选的初始步骤以查找超级参数的适当值,适用于金宝app支持一个(估计时间)或在模型评估之前的初始培训期(度量预热期).

作为一个渐进学习问题的例子,考虑一个智能恒温器,它根据环境温度、相对湿度、一天中的时间和其他测量值自动设定温度,并可以了解用户的室内温度偏好。假设制造商通过嵌入一个已知模型来准备设备,该模型描述了给定测量值的普通人的偏好。安装完成后,设备每分钟采集一次数据,并将温度调整到预设值。恒温器根据用户对设备的动作或不动作来调整嵌入式模型,或对自身进行再训练。这种循环可以无限期地持续下去。如果恒温器有有限的磁盘空间来存储历史数据,那么它需要实时地对自己进行重新培训。如果制造商没有为设备准备一个已知的模型,设备会更经常地重新训练自己。

增量学习MATLAB

统计学和机器学习工具箱™功能使您能够实现分类或回归的增量学习。与统计学和机器学习工具箱的其他机器学习功能一样,进入增量学习的入口点是一个增量学习对象,您将其传递给带有数据的函数,以实现增量学习。与其他机器学习功能不同,创建增量学习对象不需要数据。然而,除了模型的参数化形式和特定问题选项之外,增量学习对象还指定了如何处理传入数据,例如何时适合模型、度量性能指标或同时执行两项操作。

增量学习模型对象

该表包含了用于增量学习的入口点模型对象及其支持的机器学习目标、模型类型和创建时所需的任何信息。金宝app

模型对象 客观的 模型类型 必需的信息
incrementalClassificationLinear 二元分类 线性支持向量机和logistic回归 没有一个
incrementalClassificationNaiveBayes 多类分类 具有正态、多项式或多元多项式预测条件分布的朴素贝叶斯 在增量学习期间,数据中期望的最大类数或所有期望类的名称
incrementalRegressionLinear 回归 线性 没有一个

增量学习模型对象的属性如下:

  • 数据特征,如预测变量的数量NumPredictors以及他们的第一和第二时刻。

  • 模型特性,如线性模型,学习者类型学习者,线性系数β,拦截偏见

  • 训练选项,如,对于线性模型,目标求解器求解器和求解器特定的超参数,如脊罚λ用于标准和平均随机梯度下降(SGD和ASGD)

  • 模型性能评价的特点和选择,如模型是否温暖温暖,要跟踪哪些性能指标指标,以及性能指标的最新值

与使用其他机器学习模型对象的操作不同,您可以通过直接调用对象并使用名称值参数指定选项的属性值来创建任一模型;您不需要将模型适合数据以创建一个。当您在培训之前有关于数据或模型的信息很方便,这一功能很方便。根据您的规格,软件可以强制执行估算和度量标准的预热周期,在此期间增量拟合函数推断数据特性,然后培训模型以进行性能评估。默认情况下,对于线性模型,软件使用自适应刻度不变求解器解决目标函数,该求解器不需要调谐,并且对预测器变量尺度不敏感[2]

或者,您可以使用传统训练的模型将传统训练的模型转换为型号incrementalLearner函数。可转换模型包括用于二值分类和回归的支持向量机(SVM)金宝app、朴素贝叶斯分类和线性回归模型。例如,incrementalLearner转换类型的训练过的线性分类模型ClassificationLinear到一个incrementalClassificationLinear对象。默认情况下,软件认为转换后的模型为增量学习的所有方面做好了准备(转换后的模型是温暖的)。incrementalLearner从传统训练的模型转换的传统训练模型中提供数据特征(如类名称),拟合参数和可用于增量学习的选项。例如:

  • 对于朴素贝叶斯分类,incrementalLearner保留增量学习过程中所期望的数据中的所有类名,条件预测器分布的拟合时刻(DistributionParameters).

  • 对于线性模型,如果传统训练模型的目标求解器为SGD,incrementalLearner将增量学习求解器设置为SGD。

增量学习功能

增量学习模型对象指定了增量学习算法从训练和模型评估准备到训练和模型评估的各个方面。要实现增量学习,需要将配置好的增量学习模型传递给增量拟合函数或模型评估函数。统计学和机器学习工具箱增量学习函数提供了两个非常适合于前序学习的工作流程。为简单起见,下面的工作流描述假设模型已准备好评估模型性能(换句话说,模型是暖的)。

  • 灵活的工作流—当数据块可用时:

    1. 通过将数据和当前模型传递给updateMetrics函数。该数据被视为测试(抵抗)数据,因为模型还没有对其进行训练。updateMetrics使用新值覆盖存储在模型中的模型性能。关于线性模型,请参见updateMetrics对于朴素贝叶斯分类模型,请参见updateMetrics

    2. 可选地检测分布漂移或模型是否退化。

    3. 通过将传入的数据块和当前模型传递给适合函数。的适合函数使用指定的求解器将模型拟合到传入的数据块,并使用新的估计覆盖当前系数和偏差。关于线性模型,请参见适合对于朴素贝叶斯分类模型,请参见适合

    灵活的工作流使您能够在决定是否培训模型之前执行自定义模型和数据质量评估。所有的步骤都是可选的,只是调用updateMetrics之前适合当您计划同时调用两个函数时。

  • 简洁的工作流程—当数据块可用时,将传入的数据块和已配置的增量模型提供给updatemetricsandfit.函数。updatemetricsandfit.调用updateMetrics立即紧随其后适合.简洁的工作流程使您能够在打算跟踪模型性能并在所有传入数据块上培训模型时,可以轻松实现增量学习。关于线性模型,请参见updatemetricsandfit.对于朴素贝叶斯分类模型,请参见updatemetricsandfit.

一旦你创建了一个增量模型对象并选择了要使用的工作流,编写一个实现增量学习的循环:

  1. 当数据流中的数据块可用时,从该数据流中读取该数据块。

  2. 实现灵活或简洁的工作流。为了正确地执行增量学习,用输出模型覆盖输入模型。例如:

    %灵活的工作流Mdl = updateMetrics (Mdl, X, Y);插入可选代码Mdl =适合(Mdl, X, Y);%简洁的工作流Mdl = updateMetricsAndFit (Mdl, X, Y);
    该模型使用自培训开始(累积)以来测量的度量标准,并在连续观测的指定窗口(窗口)上递增地跟踪其在传入数据上的表现。但是,您可以选择计算传入块上的模型损失,然后将传入块和当前模型传递给损失函数。损失返回标量丢失;它没有调整模型。关于线性模型,请参见损失对于朴素贝叶斯分类模型,请参见损失

    模型配置决定增量学习功能是否在每次迭代期间训练或评估模型性能。配置可以随着功能处理数据而改变。有关详细信息,请参见增量学习时期

  3. (可选):

    • 通过传递数据块和最新模型来生成预测预测.关于线性模型,请参见预测对于朴素贝叶斯分类模型,请参见预测

    • 如果模型适合数据,通过将chunk和最新模型传递给,计算再替换损失损失

    • 对于朴素贝叶斯分类模型logp功能用于实时检测异常值。该函数返回在块中的每个观测中预测变量的无条件对数概率密度。

增量学习时期

给定传入的数据块,增量学习函数执行的操作取决于模型的当前配置或状态。这张图显示了增量学习函数执行特定动作的周期(连续的观察组)。

数轴表示增量学习函数执行某些动作的周期

该表描述了增量学习函数在每个时间段内执行的动作。

相关的模型属性 规模(观测次数) 行动
估计 EstimationPeriod,仅适用于线性分类和回归模型

n1

当需要时,拟合函数根据估计周期观测值为超参数选择值。采取的措施包括:

  • 估计预测时刻σ用于数据标准化。

  • 调整学习率LearnRate为SGD求解器根据学习率计划LearnRateSchedule

  • 估计支持向量机回归参数εε

  • 存储估计所需的信息缓冲器。

  • 在期间结束时更新相应的属性。

度量热身 MetricsWarmupPeriod

n2- - - - - -n1

当房地产温暖,拟合函数执行以下动作:

  • 将模型与传入数据块进行拟合。

  • 更新相应的模型属性,例如β或者DistributionParameters,模型拟合后。

  • 在周期结束时,模型是暖的温暖房地产成为真正的).

绩效评估j 指标MetricsWindowSize
  • 在业绩评价期1开始时,职能开始跟踪累积累积和窗口窗口指标。窗口是向量S贯穿这段时间。

  • 功能覆盖累积每个迭代的更新累积度量的指标。在每个性能评估期结束时,函数计算和覆盖窗口基于最后一个指标观察。

  • 函数存储计算模型性能所需的信息缓冲区。

参考

[1] Bifet, Albert, Ricard Gavaldá, Geoffrey Holmes, Bernhard Pfahringer。基于MOA的数据流机器学习及其实例.麻省理工学院出版社,2007年。

[2]肯普卡,Michał,沃伊切赫,Kotłowski,曼弗雷德·k·瓦姆斯。学习线性模型的自适应尺度不变在线算法corr(2019年2月)。https://arxiv.org/abs/1902.07528

另请参阅

对象

相关话题