襖からキリン

読んだ論文まとめ。

Disentangled representationを用いたLife-long learningの論文紹介

今回は、NeruIPS2018にアクセプトされたLife-Long Disentangled Representation Learning with Cross-Domain Latent Homologies の論文を紹介します。
この論文は、一言でいうと、データ分布の変化を自動的に検出し、新しいデータ分布の生成要因にあたる潜在表現を獲得するか、前のデータ分布の潜在表現が活用できるなら再利用して、現タスクの学習を行うと同時に、前に学習した内容も忘れないようにします。
この論文を選んだ理由は、Life-long learningとDisentangled representationが同時に学べたからです。

まず用語の説明を簡単にした後、それらの用語を用いて本論文の内容をもう一度説明して、詳細を述べます。

Life-long learning

実際問題では、タスクは徐々に変化する。Life-long learningは、前のタスク情報を保持しながら、新しいタスクを解決することを繰り返す学習方法です。まさに人生そのものといった感じです。Life-long learning のもう1つの重要な側面は、前に学習した表現を新しいドメインで再利用できることです(positive transfer)。例えば、イチゴとバナナが緑色のときは食べれないという視覚的なドメイン知識を獲得しておくと、将来的に緑色の桃を食べるかどうかを決めるときに役立ちます。つまり、すべての新しい環境でゼロから学習する必要がなくなり、データ効率が向上します。

Catastrophic forgetting

現在の深層学習では、事前に学習した知識を忘れるというCatastrophic forgetting(破壊的忘却)が起きてしまいます。つまり、新しいタスクに適合しすぎて、古いタスクの精度が劣化します。Life-long learningの考えだと前のタスクも記憶してほしいので破壊的忘却をどうするのかがポイントですね。この論文の対策として、 “dreaming” feedback loop とlatent maskingを使用します。あとでまた説明します。

Disentangled Representation

Disentangled Representationとは、潜在変数の各次元に、ただ一つだけの意味を獲得させるような表現学習です。例えば、車を潜在表現で5次元で表したとき、各次元が「色、回転、拡大縮小、形、柄」の意味を持ってほしいというお気持ちです。つまり、ある潜在次元の値だけを変更したときに、その次元の意味だけが生成物に変更されることが期待されます。ある次元の値を動かしたとき、大きさと向きが同時に動くことはDisentangled Representationとは言いません。

提案されたアプローチ

訓練データ分布のシフトを自動検出し、前のタスクまでに獲得した潜在表現を再利用するか、新しいデータセット固有のDisentangled 表現を用いて、Catastrophic forgettingを防ぎながらLife-long learningをおこなう。 順番に、前置き、訓練データ分布のシフトを自動検出の原理、潜在表現の獲得方法、潜在表現の再利用か新しい潜在表現の獲得する方法、Catastrophic forgettingを防ぐ“dreaming” feedback loop とlatent maskingの説明をし、全体の形を説明していきます。

データ分布に対する仮定

まず、データ分布に対して仮定を2つおきます。あるデータ分布は、環境集合 \mathcal{S}=\left\{s _ {1}, s _ {2}, \dots, s _ {K}\right\}のどれかに属するという仮定が1つ。もう1つは、各環境 s _ i は、独立なデータ生成要因の潜在変数集合 \mathcal{Z}=\left\{z _ {1}, z _ {2}, \ldots, z _ {N}\right\}のサブセットによって構築されている仮定です。これらは、図にすると以下のようになります。

f:id:masamasa59:20191228180718p:plain
各データセット/環境がそれぞれクラスターに属すると仮定した図
例えば、図の情報から説明すると z _ {i}が画像の形成分を表す潜在変数なら、その潜在変数を使用する環境 s _ 1, s _ 2のデータセットは、形成分を生成要因に含むデータセットということになります。

データ分布のシフトを自動的に検出するメカニズム

ここで、データ分布のシフトを自動的に検出するメカニズムを直感的に説明すると、新しいバッチ {\bf x}
_ {\text{batch}}が、今までの環境 sに属するか、否かで新しい環境を作るか決めます。ただし、モデル構造的に環境の上限Kは決まっています。
では、今までの環境 sに属するか、否かを表現する数式は以下になります。

f:id:masamasa59:20191228161616p:plain:w500
いきなり変分事後分布があったりと気持ち悪いかもしれませんが、分かりやすく説明するので勘弁してください。どうやって今までの環境 sに属するか、否かは、まず、新しいデータセットのバッチ {\bf x} _ {\text{batch}}が与えられたもとで、学習段階で観測された r個の環境のどれかに属する確率 q\left(\boldsymbol{s} | \mathbf{x} _ {\text {batch }}\right) が一番高いかを調べるところから始まります。その環境 \hat{s}をカテゴリカル分布の最大のクラス \hat{\boldsymbol{s}}=\arg \max _ {\boldsymbol{s}} q\left(\boldsymbol{s} | \mathbf{x} _ {\text {batch }}\right)によって求めます。環境 \hat{s}が求まれば、場合分け式の上が説明できます。もともと環境 \hat{s}に属するデータセットもあるので、環境 \hat{s}のデータセットを用いた平均再構成誤差項の \kappa 倍である \kappa L _ {\hat{s} }より新しいバッチの再構成誤差項の方が小さいのであれば、新しいバッチ {\bf x} _ {\text{batch}}は、一番今まで観測した環境 r個の中であり得そうな環境 \hat{s}のデータセットとします。実験では、 \kappa は1.5倍とかしていたので、気持ち心広く新しいバッチも今までの環境に属するんじゃない?というお気持ちだと捉えました。新しい環境は、そうじゃなかったときです。つまり、一番あり得そうな環境でも上手くデータを再構成できないってことは、新しい環境なんだなということです。

訓練データ分布のシフトを自動検出の原理を説明したので、次は、各環境の潜在表現の獲得方法を紹介します。

Disentangled Representation の使い方

各環境の潜在表現の獲得方法を説明するためには、まずデータの生成モデルをみます。

f:id:masamasa59:20191229094241p:plain
データの生成過程
上の図は、入力データをエンコーダーに通し、潜在表現で環境と環境の潜在変数を推論し、デコーダーで再構成するモデルです。 数式で表すと、以下のようになります。
f:id:masamasa59:20191228161448p:plain:w500
この式は、Disentangled Representationの論文CCI-VAEの式と似たようなものです。違うのは変分事後分布と尤度関数が環境の潜在変数と環境変数 sに依存することだけです。この式の意味合いを説明すると、一項目は環境の潜在変数 z _ s環境変数 sに依存する再構成誤差項です。2項目がVAEしか知らない人からすると特殊です。2項目の C=0, \gamma=1のとき、上式はVAEの変分下界の式の形になります。ただ \gamma を大きくするとβ-VAEになります。β-VAEは、βを大きくすることで、Disentangled Representationが得られるという論文です。つまり変分事後分布のある次元をいじると、ある特徴だけが生成物で変化する表現が獲得できるということです。しかし、βが大きすぎると標準ガウス分布正則化がきつく、再構成ができなくなるという問題を生じます。さらにCCI-VAEでは、ターゲット容量 Cを学習中に徐々に大きくすることで、Disentangledな潜在表現がロバストに獲得できることが示されています。また、しかし、二つのパラメータ C, \gammaのチューニングは、データに依存する部分が大きく難しいです。 ここまでで、提案手法の生成部分がCCI -VAEと似た式なことからDisentangled Representationが得られることは分かりました。しかし、各環境の潜在表現は、潜在変数集合のサブセットで得られると最初に仮定しました。その部分を変分事後分布で表現します。具体的には、以下のように定式化します。
f:id:masamasa59:20191228161534p:plain:w400

 {\bf a}^ s は、 {\bf z} の次元と同じで2値変数でマスクの役割を果たします。つまり、この潜在マスクは環境ごとに変わり、使用する潜在変数 {\bf z} の次元が変わります。 ここまでで、各環境ごとの潜在表現の獲得方法を説明しました。次は、潜在表現の再利用か新しい潜在表現を獲得するか決まる潜在マスク(Latent masking)について、どうやって潜在変数集合のどの変数を使うか決めるのか説明します。

Latent masking

潜在マスクの利点は、3つあります。(1) 環境ごとに必要な潜在表現が得られる。(2) 前の環境では必要だったが、現在の環境では使わない潜在表現 z _ nを無視し、再訓練でき、壊滅的な忘却を防ぐことに繋がります。(3) 環境間の潜在表現を共有できる。つまり、この利点によると、上記の目的関数に従っていれば、新しいデータセットが今までの環境に属するなら、 {\mathbb E} _ { {\bf x}^ s}[{q _ \phi}({\bf z} _ s| {\bf x}^ s)] \approx p({\bf z}^ s) に近づいているはずです。したがって、今までの潜在表現をそのまま使います。しかし、新しいデータセットの場合、潜在表現が標準ガウス分布に近づいていないと考えられます。そこでマスクを外して再学習をし、違うDisentangled表現を獲得します。この直感を数式で表すと以下のようになります。

f:id:masamasa59:20191228161001p:plain:w400
f:id:masamasa59:20191228161353p:plain:w200
注意は、変分事後分布の潜在変数の次元でも標準ガウス分布にあたる項は自動的にマスクを解除しています。こうすることで、マスクのかかっていない変分事後分布の潜在変数には、まだ違うDisentangled表現を獲得する機会があります。

ここまでで、潜在表現の再利用か、新しい潜在表現を獲得するか決まる潜在マスク(Latent masking)のスコア基準について説明しました。しかし、古いデータセットを忘れてしまっては、いくらマスクをしていても古いDisentangled表現が消えてしまいます。そこで次は、破壊的忘却を防ぐ“dreaming” feedback loopについて説明します。

“dreaming” feedback loop

“dreaming” feedback loop、逐次学習にも利用される技術の一つです。モチベーションは、古いデータセットをずっと保存しておくとメモリを食うため、データを破棄したいわけです。幸いなことにVASEは環境の生成モデルを学習しているので、hallucinating(幻覚:生成サンプル) {\bf x}^ {'} が利用できます。つまり、目的関数に以下のような正則化が加わります。

f:id:masamasa59:20191228161713p:plain:w500
エンコーダーデコーダーそれぞれに対して、新しいデータセットに対しての生成モデルにも過去のサンプルが生成できるような正則化をしています。エンコーダーの方は、Wasserstein 距離、デコーダーは、KL divergenceを使っています。その理由は、分かりませんでした。ちなみに古いモデルのパラメータは、定期的に新しいパラメータに変えながら生成を続けています。 “dreaming” feedback loop の概略図は以下の通りです。
f:id:masamasa59:20191229114522p:plain
“dreaming” feedback loop の概略図
“dreaming” feedback loopを使うことで、破壊的忘却を防ぐことができます。

モデルの全体構造

f:id:masamasa59:20191228161739p:plain:w500
個人的にこれは、まだ一部だと思っています。下記の環境推論ネットワークが抜けていると思います。環境クラス分類の推論ネットワーク付録についていましたが、エンコーダーの最終層に全結合を加え、K次元のソフトマックス関数を通して作られます。この最終層からソフトマックスまでの全結合のNNの学習は以下の式で行われます。 f:id:masamasa59:20191228164718p:plain 一項目が今のデータセットのクラスを推論し、二項目が過去のデータセットを生成したサンプルに対するクラスの推論を促進します。 mは、現状で観測されたクラス数になります。

まとめ

Disentangled 表現と逐次学習で使用される破壊的忘却を防ぐ技術など盛り沢山な内容でした。実験は気が向いたら追記します。予想以上に全体構造が掴みにくい論文で苦労しました。個人的に潜在マスクのとこがまだ疑問が残っていますが、時間が解決してくれると願います。

潜在ドメインベクトルを学んだので論文紹介

今日紹介する論文は、Zero-shot Domain Adaptation without Domain Semantic Descriptorsです。この論文は、NeurIPS2019にアクセプトされたTransfer Anomaly Detection by Inferring Latent Domain Representationsのもとになります。

この論文を要約すると、ドメイン適合とZero shot Learningを組み合わせた手法になります。直感的には、まだ見たことないドメインに対してもドメイン適応し、分類・回帰がおこなえる手法です。そのために、潜在ドメインベクトルという概念を提案しています。

この論文の選定理由は、変分事後分布にDeep setsの考え方を導入しており、ドメイン適応と集合データに対する潜在変数の推論に興味があったからです。

ドメイン適応

ドメイン適応とは、ソースとターゲットという二つのタスクを考え、ソースの知識を生かして、ターゲットタスクの汎化性能をあげることです。ここでのタスクは、分類・回帰などを指します。ドメイン適応の場合、両方のタスクに教師データがあるわけではありません。ソースのタスクは、教師付きデータがありますが、ターゲットには、入力データだけがあるという設定です。実際は、それぞれのデータ量やターゲットにラベル付きデータも少量あるとか色々な問題設定で研究されています。詳しくは

github.com

を見てください。
ドメイン適応の簡単な例ですと、訓練データとテストデータでデータ分布が変わるとモデルの予測・分類精度が落ちると言われています。そこでドメイン適応の考えを持ち込み、訓練データをソース、テストデータをターゲットとして捉えドメイン適応をおこないます。テストデータには、教師データがないので確かに!といった感じですね。

Zero shot Learning

Zero shot Learningは、訓練時に見たことないクラスも補助情報に基づいて分類するという学習方法です。詳しくは、

buildersbox.corp-sansan.com

の記事を見てほしいです。ちなみにFew shot Learningは、訓練データとして、各クラスにつき数サンプルは手に入っていることを指します。

Zero shot domain adaptation

Zero shot domain adaptationは、訓練時にターゲットドメインがなくても、複数のソースドメインから訓練時にないターゲットドメインに上手く適合するよう学習する方法です。

提案手法のお気持ち

提案手法のお気持ちは、各ドメインの特徴ベクトル集合から潜在変数を推論し、その潜在変数を用いて分類器を学習します。この潜在変数がドメイン情報を保持するので、潜在ドメインベクトルと呼びます。VAEの場合、各データサンプルごとに潜在変数を推論しますが、今回は、ドメインの訓練サンプル集合から潜在変数を推論する点が異なります。この集合を入力して、出力にベクトルを求める機構はDeep setsの考えを採用しています。詳しくはここを見てください。変分事後分布で推論される潜在ドメインベクトルがドメイン情報を持つので、まだ訓練で見たことないドメインに対しても汎化することが期待されます。 提案手法の流れは、下図の左から順番に見てください。

f:id:masamasa59:20191226093917p:plain
提案手法の概略図

ノーテーション

あるドメインのデータセットは、 \mathcal{D}_{d}:=\{(\mathbf{x}_{d n}, y_{d n})\}_{n=1}^ {N_{d}}で与えられ、ターゲットを除く全ドメイン集合は、 \mathcal{D}:=\bigcup_{d=1}^ {D} \mathcal{D}_{d}です。ラベル集合は全ドメイン共通で y_{d n} \in{1, \ldots, C}です。また、あるドメインの特徴ベクトルとラベル集合をそれぞれ \mathbf{X}_{d}:=\{\mathbf{x}_{d n}\}_{n=1}^ {N_{d}}, \mathbf{Y}_d:=\{\mathbf{y}_{d n}\}_{n=1}^ {N_d}と表します。潜在ドメインベクトルは {\bf z}_dと表します。

定式化

まず周辺対数尤度は以下のように表します。ドメインごとに独立かつデータ点ごとにもi.d.d. を仮定します。

 \ln p(\mathcal{D})=\ln \prod_{d=1}^{D} \int \prod_{n=1}^{N_{d}} p_{\theta}(y_{d n} | \mathbf{x}_{d n}, \mathbf{z}_{d}) p(\mathbf{z}_{d}) d \mathbf{z}_{d}

まず潜在ドメインベクトルの事前分布は、標準ガウス分布を用います。尤度関数は、特徴ベクトル{\bf x}_{d n}と 潜在ドメインベクトル{\bf z}_{d} に条件づけられています。尤度関数は、分類の場合、特徴ベクトルと潜在ドメインベクトルをそれぞれNNに入力し、出力同士の内積をとります。その後にソフトマックス関数を適応し、カテゴリカル分布を用います。数式でソフトマックス関数に通す前の各クラスの出力を表すと以下になります。

 f_{c}(\mathbf{x}\_{d n}, \mathbf{z}\_{d}):=h(\mathbf{x}_{d n}) \cdot g_{c}(\mathbf{z}_{d}), \quad h(\mathbf{x}_{d n}) \in \mathbb{R}^{J}, g_{c}(\mathbf{z}_{d}) \in \mathbb{R}^{J}

 g_cの出力がクラス数分あることに気をつけてください。したがって、潜在ドメインベクトルを入力とする g_cは、潜在ドメインベクトルが変化することで、クラス分類境界を適応させる役割をしています。
学習には、変分推論を採用しています。

 \ln p(\mathcal{D}) \geqq \mathcal{L}(\mathcal{D} ; \theta, \phi):=\sum_{d=1}^{D}[-D_{K L}(q_{\phi}(\mathbf{z}_{d} | \mathbf{X}_{d}) \| p(\mathbf{z}_{d}))\\+\mathbb{E}_{q_{\phi}(\mathbf{z}_{d} | \mathbf{X}_{d})}[\sum_{n=1}^{N_{d}} \ln p_{\theta}(y_{d n} | \mathbf{x}_{d n}, \mathbf{z}_{d})]]

ここで、潜在ドメインベクトルの変分事後分布は以下で表します。

 q_{\phi}(\mathbf{z}_{d} | \mathbf{X}_{d})=\mathcal{N}(\mathbf{z}_{d} | \mu_{\phi}(\mathbf{X}_{d}), \sigma_{\phi}^{2}(\mathbf{X}_{d}))

注意したいのは、変分事後分布の平均と分散が、VAEの推論ネットワークの入力と違い、入力に特徴ベクトルの集合を与えている点です。 平均と分散は以下の式の出力の半分次元ずつで与えられます。

 \tau\left(\mathbf{X}_{d}\right)=\rho\left(\frac{1}{N_{d}} \sum_{n=1}^{N_{d}} \eta\left(\mathbf{x}_{d n}\right)\right)

 \rho, \eta はそれぞれNNを表します。この関数 \rho の入力前に平均操作を入れることで入力の順番に不変なモデルにしています。
新しいドメイン d^{\prime}に対する予測分布は、以下の式で与えられます。

 p\left(y_{d^{\prime} n} | \mathbf{x}_{d^{\prime} n}\right)=\int p_{\theta}\left(y_{d^{\prime} n} | \mathbf{x}_{d^{\prime} n}, \mathbf{z}_{d^{\prime}}\right) q_{\phi}\left(\mathbf{z}_{d^{\prime}} | \mathbf{X}_{d^{\prime}}\right) d \mathbf{z}_{d^{\prime}}\\
 \approx \frac{1}{L} \sum_{\ell=1}^{L} p_{\theta}\left(y_{d^{\prime} n} | \mathbf{x}_{d^{\prime} n}, \mathbf{z}_{d^{\prime}}^{(\ell)}\right)

新しいドメインの特徴ベクトル集合から潜在ドメインベクトルの変分事後分布を推論し、サンプリングされた潜在ドメインベクトルと特徴ベクトルから分類を行います。

実験

潜在ドメインベクトルの可視化をしている実験があったので紹介します。MNINST-r というデータセットを使用します。それは、全10クラスで各クラス10枚ずつあるMNINSTが {0, 15, 30, 45, 60, 75}度回転したデータセットになります。この実験では、回転角度がドメイン情報になります。訓練は、5ドメインで行われます。残りの1ドメインがテストになります。訓練後の潜在ドメインベクトルの平均と分散を可視化したのが以下の図です。青が訓練ドメインで、赤がテストドメインになります。

f:id:masamasa59:20191226154802p:plain
潜在ドメインベクトルの変分事後分布の可視化
潜在表現が上手く回転角度に応じて得られていることが分かりました。

まとめ

複数のドメインデータ集合から各潜在ドメインベクトルを求め、まだ見たことがないドメインに対しても汎化するZero shot Domain Adaptationの論文紹介でした。

バイパス現象を初めて知ったので論文紹介

今日紹介する論文は、ICML2018にアクセプトされたVariational Attention for Sequence-to-Sequence Modelsを紹介します。 この論文は、Variational Encoder Decoderの問題点であったバイパス現象を解決するアプローチ方法を提案しています。

この論文の選定理由は、潜在変数モデルに興味があり、このバイパス現象も潜在変数モデルに起因する問題なので取り上げました。

ノーテーション

入力系列(Source)と出力系列(Target)は、 {\bf x}^ {(n)}=(x_1,...,x_{|{\bf x}|}), {\bf y}^ {(n)}=( y_1,...,y_{|{\bf y}|}),  n = 1,...,Nで定義します。入力系列をエンコードした出力を \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}とし、 デコーダーの出力は、 \{\boldsymbol{h}_{j}^ {(\mathrm{tar})} \}_{j=1}^ {|y|}とします。 注意は、デコーダーの出力の添字は jです。あとでAttentionの説明を読むときに大事になります。

Variational Encoder Decoder(VED)とは

応用として、機械翻訳:machine translation、対話システム:dialogue systems、テキスト要約 :text summarizationが挙げられます。つまり、ある系列情報を違う系列情報に変換する際に使用されます。モデルとしては、以下の図のようになります。

f:id:masamasa59:20191224103848p:plain
Variational Seq2Seq model

Xに質問を入力してYに質問の答えを出力させるイメージです。ただ、ある入力の文書に対して、出力が決定論的だと対話システムとしてはつまらないですよね。 つまり、図の中央のガウス分布は何を意味しているかと言うと、確率的に出力の文章を変える働きをしています。特にEncoderとDecoderにRNNを使用すると上の図は、Variational Seq2Seqと呼ばれるモデルになります。 学習はVAEと同様に変分下界最大化の式になります。このとき、VAEとの違いは、出力が入力の関数Y=Y(X)という仮定に基づき、 q_{\phi}({\bf z}|{\bf y})  = q_{\phi}({\bf z}|{\bf Y}({\bf X}))  =q_{\phi}({\bf z}|{\bf x})となる点です。VEDの変分下限は以下の式で表せます。

f:id:masamasa59:20191224100550p:plain:w500

Attention メカニズム

簡単に説明すると、VEDのエンコーダーの最後の出力 h_{|x|}に今までの系列情報を保持させデコーダーに渡すのは、ベクトルに情報を詰め込みすぎという観点から、エンコーダーの各入力に対する出力の重みつき和をデコーダーに渡すという作戦です。重み付き和は以下の式で定義されます。


\boldsymbol{a}_{j}=\sum_{i=1}^ {|\boldsymbol{x}|} \alpha_{j i} \boldsymbol{h}_{i}^ {(\mathrm{src})}

 \boldsymbol{a}_{j}の添え字にj がついていることに気をつけてください。これは、デコーダーに入力として与えるとき、系列の要素ごとに変化することを意味します。この変化は今から説明する重み \alpha_{j i} を決める際に関わってきます。 重み \alpha_{j i} は、以下の式で表されます。


\alpha_{j i}=\frac{\exp \left\{\widetilde{\alpha}_{j i}\right\}}{\sum_{i^{\prime}=1}^{|x|} \exp \left\{\widetilde{\alpha}_{j i^{\prime}}\right\}}

 \widetilde{\alpha}_{j i} は、スコアを表します。その式の表し方は多くありますが、今回は \widetilde{\alpha}_{j i}= \boldsymbol{h}_{j}^ {(\text {tar })} W^{T} \boldsymbol{h}_{i}^ {(\text {src })} を使用しています。このスコアの直感的な意味合いを説明します。このスコアは、エンコーダーの各要素の出力 \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}とターゲットのデコーダーの出力 \boldsymbol{h}_{j}^ {(\text {tar })} との類似度のようなものを表しています。エンコーダーの出力 \{\boldsymbol{h}_{i}^ {(\mathrm{src})} \}_{i=1}^ {|x|}のうち、次のデコーダーの出力において重要な入力系列の要素に対してスコアが大きくなるということです。そのため、デコーダーの入力ごとに重み \alpha_{j i} は変化します。このAttentionを使うことで入力系列の情報を上手く、出力系列系列に渡すことができます。

バイパス現象とは

決定論的Attentionを用いたVEDだと、下図のようにエンコーダーからデコーダーに向かって、潜在変数を経由したパスと決定論的なAttentionを経由したパスが二つあります。バイパス現象とは、決定論的Attentionのパスの方で学習が進み、潜在変数の方にエンコーダからの情報がつまらないことを指すようです。

f:id:masamasa59:20191224103622p:plain
Variational Seq2Seq with deterministic attention.

理論的な話をすると、ノーマルなVEDと違い、尤度関数がAttentionからのパスの影響で、 {\bf X},{\bf Z} で条件づけられる確率分布 p_{\theta}({\bf Y}|{\bf X},{\bf Z}) になる点です。このとき、入力 {\bf X}の情報を持つ変分事後分布 q({\bf Z}| {\bf X}) に頼らず、直接決定論のAttention経由の {\bf X}で再構成誤差項を学習することが問題だと指摘しています。結果として、変分事後分布 q({\bf Z}| {\bf X}) は、事前分布の標準ガウス分布に近づく方で変分下界を最大化してしまう。

提案された Variational Attention

そこで提案された方法は、決定論的なAttentionの方も確率変数化してしまうアプローチです。図でみるとわかりやすいですね。

f:id:masamasa59:20191224103458p:plain
提案されたアプローチ:Variational Seq2Seq with variational attention.

変分下界の変更点は、尤度関数に直接{\bf X} が条件づけられず、 Attention ベクトル {\bf a} の確率変数で条件づけられ、KL項がもう一つ追加されたことです。実際の式は以下のようです。

f:id:masamasa59:20191224104659p:plain:w500

 {\bf a} の事前分布と事後分布について説明します。事前分布は二種類あり、1つは標準ガウス分布、もう1つは、平均が入力系列の各入力に対する隠れ状態の平均を使用するガウス分布 p({\bf a} _ j) =\mathcal{N}(\bar{h}^ {(\mathrm{sre})}, \mathrm{I}),  \bar{{h}}^ {(\mathrm{src})}=\frac{1}{|{x}|} \sum _ {i=1}^ {|{x}|} {h} _ {i}^ {(\mathrm{src})}です。この事前分布の妥当性は、幾何学的解釈がされていましたが、負に落ちず、結局わかりませんでした。 変分事後分布は、ガウス分布を使用し、平均は、 {\bf a}_jの恒等変換、分散は tanhの活性化関数を持つ一層のNNの出力を使用しています。

実験結果

実験の一部を紹介します。QAデータセットStanford Question Answering Dataset (SQuAD)を使用して、Sourceを入力し、その潜在変数から3文を生成させた結果を示しています。決定論的Attentionを持つVED(VED+DAttn)と比較して、Variational Attention(VED+VAttn)の方が文に多様性を持つことが見れます。 f:id:masamasa59:20191224113140p:plain

まとめ

バイパス現象を紹介しました。エンコーダーからデコーダへのパスが決定論的と確率の二種類がある時は、要注意かなと思いました。

二つのデータセットを比較して潜在表現を獲得する論文紹介

紹介する論文は、AAAI2019にアクセプトされていたUnsupervised Learning with Contrastive Latent Variable Modelsです。 この論文は、二つの類似したデータセットを比較して、共有潜在表現と片方のデータセットのみにしかない表現をそれぞれ潜在変数で獲得することが目標です。

直感的に理解するために図1. から説明すると、ターゲットの草(背景)に数字が書かれている画像を、草と数字部分を別々の潜在表現で獲得することが目標です。そのために比較データセットとして、背景データセットに草だけの画像を使用します。  

f:id:masamasa59:20191220131856p:plain
(a) 下が背景データセットの例で草の画像になる。上がターゲット画像になり、背景の上に数字が書かれている。(b)潜在変数からそれぞれを生成させたとき、数字と背景が分かれていることが分かる。
 

この論文の選定理由は、確率モデルの拡張が綺麗に行われており、ベイズモデリングを勉強中の人が、深層ベイズ学習の導入までが自然に感じられると思ったからです。

詳しくいうと、最初に共役性事前分布で構築された線形ガウスモデル、次に共役性がなく一般化された線形確率モデル、最後にNNを用いて線形から非線形へ拡張と順番に展開しています。

それでは順番にみていきましょう。 

Contrastive Latent Variable Models 

まず、表記としてターゲットのデータセット \{ {\bf x}\ _i \}_{i = 1}^n、背景のデータセット \{ {\bf y}_j  \}_{j=1}^mと表します。また、目的の背景の潜在変数を {\bf z}_i, {\bf z}_j \in  {\mathbf R}^kとし、ターゲットの潜在変数は{\bf t}_i とします。このとき、モデルは以下のように定義します。


\begin{aligned} \mathbf{x}_{i} &=\mathbf{S} \mathbf{z}_{i}+\mathbf{W} \mathbf{t}_{i}+\boldsymbol{\mu}_{x}+\boldsymbol{\epsilon}_{i}, \quad i=1 \ldots n \\ \mathbf{y}_{j} &=\mathbf{S} \mathbf{z}_{j}+\boldsymbol{\mu}_{y}+\boldsymbol{\epsilon}_{j}, \quad j=1 \ldots m \end{aligned}

ここでポイントは次元圧縮の線形パラメータ {\bf S} が両方で共有されていることです。このおかげで、潜在変数 { \bf z} に両方のデータセットにある共通要因(背景)が得られます。 そして、もう一つの潜在表現  { \bf t}_{i} にターゲットのみ持つ特徴が得られるお気持ちです。 今は、線形モデルになっていますが、最後には、この線形性がNNにより非線形に置き換わります。それでは、各々の確率モデルを見ていきましょう。

線形ガウスモデル

それぞれのデータの生成過程を線形ガウスモデルで以下のように定義しています。


 \mathbf{x}_{i} | \mathbf{z}_{i}, \mathbf{t}_{i} \sim \mathcal{N}\left(\mathbf{S}{\mathbf{z}_{i}}+\mathbf{W} \mathbf{t}_{i}+\boldsymbol{\mu}_{x}, \sigma^{2} \mathbf{I}_{d}\right)

 \\ \mathbf{y}_{j} | \mathbf{z}_{j} \sim \mathcal{N}\left(\mathbf{S}{\mathbf{z}_{j}}+\boldsymbol{\mu}_{y}, \sigma^{2} \mathbf{I}_{d}\right)

\mathbf{z}_{i} \sim \mathcal{N}\left(0, \mathbf{I}_{k}\right), \quad \mathbf{z}_{j} \sim \mathcal{N}\left(0, \mathbf{I}_{k}\right), \quad \mathbf{t}_{i} \sim \mathcal{N}\left(0, \mathbf{I}_{t}\right)

モデルパラメータ \mathbf{S}, \mathbf{W}, \mu_{x}, \mu_{y}, \sigma^{2}は、尤度最大化のEMアルゴリズムで学習します。Eステップで各潜在変数の事後分布 p({\bf z}_i, {\bf t}_i|{\bf x}_i) p({\bf z}_j, |{\bf y}_j)を求めて、Mステップで尤度最大になるモデルパラメータをそれぞれ求めます。線形ガウスモデルなので、それぞれが解析的にもとまります。今回はモデルの拡張に焦点を当てているので学習の詳しい式変形は論文を見てください。

線形ガウスモデルを超えて

モデルパラメータ \mathbf{S}, \mathbf{W}に事前の信念を組み込むことで多様なモデリングが可能になります。この論文では、モデルパラメータ \mathbf{S}, \mathbf{W}に、ロバスト性、スパース性、ARD(関連度自動決定)の事前分布を与えたベイズモデリングも提案しています。モデルの同時確率は以下のように定義されます。

 \begin{array}{l}{p\left(\mathcal{D},\left\{\mathbf{z}_{i}, \mathbf{t}_{i}\right\}_{i=1}^{n},\left\{\mathbf{z}_{j}\right\}_{j=1}^{m} , \boldsymbol{\Theta}\right)=} \\ {\quad p(\Theta) \prod_{i=1}^{n} p\left(\mathbf{x}_{i} | \mathbf{z}_{i}, \mathbf{t}_{i} ; \mathbf{W}, \mathbf{S}, \boldsymbol{\mu}_{x}, \sigma^{2}\right) p\left(\mathbf{z}_{i}\right) p\left(\mathbf{t}_{i}\right)} \\ {\prod_{j=1}^{m} p\left(\mathbf{y}_{j} | \mathbf{z}_{j} ; \mathbf{S}, \boldsymbol{\mu}_{y}, \sigma^{2}\right) p\left(\mathbf{z}_{j}\right)}\end{array}

尤度関数と事前分布にどんな分布を仮定するかは以下の表にまとまっています。

f:id:masamasa59:20191220155755p:plain
図2 モデルの要約 最右列は変分推論の際に仮定する近似分布を表しています。

これらは線形ガウスモデルと違い、共役性のない事前分布を仮定しており、潜在変数についても事後分布の形がわかりません。そのため、一般的に、MCMCか変分推論かラプラス近似で事後分布を推論することが多いです。ここでは、変分推論を採用しています。変分推論は、真の事後分布に分解を仮定した変分事後分布で近似します。近似となる変分事後分布 q\left(\mathbf{t}_{i} | \lambda_{\mathbf{t}_{i}}\right) q\left(\mathbf{z}_{i} | \lambda_{\mathbf{z}_{i}}\right) q\left(\mathbf{z}_{j} | \lambda_{\mathbf{z}_{j}}\right) を各データ点に対して仮定します。どんな近似分布を仮定するかは、図2の最右列を見てください。このとき、 \lambda=\{\{ \lambda _ {\mathbf{z} _ i }, \lambda _ {\mathbf{t} _ i } \} _ {i=1}^ n, \{\lambda _ {\mathbf{z} _ j}\} _ {j=1}^ m \}は、変分パラメータと言い、変分下界最大化の際にモデルパラメータと同時に学習します。 パラメータを学習する際の変分下界最大化の式を書くと、 f:id:masamasa59:20191222091807p:plain と表せます。この変分下界は1項目と4項目が変分事後分布からサンプリングされた {\bf z}_i {\bf z}_j {\bf t}_iを用いて、データ点の値をとる確率の高さを表します。2, 3, 5項目は、変分事後分布が尤度が大きくなる方向に最適化されすぎないように、事前分布で正則化する項です。最後の項はモデルパラメータの事前分布を表し、論文上の式ではMAP解の {\Theta} を求めるようです。つまり、モデルパラメータの不確実性は求めないことを意味します。しかし、図2の最右列では、そのパラメータに対して変分事後分布を仮定しているので、どっちを実験で採用したのかわかりません。とりあえず、この変分下界が最大になるように、変分パラメータ \lambdaとモデルパラメータ {\Theta} を Adamなど最適化アルゴリズムを用いて学習します。詳しい式変形がわからない方は、PRMLなど深層ベイズ学習にもこの変分下界の導出方法が書いてあるので参考にしてください。

NNを用いて非線形モデルに拡張

潜在変数を非線形変換する関数 f_{\theta_s},  f_{\theta_t} を用いて、背景データ {\bf x}、ターゲットデータ {\bf y} の生成過程をモデル化します。これにより画像など高次元で複雑なデータからもターゲット画像から背景の分離が可能になると思われます。


\begin{aligned} \mathbf{x}_{i}=& f_{\theta_{s}}\left(\mathbf{z}_{i}\right)+f_{\theta_{t}}\left(\mathbf{t}_{i}\right)+\boldsymbol{\epsilon}_{i}, \quad i=1 \ldots n \\ \mathbf{y}_{j}=& f_{\theta_{s}}\left(\mathbf{z}_{j}\right)+\boldsymbol{\epsilon}_{j}, \quad j=1 \ldots m \end{aligned}

先ほどの変分下界最大化の式からの変更点は、2つあります。1つ目は、もちろん潜在変数を非線形変換するため、NNを使用する点。2つ目は、変分事後分布のパラメータを、データ点を入力とするNNの出力値にする点です。先ほどは、データ点ごとに変分パラメータがありました。これは、データ点が多くなると変分パラメータも同様に増えていきます。しかし、NNを用いることでデータ点の数に依存せずパラメータ数は固定されます。この潜在変数から観測データに変換するNNを生成ネットワークと呼び、観測データから潜在変数に変換するNNを推論ネットワークと呼ぶこともあります。その推論ネットワークを用いる変分事後分布は以下のように表します。


q_{\lambda_{t}}\left(\mathbf{z}_{i}, \mathbf{t}_{i} | \mathbf{x}_{i}\right)=\mathcal{N}\left(\mathbf{z}_{i} | g_{\lambda_{t}}^{\mu}\left(\mathbf{x}_{i}\right), g_{\lambda_{t}}^{\sigma}\left(\mathbf{x}_{i}\right)\right) \mathcal{N}\left(\mathbf{t}_{i} | g_{\lambda_{t}}^{\mu}\left(\mathbf{x}_{i}\right), g_{\lambda_{t}}^{\sigma}\left(\mathbf{x}_{i}\right)\right.

q_{; \lambda_{s}}\left(\mathbf{z}_{j} | \mathbf{y}_{j}\right)=\mathcal{N}\left(\mathbf{z}_{j} | g_{\lambda_{s}}^{\mu}\left(\mathbf{y}_{j}\right), g_{\lambda_{s}}^{\sigma}\left(\mathbf{y}_{j}\right)\right)

推論ネットワークは、  g_{\lambda_{t}} g_{\lambda_{s}}の2種類だけです。また、 \lambda_{t}, \lambda_{s}は推論ネットワークのパラメータをそれぞれ表します。この変分事後分布を用いて、変分下界を最大化するようにモデルを学習します。

実験について 

欠損データからサブグループの発見、特徴自動選択、ノイズ除去で実験をおこなっていました。 特徴自動選択の実験の説明をすると、目標が被験者のある行動(静止状態)のセンサデータが手に入ったもとで、その被験者の他のラベルのない行動(サイクリングとスクワット)のセンサデータについて分類する特徴を見つけたい。要するに、被験者のサイクリングとスクワット時のセンサデータがターゲットデータセットに用いられ、背景データセットは被験者の静止状態のセンサデータとしています。モデルは、スパースな潜在表現を得るモデルSparse cLVMを採用しています。結果は、図3[左]のように、教師データなしでうまく二つの行動を分類する潜在表現が獲得できています。またその潜在表現獲得時に必要になったセンサデータの特徴をスパース表現から獲得しています。それが図3[右]の結果になります。

f:id:masamasa59:20191222201619p:plain
図3. [左]ターゲットの潜在表現を二次元で可視化した図であり、うまく二つの行動を分類できている。[右] 与えられるセンサデータのうち、スパースな表現で得られた重み係数 {\bf w}を示す。縦の値が大きいほど重要な特徴量としてみる。

ノイズ除去の実験の結果は冒頭の図1の通りです。

まとめ

二つの類似したデータセットから共有潜在表現とターゲットデータのみ持つ潜在表現をそれぞれ獲得する確率モデルの論文紹介でした。これは、Disentangled Representation と違ったアプローチで観測データの潜在的表現を分解していると思いました。また論文自体も自然にモデルを拡張しつつ、ロバストな確率モデルやスパースな確率モデルを導入しており、単純に勉強になりました。