ベイズや確率モデルと統計|はじめてのパターン認識3章~4章 #2

f:id:lib-arts:20190107172430p:plain

#1では、機械学習の概要ということで、1章〜2章の内容を取り扱いました。

#2では3章〜4章の内容をベースにベイズの識別規則や確率モデルについて取り扱えればと思います。
以下、目次になります。


1. 3章内容(ベイズの識別規則)
1.1 ベイズの識別規則(3.1)
1.2 受動者動作特性曲線(3.2)
2. 4章内容(確率モデルと識別関数)
2.1 観測データの線形変換(4.1)
2.2 確率モデル(4.2)
2.3 確率モデルパラメータの最尤推定(4.3)
3. まとめ&補足


1. 3章内容(ベイズの識別規則)

3章ではベイズの識別規則についてまとめられています。ベイズ系のアルゴリズムは観測データxと所属するクラスの間に確率分布を仮定して行う識別問題のことです。ベイズ系の話は初学者には若干とっつき辛い内容ではあるので、3章を通してMAP(Maximum a Posterior)が理解できれば十分だと思います。
がっつりベイズについて理解したい際は、緑本(データ分析における統計モデリング入門)->PRMLの流れで読むのが良いと思います。


1.1 ベイズの識別規則(3.1)

3.1では最大事後確率基準(MAP; Maximum a Posterior)に基づくベイズの識別規則を導入しています。
MAPはベイズの定理がベースになっているので、まずはベイズの定理について取り扱います。

ベイズの定理
(事後確率)=(修正項)×(事前確率)

 

※ 数式的には『初めてのパターン認識』では以下のように表すことが多いようです。
(事後確率)= p(Ci|x)
(事前確率)= p(Ci)

Ciはi=1~Nのクラスです。どのクラスが適切かというのをp(Ci)として表しています。

 

これの解釈としては、最終的に事後確率の分布を元に識別を行うというのが全体的な流れになっています。MAPは事後確率が最大のクラスに分類する考え方なので、事後確率が最大のクラスへの分類を行います。3.1.1の展開は若干強引な印象で深く読まない方が良いので、3.1.2での具体例を通してベイズの定理のなんとなくのイメージを掴むにとどめた方が良いと思います。

※注釈(余裕のある人向け)========
ちなみにこの数式の表現は個人的には良くないと思います。というのもxが訓練データを想定しているとして、予測に該当する文字がないためです。そのため、推論についてのところでわけがわからなくなります。
3.1.2の具体例はxに該当するSとTの取りうるパターンが4通りしかなく、その場合の全てにおいてGが観測されています。そのため、表にすることができ、それを元に推論ができます。しかし、説明変数が量的な場合は組み合わせは無限にあり、全てを学習データに含めることはできません。
MAPを元に推論するにあたっては、下記のように数式を作るべきだと思います。

(事前確率)= p(Ci|x)
(事後確率)= p(Ci|x,x_,y)

ここでxは推論用のデータ、(x_,y)が学習にあたって用いるサンプルです。

事前に与えた確率の分布(事前確率)を観測されたサンプルで更新し(尤度)得た事後分布(事後確率)を元にMAP推論を行います。
この辺深く理解したい方はPRMLの1~3章あたりはベイズをベースに諸々書かれているので、そちらを読むのが良いのではと思います。
===========================

3.1.3はMAPと論旨自体は変わらないので気にしなくて良いかと思います。3.1.4は図3.1がわかれば十分です。二つのクラスの事後確率が一致する点で閾値を設定すれば全体としての誤り率を最小とできることについてまとめられています。3.1.5は損失行列を導入することで、閾値がずれるということについて言及されています。(損失行列の導入に関しては、誤りの損害を考えます。例えば健康診断では健康な人を病気というよりも病気の人を健康とすることの方がまずいです。このように誤りの損害はケースバイケースなのでそれを損失行列という形で定義して数値的に取り扱えるようにしようというのがここでのモチベーションです。)この辺は意味だけは把握すれば十分なので、論旨を把握した上で飛ばしてしまって問題ないかと思います。


1.2 受動者動作特性曲線(3.2)

3.2では受動者動作特性(ROC; Receiver Operator Characteristics)曲線についてまとめられています。日本語訳よりも、ROC曲線という方が一般的だと思うので、以下ROC曲線と表記します。このROC曲線は医療の診断などに用いられるのですが、3.2.1ではROCを求める前段階として表3.4の混同行列(confusion matrix)について説明しています。混同行列を把握するにあたっては、(3)適合率(precision)、(4)再現率(recall)、(5)正確度(accuracy)が特に重要なので注意するのが良いのではと思います。(5)のaccuracyは通常の正答率の測り方なので、言わずもがななのですが、(3)と(4)についてはそれぞれ良くないと見る間違いの種類が違います。
(3)については、『正しいと予測したのに違っていたら駄目だ』という考え方で、正しいと言ったものは正しくないと駄目だという一方で、全ての正しい例を出せなくても問題ないというスタンスです。具体的には検索エンジンの例がしっくりくるのではと思います。一方(4)は『実際に正しいものをどれだけ取り切れているか』で評価します。こちらは健康診断などで多少二次検査になっても良いから病気の人に如何に二次検査を受けてもらうかという風に考えるとしっくりきます。この(3)と(4)の違いは3.1.5で導入した損失行列を利用することで評価することも可能です。
またROC曲線は図の3.5のように書けます。識別境界をどんどん動かしていくというのがわかれば大体わかるのではと思います。

3.2.2ではROC曲線による性能評価についてまとめられています。AUC(Area Under an ROC Curve)というROC曲線の下の面積を元に評価が可能です。3.2.3ではROC曲線の書き方が具体的にまとまっているので、こちらでイメージを掴むのが良いかと思います。

 


2. 4章内容(確率モデルと識別関数)

4章では確率分布を用いたモデリングについて諸々まとまっています。基礎統計のレベル(統計検定2級)は一次元で説明されることが多いのではと思いますが、多次元でも扱うために4.1では平均と分散の代わりに平均ベクトルと共分散行列を導入し、多次元に話を拡張してくれています。共分散行列による座標変換の話がコンパクトにまとまっており、非常にわかりやすくて良い説明の印象でした。 4.2では、パラメトリックモデルの代表例である正規分布について説明されています。4.3では統計モデリング系では必須の最尤法についてまとまっています。


2.1 観測データの線形変換(4.1)

4.1では観測データの線形変換を行うことで、4.2で確率分布をうまく導入できるようにしてくれています。4.1.1では平均ベクトルと共分散行列の導入をしてくれています。共分散行列は基礎統計で学んだ分散と共分散を行列化したものだと考えておくと良いです。4.1.2では1次元データの標準化についてまとめられており、標準化は線形変換であるということにも言及されています。4.1.3〜4.1.4は多変数データの標準化にあたって、共分散行列の対角化を通してデータの無相関化を4.1.3で行ったのちに、分散の値を正規化することでデータの白色化(whitening)を行なっています。
4.1の説明はスリムでわかりやすく非常に良い説明なので、最初はイメージがわかなくても何度か挑戦してみると良いのではと思います。


2.2 確率モデル(4.2)

4.2.1では正規分布を1次元と多次元の両方で設定し、expの中身が1次元の際は標準化されたデータの二乗である一方で、多次元分布ではマハラノビス距離の二乗が用いられています。(1次元の標準化)≒(多次元のマハラノビス距離)と一旦考えておくと良いと思います。4.2.2では正規分布を仮定した上で識別規則の導出を行っていますが、ここは一旦飛ばしても良いかと思います。


2.3 確率モデルパラメータの最尤推定(4.3)

4.3は最尤推定についてまとまっています。最尤推定は重要事項なので、つかんでおくと良いと思います。理解の上では(同時確率)=(尤度)であるというのに注意すると理解が進みやすいのではと思います。


3. まとめ&補足

3.1の表記が引っかかる一方で、4.1の説明が予想以上に良かった印象です。
PRMLのこの辺の説明はちょっと読むのが辛いので、4.1の座標変換は抑えておけると多次元データの取り扱いに関してもアレルギーをなくせて良いのではと思います。