P-N学习介绍

来源:互联网 发布:算法c语言实现 编辑:程序博客网 时间:2024/04/28 18:06

写在前面:近期突发奇想要看一下Tracking-learning-Detection这篇文章,看到论文才发现,里面东西多着呢,首先也是最主要的一个就是这个P-N学习,看论文那么久,很难搞懂~~~这就记录一下自己的理解,希望能帮助到大家。
这个是我查看了PN-learning论文之后连翻译带理解写下来的,如果有同学想要看原文的话,这里给上原文的链接:PN-learning:Bootstrapping Binary Classifiers by Structural Constraints

1、介绍

P-N学习使一种利用带标签样本(一般用于训练分类器)和不带标签的样本(一般用于测试分类器)之间存在的结构性特征来逐步学习,训练两类分类器并改善分类器分类性能的方法。

P-N学习主要包含有以下四个部分:
1)一个待学习的分类器;
2)训练样本集–一些已知类别标签的样本;
3)监督学习–一种从训练样本集中训练分类器的方法;
4)P-N experts–在学习过程中用于产生正(训练)样本和负(训练)样本的表达函数;
这四个部分之间的关系如下图所示:
这里写图片描述
这个是标准的原图。大家肯定看着不是很明白其中的意思,给出大家一张我自己的手绘图(~!~)
这里写图片描述
在我的手绘图中,我标出了P-N学习的四个部分所包含的东西,正如图中所标注的那样,这样的话就很明朗了,分类器、训练数据、训练等

2、详细分析

在④中,会发现有一个产生正负样本的过程,这个样本的产生是由正约束(Positive Constraint)和负约束(Negative Constraint)控制得到。正约束和负约束用来限制测试样本的标签赋值过程。PN学习对分类器在测试样本上的分类结果进行评估,找到那些分类结果与约束条件相矛盾的样本,重新调整训练集,并进行迭代训练,直到满足某个停止条件,停止训练。在目标跟踪过程中,由于被跟踪目标的形状、姿态等容易发生变化,造成目标跟丢的情况时有发生,所以,在这种情况下,对被跟踪目标的在线学习和检测是个很好的策略。而PN学习在这里就可以发挥出大作用了。
现在大多数的学习算法都是假设测试样本彼此独立的,然而,在计算机视觉的应用中,有些测试样本的标签却存在彼此依赖的关系。标签之间存在的这种依赖关系,我们称之为结构性的。例如:Object Detection(目标检测)过程中,我们主要的任务就是在图像当中找到可能存在目标的区域,同时标注出区域所属的标签。在Object Tracking(目标跟踪)过程中,紧邻被跟踪目标运动轨迹的区域,可以认为是前景标签,而远离轨迹线的取悦,就认为是背景标签。而在前面提到的正约束则表示所有可能的标签为正的模式,例如,此处的紧邻轨迹的区域,负约束表示所有可能的标签为负的模式。
P-N学习过程:
①准备数据集(一部分带标签的和一部分不带标签的)
②利用带标签的训练样本去初始化分类器,同时,利用训练样本对约束条件进行相应的调整
③利用分类器对不带标签的样本进行标记(就是给未带标签的样本打上标签),并找出分类器赋予的标签和约束条件不符合的那些样本进行重新标记
④把重新标记的样本加入到对应的正负样本集中进行重新训练分类器。
重复迭代上述过程,直至满足某个约束条件。

下面这个是我在网上查找资料的时候找到的一个看着相对比较好的介绍过程,也贴过来给大家看看。
这里写图片描述
这里写图片描述
这里写图片描述

结语

大概介绍这么多,核心思想就是那四个部分的关系,把那个图搞明白了,基本上这个PN学习的东西就明白了。如果大家有看到更好的介绍的资料,可以在评论区给我留言。

0 0