背景
作者認爲當前(2018年前)zero-shot研究的核心主要是在視覺空間和語意空間中學習合適的映射關係,而忽視了學習ZSL問題中 有判別力的表示。幾乎所有的模型都有着相似的範式,即通過手工提取圖像特徵或者通過預訓練CNN模型提取圖像特徵,以及利用人工設計的屬性特徵作爲語意特徵。這種範式缺點也很明顯,作者歸納出三點。首先,手工圖像特徵或者預訓練CNN模型輸出特徵可能對於零樣本識別任務並不具有高的可區分性,同時用 ImageNet 等數據集預訓練等模型與 ZSL 任務的規則也有一定衝突。另外,人工定義的屬性在語意上具有描述性,但並不詳盡,因此限制了類別間的區分性。最後,現有 ZSL 方法中的低層特徵提取和嵌入空間構造是分開進行的,那麼用統一框架把他們整合在一起是不是會提升模型效果呢。
作者基於此提出了一個端到端的網絡,該網絡能夠自動識別有判別力的圖像區域,在增廣空間(定義的語意空間和潛在語意空間)中學習有判別力的圖像表示。最後該模型在 CUB 和 AWA 兩個數據集上進行測試並取得顯著的效果。
貢獻
提出了一個端到端的能夠識別高判別力特徵的 ZSL 模型,並取名爲 LDF(Learning Latent Discriminative Features)。
大多數模型都通過預訓練CNN模型來提取圖像特徵,該模型通過挖掘潛在高判別力的區域以及端到端訓練來提取更有代表性的圖像特徵。在學習潛在屬性特徵方面,對於 unseen classes 的潛在屬性需要通過其他 seen classes 來獲得,也基於此,作者說預測模型應該屬於 hybrid models 的範疇,hybrid models 是結合使用可見類來對不可見類圖片進行分類。
模型
如上圖所示,該模型爲一個多尺度的模型,上圖的模型爲兩個尺度。每個尺度由三個不同的模塊組成,1)圖像特徵網絡(FNet)提取圖像特徵;2)縮放網絡(ZNet)定位最具區分性的區域並對該區域進行裁剪和放大;3)嵌入網絡(ENet)構造具有視覺和語意聯繫的嵌入空間。對於第一個尺度,FNet 的輸入就是原圖,ZNet 則負責對關鍵區域進行定位;對於第二個尺度,FNet 的輸入是上一尺度 ZNet 篩選的區域,從而獲得更具辨別力的圖像特徵。需要注意的是,模型根據數據集的不同可能包好多個尺度,其他尺度依據尺度2的網絡進行疊加構造。
The Image Feature Network(FNet)
FNet 就是一般的特徵提取網絡,作者說該網絡可以有兩種不同的選擇,即 VGG19 網絡和 GooLeNet,不知道爲啥不用 ResNet。這個過程表示就是
ϕ ( x ) = W I F ∗ x
\phi(x)=\mathbf{W}_{\mathrm{IF}} * x
ϕ ( x ) = W I F ∗ x
其中 W I F W_{IF} W I F 表示 FNet 的所有參數, * 表示 FNe 的一系列操作。需要注意的是,和傳統的 ZSL 方法不同,這裏的 FNet 和模型其他部分進行共同訓練。
The Zoom Network(ZNet)
受一些細粒度分類方法啓發,圖像的一些區域對圖像分類有至關重要的作用。作者猜測圖像中同樣存在一些特定區域對於零樣本學習任務更加重要,這樣的區域可能包含物體或者物體的一部分或者帶有一些背景的物體區域。作者將這種區域稱之爲 object-centric region。而 ZNet 網絡,就是用來識別這樣的區域的。ZNet 的輸出是三個參數,分別表示關鍵區域中心的橫座標、縱座標以及正方形的變長,這裏設定爲正方形是爲了提高計算效率。
[ z x , z y , z s ] = W Z ∗ ϕ ( x ) conv
\left[z_{x}, z_{y}, z_{s}\right]=\mathbf{W}_{\mathbf{Z}} * \phi(x)_{\text {conv }}
[ z x , z y , z s ] = W Z ∗ ϕ ( x ) conv
ϕ ( x ) conv \phi(x)_{\text {conv }} ϕ ( x ) conv 是 FNet 最後一層的輸出。W Z \mathbf{W}_{\mathbf{Z}} W Z 用來表示 ZNet 網絡的參數。另外,ZNet 網絡是兩層全連接神經網絡,最後接的是 sigmoid 函數。
下一 scale 的 FNet 的輸入即爲通過此參數裁剪並放大的圖像。
The Embedding Network(ENet)
ENet 學習的是視覺空間到語意空間到映射。一般的方法學習一個 W 來將圖像特徵映射成語意特徵。模型的映射函數通常定義如下:
F ( x , y ; W ) = ϕ ( x ) T W a y
F(x, y ; \mathbf{W})=\phi(x)^{T} \mathbf{W} \mathbf{a}^{y}
F ( x , y ; W ) = ϕ ( x ) T W a y
兼容性損失(the compatibility score)定義如下:
s = ⟨ W T ϕ ( x ) , a y ⟩
\mathbf{s}=\left\langle\mathbf{W}^{T} \phi(x), \mathbf{a}^{y}\right\rangle
s = ⟨ W T ϕ ( x ) , a y ⟩
其中,ϕ ( x ) \phi(x) ϕ ( x ) 是 FNet 輸出的 d 維度的圖像特徵,a y \mathbf{a}^{y} a y 是類別 y 的 k 維度的屬性向量,W 是全連接網絡的權重,W 即是將ϕ ( x ) \phi(x) ϕ ( x ) 映射到屬性空間A \mathcal{A} A 的線性投影矩陣。而通常通過 softmax 來學習這個矩陣 W
L = − 1 N ∑ i n log exp ( s ) ∑ c exp ( s c ) , c ∈ Y S
\mathcal{L}=-\frac{1}{N} \sum_{i}^{n} \log \frac{\exp (\mathbf{s})}{\sum_{c} \exp \left(\mathbf{s}^{c}\right)}, c \in \mathcal{Y}_{\mathcal{S}}
L = − N 1 i ∑ n log ∑ c exp ( s c ) exp ( s ) , c ∈ Y S
上面是一般的做法,而本文作者除了應用人工定義的空間還加上了潛在的語意空間,兩者分別是 UA 和 LA。ENet 通過學習矩陣 W aug ∈ R d × 2 k \mathbf{W}_{\text {aug }} \in \mathbb{R}^{d \times 2 k} W aug ∈ R d × 2 k 來將圖像特徵映射到 2k 維度的增廣空間的。這個增廣空間(2k)就是由人工定義的語意空間(k維)和潛在語意空間(k維)構成。增廣的潛入空間用 ϕ e \phi_{\mathrm{e}} ϕ e 表示,計算如下
ϕ e ( x ) = W a u g T ϕ ( x ) , ϕ e ( x ) ∈ R 2 k
\phi_{\mathrm{e}}(x)=\mathbf{W}_{\mathrm{aug}}^{T} \phi(x), \quad \phi_{\mathrm{e}}(x) \in \mathbb{R}^{2 k}
ϕ e ( x ) = W a u g T ϕ ( x ) , ϕ e ( x ) ∈ R 2 k
而該向量由 UA 和 LA 兩部分組成
ϕ e ( x ) = [ ϕ a t t ( x ) ; ϕ l a t ( x ) ] , ϕ a t t ( x ) , ϕ l a t ( x ) ∈ R k
\phi_{\mathrm{e}}(x)=\left[\phi_{\mathrm{att}}(x) ; \phi_{\mathrm{lat}}(x)\right], \quad \phi_{\mathrm{att}}(x), \phi_{\mathrm{lat}}(x) \in \mathbb{R}^{k}
ϕ e ( x ) = [ ϕ a t t ( x ) ; ϕ l a t ( x ) ] , ϕ a t t ( x ) , ϕ l a t ( x ) ∈ R k
對於手工定義的屬性特徵,和傳統的 softmax 學習一致
L att = − 1 N ∑ i n log exp ( ⟨ ϕ att ( x ) , a ⟩ ) ∑ c exp ( ⟨ ϕ att ( x ) , a c ⟩ ) , c ∈ Y S
\mathcal{L}_{\text {att }}=-\frac{1}{N} \sum_{i}^{n} \log \frac{\exp \left(\left\langle\phi_{\text {att }}(x), \mathbf{a}\right\rangle\right)}{\sum_{c} \exp \left(\left\langle\phi_{\text {att }}(x), \mathbf{a}^{c}\right\rangle\right)}, c \in \mathcal{Y}_{\mathcal{S}}
L att = − N 1 i ∑ n log ∑ c exp ( ⟨ ϕ att ( x ) , a c ⟩ ) exp ( ⟨ ϕ att ( x ) , a ⟩ ) , c ∈ Y S
對於潛在語意特徵,因爲沒有標準值,這屬於無監督學習的範疇。這裏用三元組損失(the triplet loss)來調節潛在屬性特徵之間的類間距離來學習潛在語意屬性。
L l a t = max ( 0 , m + d ( ϕ l a t ( x i ) , ϕ l a t ( x k ) ) − d ( ϕ l a t ( x i ) , ϕ l a t ( x j ) ) )
\mathcal{L}_{\mathrm{lat}}=\max \left(0, m+d\left(\phi_{\mathrm{lat}}\left(x_{i}\right), \phi_{\mathrm{lat}}\left(x_{k}\right)\right)-d\left(\phi_{\mathrm{lat}}\left(x_{i}\right), \phi_{\mathrm{lat}}\left(x_{j}\right)\right)\right)
L l a t = max ( 0 , m + d ( ϕ l a t ( x i ) , ϕ l a t ( x k ) ) − d ( ϕ l a t ( x i ) , ϕ l a t ( x j ) ) )
其中,x i x_i x i 和x k x_k x k 是來自同一類別的圖像,x j x_j x j 是來自不同類別的圖像。m 是三元組損失的 margin,實驗中設置成 1.0。
這樣以來,對於每個尺度,網絡都通過 softmax loss 和 triple loss 訓練。如果對於一個雙尺度的網絡LDF,損失函數如下
L = L a t t s 1 + L l a t s 1 + L a t t s 2 + L l a t s 2
\mathcal{L}=\mathcal{L}_{\mathrm{att}}^{s 1}+\mathcal{L}_{\mathrm{lat}}^{s 1}+\mathcal{L}_{\mathrm{att}}^{s 2}+\mathcal{L}_{\mathrm{lat}}^{s 2}
L = L a t t s 1 + L l a t s 1 + L a t t s 2 + L l a t s 2
Prediction
由模型結構圖也可以看到,輸入一張圖片,可以得到 UA(user-defined attributes) 和 LA(Latent attributes)對應的屬性向量。這兩個向量均可以做預測。對於 UA,可以將ϕ a t t ( x ) \phi_{\mathrm{att}}(x) ϕ a t t ( x ) 與a C a^{C} a C 比較,從而找到最接近的類別,公式如下所示
y ∗ = arg max c ∈ Y U ( s c ) = arg max c ∈ Y U ⟨ ϕ a t t ( x ) , a c ⟩
y^{*}=\underset{c \in \mathcal{Y}_{U}}{\arg \max }\left(\mathbf{s}^{c}\right)=\underset{c \in \mathcal{Y}_{U}}{\arg \max }\left\langle\phi_{\mathrm{att}}(x), \mathbf{a}^{c}\right\rangle
y ∗ = c ∈ Y U arg max ( s c ) = c ∈ Y U arg max ⟨ ϕ a t t ( x ) , a c ⟩
對於 LA 的預測要麻煩一些。如果想知道輸入 x 和哪個類別最相近,需要知道各個類別的潛在向量是多少,和人工設計的語意向量不同,潛在語意向量並不能直接獲得。對於 seen class,在訓練階段就可以計算所有圖像的潛在語意特徵,某一類 seen class 的潛在語意特徵就是對於該類圖像的潛在語意特徵求個平均,即ϕ lat s ‾ = 1 N ∑ i ϕ lat ( x i ) \overline{\phi_{\text {lat }}^{s}}=\frac{1}{N} \sum_{i} \phi_{\text {lat }}\left(x_{i}\right) ϕ lat s = N 1 ∑ i ϕ lat ( x i ) 。對於 unseen class,標準的潛在特徵可由 seen class 線性組合得到,該組合的映射關係可以通過人工定義特徵對應的關係得到。作者將此問題描述成一個脊迴歸問題
β c u = arg min ∥ a u − ∑ β c u a c ∥ 2 2 + λ ∥ β c u ∥ 2 2 , c ∈ Y S
\beta_{c}^{u}=\arg \min \left\|\mathbf{a}^{u}-\sum \beta_{c}^{u} \mathbf{a}^{c}\right\|_{2}^{2}+\lambda\left\|\beta_{c}^{u}\right\|_{2}^{2}, \quad c \in \mathcal{Y}_{\mathcal{S}}
β c u = arg min ∥ ∥ ∥ a u − ∑ β c u a c ∥ ∥ ∥ 2 2 + λ ∥ β c u ∥ 2 2 , c ∈ Y S
從而不可見類的潛在語意特徵計算方法如下
ϕ l a t u ‾ = ∑ β c u ϕ l a t c ‾ , c ∈ Y S
\overline{\phi_{\mathrm{lat}}^{u}}=\sum \beta_{c}^{u} \overline{\phi_{\mathrm{lat}}^{c}}, \quad c \in \mathcal{Y}_{\mathcal{S}}
ϕ l a t u = ∑ β c u ϕ l a t c , c ∈ Y S
最後分類方法同樣
y ∗ = arg max c ∈ Y u ⟨ ϕ lat ( x ) , ϕ ˉ lat c ⟩
y^{*}=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left\langle\phi_{\operatorname{lat}}(x), \bar{\phi}_{\operatorname{lat}}^{c}\right\rangle
y ∗ = c ∈ Y u arg max ⟨ ϕ l a t ( x ) , ϕ ˉ l a t c ⟩
上面的是分開分析,利用 LA 和 UA 共同決策,而同時考慮人工定義的屬性空間和潛在屬性空間,預測通過如下方法獲得
y ∗ = arg max c ∈ Y u ( ⟨ [ ϕ att ( x ) ; ϕ lat ( x ) ] , [ a c ; ϕ ⃗ lat c ] ⟩ ) = arg max c ∈ Y u ( ⟨ ϕ att ( x ) , a c ⟩ + ⟨ ϕ lat ( x ) , ϕ ˉ lat c ⟩ )
\begin{aligned}
y^{*} &=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left(\left\langle\left[\phi_{\text {att }}(x) ; \phi_{\text {lat }}(x)\right],\left[\mathbf{a}^{c} ; \vec{\phi}_{\text {lat }}^{c}\right]\right\rangle\right) \\
&=\underset{c \in \mathcal{Y}_{u}}{\arg \max }\left(\left\langle\phi_{\text {att }}(x), \mathbf{a}^{c}\right\rangle+\left\langle\phi_{\text {lat }}(x), \bar{\phi}_{\text {lat }}^{c}\right\rangle\right)
\end{aligned}
y ∗ = c ∈ Y u arg max ( ⟨ [ ϕ att ( x ) ; ϕ lat ( x ) ] , [ a c ; ϕ lat c ] ⟩ ) = c ∈ Y u arg max ( ⟨ ϕ att ( x ) , a c ⟩ + ⟨ ϕ lat ( x ) , ϕ ˉ lat c ⟩ )
對於多尺度模型來說,上述的 ϕ a t t ( x ) \phi_{\mathrm{att}}(x) ϕ a t t ( x ) 和ϕ l a t ( x ) \phi_{\mathrm{lat}}(x) ϕ l a t ( x ) 分別用多尺度模型中對應的語意向量級聯即可。
實驗
作者的實驗思路主要分爲三個方面。將模型分爲只包含部分模塊的幾個模型進行對比實驗;對不同尺度的結果進行對比;對兩種語意空間分別進行測試並進行比較。不做詳盡說明,具體可以參考論文本身。需要注意的是,本文遵照傳統設定,只測試 unseen class 的預測結果,即測試數據的搜索空間僅限於目標類中。