CV / MLのメモ

論文・勉強の備忘録

Continual Unsupervised Representation Learning

NeuriPS 2019,DeepMindから arXiv

Abstruct

taskやclassが学習の中で連続的に変化していくcontinualな条件において,教師なし表現学習を行う新しい取り組み.ベースはVAE的な生成モデルで,ポイントとしては連続的に変化するとしているtaskやclassを表すcomponentをその生成過程に組み込みこと,compenentを学習の中で動的に追加していくこと,過去のモデルによって生成されるデータを用いてforgetを回避すること. MNIST,Omniglotにおける表現学習で各ポイントの有効性などを示した.

Concept

機械学習ではiidなデータサンプリングからの教師なし表現学習は多く取り組まれているが,タスクがその明示的な境界が与えられずに連続的に変化していく設定での表現学習はデータ効率などの観点ではより有用である.人間は生活の中で教師がない様々なタスクを通して様々な概念を学習している.それらはiidなinputではなく時間的に連続しており,タスクの明確な境界は与えられない.こういった人間の学習方法の着想を得て,Continual Unsupervised Representation Learningという新しい問題に取り組んでいる.

Model

基本的なモデル

次のような生成モデルを考える


y \sim {\rm Cat}(\pi) \\
z \sim \mathcal{N} (\mu_z(y), \sigma^2_z(y)) \\
x \sim {\rm Bernoulli}(\mu_x(z))

生成過程からp(x, y, z)=p(y)p(z|y)p(x|z)となる.ここでカテゴリ分布からサンプルされるyがcompenentと呼ばれ,タスクなどを意味する.zはデータの潜在変数であるが,サンプルされるガウス分布のパラメータはタスクyに依存する.基本的にはVAEの生成過程にyが加わった構成.

この生成モデルの尤度最大化は以下のようにELBOの最大化によって行う.

\begin{align} \log p(x) \geq \mathcal{L} = \mathbb{E}_{q(y,z|x)} \left[ \log p(x,y,z)-\log q(y,z|x) \right] \end{align}

ここまではVAEの潜在変数をy, zに分解したのと同じ.さらに,

\begin{eqnarray} &=& \mathbb{E}_{q(y,z|x)}[\log p(x|y,z)-\log \frac{q(y,z|x)}{p(y,z)}] \\ &=& \mathbb{E}_{q(y,z|x)}[ \log p(x|z)] -\mathbb{E}_{q(y,z|x)}[\log \frac{q(y,z|x)}{p(y,z)}] \end{eqnarray}

第二項に関して

\begin{eqnarray} 第二項 &=& \mathbb{E}_{q(y,z|x)}[\log \frac{q(y|x) \cdot q(z|x,y)}{p(z|y)\cdotp(y)}] \\ &=& \mathbb{E}_{q(y,z|x)}[\log \frac{q(z|x,y)}{p(z|y)} + \log \frac{q(y|x)}{p(y)}] \\ &=& \mathbb{E}_{q(y|x)} \left[\int q(z|x,y) \log \frac{q(z|x,y)}{p(z|y)}dz \right] + \mathbb{E}_{q(y|x)} \left[\mathbb{E}_{q(z|x,y)} [\log \frac{q(y|x)}{p(y)}] \right] \\ &=& \mathbb{E}_{q(y|x)}[{\rm KL}(q(z|x,y)||p(z|y))] + {\rm KL}(q(y|x)||p(y)) \end{eqnarray}

よって

\begin{eqnarray} \mathcal{L} = \mathbb{E}_{q(y|x)q(z|x,y)}[\log p(x|z)]- \mathbb{E}_{q(y|x)}[{\rm KL}(q(z|x,y)||p(z|y))] - {\rm KL}(q(y|x)||p(y)) \\ \mathcal{L} = \mathbb{E}_{q(y|x)}\left[\int q(z|x,y) \log p(x|z)dz - {\rm KL}(q(z|x,y)||p(z|y)) \right] - {\rm KL}(q(y|x)||p(y)) \\ \approx \sum_k \left[q(y=k|x) \left[\log p(x|\tilde{z}^k) - {\rm KL}(q(z|x,y)||p(z|y)) \right] \right] - {\rm KL}(q(y|x)||p(y)) \end{eqnarray}

まで行ける.

ここで, q(z|x,y)部分はサンプリングが必要となるのでreparametrization trickを用いており, \tilde{z}^k \sim q(z|x,y=k)としている.normalなoriginalのVAE風にいうと1項目が再構成項,2,3項目がそれぞれ z xに関する正則化項.

Component-constrained learning

componentが既知の場合は以下の尤度最大化を行う.

\begin{eqnarray} \mathcal{L_{sup}} &= \log p(x |\tilde{z}^{y_{obs}}, y = y_{obs}) - {\rm KL} (q(z|x,y-y_{obs}) || p(z|y=y_{obs})) \\ & + \log q(y=y_{obs}|x) \end{eqnarray}

componentがわかっているので式 (10) のような尤度関数のcomponentによる周辺化をなくし. yに関する正則化項も既知のcomponentを用いた対数尤度としている.

Dynamic expansion

continual learningではcomponentの数が学習の中で増加していき,モデルは学習段階ごとに既出のcomponent数に合わせたものにするのが望ましい,そこで,学習の中で動的にcomponent数を増加させていくDynamic expansionを提案している.Dynamic expantionでは,モデルのELBOに対して閾値を設け閾値を下回るサンプルが一定以上に達した場合に新しいcomponentが出現したとみなしてcomponentを追加していく.新たなcomponentのパラメータは既存の最も確率値が高くなるcomponentのパラメータで初期化し,閾値を下回るサンプルを用いて数iteration学習する.

Combatting forgetting via mixture generative replay

continual learningでは過去の学習サンプルに対してforgetしないことが重要で,従来手法として過去のサンプルで学習して保存された生成モデルから生成されたデータを学習に再利用するDeep Genarative Replay (DGR) がある.

今回は提案するcomponentを含めた生成モデルによるDGRをmixture DGR (MGR) と呼んで利用している.生成モデルの保存はDynamic expansionの直前や決め打ちのiterationスパンで行われる.今回の生成モデルではcomponentの条件付き生成が可能なので,componentを既知として先述のComponent-constrained learningを行うこともできるが,componentを指定せずに式 (10) を最大化する方が良かった.これは,学習の過程でcomponentのアサインのされ方が変化していて,過去のアサインを強制することは悪影響を及ぼすためと考察している.

Evaluation

MNIST,Omniglotで学習の中で出現するクラスを動的に変化させていき,componentのclustering accuracyと学習された生成モデルの潜在空間におけるk-NNのaccuracyで評価している.clustering accuracyは各componentが最も近いクラスに割り当てられたとして,計算する.また,k-NNを用いる潜在空間は各componentの確率や各componentに条件づけられたすべての潜在変数を含む.

基本的にcomponentを増やした方が良い傾向となりパラメータ数とトレードオフの関係にあるが,同一のcomponent数だとdynamic expansionを用いた方が良い結果となる,また,MGRの効果も大きい.

memo

Dynamic expansionがELBOへの閾値処理ベースだったりする点が多少無理矢理感を感じたが,生成過程に明示的にcomponentを含めるよう手を加えた生成モデルを学習させる点は勉強になった.今回の評価ではタスクの遷移というより出現するクラスの遷移を想定しており,またそのためにk-NNでのaccuracyはcomponent横断で良い特徴を取れているかというよりもcomponentの分離ができているかというところに焦点が当たっているようにも思えたので,タスク遷移での評価も気になる.新しくて興味深い問題設定なので今後の研究に期待.