jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「確率的機械学習 入門編II」を読む ~第19章 より少ないラベル付きデータからの学習 ⑦メタ学習~

「確率的機械学習 入門編II」読書メモ一覧 - jiku log

はじめに

持橋大地・鈴木大慈 監訳「確率的機械学習 入門編II」は,世界的に評価の高いK.P.Murphy著 "Probabilistic Machine Learning (Book1)" の和訳であり,確率モデルに基づく機械学習,深層学習といった基礎が丁寧に整理されている。

本記事は,「第19章 より少ないラベル付きデータからの学習」における,メタ学習・少数例示学習・弱教師あり学習に関する読書メモである。

19.5 メタ学習

メタ学習(meta-learning)は,学習の仕方を学習する(learning to learn)方法である。

学習アルゴリズムは,データ \mathcal{D}からパラメータ推定値 \thetaを出力する関数


 \begin{align}
\theta = A(\mathcal{D}; \phi) \\ \\
\end{align}
であると言える。この \phiは,初期値学習率などがある。

メタ学習では,

  • アルゴリズム Mを用いて, \phi = M(\mathcal{D}_{1:J})とする。
  • その後,新しいデータセット \mathcal{D}_{J+1}が得られたら, A(\cdot : \phi)を適用してパラメータ \theta_{J+1}を学習する。

という手順で行なわれる。

19.5.1 モデル非依存メタ学習(MAML)

メタ学習の自然なアプローチの1つは,階層ベイズモデルを用いることである(Figure 19.14)。

各タスクのパラメータ \mathbfit{\theta}_jは,共通の事前分布 p(\mathbfit{\theta}_j \mid \mathbfit{\phi})を持つと仮定し,データが乏しいタスクを複数集めて,統計的推論の確実性を高める。
このとき,メタ学習は事前分布のパラメータ \mathbfit{\phi}を学習することと等価になる。


事前分布のパラメータ \mathbfit{\phi}を求めるには,

  • 各タスク( 1,..., J)において,訓練用データと検証用データのセットを作る。
  • 各タスクにおける尤度のを最大化するように[tex: \mathbfit{\phi}を求める。

という経験ベイズ近似を用いる。


 \begin{align}
\mathbfit{\phi}^* = \operatorname*{argmax}_{\mathbfit{\phi}} \frac{1}{J} \sum_{j=1}^J \log p(\mathcal{D}_{valid}^j \mid \hat{\mathbfit{\theta}}_j (\mathbfit{\phi}, \mathcal{D}_{train}^j)) \\ \\
\end{align}
ただし, \hat{\mathbfit{\theta}}_jは,データ \mathcal{D}_{train}^jと事前分布 \mathbfit{\phi}にもとづく点推定値である。

メタ学習に用いられる階層ベイズモデル


目標タスクのパラメータの点推定値 \hat{\mathbfit{\phi}}_{J+1}を計算する際には,初期値 \mathbfit{\phi}と学習率 \etaを用いて勾配上昇を行なう。この手法はモデル非依存メタ学習(model-agnostic meta-learning, MAML)と呼ばれる。

19.6 少数ショット学習

ごく少数のラベル付きデータから行なう学習は,少数例示学習(few-shot learning)と呼ばれる。
極端な例として,

  • 単例示学習(one-shot learning) : 各クラスに1つのラベル付きデータが与えられている。
  • ゼロ例示学習(zero-shot learning) : ラベル付きのデータが1つも与えられていない。

が挙げられる。


少数例示学習の問題設定は,以下のようになっている。

  •  Cクラス N例示分類( C-way  N-shot classification)
    •  C個の分類クラスから, N個の訓練データだけが与えられている。
  • サポート集合とクエリー集合
    • メタアルゴリズム Mは, J個の訓練用タスクのサポート集合で学習し,これに対応するクエリー集合で評価される。
    • その後,テスト用タスクのサポート集合で予測し,これに対応するクエリー集合で評価される。

19.6.1 マッチングネットワーク

マッチングネットワークは,少数例示学習のアプローチ方法の1つである。

マッチングネットワークでは,

  •  \mathcal{S} : 小さなラベル付きデータセット(サポート集合)
  •  \mathbfit{\theta} : 距離尺度のパラメータ
  •  a_{\mathbfit{\theta}}(\mathbfit{x}, \mathbfit{x}'; \mathcal{S}) : 類似度カーネル

を用いて,最近傍分類器 p_{\mathbfit{\theta}}(y \mid \mathbfit{x}, \mathcal{S})をモデル化する。


最近傍分類器は,


 \begin{align}
p_{\mathbfit{\theta}}(y \mid \mathbfit{x}, \mathcal{S}) = \mathbb{I} \left( y = \sum_{n \in \mathcal{S}} a_{\mathbfit{\theta}} (\mathbfit{x}, \mathbfit{x}_n; \mathcal{S}) y_n \right) \\ \\
\end{align}
のように,サポート集合のラベル y_nを,重み a_{\mathbfit{\theta}} (\mathbfit{x}, \mathbfit{x}_n; \mathcal{S})で重み付けして出力する。


この重みは,データに基づく類似度であり,例えば注意機構カーネル(attention kernel)が用いられる。


 \begin{align}
a_{\mathbfit{\theta}} (\mathbfit{x}, \mathbfit{x}_n; \mathcal{S})
= \frac{ \exp (c(f(\mathbfit{x}), g(\mathbfit{x}_n))) }{ \sum_{n'=1}^N \exp (c(f(\mathbfit{x}), g(\mathbfit{x}_n)))  } \\ \\
\end{align}
ただし,

  •  c(\mathbfit{u}, \mathbfit{v}) : 余弦距離
  •  f : クエリーに対する埋め込み関数
  •  g : サポートに対する埋め込み関数

である。

マッチングネットワークの学習

関数 f, gは,メタ学習のように,複数の小さなデータセットを用いて訓練する。

具体的には以下のような手順となる。

  • Step 1. 大きなラベル付きデータ \mathcal{D}(たとえばImageNet)を準備する。
  • Step 2. ラベルの分布 p(L)を作成する。
  • Step 3. 小さなラベル集合を L \sim pのようにして選ぶ(たとえば,25個のラベル集合)。
  • Step 4. そのラベルの付いたデータを \mathcal{D}からサンプリングして,小さなサポート集合 \mathcal{S}を作る。
  • Step 5. 同様にしてテストデータ集合 \mathcal{T}を作る。
  • Step 6. 以下の損失関数の最適化により,モデルを訓練する。


 \begin{align}
\mathcal{L}(\mathbfit{\theta}; \mathcal{D}) = \mathbb{E}_{\mathcal{L} \sim p} \left[

\mathbb{E}_{\mathcal{S}, \mathcal{T}} \left[ \sum_{(\mathbfit{x}, y) \in \mathcal{T}} \log p_{\mathbfit{\theta}}(y \mid \mathbfit{x}, \mathcal{S})

\right] \right] \\ \\

\end{align}

19.7 弱教師あり学習

弱教師あり学習(weakly supervised learning)は,訓練データの1つ1つのラベルが正確なものではなく,ラベルの分布が得られているとするような問題設定である。

このとき,パラメータの学習は,最尤法で学習でき,以下の損失関数(交差エントロピー)を最小化する。


 \begin{align}
\mathcal{L}(\mathbfit{\theta}) = -\sum_n \sum_y p(y \mid \mathbfit{x}_n) \log q_{\mathbfit{\theta}} (y \mid \mathbfit{x}_n ) \\ \\
\end{align}
ここで p(y \mid \mathbfit{x}_n)は,データ点 nのラベルの分布である。


弱教師あり学習における他の問題設定は,バッグ(bag)と呼ばれるデータ点の集合 \mathbfit{x}_n = \{ \mathbfit{x}_{n,1}, ..., \mathbfit{x}_{n,B} \}に対して,ラベルが1つだけ与えられているような問題設定である。

まとめと感想

今回は,「19章 より少ないラベル付きデータからの学習」における,メタ学習・少数例示学習・弱教師あり学習についてまとめた。

メタ学習

メタ学習のように,データセットの組合せから共通する部分を学習したい,というモチベーションは,製造業においてもあり得る。
たとえば,同じ型式の製品を大量に作るのではなく,ユーザの要望に応じて少しずつカスタマイズするような「多品種少量生産」においては,似ているものの微妙に異なるデータセットが得られる。

メタ学習のアプローチは,階層ベイズモデルに基づいているが,パラメータ推定には経験ベイズ近似が用いられている。
モデルの柔軟さやパラメータ推定の効率などは,どちらが有利であるか,ということが気になったので,機会があれば試してみたい。

第19章全般の感想

第19章は,「より少ないラベル付きデータからの学習」に関する内容であり,実用上とても重要なテーマを扱っていた。

しかし全体的に概念がとっつきにくい印象があった。説明を読んでも,何をしようとしているのかが理解しづらいところも多いと感じた。
このような場合は,何度か読み返してみるとだんだん理解ができるようになるので,この章の内容は定期的に見返してみたい。


本記事を最後まで読んでくださり,どうもありがとうございました。