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つおきます。あるデータ分布は、環境集合のどれかに属するという仮定が1つ。もう1つは、各環境 は、独立なデータ生成要因の潜在変数集合のサブセットによって構築されている仮定です。これらは、図にすると以下のようになります。 例えば、図の情報から説明するとが画像の形成分を表す潜在変数なら、その潜在変数を使用する環境のデータセットは、形成分を生成要因に含むデータセットということになります。
データ分布のシフトを自動的に検出するメカニズム
ここで、データ分布のシフトを自動的に検出するメカニズムを直感的に説明すると、新しいバッチが、今までの環境に属するか、否かで新しい環境を作るか決めます。ただし、モデル構造的に環境の上限Kは決まっています。
では、今までの環境に属するか、否かを表現する数式は以下になります。
訓練データ分布のシフトを自動検出の原理を説明したので、次は、各環境の潜在表現の獲得方法を紹介します。
Disentangled Representation の使い方
各環境の潜在表現の獲得方法を説明するためには、まずデータの生成モデルをみます。 上の図は、入力データをエンコーダーに通し、潜在表現で環境と環境の潜在変数を推論し、デコーダーで再構成するモデルです。 数式で表すと、以下のようになります。
は、 の次元と同じで2値変数でマスクの役割を果たします。つまり、この潜在マスクは環境ごとに変わり、使用する潜在変数 の次元が変わります。 ここまでで、各環境ごとの潜在表現の獲得方法を説明しました。次は、潜在表現の再利用か新しい潜在表現を獲得するか決まる潜在マスク(Latent masking)について、どうやって潜在変数集合のどの変数を使うか決めるのか説明します。
Latent masking
潜在マスクの利点は、3つあります。(1) 環境ごとに必要な潜在表現が得られる。(2) 前の環境では必要だったが、現在の環境では使わない潜在表現を無視し、再訓練でき、壊滅的な忘却を防ぐことに繋がります。(3) 環境間の潜在表現を共有できる。つまり、この利点によると、上記の目的関数に従っていれば、新しいデータセットが今までの環境に属するなら、 に近づいているはずです。したがって、今までの潜在表現をそのまま使います。しかし、新しいデータセットの場合、潜在表現が標準ガウス分布に近づいていないと考えられます。そこでマスクを外して再学習をし、違うDisentangled表現を獲得します。この直感を数式で表すと以下のようになります。
ここまでで、潜在表現の再利用か、新しい潜在表現を獲得するか決まる潜在マスク(Latent masking)のスコア基準について説明しました。しかし、古いデータセットを忘れてしまっては、いくらマスクをしていても古いDisentangled表現が消えてしまいます。そこで次は、破壊的忘却を防ぐ“dreaming” feedback loopについて説明します。
“dreaming” feedback loop
“dreaming” feedback loop、逐次学習にも利用される技術の一つです。モチベーションは、古いデータセットをずっと保存しておくとメモリを食うため、データを破棄したいわけです。幸いなことにVASEは環境の生成モデルを学習しているので、hallucinating(幻覚:生成サンプル) が利用できます。つまり、目的関数に以下のような正則化が加わります。
モデルの全体構造
まとめ
Disentangled 表現と逐次学習で使用される破壊的忘却を防ぐ技術など盛り沢山な内容でした。実験は気が向いたら追記します。予想以上に全体構造が掴みにくい論文で苦労しました。個人的に潜在マスクのとこがまだ疑問が残っていますが、時間が解決してくれると願います。