one shoting learning

来源:互联网 发布:淘宝评论没有了 编辑:程序博客网 时间:2024/06/05 18:05

One-shot learning

一.One-shotlearning是最近在计算机视觉领域一种研究解决目标分类任务的方法。然而大多数基于目标分类算法的机器学习需要成百上千的图像或非常大的数据库用于训练,One-shotlearning主要目标是学习目标分类从一个或很少的训练图像。

本文主要关注lfeifei等人在2006年的文章,IEEETransactions on Pattern Analysis and Machine Intelligence,其中用到一种生成式的目标分类模型和变分贝叶斯的理论框架用于从少量的手动标记的数据中学习视觉目标的分类。另一篇文章, International Conference on Computer Vision and PatternRecognition(CVPR) 2000 也会在下面进行讨论。

二.动机

从很少的样本中快速学习目标分类已被证明是可能的,而且估计一个小孩在六岁已经学到了所有一万到三万的目标类别。人类的这种成就不仅仅因为他们的计算能力,还在于他们可以从已知的关于不同的已存在的种类的信息中合成并学习新的目标类别。下面的图像解释了从两个不同的目标类得到两个样本的想法:1.一个未知的目标由熟悉的形状构成,2.一个位置的无组织的形状;假设人类使用从已知的类中存在的知识,在学习新东西时,对于人类来讲识别前一个比后一个容易得多。这样,在人工智能和计算世界中one-shoting主要的动机和原因是系统,可以像人类一样从已有目标类别的先验知识中学习和分类新的目标。

三.背景

正如许多分类系统一样,one-shoting学习涉及三个主要的挑战:

1.      表达:我们应该怎样对目标和类别建模?

2.       学习:我们怎样获得这个模型?

3.       识别:给定一个新的图像,我们怎样检测一个已知的目标在聚类中存在,即使是环境,灯光,或者视角改变?

然而,one shoting学习与单目标识别,甚至标准的类别识别算法有很大不同在于它强调知识转化的重要性,制式转换包括学习的类别的先验知识,并且允许对小样本数进行学习。

﹒模型参数的制知识换:one-shoting学习的一套算法通过模型参数的再利用实现知识转换,通常利用已学到的类别和要学习的类别的相似性。目标的类别首先在于对大量样本的学习(例如,不是以一种one-shoting学习的方式),新的目标种类通过对已经学到的类别的模型参数的转换或选择对一个类别的相关参数,正如 M. Fink, 2004

通过分享特征的知识转换:例外一种实现知识转换的算法是通过分享部分或一类目标的特征。在 CVPR 2005 by Bart and Ullman的文章中,一种算法通过从已学到的类别的块最大化不定的人工信息中获取特征信息,然后将这些特种用到新的类别的学习中。以狗的分类为例,可以从已知的马的或牛的类别中one shot学习,因为狗的类别中包含相似的分辨信息。

﹒上下文信息的知识转换:然而上面两种制式转换在oneshoting学习中起作用依赖于新的目标种类和它所基于的已知的目标种类的相似性,上下文信息的转换反而可以吸收目标所在的场景的全局信息。NIPS 2004 by K. Murphy et al. 的论文用这种全局信息如条件随机场中的频率分布的结构来识别目标。这种形式的算法有两个优势:首先,他们应该可以学习视觉上不相似的目标;然后,他们应该可以在没有被手动裁剪或精心堆砌过的图像的情况下使用,而应该是自然出现的情况。

四.理论

贝叶斯one shoting学习作为一个参数化的星座模型的混合,表示出了图像学习的前景和背景。在学习阶段,这些模型的参数通过联合密度参数后验和变分贝叶斯最大期望(VBEM)实现。只有在这这个阶段已经学到的目标类别超出了one shoting结构的范围形成了通过上下文信息的变换的模型参数的选择。对于新图像的目标识别,学习过程中得到的后验被用于贝叶斯决策结构来估计p(目标|测试,训练)与p(背景聚类|测试,训练)的比例。

贝叶斯结构

给定一个任务在查询的图像中找到一个特定的目标,贝叶斯one shoting学习算法的总体目标是比较该目标在图像中的概率和仅仅背景聚类在图像中的概率。如果前一个概率更高,算法就记录目标在图像中出现,如果后一个概率较高,算法就记录目标在图像中不出现。为了计算这些概率,目标类别必须从包括该目标的1-5个训练样本中建模。

为了实现这个想法,使I为查询的图像,其中包括了前景类别的一个样本Ofg或仅仅包括了一个一般的背景类别Obg。使It为训练图像的样本用作前景分类。决定I是否包括前景类别中的一个目标,或者仅仅从背景类别聚类取决于:

这里类别的后验  是由贝叶斯理论支撑,产生一个似然比和目标种类先验的比。如果R超过一个特定的阈值T就决定图像I分别以参数 包括来自前景和背景目标的类别。前景参数模型是从训练图像以及学到的类的先验信息的学习阶段学到的。我们假设图像的背景模型是均匀的,省略类别先验的常数 ,对 参数化产生:

已经将 简化为

给定训练图像的模型参数的后验分布, 在算法的学习过程中被估计,在估计时,one shoting严重偏离了传统的贝叶斯估计模型,近似整数为,赞成用变分方法可以使用已学到的分类中获得鲜艳信息。然而对于背景模型,以及从大量训练样本中学到的类别,通常使用传统的最大似然估计。

目标分类

对于每一个查询的图像I和每一个训练样本It,用星群模型来表达。为了获得给定图像的这种模型,图像中N个感兴趣的区域首先通过 Kadir brady saliencydetector来检测。每个区域用图像中的一个位置来表达,Xi和它的外观Ai,使XtAt类似的表达关于训练图像,对于R的表达成为:

的似然表达为星群模型的混合。一个典型的星群模型有P3-7)个部分,但是有N~100)个感兴趣的区域。这样一个P维向量h分配一个感兴趣的区域(N中的一个)到每一个模型(对于P个部分)。这样对于模型,h定义一个假设(将感兴趣的区域分配到模型部分的假设),并且一个完整的星群模型通过对假设空间H中所有假设h求和得到,最终似然函数写作:

不同的w表达部分的不同结构,然而不同的h表达给定一个参数w,区域到部分的不同分配。模型形状和外观是相互独立的的假设允许考虑似然表达作为外观和形状两个分离的似然。

外观

每个特征在特征空间中用一个点表示(在下面完成讨论),“每个部分p在星群模型中都一个均值和精确参数为 的高斯密度”。上面描述的外观似然函数是由给定的假设h和混合成分w的模型的部分的高斯的和计算的。

形状

一个给定混合成分w和假设h的形状是通过特征的位置的联合高斯密度来表示的。这些特征在建模部分的相对位置时通过一个2(P-1)维高斯变换到一个尺度和变换不变的空间。这样,我们获得了形状的似然,完成 的表达。为了减少假设空间H中假设的个数,仅仅考虑排序约束的假设,其中每个部分的x坐标是单调增加的。这样减少了H中P!个假设。

联合密度

为了计算R,必须评估积分 ,但是通过解析的方法是困难的。目标的种类信息给定关于 的信息,所以需要解决的是 , 的后验,以及找到一个足够的近似使积分容易处理。前面通过中心在 处得 函数近似后验,将问题中的积分压缩成 。这个 通常用最大似然 或最大后验 过程估计。然而,因为在one-shoting学习中,用到很少的训练样本,分布很难被well-peaked,正如 函数近似中的假设。这样代替传统的近似,贝叶斯one-shoting学习算法努力寻找 的一个参数形式这样 的学习就是可行的。算法采用一个标准的Wishart分布作为 的联合先验分布,在学习过程中,具有与最大似然相同计算复杂度的变分贝叶斯被用于学习分布的超参数。然后,因为 是高斯的乘积,正如在目标分类模型中选择的,积分退化成一个多变量Student’s分布,它可以被计算。

五.实现

特征检测和表达

为了检测一个图像中的特征这样它可以通过一个星群模型来表达, Kadir Brady featuredetector 被用在灰度图像上,找到图像的突出区域。这些区域然后被聚类,产生许多特征以及形状参数X,X由聚类中心组成。选择 Kadir Brady featuredetector 主要是因为它产生较少的,更突出的区域,恰恰与像多尺度的Harris等的特征检测,产生大量的,无意义的区域。

区域是从图像中得到并且重新排成11*11个像素的小块,每个小块表示成121维的空间。用主成分分析的方法降维,并且外观参数A,由每个块的前十个主要成分形成。

学习

为了获得形状和外观先验,用最大似然学习三个类别(猫,脸和飞机),然后用这些目标类别的模型参数估计希望的先验的超参数。

给定一列训练样本,算法对样本进行特征检测,并且从星群区域确定模型的超参数。假设指标h分配特征给部分,阻止线性模型的近似形式的表达,所以后验 通过变分贝叶斯期望最大估计,执行大约100次以后直到参数收敛。用这种方式学习一类包括四个部分的模型,少于十个训练图像大约需要在2.8GHz的机器中执行少于一分钟。

六.实验结果

摩托样例

﹒从Caltech4数据库中选择6个训练样本, Kadir Brady detector 被使用,给定X他,通过PCA得到下面样本。

﹒接着,先验模型参数从30个模型 中计算,3个学到的类别中从每个得到10个;有斑点的猫,脸和飞机。先验编码模型缺少视觉连续性的知识,占据参数空间连续模型的一个不同的部分。

﹒在学习中,基于后验 的先验朝向对应于连续模型的参数空间的部分。仅仅用到一个混合模型,使 ,后验估计下面给出。

﹒最后,下面的图像表示学到的摩托部分的形状和外观,以及对应的特征。

﹒为了识别测试,上面的模型用到50幅图像包括摩托,50幅不包括摩托。下面的图像表示ROC曲线,测量错误检测的概率,以及同样的识别样本。

与ml和map的比较

七.通过分享变换的强度从一个样本学习

贝叶斯oneshoting学习算法的一个备选, Erik Miller, NicholasMatsakis, and Paul Viola at ICCV 2000的文章中给出的算法,用模型参数的知识变换学习新的目标分类,与前面已学到的类别的外观相似。在他们的文章中,图像用文本或形状表示,或者已经被变换的隐含图像,由定义。

固定

然而矢量化定义过程将一幅图像形成对应的另一幅,文章作者创造一个新的词固定作为每一个图像序列与另一个的联立的矢量。对于一类特定类别的训练图像,固定迭代变换每一幅图像最小化图像的联合像素熵E,

这里V(p)是由所有图像中一个特定的像素p定义的二进制随机变量,H()是变量分离的熵函数, 是图像的像素序列的索引。

固定算法由一列图像Ii和对应的变换矩阵Ui开始,他们在算法的最后会将Ii的变换表示成它的隐图像ILi。这些隐图像Ili最小化联合像素的熵得到。这样固定算法就是估计变换Ui。

算法的步骤:

﹒初始化Ui

﹒计算已有图像序列的联合像素熵

﹒对于每一个图像Ii,通过所有可能的变换A(比例,x变换,y变换,x尺度,y尺度,x剪切,y剪切)迭代,检测AUi是否减少联合像素熵。如果是,使 。

﹒重复前一步直到收敛。

在算法最后, , 将隐图像变换成原来的观测图像。固定被用于一列0和一列2。

分类

为了将该模型用于分类,我们必须用给定观测的图像的最大后验概率估计模型。贝叶斯原则的一个应用是 ,通过变换T给定一个困难的积分参数化,然后寻找最好的变换T。也就是,将最好的图像投影到隐图像的变换。一旦找到这个变换,测试图像可以变换成它的隐图像,基于图像间 Hausdorff 距离的最小邻域分类被用于对隐图像进行分类,作为属于一类特殊的类别Cj

为了找到优化T,作者提出对于固定过程将测试图像I插入到图像集中。因为我们假设测试图像是从一类Cj中得到,固定将会提供一个对应的I投影到她的隐图像。因图像就可以被分类了。

单样本分类

给定一列从一类固定图像中得到的变换Bi,作者将他们的理论扩展到对于一个新的类别Cj仅包括一个训练样本It的情况。按顺序对It运用所有的变换Bi,产生c的一列人工数据。这个人功序列可以通过不仅从一个,而是很多已知的类别中借用变换变得更大。一旦数据序列I被得到,c的一个测试样本可以被一个标准的分类过程进行分类。主要的假设是类别足够相似,一类的变换可以用到其他类。


0 0
原创粉丝点击