The Pyramid Match Kernel学习[1]

 翻译原文:

概述:

        基于内核的学习方法建立在将数据“嵌入”欧几里得空间,然后在嵌入的数据之间继续寻找线性关系的基础上。就SVM来说,它在嵌入的空间(也叫做特征空间)中找到了两个类之间的最佳的分割超面。形如"X × X → R"的内核函数K将成对的点映射到它们在嵌入的空间F中的内积(~内积是点乘吧~),从而能够评价所有点之间的相似性并确它们的相对位置(~??~内积越小越接近?~)。这样在嵌入的空间中就能寻找线性关系,但是在输入空间中判定边界可能仍然是非线性的,这取决于所选择的特征映射函数Φ:→ F(~???~)。

       本文提出了一种基于隐式对应关系的内核函数,解决了无序、可变长度的矢量集合的判别分类的问题。这个内核可以证明是正定的,并且还有诸多优势。

       这个内核的基本思想是将特征集映射到多分辨率的超面中去,然后对这些超面进行比较。比较时采用一种加权的超面交集的比较方法,从而粗略的估计出特征集之间最好的局部匹配的相似度(~???~)。之所以叫这个内核“金字塔匹配内核”,是因为所有的输入集合都要被转换为多分辨率的超面。

正文:

        输入空间是X,它由d维的特征向量组成集合组成,这些向量是以一个直径为D的球面为边界的,而且球面内的向量之间保持至少的距离(单位呢?)。

        用公式表示是: 

        其中,的大小因不同的面元素而变化。

        集合X的特征抽取函数(~???~)是这样定义的:

        (~???~)

        其中,是由x用“d维的边长为的bin(~???~不懂)”计算出的一个超面矢量,的维度是。也就是说,是一个串接的(~???~)的超面组成的矢量,而每一个串接的超面元素都对应着一些bin,这些bin的长度都是上一个bin的两倍(位数都是d维不变)。在finest级别的超面对应的bin的长度最短的,使得(~???~)空间X中每一个集合中的d维的点都落入这个点自身的 bin中(~???~)。而对于其他更高层的超面,bin的长度迅速增长,直到L层的超面,空间X中所有的点都落入同一单个的bin中(~??bin是对应点??面??~)。

       Pyramid Match Kernel 正是基于在这种多分辨率的超面空间中的隐式的对应关系,来计算空间中点集之间的相似度的。两个点集之间的相似是这样定义的:通过在金字塔的各层找出特征匹配的数量,并对它们进行加权求和,从而计算出,对应的公式如下:

      (3)

       其中,表示在i层新的配对的数量(~???~配对),所谓的配对是指一对特征在任何更fine的分辨率层次上都不是对应的(特征是指点?更fine是指H的层更低?对应是指落入同一个bin?)。

      本文的内核函数通过以下途径隐式地寻找点集之间的对应关系,即如果两个点落入了同一个超面的bin中(从最fine的分辨率层次,也就是每一个点都落入它自己的bin中的层次开始计算),则两个点就是匹配的。注意这里的匹配是第一次的匹配,即在这个有等级的层次处理过程中,在某一个较高的分辨率上匹配的点不会在更低的分辨率上匹配。例如,图2中,有两个点在最fine的层上匹配了,在中层上又有两个新的匹配产生,最坏层有一个匹配。的输出值反映了匹配的整体相似度,每一层上产生的新的匹配pair都对最终整体的匹配有贡献,在i层上的匹配对整体的相似度贡献了,并且与bin的长度成比例。注意,公式3的下标是从0开始的,因为对于的定义使得在i=-1层上不存在点的相互匹配(~???~)。
       为了计算,内核函数使用了超面的交集函数,以计算两个超面的bin之间的重叠程度:
       
       其中,A和B是超面,对应着个bin,而是指A的第j个bin的计数值(~???~)。
       

       图2:Pyramid Match确定了一种部分对应关系即两个点落入同一个超面的bin中的时候。在上图的例子中,两个一维的特征集用以组成两个超面金字塔层次关系(~???~)。每一行对应了金字塔的一层,在这里没有画出,是因为在最fine的层上没有点形成配对。在(a)中,y集表示在左边,z集表示在右边,(各个点沿着纵轴分布,而且同一个点在不同的超面层次上重复绘制表示)。浅颜色的点划线表示是bin的边界,加粗的短划线表明了两个点在该层上形成配对,加粗的实线表示两个点在较低的层次上已经形成了匹配;在(b)中,展示了多分辨率的超面层次,其中,超面的bin沿着纵轴方向增长。在(c)中,展示了(b)中的超面的交集金字塔层次。用这个交集来计算在每一层都有多少新的配对产生。表示。这里,对应三个层次,的值分别是2、4、5,从而,在每一层上新产生的匹配数是2、2、1。对按照权重进行加权求和得出Pyramid Match相似度。(~???~点在超面上的bin如何计算得出,落入同一bin中的点多于两个怎么计算~???~)

       超面的交集高效的计算了两个集合中在给定的量化层次上形成匹配的点的数量,即落入同一个bin点的对数。为了计算i层上新匹配的对数,只需要计算出连续的超面层次上的"交集数量"之间的差值,即:

          (5)

       其中,是指公式(2)的函数中的第i个超面元素。内核函数从来没有显式地搜寻某两个相似的点,它从来没有计算两个集合的矢量之间的距离。而是简单地在每一个超面层次计算交集值的变化量,来统计每一层上发生的匹配数量。

       在金字塔的每一层上产生的新的匹配数是要经过对应超面的bin的长度进行加权的,在对应更长的bin上产生的匹配的权重会比更短的bin对应的匹配的权重更小。由于d维的边长是立方体的最长对角线长度是,从而在一个bin中任意两点之间的最大距离,随着金字塔中的超面变coarser,即所在层数的增大,会翻倍的增长。因此在第i层,新产生的匹配数量会乘以来反映该层上匹配的点之间的相似度(最差情况)。直觉上地,这意味着更fine层上(特征区别更大)的矢量之间(例子中用y和z表示)的相似度比更coarse的层上的相似度更受到重视。

       根据公式3、4、5.我们定义以下pyramid match kernel函数(非正规化):

        

       其中,的第i个超面。我们使用每一个输入自身的相似度产生的结果值进行函数的正规化,从而避免支持更大的输入集合(~???~),从而得到了最终的内核函数值:

        ,其中, 

        为了减少离散的超面bin带来的量化效应,我们可以针对不同的多分辨率超面进行比较计算,这些超面的bin值是随意转移的,将从不同超面得到的多个(T个)Pyramid Match Kernel值进行组合得到最终比较结果。这T个pyramids的每一个维数都一致地转移了一个在0到D之间任意选择的值。这就产生了T个特征配对:。应用公式2,这T个特征配对将输入集y中的元素映射到了T个多分辨率的超面中:。对于输入y和z,结合之后产生的内核值是


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实际测试金字塔是测试金字塔模型的一种变体,其重点是将不同类型的测试用例分为不同层次,以便更好地管理和执行测试。 在实际测试金字塔中,测试用例被分为三个主要层次:单元测试、集成测试和端到端测试。 单元测试是最底层的一层,目的是在代码的最小单元上进行测试,通常是函数或方法级别。单元测试旨在验证代码的正确性和健壮性,确保每个函数都按预期工作。这些测试通常由开发人员编写和执行,并使用自动化测试工具进行。 集成测试是中间层,目的是测试不同的组件或模块之间的交互。它们确保这些组件在连接时正常工作,并且数据可以正确地在它们之间传递。集成测试可以由开发人员或专门的集成测试团队编写和执行,它们使用自动化测试工具和模拟器来模拟不同组件之间的交互。 端到端测试是最高层,目的是测试整个应用程序或系统的功能,以确保它们按预期工作。这些测试模拟最接近真实用户体验的场景,并检查应用程序的完整性和一致性。端到端测试通常由专门的测试团队编写和执行,并使用自动化测试工具和实际设备来模拟真实世界的使用情况。 实际测试金字塔的目标是在测试过程中提高效率和质量。通过将更多的测试用例放在底层,自动运行和快速执行的单元测试可以尽早发现和解决问题。集成测试和端到端测试则更关注不同组件之间的交互和整体功能。这种层次的组织方式可以确保测试重点在每个阶段都得到适当关注,从而实现更全面的测试覆盖。 总之,实际测试金字塔是一种帮助团队管理和执行测试的模型,它通过将测试用例分为不同层次,以提高测试效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值