Semantic Autoencoder for Zero-Shot Learning提出的算法被简称为SAE,首次引入了自编码器结构,一定程度上解决了zero-shot learning中主要问题之一的领域漂移(domain shift)问题,直接导致之后的新方法大都采用了这种自编码器的结构。
领域漂移问题首次被提出是在《Transductive Multi-View Zero-Shot Learning》这篇文章中,简单来说就是同一属性在不同的类别中,视觉特征的差异可能很大。比如,斑马和猪都有尾巴,那么在类别语义表示中,对于“有尾巴”这一属性,斑马和猪都是值“1”,但是在图片数据中,两者尾巴的视觉特征却差异很大,如果用猪的图片来训练,需要预测的是斑马,就很难达到预期的目标。
自编码器(Autoencoder)是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。
例如,我们输入一张图片,通过encoder将其现压缩成潜在表征(Latent Representation),再通过decoder将潜在表征重构成图片作为输出。
因此,自编码器由两部分组成:
自编码器就可以用函数 g ( f ( x ) ) = s g(f(x))=s g(f(x))=s表示, x x x是输入, s s s是输出,让 x x x和 s s s相近。
那么,让输出和输入的东西一样,那这个自编码器还有什么用呢?
其实,我们的目的在于,通过训练输出值等于输入值的自编码器,让潜在表征 h h h作为有价值的属性。
通常,为了从自编码器获得有用特征,我们会限制h的维度使其小于输入x,使得自编码器能学习到数据中最重要的特征。
在传统的自编码器的目标函数 m i n W , W ∗ ∥ X − W ∗ W X ∥ F 2 min_{W,W^*}\|X-W^*WX\|^2_F minW,W∗∥X−W∗WX∥F2中,为了使中间层能够表征属性,在这个目标函数中加入一个约束 W X = S WX=S WX=S, S S S为属性对应的语义向量,即 m i n W , W ∗ ∥ X − W ∗ W X ∥ F 2 , s . t . W X = S min_{W,W^*}\|X-W^*WX\|^2_F,s.t.WX=S minW,W∗∥X−W∗WX∥F2,s.t.WX=S,以此来最优化求解。
X ∈ R d ∗ N \quad X \in R^{d * N} X∈Rd∗N 代表 d d d 维共 N N N 个特征向量组成的矩阵,投影矩阵 W ∈ R k ∗ d , W \in R^{k * d}, W∈Rk∗d, 将特征向量投影到语义空间, 得到latent representation S ∈ R k ∗ N , S \in R^{k * N}, S∈Rk∗N, 假设 k < d k
见类标签的prototype的集合, X Y = { ( x i , y i , s i ) } ∈ R d ∗ N X_{Y}=\left\{\left(x_{i}, y_{i}, s_{i}\right)\right\} \in R^{d * N} XY={(xi,yi,si)}∈Rd∗N 为拥有N个k维训练样本 x i x_{i} xi 的训练 集,测试集 X Z = { ( x i , y i , s i ) } X_{Z}=\left\{\left(x_{i}, y_{i}, s_{i}\right)\right\} XZ={(xi,yi,si)} 其中 y i , s i y_{i}, s_{i} yi,si 未知.
上图表示了本文中的自编码器结构,以传统的自编码器的思想,本问题的目标函数为 m i n W , W ∗ ∥ X − W ∗ W X ∥ F 2 min_{W,W^*}\|X-W^*WX\|^2_F minW,W∗∥X−W∗WX∥F2
为了使中间层能够表征属性,在这个目标函数中加入一个约束 W X = S WX=S WX=S, S S S是实现定义好的属性对应的语义向量,目标函数为: m i n W , W ∗ ∥ X − W ∗ W X ∥ F 2 , s . t . W X = S min_{W,W^*}\|X-W^*WX\|^2_F,s.t.WX=S minW,W∗∥X−W∗WX∥F2,s.t.WX=S
考虑到zero-shot learning旨在提高大规模计算机视觉的速度,为了减少参数数量,设置 W ∗ = W T W^*=W^T W∗=WT,则目标函数可以化为 :
m i n W ∥ X − W T S ∥ F r o 2 , s . t . W X = S min_{W}\|X-W^TS\|^2_{Fro},s.t.WX=S minW∥X−WTS∥Fro2,s.t.WX=S
显然,约束 W X = S WX=S WX=S有点过于强了,所以将其变为一个软约束加入目标函数:
m i n W ∥ X − W T S ∥ F r o 2 + λ ∥ W X = S ∥ F r o 2 min_{W}\|X-W^TS\|^2_{Fro}+\lambda \|WX=S\|^2_{Fro} minW∥X−WTS∥Fro2+λ∥WX=S∥Fro2
其中, λ \lambda λ为超参数
显然这是一个凸优化问题,通过对 W W W求导,令导数为零,求解 W W W即可。
∂ ( ∥ X − W ⊤ S ∥ F r o 2 + λ ∥ W X − S ∥ F r o 2 ) ∂ W \frac{\partial\left(\left\|X-W^{\top} S\right\|_{F r o}^{2}+\lambda\|W X-S\|_{F r o}^{2}\right)}{\partial W} ∂W∂(∥X−W⊤S∥Fro2+λ∥WX−S∥Fro2)
= ∂ ( t r ( ( X ⊤ − S ⊤ W ) ⊤ ( X ⊤ − S ⊤ W ) + λ ( W X − S ) ⊤ ( W X − S ) ) ) ∂ W =\frac{\partial\left(t r\left(\left(X^{\top}-S^{\top} W\right)^{\top}\left(X^{\top}-S^{\top} W\right)+\lambda(W X-S)^{\top}(W X-S)\right)\right)}{\partial W} =∂W∂(tr((X⊤−S⊤W)⊤(X⊤−S⊤W)+λ(WX−S)⊤(WX−S)))
= ∂ ( t r ( W ⊤ S S ⊤ W − 2 W ⊤ S X ⊤ + λ ( X ⊤ W ⊤ W X − 2 S ⊤ W X ) ) ∂ W =\frac{\partial\left(t r\left(W^{\top} S S^{\top} W-2 W^{\top} S X^{\top}+\lambda\left(X^{\top} W^{\top} W X-2 S^{\top} W X\right)\right)\right.}{\partial W} =∂W∂(tr(W⊤SS⊤W−2W⊤SX⊤+λ(X⊤W⊤WX−2S⊤WX))
= ∂ t r ( W ⊤ S S ⊤ W ) ∂ W − 2 ∂ t r ( W ⊤ S X ⊤ ) ∂ W + λ ∂ t r ( X ⊤ W ⊤ W X ) ∂ W − 2 λ ∂ t r ( S ⊤ W X ) ∂ W =\frac{\partial t r\left(W^{\top} S S^{\top} W\right)}{\partial W}-2 \frac{\partial t r\left(W^{\top} S X^{\top}\right)}{\partial W}+\lambda \frac{\partial t r\left(X^{\top} W^{\top} W X\right)}{\partial W}-2 \lambda \frac{\partial t r\left(S^{\top} W X\right)}{\partial W} =∂W∂tr(W⊤SS⊤W)−2∂W∂tr(W⊤SX⊤)+λ∂W∂tr(X⊤W⊤WX)−2λ∂W∂tr(S⊤WX)
= ∂ t r ( X ⊤ S W ) ∂ W + λ ∂ t r ( W X X ⊤ W ⊤ ) ∂ W − 2 λ ∂ t r ( X S ⊤ W ) ∂ W =\frac{\partial t r\left(X^{\top} S W\right)}{\partial W}+\lambda \frac{\partial t r\left(W X X^{\top} W^{\top}\right)}{\partial W}-2 \lambda \frac{\partial t r\left(X S^{\top} W\right)}{\partial W} =∂W∂tr(X⊤SW)+λ∂W∂tr(WXX⊤W⊤)−2λ∂W∂tr(XS⊤W)
= 2 S S ⊤ W − 2 S X ⊤ + 2 λ W X X ⊤ − 2 λ S X ⊤ =2 S S^{\top} W-2 S X^{\top}+2 \lambda W X X^{\top}-2 \lambda S X^{\top} =2SS⊤W−2SX⊤+2λWXX⊤−2λSX⊤
= 0 =0 =0
令 A = S S ⊤ , B = λ X X ⊤ , C = ( 1 + λ ) S X ⊤ A=S S^{\top}, B=\lambda X X^{\top}, C=(1+\lambda) S X^{\top} A=SS⊤,B=λXX⊤,C=(1+λ)SX⊤
则等式可以写作:
A W + W B = C \quad A W+W B=C AW+WB=C
此为著名的Sylvester方程的标准形式,可利用Bartels-Stewart algorithm求解,值得注意的是,Bartels-Stewart algorithm算法的复杂度为 o ( d 3 ) o(d^3) o(d3) ,与训练集大小无关,因此在大规模数据集上同样可以表现优异。
对于测试特征向量 x i x_i xi,有两种方式给出预测,其中距离度量记作 D ( x , y ) D(x,y) D(x,y)
实验结果表明两种形式输出非常相似。
[1]Kodirov E , Xiang T , Gong S . Semantic Autoencoder for Zero-Shot Learning[J]. 2017.