batch 模式主动学习的元学习方法
摘要
什么是 batch 模式主动学习?挑选一批样例,立刻标注用于训练。
- 优点:
-
- 最符合逻辑。不必等整个挑选过程完成后,再训练。而是边挑选,边训练。
-
- 能够最高效地利用人力进行标注。
本文的工作是,利用元学习来学习主动学习算法,在一个小训练集上,挑选一组最佳样例(未标注)来标注加入训练。
实验结果表明,本文提出的主动学习算法比传统的启发式方法更好。所构建的带标签训练集,能更好地改善分类器。
本文的缺点是没有提供源代码。
1 引言
主动学习方法的主流方法是启发式方法,例如,挑选的样例应该具有信息性、多样性、代表性。根据启发式挑选策略,选取 batch 中的最佳样例,这种启发式方法可以扩展到 batch 模式。但是,这会明显导致模型性能不最优,而且会产生过多的冗余样例。虽然有一些针对 batch 模式主动学习算法的研究,但是这些方法的复杂度很高,难以用于大数据集。而且,对主动学习的大多数研究工作都假设未标注样例至少属于我们感兴趣的某个类别。但是,真实数据并不服从这些约束条件,未标注数据通常由干扰项组成,这些干扰项并不属于我们要考察的任何类别。启发式方法可能认为这些干扰项对模型很重要,其实不然。因此作者对 batch 模式主动学习方法的研究兴趣如下:
- 应该直接优化其在挑选样例方面的效力。
- 挑选样例的算法复杂度应该是线性复杂度。
- 应该能够正确处理干扰项。
已有研究工作对主动学习的元学习方法进行了探索,但是还没有用于 batch 模式,也没有用于干扰项。
作者在小样本学习框架下,制定 batch 模式主动学习任务,目标是学到一个元学习模型来改善这个问题。作者在原型网络(Prototypical Networks )的基础上,增加了一个主动学习模型,用于挑选样例进行打标,来提高模型的分类准确率。实验表明,这种新方法比常用的启发式方法更好。
2 batch 模式主动学习的元学习方法
本文的另一个缺点是没有给出结构图。这张图是我根据自己的理解画的。
未标注数据集 U = { x ~ 1 , . . . , x ~ M } U=\{\tilde x_1, ..., \tilde x_M\} U={ x~1,...,x~M}
小样本学习任务参数 N-way,K-shot,B-batch
选出 U 的一个子集 A = { x ~ 1 , . . . , x ~ B } A=\{\tilde x_1, ..., \tilde x_B\} A={ x~1,...,x~B} 用于标注,然后添加到支持集 S,得到一个新的支持集 S ′ = S ⋃ A S'=S\bigcup A S′=S⋃A。
S 的元素个数是 N*K,主动学习挑选样例后,只给 S 中的部分类别添加样例?还是所有类别都添加?每个类别添加的样例数量是否相同?B 的数值应该怎么设定?
目标是用 S’ 最大限度地提高分类器在查询集 Q 上的性能。
样例挑选过程:
- A 的概率 p ( A ) = p ( x ~ 1 , . . . , x ~ B ) = ∏ i = 1 B p ( x ~ i ∣ x ~ 1 , . . . , x ~ i − 1 ) p(A)=p(\tilde x_1, ..., \tilde x_B)=\prod_{i=1}^Bp(\tilde x_i|\tilde x_1, ..., \tilde x_{i-1}) p(A)=p(x~1,...,x~B)=∏i=1Bp(x~i∣x~1,...,x~i−1)
- 假设已建立一个子集 A = { x ~ 1 , . . . , x ~ j ∣ j < B } A=\{\tilde x_1, ..., \tilde x_j|j<B\} A={ x~1,...,x~j∣j<B}
- 参数化分布 p ( x ~ ∣ A ) = p ( x ~ ∣ x ~ 1 , . . . , x ~ j ) p(\tilde x|A)=p(\tilde x|\tilde x_1, ..., \tilde x_j) p(x~∣A)