『日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
今の機械学習の多くは何も学習していない状態から、学習データが与えられ学習していく。この場合、全てを一から学んでいく必要があるため多くの学習データを必要とする。一方で人や動物はそれほど多くの学習データを必要としない。これは過去に経験したり、学習した結果を再利用し、必要な差分だけを学習するためだ。
例えば、自転車の乗り方を学習する際には、立ったり、歩いたり、階段を登ったりするのに必要なスキルが再利用されており、数十回程度の練習で誰でも自転車に乗れるようになる。これは数千から数十万の試行錯誤が必要な現在の強化学習とは大きな違いである。

複数のタスクの学習結果や学習過程を利用し新しいタスクの学習効率を上げるような手法をメタ学習という。“学習の仕方を学習する”ような学習手法といってもよいだろう。
例えば、ImageNetのような大きなデータセットで学習された画像認識モデルを特定のタスク向けの学習データを使ってfinetune(微調整)するテクニックは広く使われているが、これもメタ学習といっていいだろう。既にImageNetの学習済みモデルは基本的な物体の認識はできており、残りの差分だけを学習するためである。今回はメタ学習の中でも近年、有力な2つの手法を紹介する。
MAML:良い初期値を学習する
1つ目の手法はMAML(Model-Agnostic Meta-Learning、マムル)1)とよばれる手法である。メタ学習の問題設定として学習時には複数タスクの学習を行い、テスト時には新しいタスクの学習を少量の学習データで実現することを考える。それぞれのタスク$\mathcal{T}_i$ごとに学習データ$\{(x_i^{(1)},y_i^{(1)}), (x_i^{(2)}, y_i^{(2)}), \ldots,\}$が与えられる。この際、データは必ずしもi.i.dでなくてもよく、強化学習のような前回の結果に依存して次の入力が決まってもよい。
MAMLは各タスクの学習の際に、多くの機械学習と同様に初期パラメータ$\theta_0$から始め、タスクの目的関数(損失関数)$\mathcal{L}_{\mathcal{T}_i}$を最小化するようにパラメータをSGD(確率的勾配降下法)で更新していく。学習データが複数ある場合はこのSGDを複数回繰り返す。
\[\theta'_i := \theta_0 - \alpha \nabla_{\theta}\mathcal{L}_{\mathcal{T}_i}(f_{\theta})\]
そして、MAMLはメタ学習として、更新後の目的関数の値の和が小さくなるように初期パラメータを決定することを考える。
\[\min\limits_{\theta_0} = \sum_i\mathcal{L}_{\mathcal{T}_i}(f_{\theta'_i}) = \sum_i\mathcal{L}_{\mathcal{T}_i}(f_{\theta_0 - \alpha \nabla_{\theta}\mathcal{L}_{\mathcal{T}_i}(f_{\theta})})\]
つまり、各タスクで今の初期値からSGDでの更新後にうまくいくような良い初期値を求める。なお説明では1回のSGD後のパラメータとして説明しているが定数回の更新後のパラメータでも良い。
掴む・歩く・避けるなどのスキルを事前にメタ学習
MAMLは学習の仕方を変えるわけではなく、初期パラメータだけを更新し、後は通常の学習をそれぞれのタスクで行うだけである。テスト時にも初期パラメータから同様に定数回の更新を行い学習する。一見すると単純に見えるこのMAMLがメタ学習としてうまくいくことが分かっている。
例えば、各タスクがロボットの様々なタスクであり、パラメータがロボットを制御する方策のパラメータだとしよう。この時、MAMLは各タスクがうまくいくような、掴む、歩く、避けるといった必要な基本スキルがすでに身についたようなものを初期パラメータとして獲得するだろう。そして、各タスク向けに少しだけfinetuneすれば各タスクに特化したような方策を学習することができる。
MAMLの最適化では勾配の勾配を求める操作があることに注意されたい。更新後のパラメータは初期パラメータと勾配の差からなり、これをさらに初期パラメータについて微分を取る必要がある。現在多くのディープラーニングフレームワークは計算量が数倍増加する程度で勾配の勾配を計算することが可能である。また、その後提案されたReptileは、代わりに初期値を複数回更新後のパラメータ方向に更新しても近い性能が出せることを示している2)。
MAMLは階層ベイズモデルの枠組みで捉えられることが分かっている3)。各タスク固有のパラメータ$\phi_j$とし、各パラメータは他のタスク固有のパラメータに影響を受けているとする。これをモデル化するために、各タスク固有のパラメータは共通のパラメータ$\theta$に依存しているとする。全タスクの観測データを$\mathbf{X}$とし、各タスク$\mathcal{T}_j$のサンプルを$\mathbf{x}_{j}^{(1)},\ldots, \mathbf{x}_{j}^{(N)}$とする。このとき、観測データの尤度は
\[p(\mathbf{X}|\theta) = \prod_j \left (\int p(\mathbf{x}_j^{(1)},\ldots, \mathbf{x}_j^{(N)} | \phi_j) p(\phi_j| \theta) d\theta_j\right ) \]
と表される。ここで各タスク固有パラメータは周辺化消去されている。
この尤度を最大化するような$\theta$を求めることは、データから事前分布を求めることから経験ベイズとよばれる。この周辺化は計算困難なので、代わりにパラメータ$\hat{\phi_j}$を1つサンプリングし、それを利用して尤度を評価し、それを最適化する。このサンプリングとして$\hat{\phi_j}= \theta + \alpha \nabla_{\theta} \log p(\mathbf{x}_j^{(1)}, \ldots,\mathbf{x}_j^{(N)} | \theta)$を利用した場合、これはMAMLと一致する。つまりMAMLは階層ベイズで各タスク固有のパラメータを点推定して近似した場合の経験ベイズと捉えられる。
Neural Process:関数のメタ学習
もう1つのメタ学習がNeural Process4)と呼ばれる確率過程のメタ学習である。確率過程は入力が$s$の時の出力$y$の分布$p(y | x=s)$を学習する。問題設定としては似てはいるが異なるたくさんの関数をモデル化するタスクが学習時に与えられ、テスト時には少数の点から新しい関数を予測するタスクを考える。
例えば入力電圧と振動数の関係を様々な機体ごとに関数として学習しておき、新しい機体の少数の観測が与えられた時、その機体固有の関数を学習するような問題である。
確率過程のモデルとしてはガウス過程(GP: Gaussian Process)が有名だが、Neural Processはニューラルネットワークを使って学習する。複雑なモデルを学習できるだけでなく観測点数に対し線形の計算量でモデルを作ることができる。
モデルとして最初に確率的な振る舞いを表す種ベクトル$z$を正規分布などからサンプリングし、次に$z$と入力$x$からニューラルネットワーク$g$を使って、正規分布の平均を出力する。
\[ p(z, y_{1: n}| x_{1:n}) = p(z) \prod_{i=1}^n \mathcal{N}(y |g(z, x), \sigma^2)\]
学習の際には$z$を周辺化した条件付き対数尤度$\log p(y_{1:n}|x_{1:n})$を最大化するが、周辺化は計算困難なので代わりに符号化器$q(z|{x}_{1:n},y_{1:n})$を用意し、対数尤度の下限(ELBO)を最大化して学習する。
\[\log p(y_{1:n}|x_{1:n}) \geq E_{q(z|x_{1:n}, y_{1:n})} \left [ \sum_{i=1}^n \log p(y_i|z,x_i) + \log \frac{p(z)}{q(z|x_{1:n}, y_{1:n})} \right ] \]
Neural Processの目標は様々な関数をモデル化することなので、学習時には様々な関数を学習する。ここで符号化器の入力が可変個であることが問題となる。しかも、これらの入力は与える順序を変えても結果が変わらないことが望ましい。Neural Processでは単にそれぞれ独立に符号化器に通した後にそれらの平均ベクトルを計算している。これはGenerative Query Network(GQN)などで提案されているのと同様である。ただし、GQNの場合は符号化結果の平均ではなく合計を推論結果として利用している。可変個のサンプルから推論する手法は近年急速に進歩しており、例えばアテンションを使う手法5)なども登場している。結果として、$z$はタスクの種類を表すようなベクトルとなり、これを変えることで関数の挙動が変わるようなモデルとなる。テスト時には観測データから$z$、つまりタスクの種類を推論し、それを使って関数をモデル化する。
このほかにもメタ学習は、パラメータの更新方法自体を学習したり、既存の学習結果を組み合わせて新しい能力を身につけるなど様々な手法が提案されている。今後、機械学習の実用化に向けて非常に重要な要素となるだろう。
2)A. Nichol, et al,, “On First-Order Meta-Learning Algorithms,”https://arxiv.org/abs/1803.02999
3)E. Grant, et. al.,“Recasting Gradient-Based Meta-Learning as Hierarchical Bayes,” https://arxiv.org/abs/1801.08930
4)M. Garnelo, et al.,“Neural Processes,” ICML 2018 workshop on Theoretical Foundations and Applications of Deep Generative Models, https://arxiv.org/abs/1807.01622
5)J. Lee, et al.,“Set Transformer,” https://arxiv.org/abs/1810.00825
Preferred Networks 取締役副社長
