knowledge-graph-learning
knowledge-graph-learning copied to clipboard
EBOOK-2018-An Introduction to Active Learning
Summary:
来自figure eight的关于AC的介绍资料
Resource:
Paper information:
- Author:
- Dataset:
- keywords:
Notes:
课题:快速标注的同时,标注那些更加具代表性的样本
Not all examples carry the same quality of information. Some data is going to be redundant. Identifying the best instances to train a model happens at two key times: before the model is even built and while the model is being trained. The former is called “prioritization(优先顺序).” The latter is called “active learning.” (每个样本包含的信息的质量是不一样的。一些数据是重复的。辨别一个好样本有两个关键点,在模型构建前,和模型构建时。前者叫作优先级,后者叫作主动学习。)
active learning is a prime example of the marriage of human and machine intelligence. Humans provide the labels that train the model (labeling faster), the model decides what labels it needs to improve (labeling smarter), and humans again provide those labels. (AC是人类和机器合作的例子。人类提供标签给模型,模型则决定需要哪些标签)
How AC work
决定是否选择一个特殊的样本取决于,获取这个样本的成本和这个该样本带来的信息质量的差。
下面是3种在线流式的取样方法:
-
Pool-based approaches
- 在选择未标注样本之前,在整个数据集上做验证
- 随机从有标签的数据中抽选样本(A),然后生成一个初始的分类器(如何挑选是一个问题)。然后分类器在未标记的数据集上选择样本来推荐
- 然后人类给给些推荐的样本打标签,作为新的样本反哺给模型(B),然后新训练好的模型(A+B)选择那些它不好确定的样本(如何确定不确定性)推荐给人类
- Pooling是一个memory-greedy的方法,如果标记的预算是确定的话,这是个好选择。这是因为pooling会去选择那些最值得标注的样本
-
Stream-based selective sampling
- 需要模型决定将一个未标记的样本标记后,是否对训练有益
- 从一系列未标注的样本里,选择那些“有趣”的未标注样本。这种“有趣”有时候代表贪婪,比如大量选取超过所需要数量的某个标签的样本
-
Membership query synthesis scenario
- 不适合大多数情况
- 保证那些被合成的数据被首先标注
- 适合的场景,比如收据,或搜索,这种场景下,比起理解,构建合成数据反而更可行
- 总之pooling方法对于AC来说更容易管理预算
从3种AC的策略来说,pooling是最实用的
HOW DOES AN ACTIVE LEARNER DECIDE WHICH ROW TO LABEL?
下面都是针对pooling方法的,如何选取下一个要标注的数据?
-
Uncertainty sampling
- 首先模型在一小部分标注好的数据上训练(首先要有一个初始的有标签数据集),然后在未标注样本上预测
- 根据推测阶段预测的信息收益,算法决定下一个要标注的样本。
- 下面是一些uncertainty sampling的方法:
- A least confident, 选取确信度最低的样本。这是因为模型可以不用推荐那些它已经学习好特征的样本。这种方法的一个缺点,如果初始的数据质量很低的话,会污染整个训练数据
- B margin sampling, 针对一个样本,如果两个标签的margin很小,提出两个标签的推荐。举个例子,模型预测“这个样本可能是狗,也可能是猫,但我不确定”。标注这些例子可以让模型更能区别两个标签的特征
- entropy based sampling
- 与uncertainty sampling关注confidence和margin不同(将某个label区分清楚),只关注variance和confusion(即从数据全体上将熵最小化)
-
Query by Committee (QBC)
- 预算友好,比uncertainty sampling需要更多算例。首先有一部分标记好的训练数据,但不是用单个模型去选择嘴不确定的样本,而是使用由模型们组成的委员会,该委员会针对原始的训练数据和active learners自身。
- 简单说,就是找到未标注数据中有最高分歧的样本。即不同模型中分歧最高的哪些样本
- 利用了ensemble方法的投票系统
-
Expected impact
- 简单来说,该方法 尝试预测一个样本对整体模型带来的性能提升。
- A expected model change: 判断哪些样本能给模型带来最大的正面提升
- B expected error reduction: 判断哪些样本能给模型带来最大的错误缩减。运算量比较大
- 简单来说,该方法 尝试预测一个样本对整体模型带来的性能提升。
-
与uncertainty sampling和QBC不一样,Expected impact将数据空间作为一个整体来看待,而不是去关注某一个未标记样本。这种区别带来的一个优点就是,很少回去选择那些异类
-
Density-weighted methods
- 整体数据是有一个潜在分布的,而该方法就是选择那些最能代表这个分布的样本。active learner会从未标注数据中选择那些最具特征的样本。这种方法的一个优势是样本中比例最高的那一类标签的准确率会非常高。但可能会伤害其他一些样本比较少的标签类别。
上面这些模型有共同的部件:
- 首先要在有标签的数据集上训练(通常是人类完成的)
- 然后不断提出下一个需要标注的样本给人类。方法虽然不同,但是目标是一样的,让标注者更好地理解整个数据集。
这些不同的策略其实是可以互相补强的。
what are the best use cases for active learning? Is it right for your project?
早点选择ac策略比早点构建模型更有利。
-
Does your model require a lot of training data to reach the right level of accuracy?
- If yes, 那么AC是一个好选择。因为需要的训练样本会变少
-
Is your model prone to underfitting? Is it too simplistic?
- If yes,ac是一个好选择。ac选取样本的时候,会解决欠拟合,因为选取的样本会有助于区分不同标签。
-
Do you have too much data but aren’t sure which rows are the most informative?
- If yes,ac是一个好选择。
-
Does your data have a lot of known duplicates?
- If yes,ac是一个好选择。大部分ac不会选取那些重复的标签样本去标注
-
Are you running out of labeling budget but need more labels?
- If yes,ac是一个好选择。毫无疑问能减少所需预算。
-
Are your labels particularly expensive?
- If yes,ac是一个好选择。
WHEN ACTIVE LEARNING MIGHT NOT BE THE RIGHT CHOICE
下面是一些不适合使用AC的情况
- Are you using a pre-trained model?
- Does your model require a small amount of data?
- Does your data have tons of features/columns? 维度诅咒的问题让模型训练变得困难,ac的效果会变差
- Is your model prone to overfitting? 模型可能回去选择那些已经能辨别正确的标签的样本,导致过拟合
ARE THERE PARTICULAR DATA TYPES THAT WORK BEST FOR ACTIVE LEARNING?
Active learning can work for any application. NLP, computer vision, speech-to-text, video
SOME FINAL THOUGHTS
The fact remains that active learners get better accuracy with fewer rows than generic supervised approaches. And that’s never a bad thing. Especially when it frees up a little budget for the R&D project you’ve been waiting to try.