Zero-shot Learning零样本学习 论文阅读(四)——Zero-Shot Recognition using Dual Visual-Semantic Mapping Paths

Zero-shot Learning零样本学习 论文阅读(四)——Zero-Shot Recognition using Dual Visual-Semantic Mapping Paths

  • 背景
    • 流形学习
    • 语义间隔(semantic gap)
  • 算法原理
    • 算法思路
    • 符号设定
    • 算法流程

这篇2017年的论文提供了解决semantic gap问题的简单做法,所谓的semantic gap也就是从图片中提取的低层特征到高层语义之间存在的“语义鸿沟”问题。这与上一篇论文提到的领域漂移问题都是zero-shot learning技术瓶颈问题之一。

背景

流形学习

首先,什么是流形?
流形(manifold)是局部具有欧式空间性质的空间,包括各种纬度的曲线曲面,例如球体、弯曲的平面等。流形的局部和欧式空间是同构的。
流形学习(manifold learning)是机器学习、模式识别中的一种方法,在维数约简方面具有广泛的应用。它的主要思想是将高维的数据映射到低维,使该低维的数据能够反映原高维数据的某些本质结构特征。流形学习的前提是有一种假设,即某些高维数据,实际是一种低维的流形结构嵌入在高维空间中。流形学习的目的是将其映射回低维空间中,揭示其本质。

语义间隔(semantic gap)

样本的特征往往是视觉特征,比如用深度网络提取到的特征,而语义表示却是非视觉的,这直接反应到数据上其实就是:样本在特征空间中所构成的流型与语义空间中类别构成的流型是不一致的。而语义间隔问题就是样本在特征空间中的流形与语义空间中的类别构成的流形是有差异的。解决此问题的思路便是将二者的流型调整至一致。

算法原理

算法思路

要解决的问题是将特征空间中的流形与语义空间中的类别构成的流形,最简单的思路便是将类别的语义表示调整到样本的流形,即用类别语义表示的K近邻样本点重新表示类别语义。

符号设定

  1. 可见(训练)标签集 L s = { l s 1 , l s 2 … … l s m } L_{s}=\left\{l_{s}^{1}, l_{s}^{2} \ldots \ldots l_{s}^{m}\right\} Ls={ ls1,ls2lsm} (共有 m m m 个类) ,其在语义空间中对应的prototype集为 K s = { k s 1 , k s 2 … … k s m } K_{s}=\left\{k_{s}^{1}, k_{s}^{2} \ldots \ldots k_{s}^{m}\right\} Ks={ ks1,ks2ksm}
  2. 不可见 (测试) 标签集 L u = { l u 1 , l u 2 … … l u l } L_{u}=\left\{l_{u}^{1}, l_{u}^{2} \ldots \ldots l_{u}^{l}\right\} Lu={ lu1,lu2lul}
    (共 l l l 个类) ,其在语义空间中对应的prototype集为 $ K u = { k u 1 , k u 2 … … k u l } K_{u}=\left\{k_{u}^{1}, k_{u}^{2} \ldots \ldots k_{u}^{l}\right\} Ku={ ku1,ku2kul};
  3. 特征表征集 X s = { x 1 , x 2 , … … , x n } X_{s}=\left\{x_{1}, x_{2} ,\ldots \ldots, x_{n}\right\} Xs={ x1,x2,,xn},其中 x i x_{i} xi 对应第 i i i 个图像的提取特征;
  4. 训练集 D s = { ( x i , y i , k i ) } i = 1 n , x i ∈ X s D_{s}=\left\{\left(x_{i}, y_{i}, k_{i}\right)\right\}_{i=1}^{n}, \quad x_{i} \in X_{s} Ds={ (xi,yi,ki)}i=1n,xiXs, y i ∈ L s y_{i} \in L_{s} yiLs.

算法流程

训练:

  1. 使用传统的方法求解特征空间到属性空间的映射 f s f_{s} fs,即求解投影矩阵 W W W
    W = argmin ⁡ W l ( W X , K s ) + Ω ( W ) W=\operatorname{argmin}_{W} l\left(W X, K_{s}\right)+\Omega(W) W=argminWl(WX,Ks)+Ω(W)
    其中 l ( X , Y ) l(X, Y) l(X,Y) 为损失函数, Ω ( W ) \quad \Omega(W) Ω(W) 为正则化项
  2. 对于所有的 k s i k_{s}^{i} ksi,对所有的训练样本在语义空间的投影 { f s ( x i ) } i = 1 n \left\{f_{s}\left(x_{i}\right)\right\}_{i=1}^{n} { fs(xi)}i=1n
    求m(m为超参数) 个最近邻,并赋值: k ~ s i = 1 m ∑ m 个 k s i  的最近邻  f s ( x i ) \tilde{k}_{s}^{i}=\frac{1}{m} \sum_{m \text{个}k_{s}^{i} \text { 的最近邻 }} f_{s}\left(x_{i}\right) k~si=m1mksi 的最近邻 fs(xi)
    并用 k ~ s i \tilde{k}_{s}^{i} k~si 构建新的语义空间 s ~ \tilde{s} s~
  3. 反复迭代1,2直至收敛.

测试:
对于测试特征矩阵 X u , X_{u}, Xu, 如同step2,对于所有的 k u i k_{u}^{i} kui 求m个最近邻并赋值构建新的语 义空间,并一样进行迭代,最后得到最终的映射 f ~ s , u ~ , \tilde{f}_{s}, \tilde{u}, f~s,u~, 再通过余弦距离输出预测:
j = argmin ⁡ j d ( f s ( x j ) , k c ) j=\operatorname{argmin}_{j} d\left(f_{s}\left(x_{j}\right), \quad k_{c}\right) j=argminjd(fs(xj),kc)

你可能感兴趣的:(Zero-Shot,Learning,模式识别,机器学习,深度学习,ZSL,少样本学习)