深度学习 主动学习(Active Learning)概述、策略和不确定性度量

主动学习

概念

主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响。主动学习不是一次为所有的数据收集所有的标签,而是对模型理解最困难的数据进行优先级排序,并仅对那些数据要求标注标签。然后模型对少量已标注的数据进行训练,训练完成后再次要求对最不确定数据进行更多的标注。通过对不确定的样本进行优先排序,模型可以让专家(人工)集中精力提供最有用的信息。这有助于模型更快地学习,并让专家跳过对模型没有太大帮助的数据。这样在某些情况下,可以大大减少需要从专家那里收集的标签数量,并且仍然可以得到一个很好的模型。主动学习具有以下特点:

  • 主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点的策略。主动学习的过程也被称为优化实验设计。
  • 主动学习的动机在于认识到并非所有标有标签的样本都同等重要。
  • 主动学习通过为专家的标记工作进行优先级排序可以大大减少训练模型所需的标记数据量。降低成本,同时提高准确性。
  • 主动学习是一种策略/算法,是对现有模型的增强。而不是新模型架构。
  • 主动学习容易理解,不容易执行。

主动学习的关键思想是如果允许机器学习算法选择它学习的数据,这样就可以用更少的训练标签实现更高的准确性。

策略

在未标记的数据集上使用主动学习的步骤是:

  • 首先需要做的是需要手动标记该数据的一个非常小的子样本。
  • 一旦有少量的标记数据,就需要对其进行训练。该模型当然不会很棒,但是将帮助我们了解参数空间的哪些领域需要首标记。
  • 训练模型后,该模型用于预测每个剩余的未标记数据点的类别。
  • 根据模型的预测,在每个未标记的数据点上选择分数(在下一节中,将介绍一些最常用的分数)
  • 一旦选择了对标签进行优先排序的最佳方法,这个过程就可以进行迭代重复:在基于优先级分数进行标记的新标签数据集上训练新模型。一旦在数据子集上训练完新模型,未标记的数据点就可以在模型中运行并更新优先级分值,继续标记。

这种思想在我之前的工作当中也应用上,在做实例分割建筑物数据的时候做一小批的建筑物数据,然后利用这一小批的数据训练得出模型,最后用该模型继续对标签数据进行标记。

在这里插入图片描述

基于数据流的主动学习方法

在基于流的主动学习中,所有训练样本的集合以流的形式呈现给算法。每个样本都被单独发送给算法。算法必须立即决定是否标记这个示例。从这个池中选择的训练样本由oracle(人工的行业专家)标记,在显示下一个样本之前,该标记立即由算法接收。

在这里插入图片描述

基于数据池的主动学习方法

在基于池的抽样中,训练样本从一个大的未标记数据池中选择。从这个池中选择的训练样本由oracle标记。
在这里插入图片描述

基于查询的主动学习方法

这种基于委员会查询的方法使用多个模型而不是一个模型。委员会查询(Query by Committee),它维护一个模型集合(集合被称为委员会),通过查询(投票)选择最“有争议”的数据点作为下一个需要标记的数据点。通过这种委员会可的模式以克服一个单一模型所能表达的限制性假设(并且在任务开始时我们也不知道应该使用什么假设)。

不确定性度量

识别接下来需要标记的最有价值的样本的过程被称为“抽样策略”或“查询策略”。在该过程中的评分函数称为“acquisition function”。该分数的含义是:得分越高的数据点被标记后,对模型训练后的产生价值就越高(没模型效果好)。有很多种不同的采样策略,例如不确定性抽样,多样性采样,预期模型更改…。不确定性抽样是一组技术,可以用于识别当前机器学习模型中的决策边界附近的未标记样本。这里信息最丰富的例子是分类器最不确定的例子。模型最不确定性的样本可能是在分类边界附近的数据。而我们模型学习的算法将通过观察这些分类最困难的样本来获得有关类边界的更多的信息。

参考

  1. 主动学习概述、策略和不确定度量

猜你喜欢

转载自blog.csdn.net/u012655441/article/details/125705082