【機械学習勉強会】パターン認識と機械学習(PRML)第1章のまとめ Part.3 ~決定理論~

機械学習理論の名著である『パターン認識と機械学習』(Pattern Recognition and Machine Learning, PRML)の内容をまとめます. 第1章の Part.3 では,「決定理論」について説明します.

目次

今回は,前回(Part2.)に引き続き, 『パターン認識と機械学習』に沿って,機械学習の入門的なお話をまとめていきます.

前回は第1章の1.4節まで進めました.今回は1.5節の「決定理論」に関する内容をまとめます.

【機械学習で物事を“決定”する ~1.5節~】

生きていると,大なり小なり,何かしらの決断を迫られるときがあります. これは優柔不断な人にとっては特につらいものです. 雨が降りそうなのに,傘を持たずに家を出てしまった. 今から家に取りに戻ると会社に遅刻するかもしれない. そのまま会社に向かうとスーツが雨に濡れてしまうかもしれない. 不確定要素があると,どの選択がふさわしいか選びにくいものです. しかし,そのまま立ち尽くすわけにもいかず, 家に戻るか会社に向かうか,ひとまず“決定”する必要があります.

同じことは機械の中でも起こります. 多くの機械学習のアルゴリズムでは,「確率」を用いて予想を記述します. 「80%の確率で雨が降る」 「45%の確率でこの患者は肺がんである」 といった具合です. 数式を用いると,これは入力ベクトル$\bm{x}$が クラス $C_i$ に属する条件付確率 $p(C_i\mid \bm{x})$ として表されます. 手法によっては,同時分布$p(\bm{x},C_i)$を求める場合もあります. こういった確率分布を求めることを推論といいます.

しかし多くの応用例の場合,「確率」を求めて終わりではなく, 傘を取りに帰るか,肺がんの治療を行うか,など その後どのように行動するか決定する必要があります. 勿論,機械学習を行う限り,それは人間のカンに頼ったものではなく, 理論的に「尤もらしさ」が保証されたものでなければなりません. 今回は,この決定をどのように行うかについてお話します.

推論と決定:決定問題を解くための3種類のアプローチ

「決定問題」を解くアプローチは複数あり,3つに分類することができます. 簡単にその特徴を述べてみましょう.

  1. 丁寧に全て推論してから決定する. 複雑で面倒だが情報量が多い・応用性が高い
  2. ある程度推論して決定する.それなりに複雑だが,それなりに情報量がある
  3. 推論を飛ばして決定だけ行う.非常に単純だが,できることが制限される

もう少し具体的に説明します.

A. 生成モデル
クラスの条件付き密度 $p(\bm{x}\mid C_k)$, 事前クラス確率 $p(C_k)$ をすべて求めてしまう方法. するとクラス事後確率 $p(C_k\mid \bm{x})$ はベイズの定理から求まる. この方法は, 外部から $\bm{x}$ が与えられたときにそのクラス属性を決定できるだけでなく, モデルからサンプリングすることで人工的にデータ点 $\bm{x}$ を生成することもできる. このことから生成モデルと呼ばれる.
B. 識別モデル
最初にクラス事後確率 $p(C_k\mid \bm{x})$ を求める. そのあと,後に述べる決定理論を用いて, $\bm{x}$ がどのクラスにふさわしいかを決定する. この手法は識別モデルまたは判別モデルと呼ばれる.
C. 識別関数
各入力 $\bm{x}$ から, クラスラベルに写像する関数 $f(\bm{x})$ を直接見つける. たとえば2クラス分類問題なら,$f(\bm{x})$ は0,1の2値をとる. このアプローチでは,確率すら出てこない.

実際の応用では,この3種類のアプローチの全てが使われています.

言葉による説明だけでは違いがよく分からないという方もいるかもしれません. 以下,図を用いて違いを説明します.

生成モデルの概念図

生成モデルでは,各クラス $C_i$ がいくらの確率で起きるか,そして各クラス $C_i$ において $\bm{x}$ がどのように分布するか,
すなわち $p(C_i)$ および $p(\bm{x}\mid C_i)$ の形すら推定する.
ベイズの定理を用いれば,このグラフから $p(C_i\mid \bm{x})$ を求めることができる(それが下図となる).
また上のグラフを用いれば,上の確率分布にのっとって「サンプリング」することによって,学習結果に従う $\bm{x}$ の人工的なデータ点を生成することができる.

識別モデル・識別関数の概念図

Bの識別モデルでは $p(C_i\mid x)$ を推定する.つまり,「与えられた $\bm{x}$ がクラス $C_i$ に属している確率はいくらか」という手がかりのみを与える.
さらに,Cの識別関数を用いた方法では,「与えられた $\bm{x}$ でどのクラスが最も優勢か」という手がかりのみを与える.
したがって,上のモデルでCは実質「緑線が境界である」という情報のみ与え,赤や青の曲線の形状については何の手がかりも示さない.

※上の「生成モデル」とグラフの形こそ違うが,同一のモデルにかんする記述であることに注意.
ただし,$p(\bm{x})$ が未知である限り,こちらのグラフからはサンプリングによってデータ点を生成することはできない.

Aの生成モデルを求めてしまえばBで得られる手がかりはすぐ得られること, Bの識別モデルを求めてしまえばCの識別関数は(以下の決定理論によって) すぐ得られることに注意しましょう. その点で,モデルを記述する情報量という意味では, $\mathrm{A}> \mathrm{B}> \mathrm{C}$ ということになります. その分,求めるのにかかる手間もA,B,Cの順に大きいということですね.

あくまで決定が目的ならば, わざわざ生成モデルや事後確率なんて求める必要はない, いきなりCを実現してしまうのが最も簡便だ, と思うかもしれません. しかし,事後確率を計算すると,様々な事情を考慮して判断することができます. そのため,「事後確率をわざわざ計算したくなる」ことも多いのです. 様々な事情を考慮する方法は,以下の「決定理論」にて具体的に説明します.

決定理論:推論から決定を行うための様々な手法

先程述べたCの手法では,いきなり「識別関数」が求まります. これは「クラスを識別するための関数」としてすでに完成していますから, それ以上何かを行うことはありません.

一方で,A,Bの手法では,推論というプロセスによって 事後確率 $p(C_i\mid\bm{x})$ (データ点 $\bm{x}$ がクラス $C_i$ に属している確率) が求まります.つまり,「60%の確率で雨が降る」と分かっている状態です. ここから,傘を取りに戻るか決定する必要があります. A,B の手法を用いると,この決定段階に工夫を入れることができます.

最大事後確率による決定(誤識別率最小化)

推論から決定を行う場合,単純で直観的な方針は, 「最も事後確率 $p(C_i\mid\bm{x})$ の高いものに従って決定を行う」というものです. たとえば 「この画像は,30%の確率で犬,45%の確率で猫,25%の確率で鳥の画像である」 と推論できているとすれば, その画像は「猫」の画像だと結論付けるのが最も妥当だということになります.

とてもアタリマエのような,直観的な話だと思うかもしれません. 実は「誤識別率の最小化」という観点から, 理論的にも妥当であることが知られています(詳しい説明は割愛します).

期待損失最小化

「最も確率の高いもの」を選ぶのが自然な場合もありますが, そうでない場合もあります.例えば, 「45%の確率で肺がんであり,55%の確率で肺がんではない」と診断された場合. 「肺がんではない」確率の方が高いからといって, そう結論付けてしまうのが妥当とは考えにくいですね. 当人からすれば,とても安心できる数字ではないでしょう. 肺がんの可能性を重視し,詳しい検査などしかるべき処置を取るべきであるといえます.

これは,「誤った決定をしたときに生じる損失」に偏りがあることが原因です. 肺がんでない人を「肺がんである」と診断した場合, さらなる検査を受けることなり, 検査の対象者へ心理的・身体的な負担を与えます. 一方で,肺がんの人を「肺がんでない」と診断した場合, その人はしかるべき治療を受けられず,寿命が全うできない可能性があります. 多くの人にとって,より避けたいのは後者のほうでしょう.

こういった場合,「損失関数の最小化」という考え方が用いられます. まず, 「本来クラス $i$ のものを,クラス $j$ であると決定ときに生じる損失」 を $L_{ij}$ とし,予め具体的な数値として決定しておきます. すると,私たちが割り当てるべきクラス $j$ は,$L_{ij}$ を用いた次の式 \begin{align} \sum_{k}L_{kj}p(C_k\mid \bm{x}) \end{align} が最小となるもの,として決定されます. これは,「$\bm{x}$が与えられたときに生じる期待損失を最小にする」ことに相当します.

たとえば先ほどの肺がんの例に当てはめてみます. クラス1を「がん」,クラス2を「正常」とします. $L_{11}$ および $L_{22}$ は正しい判断をしているのですから,損失は0. $L_{12}$ は「がん患者を正常と見なす誤識別」, $L_{21}$ は「がんでない人をがんと見なす誤識別」ですから, 先程の価値観にのっとれば,$L_{12}\gg L_{21}$ とするのが妥当です. たとえば,$L_{12}=1000, L_{21}=1$ としましょう.このとき,上の関数は \begin{align} &L_{1j}p(C_1\mid \bm{x})+L_{2j}p(C_2\mid \bm{x})\\ &=\begin{cases} p(C_2\mid \bm{x})&(j=1)\\ 1000p(C_1\mid \bm{x})&(j=2) \end{cases} \end{align} となります.「正常」と判断したときに重いリスクがつくことが分かりますね. これで,機械もほとんど明らかな場合に限って「正常」の判断を下すようになり, がんを見逃すことを避ける効果が期待できます.

棄却オプション

今までの方法は「決定をすべて機械にゆだねる」という観点から行っていました. しかし,たとえば患者のX線画像を見て, 機械がきわどい結果を出したとき, はたしてその機械が「決定」まで行う必要があるのでしょうか. より現実的な話をすると,機械の目が人間の専門家の目ほど育っていない場合, 肺がんであるかどうか明らかな画像は機械に任せるとしても, 機械が微妙な結果を出したときは画像診断の専門家に任せる方が確実です.

このような場合,ある棄却オプションを付ける方法が考えられます. つまり,事後確率 $p(C_k\mid \bm{x})$ の最大値がある値 $\theta$ を下回った場合, 「決定できない」と診断する(棄却する),ということです.

棄却オプションの概念図

青線,赤線は $\bm{x}$ がそれぞれのクラスに属している確率を示す.
reject region と書かれている部分は,
どちらのクラスに属している確率もしきい値 $\theta$ を超えなかった部分であり,
人間的に言えば「どちらとも言い難い」部分であるから,決定を棄却(reject)する.

図を見れば当然かもしれないが,棄却域の広さは $\theta$ の大きさによって大きく変動する.
たとえば$\theta=1$ とすると,すべての事例が棄却される.

回帰における決定問題

上で話したことは,全てクラス分類問題に関することでした. しかし,回帰問題においても同じ議論を適用することができます. つまり,入力ベクトル $\bm{x}$ が与えられたときに目標変数 $t$ を決定したいというときも, 3種類のアプローチを考えることができます.

  1. 同時分布 $p(\bm{x},t)$ を推定する方法. そこから $p(t\mid \bm{x})$ を求め, 決定理論を用いて $\bm{x}$ にふさわしい $t$ を決定する.
  2. 最初にクラス事後確率 $p(t\mid \bm{x})$ を求め, そのあと $\bm{x}$ にふさわしい $t$ を決定する.
  3. 回帰関数 $y(\bm{x})$ を直接求めて $t$ を決定してしまう.

そして,各手法のメリット・デメリットも, クラス分類問題におけるそれと同じものになります. A,B は確率の話が入る分面倒ですが, 損失関数などを設定し直すことにより, より事情を酌んだ決定を行うことができます.


今回のお話はここまでです. 次回は「情報理論」についてお話しする予定です. ご期待ください!