Batch-mode active learning:如何选择能带来最大模型改进的batch

数据挖掘 机器学习 主动学习
2022-03-04 18:49:31

我正面临一个问题,我想使用主动学习来改进我的分类器基本上,我可以从一组候选数据集中的一个(并且只有一个)数据集中选择数据。问题是选择哪一个?

换句话说,给定一组我可以用来改进我的分类模型的候选数据集,哪一个对模型的改进最大?我可以使用批次的目标函数中的一些指标(例如,平均值)吗?我是否需要对所有数据集的目标进行标准化?是否提出了用于推断模型改进幅度的指标?

在这个阶段,我的目标函数如下所示:

a  Uncertainty + (1-a) Diversity

其中a是权重因子,Uncertainty是给定数据点的模型预测中的不确定性,是Diversity数据点与训练人群之间距离的度量。

任何帮助将不胜感激。

干杯

弗朗茨

2个回答

您的问题实际上是主动学习的重点。您可能需要阅读有关主动学习的现有方法,才能找到适合您需求的方法。

我在这个话题上根本不是最新的,但传统的方法是在可用数据上训练几个模型,让它们预测所有未注释的实例,然后使用多数投票:模型倾向于同意的实例是“容易的”预测,而模型做出不同预测的那些是“困难的”,因此对于提高性能可能更有价值。

如果您有概率输出,则不确定性相当容易。只需将模型应用于未标记的数据集,然后选择具有最高平均不确定性的数据集。在二进制分类的情况下,这只是最低的mean(abs(p - 0.5)). modAL ( https://github.com/modAL-python/modAL ) 有一些实用程序,在多类情况下可能很有用,其中有几种可能的“不确定性”定义。例如,请参阅https://modal-python.readthedocs.io/en/latest/content/query_strategies/uncertainty_sampling.html

对于多样性,我想你可以测量你的训练集和每个数据集之间的平均距离或相似度。这假设您有一个有意义的距离或相似性度量。由您决定如何标准化它们以使它们具有可比性。

一些模型可能已经捕捉到不在训练集附近的点本质上不太确定,在这种情况下,这可能是多余的。有些可能不是(可能是最大边距分类器),但如果您怀疑来自输入空间不同部分的新数据集与训练集的行为不同,那么这些模型可能无论如何都不合适。