襖からキリン

読んだ論文まとめ。

変化点検知とメタラーニングの統合論文の紹介(前半)

今日紹介する論文は、Continuous Meta-Learning without Tasksです。

要約すると、オンラインタスク変化検知とメタラーニングの統合手法の提案になります。今までのメタラーニングは、タスクを複数に分割して考えていたが、実問題では、環境は変化し続け、タスクを区切ることは難しいです。提案手法は、時系列でタスクが変化したかどうかをオンラインで推論できるようにしています。つまり、複数のタスクに分割する必要がなく、時系列データのまま、直接トレーニングおよびテストすることができます。

提案手法名はMOCA(Meta-learning via Online Changepoint Analysis)だそうです。

f:id:masamasa59:20200114203722p:plain
提案手法のMOCAの概略図。タスクがヨットとナマケモノの分類から、バスとガチョウの分類に切り替わる時に、タスクの継続を表す連長が0を推定すると変化点検知成功になります。

Meta-Learning

メタラーニングは、あるタスクにだけ汎化するような学習はせず、複数のタスクに対して汎化するような学習方法です。用語を説明すると、タスクは、猫犬分類とか猿犬分類とか、回帰のことを指します。汎化はテストデータに対して予測分類が上手くいくかです。K個のタスクで訓練し、テスト時も同じK個と変わらないのであれば、マルチタスク学習になりますが、メタラーニングの場合、K個のタスクで訓練し、テスト時に、訓練で見たことないタスクに対しても汎化することを目的にしています。つまりタスク分布という概念を考え、タスク分布からサンプリングされた複数のタスクで学習したモデルを用いて、テスト時にまたタスク分布からサンプルされた別のタスクに対して汎化することを目指します。

メタラーニングの手法はmeta-training と online adaptationの二段階になっています。 meta-trainingとは、複数のタスクに汎化するための枠組みで必要なパラメータを学習することを言います。このとき、学習するパラメータをメタパラメータ \theta と言います。online adaptationとは、メタパラメータを持つ枠組みから得られる結果を用いて今のタスクのデータに適合する段階を指します。

抽象的で分かりにくいと思うので説明をわかりやすくするため、メタラーニングの手法を区別するポイントを説明します。メタラーニングは、Online Adaptationの最中にコンテクストデータ \mathcal{D} _ {t}=(\boldsymbol{x} _ {1: t}, \boldsymbol{y} _ {1: t})から統計量を作ります。ちなみに、この統計量にそのタスクの情報が詰まっていることが期待され、この統計量の導出方法に違いがあります。先ほどの複数のタスクに汎化するための枠組みが以下の関数 f_{\boldsymbol{\theta}} になります。

 \boldsymbol{\eta}_{t}=f_{\boldsymbol{\theta}}\left(\mathcal{D}_{t}\right)

メタラーニングの代表的な手法MAML, Neural Processes (NPs), recurrent network-based meta-learning algorithmsを統計量の違いで説明すると、MAMLは統計量  {\eta} _ {t} がNNの重みとして表現されます。NPsの場合は、統計量  {\eta} _ {t} がコンテクストデータをNNでエンコードし、集約したパラメータ値になります。集約は合計や平均、最大値、Attention など色々あります。recurrent network-based meta-learning algorithmsの場合、統計量は、そのNNの隠れ状態になります。その感覚を持ってそれぞれの論文を読むと分かりやすいと思います。

話を戻して、メタラーニングのmeta-trainingにより、各タスクの統計量やパラメータを作成するために f_{\boldsymbol{\theta}} のメタパラメータを学習し、Online Adaptationで目的のタスクのデータに汎化するように以下のような予測・分類モデルのパラメータを学習します。

 \boldsymbol{y}\left|\boldsymbol{x}, \mathcal{D}_{t} \sim p_{\boldsymbol{\theta}}\left(\boldsymbol{y} | \boldsymbol{x}, \boldsymbol{\eta}_{t}\right)\right.

ベイズの観点から、上記の式を見ると、タスクの入力とタスクの統計量が与えられたもとで、出力確率を求めることになるので、事後予測分布として見ることができます。この事後予測分布は、その真のタスク分布とどのくらい近いかで評価されます。

 \mathcal{L}\left(\mathcal{D}_{t}, \boldsymbol{\theta}\right)=D\left(p\left(\boldsymbol{y} | \boldsymbol{x}, \mathcal{T}_{i}\right) \| p_{\boldsymbol{\theta}}\left(\boldsymbol{y} | \boldsymbol{x}, f_{\boldsymbol{\theta}}\left(\mathcal{D}_{t}\right)\right)\right)

この近さをKLで測ると負の対数尤度最小化の式とみなせます。
上記の損失関数を含め、メタラーニングの目的関数をかくと、

 \min _{\boldsymbol{\theta}} \mathbb{E}_{\mathcal{T}_{i} \sim p(\mathcal{T})} [ \mathbb{E}_{\mathcal{D}_{t} \sim \mathcal{T}_{i}} [\mathcal{L}(\mathcal{D}_{t}, \boldsymbol{\theta}) ] ]

と表せます。 上式を読み解くと、タスク分布 p(\mathcal{T}) からタスク {\mathcal{T} _ {i}}を複数サンプルし、そのタスクからデータセット {D}_{t} が複数サンプルされていると仮定します。そのデータセットを用いて、誤差関数 \mathcal{L}(\mathcal{D} _ {t}, \boldsymbol{\theta})を計算します。この目的関数が小さくなるように、メタパラメータと予測モデルのパラメータを学習すると複数のタスクに汎化するようになります。
詳しく知りたい人は、Chelsea FinnさんとSergey Levineさんのメタラーニングまとめがあるのでそちらを見てください。 drive.google.com

Bayesian Online Change Point Detection

この手法は、非定常系列データに対してリアルタイムで変化点検出ができます。この手法の肝は、「連長」の事前分布を仮定するところに全てが詰まっている気がします。用語の説明からすると、連長(run length)は時刻ごとに r _ t として定義されます。意味は、変化点から経過したステップ数です。例として、10ステップに対して変化点が5と8であった時、連長 r = \{r_t \} _ {t =1} ^ {10}は、 r = [0, 1, 2, 3, 0, 1, 2, 0, 1, 2 ] となります。肝である「連長」の事前分布の設計によって、どのくらい連長が大きくなるかが決まります。提案手法だと連長は、タスクの長さを意味し、以下のベルヌーイの事前分布を用いています。タスクが切り替わる確率は p\left(r _ {t+1}=0 | r _ {t}\right)=\lambda, タスクが継続する確率は p(r _ {t+1}=k |r _ {t})=(1-\lambda) \mathbb{1}\{r _ {t}=k-1\}で表しています。著者の実験コードを見ると \lambda \approx 0.278ほどでした。つまり各時刻で3割の確率で新しいタスクに切り替わるような事前分布を設計しています。 本題は、オンラインで変化検知を行う方法なので、それは以下の事後予測分布を計算する必要があります。

p\left(\boldsymbol{y}_{t} | \boldsymbol{y}_{1: t-1}\right)=\sum_{r_{t}=0}^{t-1} p\left(\boldsymbol{y}_{t} | \boldsymbol{y}_{1: t-1}, r_{t}\right) b_{t}\left(r_{t}\right)

 p\left(\boldsymbol{y} _ {t} | \boldsymbol{y} _ {1: t-1}, r _ {t}\right) はunderlying predictive model (UPM)と呼ばれ、目的に応じて変わり、事後分布は、  b _ {t}\left(r _ {t}\right)=p\left(r _ {t} | \boldsymbol{y} _ {1: t-1}\right)で表します。連長の事後分布によりタスクが切り替わるか確率的に推定でき、予測分布から変化点を検出できます。具体的な式は、次回の手法の解説か島田直希さんの時系列解析4章を見てください。

まとめ

次回に手法のアルゴリズムと実験についてかきます。 Openreviewを見ると、ICLR2020にrejectされいます。理由は、問題設定の新規性が薄いそうです。確かに、前のブログでも書いたLife-long Learningもありますし、査読者は、他にも似たような問題設定を論文2つあげていました。また、このアプローチの実際的な有用性についての議論とタスクのセグメンテーションが本当に利用できない状況で性能調査があると良いそうでした。

[1] Rahaf et el. "Task-Free Continual Learning".
[2] Riemer et al. "Learning to learn without forgetting by maximizing transfer and minimizing interference".