P-N学习

来源:互联网 发布:单片机如何控制12v电机 编辑:程序博客网 时间:2024/04/28 10:13

      本文翻译自Zdenek Kalal的论文Tracking-Learning-Detection ,PAMI 2010,其中还夹杂我自己的理解,如有错误,还望包涵

       另外,有关P-N学习的更详细知识,可参考Zdenek Kalal的论文PN-learning:Bootstrapping Binary Classifiers by Structural Constraints, Zdenek Kalal,CVPR2010



1.简介

       了解TLD的都知道,P-N学习是TLD中的学习模块,即对应着Learning部分,该模块的目标是通过在线处理视频流从而提高目标检测器(对应着TLD中的


Detection部分)的性能,在出现的每一帧中,我们的目的是可以对当前的检测器进行评估,获取它的误差,然后对目标模型作出更新修正以避免误差再次出现。


       P-N学习的基本思想是通过两种不同类型的“专家experts”,即P和N,来获取检测器的误差,其中前者负责识别弃正(错分为正样本的负样本),后者负责


识别纳负(错分为负样本的正样本),工作彼此独立,互不干扰,但是要知道,这两个专家也会有出错的时候,所以他们可以相互补偿以降低出错(在一定条件


下,只要产生的误差对结果的影响微不足道或者在允许的误差范围内,都认为是有效的),因为他们之间彼此独立。


       另外注意,这里说的正负样本分别指的是前景和背景。

2.结构图

       在开始介绍之前,先来看看P-N学习的主要结构图:


         这是从原论文中截取的结构图,可能看的不太直观,下面这张可能表达的而更加清晰:


不难发现,它主要由四部分构成:

1)带标签的训练样本集;

2)有监督训练;

3)待学习的分类器;

4)P-N“专家”,即训练过程中生成正负样本的一种表达函数;

3.原理分析

令:

x:样本特征空间中的某一个样本;

y:类别标签,(+1,-1);

Xu:无标签样本集;

Xl:为带标签的样本集;注意,l《u;

Y:标签集;

P-N学习的输入:Xu和Xl;

P-N学习的任务:先从Xl中学习分类器g:x -> y,再利用Xu提升(bootstrap)分类器范化性能;

其中分类器g是通过参数估计得到的,因为训练过程其实就是一个参数估计的过程。

原理步骤:

1)训练过程从Xl开始,然后利用这些样本通过有监督的学习的方式来训练分类器,即估计初始化的参数;

2)训练完毕开始学习过程,通过监督迭代自举的方式来处理:第n次迭代中,由上一次迭代得到的训练好的分类器开始对整个Xu样本集进行分类,对样本集中的任一样本有,yu(n)=g(xu|Θn-1)  ;

3)P-N专家开始对上述的分类进行评估分析,决定是否要弃真或纳伪,从而将错分样本的标签做了改动,然后重新加入训练集;

4)利用新加入的样本重新训练分类器;

5)循环迭代,直到迭代收敛到一个值,或者满足预设的终止条件,结束迭代;

       很明显,从上述步骤中可以看出,这一学习的关键核心在于评估分类误差,这是整个P-N学习的重要所在。

从上面第三步中也可以总结出两个专家到底在其中扮演了什么角色,具体干了什么活:

P专家评估那些真实类别为正却被检测模块中分类器分类成负的样本,然后作出评估后按正标签送入训练集,因此P专家会生成正样本,提高了分类器的范化能力;

N专家评估那些真实类别为负却被检测模块中分类器分类成正的样本,然后作出评估后按负标签送入训练集,因此N专家会生成负样本,提高了分类器的辨伪能力;

4.P-N学习与监督自举法的联系

监督自举的含义:

     将P-N学习放到更广泛的背景下,并假设Xu有已知标签,基于这一假设,很容易识别出那些被错分的样本,然后将他们按照正确的标签加入到训练集,

这一策略被称之为监督自举法;

采用这种策略的分类器比较关注判别边界,分类效果也通常会优于用随机采样训练集训练的分类器,而P-N学习的基础正是基于关注判别边界这一思想,

不同的是P-N中Xu的标签未知,因此,P-N学习可以看做是从标准自举法到无标签情形的范化,而这些无标签的而样本是通过p

-N两个专家来估计得到的。当然专家也会出错的时候,这时这些误差就会通过下一次迭代训练传播,就会影响P-N学习的稳定性,

但是只要在允许的误差范围就还好






2 0