Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【ML Tech RPT. 】第3回 Zero Shot Learning を学ぶ (3)

f:id:ssatsuki040508:20181210005017p:plain
Sansan DSOC研究員の吉村です。年が明け2019年になり、あと数ヶ月で次の新卒の皆さんが入ってくることを考えて戦々恐々としています。入社してからこれまででしっかりと力がついているのかなど、思いを巡らす対象は多々ありますが、今まで通り日々コツコツと業務や自己研鑽に励んで行こうと思います。

今回も Zero Shot Learning (ZSL) についての記事です。前回は ZSL で用いられる手法として基本的なアプローチに則って考案された SOC、 DeVISE、そして、SAEの3つを紹介しました。さて、今回はこれら3つとは少し毛色が異なるLatEm [*1], CMT [*2], DAP と IAP [*3] の4つの手法を紹介します。なお、今回の記事で用いる記号については、特に言及しない場合には前回の記事のNotaionで設定した意味で用います。


Compatibility Function として非線形写像を利用するアプローチ

前回の記事で紹介した3つの手法 SOC, DeViCE, SAE はいずれも、各ラベルが含まれる意味空間と各画像 (または、画像特徴) が含まれる空間を線形の Compatibility Function を用いて写像するアイデアを用いた手法でした。線形写像で可能なのであれば、非線形写像を用いれば更にモデルの表現力が上がるのではないかと考えるのは自然な発想です。ここでは、Compatibility Function として区分線形関数を用いる LatEm と、 activation function に tanh を用いた Neural Networkを利用する CMT を紹介します。

LatEm (Latent Embeddings)

LatEm は先述した通り、区分線形関数を用いる手法でその Compatibility Function は下記の式で表されます。
$$F(x, y)=\max_{1\leq k \leq K} \theta(x)^{\top}W_k \phi(y)$$ただし、各  W_k (k=1, \cdots, K) D \times E 行列を表します。 このように複数の  W_k を用いることで、 様々な側面からの視覚特徴 (e.g. 対象物が正面を向いている場合に有用な特徴や、対象物の形に基づく有用な特徴など) を捉えることができると [Y.Xian, et al., 2016] では述べられています。
線形写像を非線形写像に変えると、モデルの表現力が向上する一方で、目的関数が非凸になり最適化が困難になる可能性が生まれるため、学習時に適切な最適化を行うためにどのようなアルゴリズムを用いるかが重要となります。
LatEmでは次の rank-based な損失関数$$L(x_n, y_n)=\sum_{y\in \mathcal{Y}}\max\{0, \Delta (y_n, y)+F(x_n, y)-F(x_n, y_n)\}$$を SGD ベースの最適化手法を用いて学習していきます。ただし、 \Delta(y, y_n) y\neq y_n の時に 1 となり、それ以外で 0 となる関数です。この損失関数に従って学習は次の流れで行われます。

  1. 訓練データ中の  (x_n, y_n) を取得し、 y_n\neq y を満たす  y をランダムに取得。
  2.  F(x_n, y) + 1 > F(x_n, y_n) を判定。Trueの場合は 3. へ。それ以外は終了。
  3.  i^* \leftarrow \arg \max_{1\leq k \leq K} \theta(x_n)^{\top}W_k \phi(y)
  4.  j^* \leftarrow \arg \max_{1\leq k \leq K} \theta(x_n)^{\top}W_k \phi(y_n)
  5.  i^*=j^* を判定。Trueの場合は 6. へ、Falseの場合は 7. へ。
  6.  W_{i^*} \leftarrow W_{i^*} - \eta \theta(x_n) (\phi(y)-\phi(y_n))^\top と更新し、終了。
  7.  W_{i^*} \leftarrow W_{i^*} - \eta \theta(x_n)\phi(y)^\top と更新。
  8.  W_{i^*} \leftarrow W_{i^*} + \eta \theta(x_n)\phi(y_n)^\top と更新し、終了。

上記の処理を  n=1 から  n=N まで実施し、これをあらかじめ決めた回数  T 回繰り返すことで、学習が完了します。

また、LatEmは$$f(x)=\arg \max_{y\in \mathcal{Y}}F(x, y)$$により予測を行います。この手法ではモデルにハイパーパラメータ  K があるため、この値を定める必要がありますが、[Y.Xian, et al., 2016] では cross-validation で決定する方法と、上記のアルゴリズムの途中で徐々に  K を小さくしていく枝刈りに基づく方法が提案されています。

CMT (Cross-Modal Transfer)

CMT では、 tanh を activation function にもつ Neural Network を用います。従って、 CTM での損失関数は次の式$$L(W_1, W_2) = \sum_i \left \lVert\phi(y_i) - W_2 \tanh (W_1\theta(x_i))\right \rVert ^2$$で表され、この損失関数を backpropagation と L-BFGS 法 (Limited memory Broyden–Fletcher–Goldfarb–Shanno method) を用いて学習します。
なお、[R. Socher et al., 2013] では ZSL の初回記事 で紹介した Generalized Zero Shot Learning (GZSL) の問題設定に対応することが主な貢献の一つとなっており、未観測ラベルを検知する分類器を用いることで観測ラベルと未観測ラベルを別々の分類方法で予測する手法を提案しています。詳細は省きますが、未観測ラベルを検知するための分類器が二種類提案されています。一方が観測ラベルの埋め込みベクトル表現を平均としたガウス分布を仮定し、いずれの分布からも発生しなさそうな場合に未観測と見なす方法で、もう片方がLoOP (Local Outlier Probability) [*4] という値を計算して、local outlier である可能性が高い場合に未観測と見なす方法です。

予測時には、まず、入力画像が観測ラベルか未観測ラベルかを判別します。その後、観測ラベルであると判別されれば  \theta(x) を入力として学習した softmax 分類器で通常の分類問題と同様に予測を行います。もし、未観測ラベルであると判別された場合には、各ラベルの分散表現  \phi(y) を平均とする等方性ガウス分布を考えて、この分布の確率密度関数の入力として  W_2 \tanh (W_1\theta(x_i)) を与えた時の値を尤度と見なします。この尤度が最も高くなるようなラベルが予測結果として採用されます。

ラベル予測のために一度ラベルの属性を予測する分類器を学習するアプローチ

ZSL のアプローチとして、各クラスの実体の持つ具体的な属性を考える attribute-based なものが存在します。その中でも、 [C. Lampert et al., 2013] で提案された DAPIAP について説明します。

DAP (Direct Attribute Prediction)

DAP は予め定義しておいたラベルの実体が持つ属性を経由してラベル予測を行う手法です。  \textbf{a}=(a_1, a_2, \cdots, a_M) を属性ベクトルとします。各  a_m は、例えば、羽を持つ、あしが複数ある、羽毛があるなどを表す値です。DAP では、まず、訓練データの画像集合  \{x_i \mid i=1,2, \cdots, N\} から属性  a_m を予測する分類器  p(a_m|x)を各属性ごとに (今回の場合は  M 個) 学習します。この時、 p(\textbf{a}|x)=\prod_{m=1}^Mp(a_m|x) と表すことができます。  p(\textbf{a}|y)=[\textbf{a}=\textbf{a}^y] を仮定することでベイズ則から次の事後確率が導かれます。$$p(y|x)=\sum_{a\in \{0, 1\}^M}p(y|\textbf{a})p(\textbf{a}|x)=\frac{p(y)}{p(\textbf{a}^y)}\prod_{m=1}^Mp(a_m^y|x)$$ただし、 \textbf{a}^y = (a_1^y, a_2^y, \cdots, a_m^y) はラベル  y の実体が持つ属性ベクトルを表しています。

予測時には、 p(y) は独立分布であるという仮定を置くことで予測の式から無視することができます。また、 p(\textbf{a})=\prod_{m=1}^Mp(a_m) が成り立つため、 p(a_m)=\frac{1}{|\mathcal{Y^{\text{train}}}|}\sum_{k=1}^{|\mathcal{Y^{\text{train}}}|}a_m^{y_k} を仮定することで、 \textbf{a} に関する事前分布も得ることができます。したがって、予測ラベルは$$y=\arg \max_{y}\frac{1}{p(\textbf{a}^y)}\prod_{m=1}^Mp(a_m^y|x)=\arg \max_{y}\prod_{m=1}^M\frac{p(a_m^y|x)}{p(a_m^y)}$$となります。

IAP (Indirect Attribute Prediction)

IAP では、まず、訓練データを用いて観測ラベルの multi-class 分類器  p(y^{\text{train}}|x) (ただし、 y^{\text{train}} \in \mathcal{Y}^{\text{train}}) を学習します。次に、ラベル  y が与えられた時の属性  a_m^y の事後確率  p(a_m|y) p(a_m|y) = [a_m=a_m^y] と仮定します。この仮定の元では、最終的に次の式$$p(a_m|x)=\sum_{k=1}^{|\mathcal{Y^{\text{train}}}|}p(a_m|y_k^{\text{train}})p(y_k^{\text{train}}|x)$$が得られるため、この  p(a_m|x) をDAP の  p(y|x)=\sum_{a\in \{0, 1\}^M}p(y|\textbf{a})p(\textbf{a}|x) に代入することで得られる下記の式$$p(y^{\text{target}}|x)=\frac{p(y^{\text{target}})}{p(\textbf{a}^{y^{\text{target}}})} \prod_{m=1}^M\sum_{k=1}^{|\mathcal{Y^{\text{train}}}|}p(a_m^{y^{\text{target}}}|y_k^{\text{train}})p(y_k^{\text{train}}|x)$$が最大となる  y^{^\text{target}}\in \mathcal{Y}^{\text{target}} が予測結果となります。

まとめ

今回は ZSL で用いられる手法のうち LatEm, CMT, DAP, IAP の4つの手法について紹介しました。今回紹介した手法は前回紹介した手法より複雑な手法でしたが、いずれも面白い発想からのアプローチであり、私自身がかなり勉強になりました。

今回でひとまず ZSL に関する調査は一旦終了にして、次回からはまた別のトピックについて調査しようと思います。これまでの3回の ZSL の記事で紹介した手法以外にも、当然まだまだたくさんの手法が考案されています。ちなみに、紹介しなかった中で個人的に好きな考え方の手法は、ラベルの埋め込み空間内部の構造を利用する SYNC (Synthesized Classifier) [*5] です。大変面白い考え方なので、興味がある方は文献に当たってみてはいかがでしょうか。最新鋭の手法までを紹介することはできませんでしたが、初期から比較的最近までの手法をざっと紹介できたのではないかと思います。読者の皆さんが ZSL を学んだり、利用したりする手助けになっていればと思います。次回からのトピックについてはいくつか候補を考えていますので、ご期待ください。

*1:Y. Xian, Z. Akata, G. Sharma, Q. Nguyen, M. Hein, and B. Schiele, "Latent embeddings for zero-shot classification," in CVPR, 2016.

*2:R. Socher, M. Ganjoo, C. D. Manning, and A. Ng, "Zero-shot learning through cross-modal transfer," in NIPS, 2013.

*3:C. Lampert, H. Nickisch, and S. Harmeling, "Attribute-based classification for zero-shot visual object categorization," in TPAMI, 2013.

*4:H. Kriegel, P. Kro ̈ger, E. Schubert, and A. Zimek, "LoOP: local Outlier Probabilities," in CIKM, 2009.

*5:S. Changpinyo, W.-L. Chao, B. Gong, and F. Sha, "Synthesized classifiers for zero-shot learning," in CVPR, 2016.

© Sansan, Inc.