在本篇论文之前zero-shot learning相关的文章更多关注点是attribute learning,从训练实例中提取标签属性,直至《Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer》首次定义了Zero-shot learning并且提出了DAP、IAP,尽管DAP这种方法在一些方面得到应用和进一步研究,但是其弊端也比较明显,主要体现在两方面,一方面是他无法对输出的预测给出可靠性度量,二是算法做出了一些过强的假设,尤其是“各属性之间条件独立”,比如“是否生活在陆地”“是否生活在农场”这两个属性显然不是互相独立的。
假设一共有z个类,其中每个类对应于属性空间中的a维属性向量,称为某个类的signature;集合的所有类用矩阵表示就是属性空间 S ∈ [ 0 , 1 ] a × z S \in [ 0,1 ] ^{a\times z} S∈[0,1]a×z;有m个实例,维度为d维,写成矩阵形式 X ∈ R d × m X \in R^{d\times m} X∈Rd×m,实例的标签 Y = { − 1 , 1 } m × z Y=\{-1,1\}^{m\times z} Y={−1,1}m×z.
在实例空间X和和标签空间Y中间添加一个属性空间,并且通过一个新的映射 V V V连接属性空间和特征空间,最后建立损失函数.
从一个一般的线性分类器的原理开始,以岭回归为例,其优化过程就是:
m i n w L ( X T W , Y ) + Ω ( W ) min_wL(X^TW,Y)+\Omega(W) minwL(XTW,Y)+Ω(W)
其中 L L L为损失函数, Ω \Omega Ω为正则化项.
为了实现zero-shot learning,中间添加一个属性空间 S S S,通过映射 V V V连接属性空间 S S S和特征空间 X X X,即
W = V S V ∈ R d × a W=V S \quad V \in R^{d \times a} W=VSV∈Rd×a
那么上式就变为
min V L ( X ⊤ V S , Y ) + Ω ( V ) \min _{V} L\left(X^{\top} V S, Y\right)+\Omega(V) VminL(X⊤VS,Y)+Ω(V)
通过学习得到参数 V V V后,输入新的 x x x和 S ∗ S^* S∗,就可以根据 a r g m a x i x T V S ⋅ , i ∗ argmax_i\quad x^TVS^*_{\cdot ,i} argmaxixTVS⋅,i∗确定预测的类别。
上面得到的式子
min V L ( X ⊤ V S , Y ) + Ω ( V ) \min _{V} L\left(X^{\top} V S, Y\right)+\Omega(V) VminL(X⊤VS,Y)+Ω(V)
由两部分组成,一部分是损失函数 L L L,另一部分是正则化 Ω \Omega Ω.
损失函数 L L L论文中直接定义为Frobenius范数的形式: L ( P , Y ) = ∥ P − Y ∥ F r o 2 L(P, Y)=\|P-Y\|_{F r o}^{2} L(P,Y)=∥P−Y∥Fro2
对于正则化项的选择,作者有两点考虑:
以此,可以设定:
Ω ( V ) = γ ∥ V S ∥ F r o 2 + λ ∥ X ⊤ V ∥ F r o 2 + β ∥ V ∥ F r o 2 \Omega(V)=\gamma\|V S\|_{F r o}^{2}+\lambda\left\|X^{\top} V\right\|_{F r o}^{2}+\beta\|V\|_{F r o}^{2} Ω(V)=γ∥VS∥Fro2+λ∥∥X⊤V∥∥Fro2+β∥V∥Fro2
其中 γ , λ , β \gamma, \lambda, \beta γ,λ,β 为超参数,此处不妨设 β = λ γ \beta=\lambda \gamma \quad β=λγ ,后面会用到.
综合损失函数和正则化项,目标函数现在可以具体得到:
m i n ∥ X ⊤ V S − Y ∥ F r o 2 + γ ∥ V S ∥ F r o 2 + λ ∥ X ⊤ V ∥ F r o 2 + β ∥ V ∥ F r o 2 min\left\|X^{\top} V S-Y\right\|_{F r o}^{2}+\gamma\|V S\|_{F r o}^{2}+\lambda\left\|X^{\top} V\right\|_{F r o}^{2}+\beta\|V\|_{F r o}^{2} min∥∥X⊤VS−Y∥∥Fro2+γ∥VS∥Fro2+λ∥∥X⊤V∥∥Fro2+β∥V∥Fro2
显然这是一个凸函数,因此我们可以直接对需要优化的参数 V V V求导,令导函数为零,求解V即可。
将 m i n { ∥ X ⊤ V S − Y ∥ F r o 2 } + { γ ∥ V S ∥ F r o 2 + λ ∥ X ⊤ V ∥ F r o 2 + β ∥ V ∥ F r o 2 } min\{\left\|X^{\top} V S-Y\right\|_{F r o}^{2}\}+\{\gamma\|V S\|_{F r o}^{2}+\lambda\left\|X^{\top} V\right\|_{F r o}^{2}+\beta\|V\|_{F r o}^{2}\} min{∥∥X⊤VS−Y∥∥Fro2}+{γ∥VS∥Fro2+λ∥∥X⊤V∥∥Fro2+β∥V∥Fro2}
写作两部分 m i n A + B min A+B minA+B
∂ A ∂ V = ∂ ∥ X ⊤ V S − Y ∥ F r o 2 ∂ V \frac{\partial A}{\partial V}=\frac{\partial\left\|X^{\top} V S-Y\right\|_{F r o}^{2}}{\partial V} ∂V∂A=∂V∂∥∥X⊤VS−Y∥∥Fro2
由Frobenius范数定义 ∥ X ∥ F r o 2 = tr ( X ⊤ X ) \|X\|_{F r o}^{2}=\operatorname{tr}\left(X^{\top} X\right) ∥X∥Fro2=tr(X⊤X),得到
= ∂ t r ( ( X ⊤ V S − Y ) ⊤ ( X ⊤ V S − Y ) ) ∂ V =\frac{\partial t r\left(\left(X^{\top} V S-Y\right)^{\top}\left(X^{\top} V S-Y\right)\right)}{\partial V} =∂V∂tr((X⊤VS−Y)⊤(X⊤VS−Y))
计算矩阵的转置并展开括号:
= ∂ tr ( S ⊤ V ⊤ X X ⊤ V S + Y ⊤ Y − S ⊤ V ⊤ X Y − Y ⊤ X ⊤ V S ) ∂ V =\frac{\partial \operatorname{tr}\left(S^{\top} V^{\top} X X^{\top} V S+Y^{\top} Y-S^{\top}V^{\top}XY-Y^{\top} X^{\top} V S\right)}{\partial V} =∂V∂tr(S⊤V⊤XX⊤VS+Y⊤Y−S⊤V⊤XY−Y⊤X⊤VS)
根据迹的性质 t r ( A + B ) = t r ( A ) + t r ( B ) t r ( A B ) = t r ( B A ) tr(A+B)=tr(A)+tr(B) \quad tr(AB)=tr(BA) tr(A+B)=tr(A)+tr(B)tr(AB)=tr(BA):
= ∂ tr ( S ⊤ V ⊤ X X ⊤ V S + Y ⊤ Y − 2 Y ⊤ X ⊤ V S ) ∂ V =\frac{\partial \operatorname{tr}\left(S^{\top} V^{\top} X X^{\top} V S+Y^{\top} Y-2 Y^{\top} X^{\top} V S\right)}{\partial V} =∂V∂tr(S⊤V⊤XX⊤VS+Y⊤Y−2Y⊤X⊤VS)
省略与 V V V无关的项:
= ∂ tr ( S ⊤ V ⊤ X X ⊤ V S − 2 Y ⊤ X ⊤ V S ) ∂ V ( =\frac{\partial \operatorname{tr}\left(S^{\top} V^{\top} X X^{\top} V S-2 Y^{\top} X^{\top} V S\right)}{\partial V} \quad\left(\right. =∂V∂tr(S⊤V⊤XX⊤VS−2Y⊤X⊤VS)(
根据迹的性质 t r ( A B ) = t r ( B A ) tr(AB)=tr(BA) tr(AB)=tr(BA):
= ∂ tr ( V S S ⊤ V ⊤ X X ⊤ − 2 V S Y ⊤ X ⊤ ) ∂ V =\frac{\partial \operatorname{tr}\left(VS S^{\top} V^{\top} X X^{\top} -2VS Y^{\top} X^{\top}\right)}{\partial V} =∂V∂tr(VSS⊤V⊤XX⊤−2VSY⊤X⊤)
根据: ∂ tr ( A B ) ∂ A = B T \frac{\partial \operatorname{tr}(A B)}{\partial A}=B^{T} ∂A∂tr(AB)=BT, ∂ tr ( A B A T C ) ∂ A = C A B + C T A B T \frac{\partial \operatorname{tr}\left(A B A^{T} C\right)}{\partial A}=C A B+C^{T} A B^{T} ∂A∂tr(ABATC)=CAB+CTABT
(证明:
∂ tr ( A B ) ∂ A = ∂ ∑ i = 1 m ∑ j = 1 n a i j b j i ∂ ∑ i = 1 m ∑ j = 1 n a i j = ∑ i = 1 m ∑ j = 1 n b j i = B T \frac{\partial \operatorname{tr}(A B)}{\partial A}=\frac{\partial \sum_{i=1}^{m} \sum_{j=1}^{n} a_{i j} b_{j i}}{\partial \sum_{i=1}^{m} \sum_{j=1}^{n} a_{i j}}=\sum_{i=1}^{m} \sum_{j=1}^{n} b_{j i}=B^{T} ∂A∂tr(AB)=∂∑i=1m∑j=1naij∂∑i=1m∑j=1naijbji=i=1∑mj=1∑nbji=BT
∂ t r ( A B A T C ) ∂ A = ∂ t r ( A T C A B ) ∂ A = ( B A T C ) T + C A B = C T A B T + C A B ) \frac{\partial t r\left(A B A^{T} C\right)}{\partial A}=\frac{\partial t r\left(A^{T} C A B\right)}{\partial A} \begin{array}{l} =\left(B A^{T} C\right)^{T}+C A B =C^{T} A B^{T}+C A B \end{array}) ∂A∂tr(ABATC)=∂A∂tr(ATCAB)=(BATC)T+CAB=CTABT+CAB)
最终得到
= 2 X X ⊤ V S S ⊤ − 2 X Y S ⊤ =2 X X^{\top} V S S^{\top}-2 X Y S^{\top} =2XX⊤VSS⊤−2XYS⊤
[1]Romera-Paredes B , Torr P H S . An embarrassingly simple approach to zero-shot learning[C]// Proceedings of the 32nd international conference on Machine learning (ICML '15). JMLR.org, 2015.