分类:用不可靠标注训练可靠模型

来自Big Physics


研究背景

综述文献的识别工作中,我们需要训练一个分类器把论文识别为综述论文和普通论文,从一个做了标记但是标记本身可能有错的数据集出发。当然,第一部分属于工程问题,如果没有第二部分。于是,针对第二部分,也就是不可靠数据的问题,我们提出来(其实前人也比我们早几个月提出了[1])了交叉验证和数据补充的方法,来得到可靠的模型。

在那里,具体做法如下:

  1. 基于所有标记数据分成训练集和测试集,训练出来一个分类器,称之为零代模型,然后对测试集的样本运用分类器得到结果。
  2. 这个切分数据集和训练的过程重复多次(系综学习),保证每一个样本都得到多次的测试,记录测试结果中每一个分类结果的频率。
  3. 如果某个结果频率非常高(定一个阈值),并且这个结果和原始标记不同,则记为错误标记。同时,那些每个结果频率都差不多的,则记为不稳定标记。去掉所有错误标记和不稳定标记,训练分类器,称为一代模型。
  4. 把错误标记和不稳定标记做人工检验(主动学习),更新数据集。重新训练分类器,称为二代模型。

为了验证这个做法的效果,我们需要一个标记完全正确的最终检验集。这个可以直接拿过来一个标记可靠的整个数据集,留出最终检验集,然后把剩下的数据人为随机搞错一部分当做原始数据集。或者,在我们的综述文献的情形,我们只能够选择那些稳定和正确的数据,假设它们比较可靠,然后用人工标注的方式标注一定量的错误标记和不稳定标记,也放到最终检验集。最后剩下的数据当做原始数据集。我们也可以依靠期刊来构造另一个总数文献的最终检验集——从只发综述论文的期刊中选择一些综述论文,从只发普通论文的期刊中选择一些普通论文。具体检验方式见下一节。

有了这个发现错误标记和处理错误标记的方法之后,启发我们进一步思考:是不是可以从一个准确率非常非常低(例如,略大于0.5)的数据出发,不断地使用上面这个方法来最终得到一个准确率高的分类器呢?当然,这个分类器的最终准确率还受到分类器本身的约束(也就是就算数据标记完全可靠,分类器也会有一个自身的准确率的问题)。这就是我们这个项目的研究问题。

综述文献分类器的效果检验

在原始数据集的基础上,构建分类器模型。其中错误标记和不稳定标记这两种样本的发现方式和上面一样——系综学习,然后可以运用主动学习来修改这些标记:对于错误标记,我们可以选择保留、去掉、翻过来、人工标记四种方式;对于不稳定标记,我们可以选择保留、去掉、人工标记三种方式。分类器模型用这两种处理方式来标记,例如模型3.3是把原始数据集中的的错误标记人工标记一下,人工标记原始数据集中的不稳定标记,然后训练得到的分类器。模型编号n.m的含义:第一位n是错误标记处理方式(0——保留,1——去掉,2——直接翻过来,3——人工标记),第二位m是不稳定标记处理方式(0——保留,1——去掉,2——人工标记)。也可以顺序编号,l=n*3+m。对这个12个模型,在最终检验集上检验准确率。

在对比准确率的时候,最关键的事情是,看一下,是不是随着同一类因素的增加(n从1到3,m从1到2),准确率在提高。

研究问题和方案

在这里,我们研究是否可以,以及如何,从一个标注准确率非常低的分类标注数据出发,得到一个标注准确率高的数据。不过,由于标注准确率很难测量,我们用分类器在最终检验集上的准确率来间接表示。

假设我们有一个在完全准确的数据上表现还不错的分类器。假设我们有完全准确的标记数据。我们留出来一部分数据当做最终检验集。另外一部分当做原始数据,人为随机把标记反转,仍然正确的标记的比例q。

在这个原始数据上,我们用上面的可靠的分类器来做系综学习,交叉检验。

  1. 在所有原始数据上训练分类器,称为分类器0,这个准确率记为p0
  2. 减数据阶段:
    1. 从数据中训练出来分类器
    2. 找出来数据中的错误标记和不稳定标记,去掉
    3. 重复前两步,直到基本上不能再去掉数据,得到分类器1。这个准确率记为p1。中间有可能会遇到训练数据太小的问题
  3. 无人工标记的加数据阶段1:
    1. 把分类器1用于所有原始数据,再次发现分类结果和标记结果不同的数据,去掉,剩下的其他数据拿来当做新的原始数据,重复减数据的过程,得到分类器1.1
    2. 重复这个过程(用分类器1.1替换分类器1),直到稳定——最终准确率的值不再变化,得到分类器2,这个准确率记为p2
  4. 无人工标记的加数据阶段2:
    1. 把分类器1用于所有原始数据,再次发现分类结果和标记结果不同的数据,翻过来,放回到剩下的其他数据,拿来当做新的原始数据,重复减数据的过程,得到分类器1.1
    2. 重复这个过程(用分类器1.1替换分类器1),直到稳定——最终准确率的值不再变化,得到分类器3,这个准确率记为p3
  5. 有人工标记的加数据阶段1:
    1. 把分类器1用于所有原始数据,再次发现分类结果和标记结果不同的数据,人工标记,放回到剩下的其他数据,拿来当做新的原始数据,重复减数据的过程,得到分类器1.1
    2. 重复这个过程(用分类器1.1替换分类器1),直到稳定——最终准确率的值不再变化,得到分类器4,这个准确率记为p4。记下来人工标记和直接翻过来不同的数量。另外,由于已经有完全标记准确的数据,实际上人工标记的过程不需要人工来做。因此,一定要实现有一个标记准确的数据
  6. 有人工标记的加数据阶段2:
    1. 对所有数据,用系综学习,发现错误标记和不稳定标记,人工标记,拿来当做新的原始数据
    2. 重复这个过程,直到稳定——最终准确率的值不再变化,得到分类器5,这个准确率记为p5。记下来人工标记的数量。

画出来p-q函数,包含p0,p1,p2等等等等。q接近0.5的时候,会很有意思。对于q<0.5的情况,可以把标注结果反转一下,重新当做原始数据用。当然,也可以傻傻地直接用,这个时候,原则上应该是得到很低的最终正确率才对。

结果

参考文献

  1. 补充一下

本分类目前不含有任何页面或媒体文件。