human in the loop--学习笔记

  1. 标注(annotation) 和 主动学习(active learning) 是human-in-the-loop机器学习的基石。当没有预算或时间采用人工标注所有数据的方式时,上述方式说明了如何从人类那里获取训练数据并将正确的数据展示给人类。迁移学习(transfer learning) 将已存在的模型应用于新的任务,而不是从头开始训练,避免了冷启动。
  2. Human-in-the-loop机器学习是一组在AI应用中结合人类和机器智能的策略集合。目标通常是执行以下一项或多项策略:
    1. 提高机器学习模型的准确性。
    2. 更快地达到机器学习模型的目标准确率。
    3. 结合人类和机器智能以最大限度地提高准确性。
    4. 通过机器学习协助人工任务以提高效率。
  3. 数据添加标签的human-in-the-loop的机器学习过程。该过程可以应用于任意标注流程:给新闻添加主题,依据运动类型对运动照片分类,识别社交评论的情感,根据内容对视频进行评级,等等。在所有场景中,可以利用机器学习对标注的一些过程进行自动化或者帮助人工提效。
  4. 采样正确的数据进行标注,使用标注过的数据训练模型,用训练好的模型采样更多的数据进行标注。
  5. 随机噪声甚至可以通过避免过拟合来帮助某些算法变得更加准确。但人为错误往往不是随机噪声;这些算法往往在训练数据中引入不可恢复的偏差。 没有算法可以在真正糟糕的训练数据中存活下来。
  6. 确保高质量标注的最佳方法之一是确保有合适的人员进行标注。
  7. 三种主动学习采样策略:不确定性、多样性和随机性
    1. 无论采用哪种策略,都应该始终标注一些随机数据,记录模型的准确性,并将主动学习策略与随机选择的基线进行比较。
    2. 不确定采样:是一组策略,用于识别当前机器学习模型中靠近决策边界的未标记数据。如果有一个二分类任务,这些数据将有接近50%的概率属于任一标签;因此,该模型被称为不确定或混淆。这些数据最有可能被错误分类,因此它们最有可能产生与预测结果不同的标签,在将它们添加到训练数据并重新训练模型后移动决策边界。
    3. 多样性采样是一组用于识别机器学习模型在其当前状态下代表性不足或未知的未标记数据的策略。这些数据可能具有在训练数据中很少见的特征,或者它们可能代表当前在模型中代表性不足的真实统计数据。在任何一种情况下,应用模型时都会导致性能不佳或不均匀,尤其是当数据随时间变化时。多样性采样的目标是针对新的、不常见的或代表性不足的数据进行标注,以便让机器学习算法更全面地了解问题空间。
    4. 不确定采样被广泛采用,但多样性采样在不同领域有不同的名称,例如代表性采样(representative sampling)、分层采样(stratified sampling)、异常值检测(outlier detection)和异常检测(anomaly detection)。对于某些用例,例如识别天文数据库中的新现象或在网络安全场景下检测奇怪的活动,任务的目标是识别异常值或异常,但我们可以将它们调整为主动学习的采样策略。
    5. 不确定性采样和多样性采样存在孤立的缺点。 例如,不确定性采样可能侧重于决策边界的一部分,而多样性采样可能侧重于离边界很远的异常值。 因此,这些策略通常一起使用,以找到一组未标记的数据,以最大限度地提高不确定性和多样性。
  8. 主动学习是一个不断迭代的过程。每个迭代过程中,都会选择一些数据进行人工标注。然后使用新的人工标注数据重新训练模型。重复上述过程进行迭代。
    1. 迭代周期本身可以是多样性采样的一种形式。想象一下,您只使用了不确定性采样,并且在一次迭代中仅从问题空间的一部分中采样。你可以解决问题空间那部分的所有不确定性;因此,下一次迭代将集中在其他地方。 通过足够的迭代,或许根本不需要多样性采样。不确定性采样的每次迭代都将关注问题空间的不同部分,并且这些迭代一起足以获得用于训练的不同数据样本。
    2. 一个能够快速适应的软件系统就是不断学习
    3. 理论上应该始终用保留数据中的随机样本对模型进行评估,但是实际上很难确保获得真正的随机样本。如果按关键字、时间或其他一些因素对正在处理的数据进行了预过滤,则该样本已经不具有代表性了。该样本的准确性不一定表示将部署模型的数据的准确性
      1. 如果无法定义有意义的随机评估数据集,则应尝试定义一个具有代表性的评估数据集。如果定义了一个具有代表性的数据集,那么真正的随机样本对于我们的数据集是不可能的或没有意义的。应该基于我们应用数据的方式定义针对我们用例的代表性数据集。我们可能希望对比较关注的每个标签选择数据点、每个时间段的特定数字或聚类算法输出的特定数字来确保多样性。
      2. 或许希望有不同标准的多个评估数据集。一种常见的策略是从与训练数据相同的数据中抽取一个数据集,并从不同来源抽取至少一个域外评估数据集。域外数据集通常来自不同类型的媒体或不同的时间段。例如,如果自然语言处理(NLP)任务的所有训练数据都来自历史新闻文章,则域外数据集可能来自最近的社交媒体数据。对于真实的应用,应该采用域外的评估数据集,这是测量模型泛化能力的最佳指标而不是简单的过拟合特定数据集。然而,这种做法对于主动学习来说可能很棘手,因为一旦开始标记该数据,它就不再是域外的。如果可行的话,最好保留一个域外数据集,不会对其应用主动学习。然后,可以评估主动学习策略的泛化能力,而不是简单地适应和过拟合域内数据。
      3. 一个很好的例子是视频中呈现的大量数据。例如,为视频里每帧中的每个对象拉框是非常耗时的。假设视频为自动驾驶汽车采集的,其中包含大约20个需要拉框的对象(汽车、行人、标志等)。每秒30帧,即30帧60秒20个对象,因此一分钟的数据需要人工创建36,000个框!即使是最快的人工标注员也需要至少12小时来注标注。可以通过数据看出这个问题有多棘手。
      4. 大多数场景下标注都是比较棘手的。没有足够的预算或时间来标注越来越多的数据。这可能是采用机器学习的首要原因。如果有足够的预算和时间人工标注所有数据,我们可能不需要自动化标注任务。
    4. 并不是每种情况都需要主动学习,虽然仍和human-in-the-loop学习策略相关。在某些场景下,法律要求人工对每个数据点进行注释,如法院下令的审计,要求人工查看公司内的每一次通信是否存在潜在欺诈。尽管最终需要人工查看每个数据点,但主动学习可以协助更快地找到欺诈示例并确定使用的最佳用户界面。还可以识别人工标注的潜在错误。事实上,这个过程就是现在大量质检人员在做的事情。
    5. 还有一些小众场景,几乎肯定不需要主动学习。例如,如果监控工厂中有灯光的设备,则很容易实现一个CV模型,通过灯光或者机器上的开关来判断机器是否正在运转。由于机器、灯光、相机等不会随时间变化,因此不需要在模型构建好后再通过主动学习继续获取训练数据。然而,这些场景很少见。作者在行业中遇到的场景中,只有不到1%不需要更多的训练数据。
    6. 同样,在某些场景中,对于业务来说基线模型的准确性足够或者获取更多训练数据的成本超过了更新模型产生的价值。上述标准也是主动学习迭代停止的条件。
  9. 人机交互是计算机科学中的一个成熟领域,现在对机器学习变得尤为重要。当为人类构建用于创建训练数据的界面时,我们正处于一个认知科学、社会科学、心理学、用户体验设计和其他一些领域的交叉领域。
    1. 通常,一个简单的Web表单就足以收集训练数据。
    2. 二元响应是最简单的交互,也是质量控制的最佳选择。如果可以简化标注项目或者将其变成二元任务,则更容易设计直观的界面并实现质量控制
  10. 标注:
    1. 对于创建训练数据之类的重复性任务的人员来说,移动鼠标这类效率低下的操作应该尽量避免。如果整个标注过程都可以在键盘上进行,则标注员的节奏会得到极大提升,这个过程包括标注本身、表单提交和导航。如果必须包含鼠标,则应该获得丰富的标注以弥补较慢的输入。
    2. 为了获得准确的训练数据,必须考虑人标注员的关注点、注意力范围以及可能导致其犯错或改变其行为的上下文环境。
    3. 使用机器学习模型来标注的利弊
    4. 利用机器学习及确保标注质量的一种方式是人工利用简单的二元形式确认或者拒绝预测结果来对模型进行评估。这种技术可以很好地将较复杂的任务转换为二元标注任务。如让标注员确认对象拉框的框边界是否正确,这是一个简单的二元问题,并不涉及复杂的编辑/选择界面。类似让标注员确认某个单次是否在某一段文本中,比提供一个界面让标注去标注文本高效的多。
  11. 设计标注界面的基本准则
    1. 尽可能将问题转化成二元选择。
    2. 确保预期的结果是多种多样的,避免启动效应。
    3. 使用现有的交互约定。
    4. 允许使用键盘
  12. Human-in-the-loop机器学习有两个目标:一是利用人工输入使机器学习应用更加准确,二是利用机器学习改进人工任务。这两个目标有时是结合在一起
    1. 通过使用机器翻译推荐人工可以选择或拒绝的单词和短语,来加快人工翻译速度,就像智能手机在你输入时推荐下一个单词一样。该任务是机器学习辅助人工进行处理。由于人工翻译太贵,一些客户采用了机器翻译。由于在人工和机器翻译的数据中内容比较相似,随着时间的推移,人工翻译的数据会使机器翻译系统更加准确。这些系统同时满足了上述两个目标,使人类更加高效,使机器更加准确。
    2. 搜素引擎是human-in-the-loop机器学习另一个很好的例子。
    3. 一个常见的误解是,搜索引擎只根据终端用户的反馈进行训练。事实上,所有主要的搜索引擎都使用数千个标注员来评估和调整其搜索引擎。评估搜索相关性是机器学习场景中人工标注的最大用例。
  13. 迁移学习通常意味着:重新训练神经模型的一部分以适应新任务(预训练模型)或使用一个神经模型的参数作为另一个神经模型的输入。
  14. 根据模型和人工的性能划分:
    1. Known known(模型的认知+可以通过正确的算法解决问题):机器学习模型的预测可信、准确。模型当前状态。
    2. Known unknown(模型的认知+需要人工解决):预测不可靠。采用不确定性采样。
    3. Unknown known(模型认知范围之外的+可以通过正确的算法解决问题):预训练模型可以应用于新的任务。迁移学习
    4. Unknown unknown(模型认知范围之外的+需要人工解决):机器学习模型的空白领域。需要应用多样性采样
  15. 广义的human-in-the-loop机器学习架构是一个将人和机器组件相结合的迭代过程
  16. 可以采用一些基本的标注技术开始创建训练数据。
  17. 人机交互为我们提供了用于设计human-in-the-loop机器学习系统用户体验组件的框架。
  18. 迁移学习可以将一个任务的模型应用于另一个任务,并通过少量标注数据构建更准确的模型。

猜你喜欢

转载自blog.csdn.net/weixin_45647721/article/details/127381477