Zero-shot Learning零樣本學習 論文閱讀(三)——Semantic Autoencoder for Zero-Shot Learning
Zero-shot Learning零樣本學習 論文閱讀(三)——Semantic Autoencoder for Zero-Shot Learning
Semantic Autoencoder for Zero-Shot Learning提出的演算法被簡稱為SAE,首次引入了自編碼器結構,一定程度上解決了zero-shot learning中主要問題之一的領域漂移(domain shift)問題,直接導致之後的新方法大都採用了這種自編碼器的結構。
背景
領域漂移(domain shift)
領域漂移問題首次被提出是在《Transductive Multi-View Zero-Shot Learning》這篇文章中,簡單來說就是同一屬性在不同的類別中,視覺特徵的差異可能很大。比如,斑馬和豬都有尾巴,那麼在類別語義表示中,對於“有尾巴”這一屬性,斑馬和豬都是值“1”,但是在圖片資料中,兩者尾巴的視覺特徵卻差異很大,如果用豬的圖片來訓練,需要預測的是斑馬,就很難達到預期的目標。
自編碼器
自編碼器(Autoencoder)是一種利用反向傳播演算法使得輸出值等於輸入值的神經網路,它先將輸入壓縮成潛在空間表徵,然後通過這種表徵來重構輸出。
例如,我們輸入一張圖片,通過encoder將其現壓縮成潛在表徵(Latent Representation),再通過decoder將潛在表徵重構成圖片作為輸出。
因此,自編碼器由兩部分組成:
- 編碼器,將輸入壓縮成潛在空間表徵,用函式 h = f ( x ) h=f(x) h=f(x)表示;
- 解碼器,重構潛在空間表徵得到輸出,用函式 s = g ( h ) s=g(h) s=g(h)表示。
自編碼器就可以用函式
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<d
k<d,通過一個投影矩陣
W
∗
∈
R
k
∗
d
,
W^{*} \in R^{k * d},
W∗∈Rk∗d, 將語義向量投影到特徵空間。
Y
=
{
y
1
,
y
2
,
…
…
y
s
}
Y=\left\{y_{1}, y_{2}, \ldots \ldots y_{s}\right\}
Y={y1,y2,……ys} 為s個可見類標籤的標籤向量,
Z
=
{
z
1
,
z
2
,
…
…
,
z
u
}
Z=\left\{z_{1}, z_{2}, \ldots \ldots,z_{u}\right\}
Z={z1,z2,……,zu} 為u個不可見類標籤的標籤向量,
Y
∩
Z
=
ϕ
Y \cap Z=\phi
Y∩Z=ϕ 。
S
Y
=
{
s
1
,
s
2
,
…
.
s
s
}
S_{Y}=\left\{s_{1}, s_{2}, \ldots . s_{s}\right\}
SY={s1,s2,….ss} 為可見類標籤的prototype的集合,
S
Z
=
{
s
1
,
s
2
,
…
.
.
s
u
}
S_{Z}=\left\{s_{1}, s_{2}, \ldots . . s_{u}\right\}
SZ={s1,s2,…..su} 為不可
見類標籤的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)
-
S
Z
j
S_{Z_{j}}
SZj 為未見類標籤集中第
j
j
j 個類在屬性空間中對應的屬性向量,也就是原型prototype
Φ ( x i ) = argmin j D ( W x i , S Z j ) \Phi\left(x_{i}\right)=\operatorname{argmin}_{j} D\left(W x_{i}, S_{Z_{j}}\right) Φ(xi)=argminjD(Wxi,SZj) -
s
i
s_{i}
si 為不可見標籤集中的一個元素
Φ ( x i ) = argmin j D ( x i , W s j ) \Phi\left(x_{i}\right)=\operatorname{argmin}_{j} D\left(x_{i}, W s_{j}\right) Φ(xi)=argminjD(xi,Wsj)
Φ ( x i ) \Phi\left(x_{i}\right) Φ(xi) 的值為輸出的預測值。
實驗結果表明兩種形式輸出非常相似。
參考文獻
[1]Kodirov E , Xiang T , Gong S . Semantic Autoencoder for Zero-Shot Learning[J]. 2017.
相關文章
- Zero-shot Learning零樣本學習 論文閱讀(四)——Zero-Shot Recognition using Dual Visual-Semantic Mapping PathsAPP
- Zero-shot Learning零樣本學習 論文閱讀(一)——Learning to detect unseen object classes by between-class attributeObject
- 論文解讀GALA《Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning》
- 論文閱讀:《Learning by abstraction: The neural state machine》Mac
- 論文閱讀 Inductive Representation Learning on Temporal Graphs
- 論文解讀(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》StructAST
- 論文閱讀-Causality Inspired Representation Learning for Domain GeneralizationAI
- 論文閱讀:Sequence to sequence learning for joint extraction of entities and relations
- 論文閱讀 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS
- 【論文閱讀】CVPR2022: Learning from all vehicles
- [論文閱讀筆記] Adversarial Learning on Heterogeneous Information Networks筆記ORM
- 論文閱讀:Robust and Privacy-Preserving Collaborative Learning: A Comprehensive Survey
- [論文閱讀筆記] Adversarial Mutual Information Learning for Network Embedding筆記ORM
- 論文解讀(MLDG)《Learning to Generalize: Meta-Learning for Domain Generalization》AI
- 論文閱讀《Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising》CNN
- Beyond Fixed Grid: Learning Geometric Image Representation with a Deformable Grid——論文閱讀ORM
- 論文閱讀翻譯之Deep reinforcement learning from human preferences
- 論文解讀(Debiased)《Debiased Contrastive Learning》AST
- Text Augmented Spatial-aware Zero-shot Referring Image Segmentation論文閱讀筆記(EMNLP23 Findings)Segmentation筆記
- 2018-07-28-論文閱讀(1)-Learning Ensembled for Structured Prediction RulesStruct
- 多模態學習之論文閱讀:《Multi-modal Learning with Missing Modality in Predicting Axillary Lymph Node Metastasis 》AST
- 論文解讀(gCooL)《Graph Communal Contrastive Learning》GCAST
- 論文解讀(BGRL)《Bootstrapped Representation Learning on Graphs》bootAPP
- [論文閱讀筆記] metapath2vec: Scalable Representation Learning for Heterogeneous Networks筆記
- 論文閱讀:LDP-FL: Practical Private Aggregation in Federated Learning with Local Differential Privacy
- [論文][半監督語義分割]Adversarial Learning for Semi-Supervised Semantic SegmentationSegmentation
- Zero shot Learning 論文學習筆記(未完待續)筆記
- 論文閱讀 dyngraph2vec: Capturing Network Dynamics using Dynamic Graph Representation LearningAPT
- 論文解讀(Survey)《An Empirical Study of Graph Contrastive Learning》AST
- 論文解讀(GRACE)《Deep Graph Contrastive Representation Learning》AST
- 論文解讀(SUGRL)《Simple Unsupervised Graph Representation Learning》
- 論文解讀(DeepWalk)《DeepWalk: Online Learning of Social Representations》
- 論文解讀(PCL)《Probabilistic Contrastive Learning for Domain Adaptation》ASTAIAPT
- 論文解讀(GCA)《Graph Contrastive Learning with Adaptive Augmentation》GCASTAPT
- 論文解讀(GROC)《Towards Robust Graph Contrastive Learning》AST
- 論文閱讀筆記:Fully Convolutional Networks for Semantic Segmentation筆記Segmentation
- 【論文解讀】【半監督學習】【Google教你水論文】A Simple Semi-Supervised Learning Framework for Object DetectionGoFrameworkObject
- 論文解讀(ARVGA)《Learning Graph Embedding with Adversarial Training Methods》AI