中级农民
积分 104
大米 颗
鳄梨 个
水井 尺
蓝莓 颗
萝卜 根
小米 粒
学分 个
注册时间 2021-12-1
最后登录 1970-1-1
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
第一部分:HITL基本概念
Human-in-the-loop 或HITL被定义为需要人工交互的模型。
HITL 与实时、虚拟和建设性分类中的建模和仿真(M&S)相关联。HITL 模型可能符合人为因素的要求,如模型的情况。在这种类型的模拟中,人类始终是模拟的一部分,因此以一种即使不是不可能精确再现也很难甚至是难以精确再现的方式影响结果。HITL 还可以轻松识别其他模拟方式可能不容易识别的问题和需求。
HITL通常被称为交互式模拟,它是一种特殊的物理模拟,例如:其中物理模拟包括人类操作员,例如在飞行或驾驶模拟器中。
第二部分:基于Robert Munro 《human-in-the-loop Machine learning》书籍:
1.AI的“智能”不能仅来源于训练数据,需要包括人类反馈feedback--人和机器学习算法彼此交互来解决问题的正确方式是什么?
标注和主动学习是human-in-the-loop 机器学习的基石, 它们决定了如何获取训练数据,以及当没有足够的预算或时间对所有数据进行人工标注时 ,将哪些数据正确地放在标注者面前 是更合适。
迁移学习使我们能够避免冷启动,使现有的机器学习模型快速适应新任务。
1.1 Basic principles
使ML更准确 accuracy/提高机器学习模型的准确性。
使ML更快达到所需的准确度 - 参数 /更快地达到机器学习模型的目标准确率。
使人类更准确 /结合人类和机器智能以最大限度地提高准确性。
使人类更高效 /
通过机器学习协助人工任务以提高效率。
Human-in-the-loop机器学习是一组在AI应用中结合人类和机器智能的策略集合。
model:
terms:
transfer learning: using an existing model as a starting point for training
abc 过程terms
123 阶段terms
a. training data: the labeled items become the training data
1. training machine learning: use training data to create a model to predict labels
b. deploying model: trained model is deployed to predict labels on raw data
2. deploying machine learning: predict the most likely label
c. active learning: select unlabeled items that are interesting for humans to look at
3. annotation: human label items
stream of raw data through stage 2 become data with predicted labels
1.2 annotation: manual - time-consuming
人工标注
有些标注-就打上一个0或1的标签
有些标注也挺复杂-在一段视频中标注所有物体的位置等等。
标注工作对模型的好坏也有着非常大的影响,甚至和模型本身一样重要。
学术界倾向于保持数据集不变,因为这样便于比较出各种算法孰优孰劣。
工业界,数据集总是在变化 。一是因为不断增加标注数据对于提高模型性能还是很重要的,二是实际环境下数据的性质会随着时间的推移而产生变化,在新生产生活中用到的模型需要不断学习和适应新的数据环境。
标注还有一个常见的问题就是人工错误带来的噪声。
随机的噪声可能会帮助算法避免过拟合,进而更加准确和鲁棒,但是人类的错误往往都是有一定倾向性、主观性的,就会给数据引入不可恢复的偏差。
1.3 Active Learning: improving the speed and reducing the cost of training data
主动学习策略
标注数据对于监督学习是至关重要的。有三种基本的主动学习策略:
不确定性采样(Uncertainty Sampling)、
多样性采样(Diversity Sampling)
和随机采样(Random Sampling)。
一些文献中会将不确定性采样和多样性采样称为“Exploitation”和“Exploration”
Random Sampling 就是随机采样-一般都用在标注初期。
Uncertainty Sampling 是指对在模型的决策边界的未标注样本进行采样。因为这些样本是当前模型非常难以确定的,极容易被标注错误的。所以先对这些样本进行标注可以帮助更好的确定决策边界。
Diversity Sampling是指对一些不常见的或者其特征从未见过的样本进行采样。这种策略可以让模型对数据空间有更完整的理解。- 因此也有些文献将多样性采样称为异常值检测/异常检测“Outlier Detection” and “Anomaly Detection”。还有一种多样性采样是代表性样本采样,找到最典型的、最符合标签的样本。
一般来说,这些策略都会混合使用。
而且主动学习是一个迭代的过程,新标注的样本加入训练数据后,模型会重新训练,然后再根据新模型进行下一轮样本挑选。
迭代的次数和每次迭代需要新标注的样本数是视具体任务而定的。
主动学习是一个不断迭代的过程。 每个迭代过程中,都会选择一些数据进行人工标注。(让用户在使用过程中自动的对模型进行训练)然后使用新的人工标注数据重新训练模型。重复上述过程进行迭代。
迭代周期本身可以是多样性采样的一种形式。想象一下,您只使用了不确定性采样,并且在一次迭代中仅从问题空间的一部分中采样。你可以解决问题空间那部分的所有不确定性;
因此,下一次迭代将集中在其他地方。 通过足够的迭代,或许根本不需要多样性采样。
不确定性采样的每次迭代都将关注问题空间的不同部分,并且这些迭代一起足以获得用于训练的不同数据样本。
一个能够快速适应的软件系统就是不断学习
理论上应该始终用保留数据中的随机样本对模型进行评估,但是实际上很难确保获得真正的随机样本。如果按关键字、时间或其他一些因素对正在处理的数据进行了预过滤,则该样本已经不具有代表性了。该样本的准确性不一定表示将部署模型的数据的准确性。
如果无法定义有意义的随机评估数据集,则应尝试定义一个具有代表性的评估数据集。
如果定义了一个具有代表性的数据集,那么真正的随机样本对于我们的数据集是不可能的或没有意义的。 应该基于我们应用数据的方式定义针对我们用例的代表性数据集。
"我们可能希望对比较关注的每个标签选择数据点、每个时间段的特定数字或聚类算法输出的特定数字来确保多样性。"
或许希望有不同标准的多个评估数据集。一种常见的策略是从与训练数据相同的数据中抽取一个数据集,并从不同来源抽取至少一个域外评估数据集。域外数据集通常来自不同类型的媒体或不同的时间段。
例如,如果自然语言处理(NLP)任务的所有训练数据都来自历史新闻文章,则域外数据集可能来自最近的社交媒体数据。对于真实的应用,应该采用域外的评估数据集,这是测量模型泛化能力的最佳指标而不是简单的过拟合特定数据集。然而,这种做法对于主动学习来说可能很棘手,因为一旦开始标记该数据,它就不再是域外的。如果可行的话,最好保留一个域外数据集,不会对其应用主动学习。然后,可以评估主动学习策略的泛化能力,而不是简单地适应和过拟合域内数据。
一个很好的例子是视频中呈现的大量数据。例如,为视频里每帧中的每个对象拉框是非常耗时的。假设视频为自动驾驶汽车采集的,其中包含大约20个需要拉框的对象(汽车、行人、标志等)。每秒30帧,即30帧60秒20个对象,因此一分钟的数据需要人工创建36,000个框!即使是最快的人工标注员也需要至少12小时来注标注。可以通过数据看出这个问题有多棘手。
大多数场景下标注都是比较棘手的。没有足够的预算或时间来标注越来越多的数据。这可能是采用机器学习的首要原因。如果有足够的预算和时间人工标注所有数据,我们可能不需要自动化标注任务。但是没有
什么时候使用主动学习?
当我们受到时间或成本的限制,只能标注一小部分数据,并且随机抽样无法涵盖数据的多样性时,就应该使用主动学习。
"数据评估问题
在学术界,一般都是训练集、测试集、验证集都是从同一批大数据集中划分出来,保持了相似的数据分布。(或者使用多个标准化训练数据集)
在实践中,往往不是这样的,数据总是在变化。比如模型在ImageNet的测试集上可以表现出接近人类水平的准确度,但是一旦将模型应用于更广泛的数据,比如测试集换成社交网络上的照片,准确度立马大幅下降。"
1.4 Machine Learning and Human-Computer Interaction - HCI
交互界面的重要性
拿机器翻译来说,人在机翻的结果中去纠正错误,甚至要从头翻起,翻译速度并没有提升。
现在有一些工作,是从用户界面上进行突破。比如在人类键入翻译的过程中,给出机器预测的下一个词/句子之类的。 这个就有点像搜索问题时给出的提示,
搜索引擎就是一个时长被我忽略的人机交互的很好的例子。
利用主动学习的标注任务也可以设计一些交互界面,来提升效率。 - 谈到交互我们就涉及到了“human”
先说人类的某些bottleneck
什么会影响人类的感知?
人类的注意力、情绪、环境等都可能会影响标注的结果。
1---语言学研究有一个实例:标注者的任务是听录音区分澳大利亚和新西兰口音。研究员会将将猕猴桃或者袋鼠的毛绒玩具放在标注者房间的架子上,但是并没有向标注者提及这些东西,只是把它放在房间中。结果是房间里有袋鼠的,标注者更倾向于是澳大利亚口音,反之亦然。这个项目叫玩具和语言感知,挺有意思。
2---还有个例子就是数据的顺序,或者叫重复启动(repetition priming)。比如一个标注正负面情绪的工作,当前99条数据都是负面的,那第100个就很容易被标为负面,即使真实标签应该是正面。这就是重复工作导致的注意力丢失带来的错误。
solution --- 通过评估ML的预测来创建标签
这个方法可以将复杂标注任务转换为二分类标注任务。!!!人类只需要做出“confirm or reject” 就能完成打标签的工作。
!!!数据添加标签的human-in-the-loop的机器学习过程。该过程可以应用于!任意标注流程:!给新闻添加主题,!依据运动类型对运动照片分类,!识别社交评论的情感,!根据内容对视频进行评级,等等。!在所有场景中,可以利用机器学习对标注的一些过程!进行自动化或者帮助人工提效。
人机交互是计算机科学中的一个成熟领域,现在对机器学习变得尤为重要。当为人类构建用于创建训练数据的界面时,我们正处于一个认知科学、社会科学、心理学、用户体验设计和其他一些领域的交叉领域。
通常,一个简单的@Web表单@就足以收集训练数据。
二元响应是最简单的交互,也是质量控制的最佳选择。如果可以简化标注项目或者将其变成二元任务,则更容易设计直观的界面并实现质量控制
人在环的标注补充解释:
!对于创建训练数据之类的重复性任务的人员!来说,移动鼠标这类效率低下的操作应该尽量避免。
如果整个标注过程都可以在键盘上进行,则标注员的节奏会得到极大提升,这个过程包括标注本身、表单提交和导航。
如果必须包含鼠标,则应该获得丰富的标注以弥补较慢的输入。
为了获得准确的训练数据,必须考虑人标注员的@关注点、@注意力范围以及可能导致其犯错或改变其行为的上下文环境@。
!使用机器学习模型来标注的利弊
利用机器学习及确保标注质量的一种方式是!人工利用简单的二元形式确认或者拒绝预测结果来对模型进行评估。这种技术可以很好地将较复杂的任务转换为二元标注任务。如让标注员确认对象拉框的框边界是否正确,这是一个简单的二元问题,并不涉及复杂的编辑/选择界面。类似让标注员确认某个单次是否在某一段文本中,比提供一个界面让标注去标注文本高效的多。
设计标注界面的基本准则 - 目前二元策略:
尽可能将问题转化成二元选择。
确保预期的结果是多种多样的,避免启动效应。
使用现有的交互约定。
允许使用键盘
1.5 Machine Learning-Assisted Human vs Human-Assisted Machine Learning
机器帮人还是人帮机器
Human-in-the-Loop 机器学习可以有两个不同的目标:
通过人工输入!使机器学习应用程序更加准确,
以及在机器学习的帮助下改进!人工作业。
这两个目标也可以结合起来。
case:
机器翻译
机器在人做翻译工作的过程中,!给出下一个词或短语的预测!,来提升人的效率,这是机器辅助人来处理任务。随着时间推移,机器翻译系统也!从人类的选择(accept/reject)的过程!中,变得越来越准确。所以就同时实现了两个目标:人更高效,机器更准确。
搜索引擎
人们经常忘记搜索引擎是人工智能的一种形式。当你搜索之后,!点了第4个链接,而不是第一个的时候!,你就已经在!训练你的搜索引擎!了。
1.6 Transfer learning to kick-start your models
迁移学习/预训练模型帮助你不用从头开始训练你的模型。
现有模型已经有了一定的对数据的描述能力,在@最后一层@上重新训练,便可以适应新的数据和标签。这个过程相当于站在已有模型的肩膀上了。
比如CV领域的@在ImageNet数据集@上构建模型,来学习区别图像中的纹理、边缘等。在新领域使用时,只需要@重新训练最后一层,或者最后几层@。NLP领域的迁移学习,更多地以词嵌入的方式迁移。
1.7
作者提出了四个象限:
Known Knowns:
what your Machine Learning model can confidently and accurately do today.
This is your model in its current state.
Known(ML) Unknowns(You):
what your Machine Learning model cannot confidently do today.
You can apply Uncertainty Sampling to these items.
Unknown Knowns:
knowledge within pre-trained models that can be adapted to your task.
Transfer learning allows you to use this knowledge.
Unknown Unknowns:
gaps in your Machine Learning model where it is blind today.
You can apply Diversity Sampling to these items.
按行来看,是根据模型的知识来划的。
第一行是模型知道的事情。
第二行是模型认知以外的事情。
按列来看,是根据是否需要人的参与来划分的。
左侧的列是可以通过ML来解决的,比如一些模型不知道的知识,可以通过迁移学习来解决。
右侧的列表示可以通过主动学习或是标注来解决。(人参与)比如模型也没见过的样本等等,这就涉及到@多样性采样@了。
Known Knowns是”我知道我预测的是对的“,Known Unknowns 代表我知道这个事情我不知道,这个预测我不确定,对应的就是刚才讲过的@不确定性采样@。
广义的human-in-the-loop机器学习架构是一个将人和机器组件相结合的迭代过程, 可以采用一些基本的标注技术开始创建训练数据。
标注的人!可以是用户!
人机交互-为我们提供了用于设计human-in-the-loop机器学习系统!用户体验组件的框架。!
迁移学习-将一个任务的模型应用于另一个任务,并通过少量标注数据构建更准确的模型。
https://blog.csdn.net/qq_41977459/article/details/127278060
附上一个政府服务的case⬆️ 有时间再为大家解读
跪求大米 感谢!!!会回加 感谢
上一篇:
有无推荐入门的ML System Design 资料 下一篇:
【恳请点评我的DNN学习计划】请大家推荐一下自己用过的DNN学习资源