jiku log

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

「確率的機械学習 入門編I」を読む ~第4章 統計学 ②経験リスク最小化~

はじめに

持橋大地・鈴木大慈 監訳「確率的機械学習 入門編I」は,世界的に評価の高いK.P.Murphy著 "Probabilistic Machine Learning (Book1)" の和訳であり,確率モデルに基づく機械学習,深層学習といった基礎が丁寧に整理されている。私は統計検定1級として数理統計の基礎は学んできたが,機械学習・深層学習は実務に応じて場当たり的に学んできた。実務での応用に向けて,機械学習・深層学習の基礎を体系的に学び,チームの技術力を底上げしたいと考えている。また読書メモに自身の理解をまとめることで,製造業に携わる若いエンジニアにとっても有益な知識を還元できればと考えている。

※なおボリュームが多い本なので,知っているところは端折りながら読み進めたい。


本記事は,「第4章 統計学」における経験リスク最小化および正則化に関する読書メモである。

4.3 経験リスク最小化(ERM)

前節では,最尤推定は「負の対数尤度」の最小化であると説明していた。本節では,この対数損失項 l(\boldsymbol{y}_n, \boldsymbol{\theta}; \boldsymbol{x}_n) = - \log p(\boldsymbol{y}_n \mid \boldsymbol{x}_n, \boldsymbol{\theta})を他の損失関数で置き換えることによって,MLEを一般化する。


 \begin{align}
\mathcal{L}(\boldsymbol{\theta}) = \frac{1}{N} \sum_{n=1}^N l(\boldsymbol{y}_n, \boldsymbol{\theta}; \boldsymbol{x}_n) \\ \\
\end{align}

これは,経験分布の下での損失の期待値なので,経験損失最小化(empirical risk minimization, ERM)として知られる。

二値分類問題のためのいろいろな損失

4.3.1 例:誤分類率の最小化

本項では,分類問題のときに使われることがある0-1損失について説明している。

0-1損失では,正しく分類できているのであれば0,分類を誤った場合は1となるような損失である。訓練データ上での経験的な誤分類率になっている。

4.3.2 代理損失

本項では,損失の損失の最小化が難しいときに,代わりに用いられる代理損失(surrogate loss function)について説明している。

0-1損失は,横軸の値が0より大きければ0,0より小さければ1となるような,不連続な変化をする損失関数である。上図に示す通り滑らかではないため,最適化が難しい。

そのかわりに,対数損失 l_{ll}(\tilde{y}, \eta) = \log (1+e^{-\tilde{y} \eta})を用いると,損失は連続な関数となる(図の赤線)。

4.4 その他の推定手法

4.4.1 モーメント法

本項では,パラメータの推定方法であるモーメント法(method of moments, MOM)について説明している。

MLEを解くには,負の対数尤度の最小値を求めるために, \nabla^2_{\boldsymbol{\theta}} \mathrm{NLL} (\boldsymbol{\theta}) = \boldsymbol{0}を解く必要がある(ただし, \mathrm{NLL} (\boldsymbol{\theta})は負の対数尤度)。ただし,この計算は困難な場合がある。

モーメント法は,パラメータを求めるための単純な方法である。理論的な k次モーメントは \mu_k = E[ Y^k ]で,経験的なモーメントは


 \begin{align}
\hat{\mu}_k = \frac{1}{N} \sum_{n=1}^N y_n^k \\ \\
\end{align}
である。モーメント法では,パラメータの数 K個分の式 \mu_k = \hat{\mu}_kを解けばよい。


たとえば正規分布の場合は,


 \begin{align}
\mu_1 &= mu = \bar{y} = \frac{1}{N} \sum_{n=1}^N y_n \\ \\
\mu_2 &= \sigma^2 + \mu^2 = s^2 = \frac{1}{N} \sum_{n=1}^N y_n^2 \\ \\
\end{align}
という連立方程式となる。また正規分布の場合,MOM推定とMLEは一致する。


一方で,MOM推定が妥当でない場合もある。本書P112には,一様分布の場合は,モーメント法によって推定されたパラメータの範囲が,データの実現値とずれるため,MOM推定が妥当ではないという説明がなされている。

4.4.2 オンライン(再帰的)推定

本項では,データセットが逐次的に得られる場合であるときの学習手法であるオンライン学習(online learning)について説明している。なお,データセットが全て手元にある場合の推定をバッチ学習(batch learning)という。


ガウス分布において,サンプル数が t-1のときと tのときにおけるバッチ推定値は,


 \begin{align}
\hat{\mu}_{t-1} = \frac{1}{t-1} \sum_{n=1}^{t-1} y_n, \quad \hat{\mu}_{t} = \frac{1}{t} \sum_{n=1}^{t} y_n \\ \\
\end{align}
となる。

オンライン学習における1ステップの更新則は,


 \begin{align}
\boldsymbol{\theta}_t = f(\hat{\boldsymbol{\theta}}_{t-1}, \boldsymbol{y}_t) \\ \\
\end{align}
,すなわち, tステップ目における推定値は, t-1ステップ目における推定値と tステップ目におけるデータから推定される,というものである。

これを用いると,ガウス分布の平均を再帰的に推定するための更新則は,


 \begin{align}
\hat{\mu}_{t} &= \frac{1}{t} \sum_{n=1}^{t} y_n = \frac{1}{t} ((t-1) \hat{\mu}_{t-1} + y_t ) \\ \\
&=\hat{\mu}_{t-1} + \frac{1}{t} (y_t - \hat{\mu}_{t-1}) \\ \\
\end{align}
となる。この形は移動平均として知られている。


この形を発展させて,


 \begin{align}
\hat{\mu}_{t} = \beta \mu_{t-1} + (1 - \beta) y_t \\ \\
\end{align}
のように,より最近の事例に対して大きな重みを与える(例えば \beta=0.99など)ような移動平均の法制方法を,指数移動平均(exponential moving average)と呼ぶ。

4.5 正則化

MLEやERMでは,訓練データ上の損失を最小化するパラメータを選ぶが,将来のデータに対する損失が小さいとは限らない。この現象を過剰適合(overfitting)とよぶ。
本節では,過剰適合を避けるための手法である正則化(regularization)について説明している。


正則化は,NLL(または経験損失)に罰則項を加えて,以下の形の目的関数を最適化することである。


 \begin{align}
\mathcal{L}(\boldsymbol{\theta}; \lambda) = \left[ \frac{1}{N} \sum_{n=1}^N l(\boldsymbol{y}_n, \boldsymbol{\theta}; \boldsymbol{x}_n)  \right] + \lambda C(\boldsymbol{\theta}) \\ \\
\end{align}

ここで, \lambda \geq 0正則化パラメータ, C(\boldsymbol{\theta})は複雑度罰則である。


特に, \lambda = 1および C(\boldsymbol{\theta})を「負の事前分布の対数」 -\log p(\boldsymbol{\theta})とすると,これは事後分布の最大化と等価になる。


 \begin{align}
\hat{\boldsymbol{\theta}} = \operatorname*{argmax} _{\boldsymbol{\theta}} \log p(\boldsymbol{\theta} \mid \mathcal{D})
= \operatorname*{argmax} _{\boldsymbol{\theta}} [ \log p(\mathcal{D} \mid \boldsymbol{\theta}) + \log p(\boldsymbol{\theta}) ] \\ \\
\end{align}
これは,最大事後確率推定(maximum a posteriori estimation)またはMAP推定と呼ばれる。

4.5.1 例:ベルヌーイ分布のMAP 推定

本項では,ベルヌーイ分布に対するMAP推定について説明している。

硬貨投げの例を考えた時,硬貨の表面(おもてめん)を1回だけしか観測していないと,MLEは \theta_{mle}=1となる。

このような, \theta=0, 1といった極端な値を避けるために,事前分布として p(\theta) = \mathrm{Beta} (\theta \mid a, b)のようにベータ分布を設けると,MAP推定値は,


 \begin{align}
\theta_{map} = \frac{N_1 + a - 1}{N_1 + N_0 + a + b -2 } \\ \\
\end{align}
となる(ただし, N_0, N_1はそれぞれ裏面・表面が出た回数)。MAP推定値から, a, bを調整することで,パラメータの値として極端な値が出ることを避けることができる(ゼロ頻度問題の回避)。

4.5.2 例:多変量ガウス分布のMAP 推定

本項では,多変量ガウス分布のMAP推定について説明している。

多変量ガウス分布の共分散行列 \boldsymbol{\Sigma}のMLEは経験共分散行列であるが,高次元において経験共分散行列は特異になることがある。
そのため, \boldsymbol{\Sigma}の事前分布として逆ウィシャート分布を用いることでMAP推定を行なう。

●ブログ筆者註 :
逆ウィシャート分布(Inverse-Wishart distribution)は,以下のように表される
(出典 : Inverse-Wishart distribution - Wikipedia)。


 \begin{align}
f_{\boldsymbol{\Sigma}}(\boldsymbol{\Sigma}; \boldsymbol{\Psi}, \nu) = 
\frac{ \lvert \boldsymbol{\Psi} \rvert ^{\nu/2} }{2^{\nu p / 2 } \Gamma_p(\nu / 2)} \lvert \boldsymbol{\Sigma} \rvert ^{-(\nu + p + 1)/2} \exp \left( \frac{1}{2} \mathrm{tr} \left( \boldsymbol{\Psi} \boldsymbol{\Sigma}^{-1}   \right)    \right) \\ \\
\end{align}

ただし,

  •  p :  \boldsymbol{\Sigma} \in \mathbb{R}^{p \times p}の次元数
  •  \nu \gt p-1 : 自由度のパラメータ
  •  \boldsymbol{\Psi} \in \mathbb{R}^{p \times p} : パラメータ(正定値行列)
  •  \Gamma_p : 多変量ガンマ関数

である。

これを用いるとMAP推定値は,


 \begin{align}
\hat{\boldsymbol{\Sigma}}_{map} = \lambda \boldsymbol{\Sigma}_0 + (1 - \lambda) \hat{\boldsymbol{\Sigma}}_{mle} \\ \\
\end{align}
となる。なお \boldsymbol{\Sigma}_0 = \mathrm{diag} (\hat{\boldsymbol{\Sigma}}_{mle})とすることが多い。

4.5.3 例:重み減衰

本項では,多項式回帰における過剰適合の抑制する手法について説明している。

多項式回帰では,平均ゼロのガウス事前分布 p(\boldsymbol{w})を設定する。このときMAP推定は,


 \begin{align}
\hat{\boldsymbol{w}}_{map} = \operatorname*{argmin}_{\boldsymbol{w}} \mathrm{NLL}(\boldsymbol{w}) + \lambda \lVert \boldsymbol{w} \rVert _2^2 \\ \\
\end{align}
となる。

この罰則項はL2正則化または重み減衰と呼ばれる。
また線形回帰の場合,L2正則化を用いる方法を特にリッジ回帰という。

4.5.4 検証セットを用いた正則化パラメーターの選択

本項では,正則化パラメータ \lambdaの選び方として,データを訓練集合と検証集合(validation set)を作成し,正則化パラメータ \lambdaの値を変えながら,検証集合への当てはまりの良さで正則化パラメータ \lambdaを選ぶ方法を説明している。

4.5.5 交差検証

4.5.4項の方法は,訓練データのサイズが小さいと,モデルの学習に使えるデータが減るため,モデルパラメータの推定の信頼性が低下するおそれがある。本項ではその対策として,交差検証(cross validation ,CV)を説明している。

4.5.6 早期停止

本項では単純な正則化法として,早期停止(early stopping)について説明している。早期停止は,特に複雑なモデルに対して,実用上はとても効果的であることが多い。

早期停止は反復的な最適化アルゴリズムについて,検証データへの当てはまりが悪くなりはじめた段階で学習を止める。

4.5.7 データの増加

本項では,モデルの複雑度を一定に保ちながらデータ量を増やしたときの挙動について説明している。

モデルの次数を固定した場合における,訓練データサイズと誤差の関係

上図において,問題設定は以下の通りである。

  • 真のモデルは2次多項式に, \sigma^2 = 4の分散のノイズを加える。そのため,真のモデルにおいてもノイズが含まれる(ベイズ誤差(Bayes error)やノイズ下限(noise floor)と呼ぶ)。
  • 推定する際のモデルの次数は,1次,2次,10次,20次として,モデルへの当てはめを行なう。
  • 横軸は訓練データのサンプル数,縦軸は訓練データの誤差・テストデータの誤差とする。

上図からは,以下のようなことが分かる。

  • 1次式を用いた場合(左上図), Nを大きくしてもテスト誤差は小さくならない。すなわち,実際の現象と捉えるにはモデルが単純すぎるといえる(過小適合)。
  • 次数が大きい場合, Nを大きくすると誤差が減る。ただしこの際,次数が小さい方が,推定するべきパラメータ数が少ないので,減少のスピードが速い。
  • 訓練誤差は, Nが比較的小さい場合は, Nとともに増加する。これは,新しいデータを追加するたびに異なる入出力パターンが増えるためである。

まとめと感想

今回は,「4 統計学」における経験リスク最小化および正則化についてまとめた。

代理損失による計算効率化

損失関数として,0-1損失はとても分かりやすいが,最適化計算の多くは損失関数の微分を用いるので,0-1損失は最適化計算には向いていない。
そのため微分が可能な各種損失関数で置き換えるというテクニックが重要だと理解できた。一方で,微分可能な損失においてもそれぞれの性質が異なっているはずなので,どの損失関数を用いるべきかは具体的な問題を通じて理解していきたい。

正則化の理論的裏付け

正則化は,過剰適合を避けるための代表的な手法の1つである。経験的には有効に働くことは分かっているが,ベイズ統計における事後分布最大化の枠組みでも説明ができるということは,正則化が経験的に上手くいく方法というだけではなく,理論的な裏付けにもなっていて興味深かった。


最尤推定は,数理統計学におけるパラメータの推測でもおなじみの手法である。本書では,最尤推定

という2つの方法と同等である,という説明をしていた。

有名な手法についても,別の観点から再解釈すると,発展性が出てきたり理解が深まったりするので,参考になった。

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