はじめに
コロナ社から出版された「統計的パターン認識と判別分析」本のレビューです。ここ数年の間で機械学習の有用性が産業界で大きく認識され、機械学習を用いたサービスが様々とでてきました。この書籍では、機械学習の入門書として、トラディショナルな統計的パターン認識の手法について述べられてます。この書籍で取り上げられた手法の一覧を列挙します。
モデル
- ベイズ識別モデル
- 混合ガウスモデル
- 線形回帰モデル
- 線形判別モデル
- パーセプトロン
- ロジスティック回帰
- カーネルリッジ回帰
- サポートベクターマシン
アルゴリズム
- 最小二乗法
- 最尤法
- EMアルゴリズム
- 主成分分析
- カーネル密度推定
感想
書籍の内容としては、機械学習で必要となる手法を一通り網羅できていると思います。読解難易度は、①入門パターン認識と機械学習(コロナ社)を★1として、②PRML(Springer)を★5とするならば、★3ぐらいの難易度はあると思います。網羅する範囲としては①とおおよそ同じです。その分、解を導くまでの導出を丁寧に追い、最適解を用いた際の誤差について詳しく述べています。
この本では、前半部分で、特徴量$x$と目的変数$y$との間に確率的な構造が存在するものとして、その構造がどのようなモデル+損失を仮定することで生じるかを式変形で追っています。そして、事後確率$p(y|x)$が重要な役割を持っていること示して、後半部分で、そのモデリングにはどのようなものがあるかを解説しています。前半部分の導入に力点が置かれており、この部分が単に手法を紹介しているだけではないのが良かったと思います。逆に、モデリングの部分は基本的なものしか取り上げていないので、追加で他の書籍を読む必要があると思います。
例えば、階層モデルを取り扱っている「③トピックモデルによる統計的潜在意味解析(コロナ社), ★4」であったり、ディープラーニングを扱っている「④現場で使える!TensorFlow開発入門(翔泳社), ★2」などが良いかと思います。
この本は、ある程度の読解難易度があり、手法をパラパラ読むのではなくその背景を大事にしていることから、想定読者は「機械学習の手法を一通りなめたが、さらに踏み込んで、どのような仮定からその解を導くことができるのかを、式を追って理解したい人」になると思います。以降、本書の要点をまとめてみたので、ざっと眺めてもらい興味があれば書籍を手に取ってみて下さい。
要点のまとめ
ベイズ識別と最適な関数形(1章~3章)
今、特徴量を$x$, 識別関数の値を$d(x)$, そのときの損失を$r$としたとき、各クラス$C_k$に対する平均損失$R$は以下のようになる。
$$
R=\sum_{k} \int r(d(x)|C_k)p(C_k, x)dx
$$
このとき、損失$r$として、「0-1損失」を用いた場合、最適な識別関数は次のようになる。つまり、最適な分類を行うには事後確率が最大のクラスを選べばよいということである。
$$
p(C_k|x)=max_j\ p(C_j|x)
$$
今度は、目的値$y$と推定値$f(x)$の「二乗誤差損失」を最小にする最適な関数を求める。すると、最適解は目的変数の事後確率による期待値となる。
$$
f(x)=\int yp(y|x)dy=E_{y{\sim}p(y|x)}[y]
$$
分類の場合も同様にして計算を行うと、事後確率$p(C_k|x)$を要素とするベクトルとなる。つまり、事後確率が最適解に現れる。ただし、ここの前提として特徴量$x$と目的変数$y$との間の確率的な関係$p(x|y)$が分からなければならない。そこで、カーネル密度推定や混合ガウスなどを用いて、訓練データからこの条件確率を求めるというのが、1章から3章までで述べてある。
線形モデルとその拡張(4章~5章)
ここまでは、ベイズの規則を用いて事後確率$p(y|x)$を算出した。ここからは事後確率$p(y|x)$を線形モデルで直接近似することを考える。
$$
p(y|x)=\beta^TX+\beta_0
$$
このとき、$x$と$y$の共分散行列を$\Sigma_{xy}$とすると、「二乗誤差損失」を最小とする最適解$\beta$は以下のようになる。$\bar{x}$は標本平均である。
$$
f(x)=\Sigma_{xy}^{T} \Sigma_{xx}^{-1} (x-\bar{x}) +\bar{y}
$$
そして、これを回帰問題に適用する際に、カーネルを用いて非線形に拡張したのがカーネルリッジ回帰となる。識別の場合には、出力値を非線形とするような変形ができ、それによって得られるのがロジスティック回帰、およびその発展形のマルチレイヤーパーセプトロンとなる。
主成分分析とその拡張(6章~7章)
上記までは、特徴量$x$と目的変数$y$との背後に潜む確率的な関係$p(y|x)$を捉えようとしたが、ここでは特徴量$x$における属性間の相関関係を捉える方法について述べている。そして、カーネルを適用し、非線形空間で相関を考慮するカーネル主成分分析の説明を行っている。また、カーネルSVMにおいて、パラメータを変えることで特徴空間がどのように張られるかの説明をしている。
おわりに
最近は、精度が最重要視され、それを実現できるディープラーニングに注目が集まっている。そのため、そのような書籍が巷にあふれており、機械学習の敷居が下がったように見える。便利なフレームワークが存在し、誰でも試すことができる。ディープラーニングでは、特徴量を明示的に計算することもないし、そこから出力に至る写像の形もほぼほぼ気にせずに済む。それが故に、背景となっている理論が軽視されている風潮があると感じる。しかしながら、さらに上位へ手法を昇華させるには、そこで培われてきた考え方を身に付ける必要があると考える。その一助として、本書を読んでみてはどうだろうか。もっと言うならば、機械学習を二分した「カーネル」と「ベイズ」に関して、知識を広げてみてはいかがだろうか。