パターン認識と機械学習 学習ノート - 序論


この記事は「パターン認識と機械学習 (丸善出版社)」の読書ノートです。


この記事ではパターン認識、機械学習において基礎的な考え方の説明を行う。

手書き文字のパターン認識について考えてみよう。例として 28 x 28ビット、つまり784個のビット列(つまり、白黒画像)$${\bold x}$$の入力が与えられて、それが0から9のどの数字かを推定したいとする。

1つの考え方は、各数字の筆記パターンを定式化し、導かれた筆記ルールに当てはまるかで判定する方法である。この方法では多様な筆記パターンに対して筆記ルールの数がすぐに発散してしまうため、あまり効率的ではない。

機械学習のアプローチを採用すると、このようなパターン認識はより効率的かつ良い結果が得られる。

まず機械学習では訓練集合という、$${N}$$個の手書き数字の列$${\{\bold x_i\}}$$と、この列の各要素に対し、実際その手書き文字が0から9のどの数字を表しているかという目標(言ってみれば答え)を用意する。目標で構成されたベクトル$${\bold t}$$を目標ベクトルという。

機械学習のアルゴリズムを適用すると任意の入力ビット列$${\bold x}$$に対する関数$${\bold y(\bold x)}$$を得ることができる。この$${\bold y}$$を求める段階を訓練(学習)段階という。また、訓練によって得られた関数$${\bold y}$$を(学習)モデルという。モデルは任意の入力ビット列に対してそのビット列が0から9のどの数字を表しているかを出力する。モデルを得て、訓練とは異なる入力に対しても予測ができるようになることをモデルの汎化という。

以上のアプローチで機械学習はパターン認識の課題を解決するが、実際の応用では前処理と呼ばれる、訓練集合を作り出すための一種のデータ正規化が実施されることが多い。先の数字のパターン認識の例ではこれは数字が大体同じ位置、かつ同じ大きさになるように、画像を平行移動したり拡大縮小することが前処理にあたる。前処理をすることによりデータの多様性は大きく減少するため、問題が解きやすくなったり、計算の高速化ができるようになったりする。前処理の段階は特徴抽出とも呼ばれる。

さて、これまでは訓練集合に目標ベクトルが含まれていた。目標ベクトルを含む機械学習を教師あり学習という。教師あり学習は以下のような問題を解くのに使われる

  • クラス分類

    • 入力データがどんなカテゴリに分類されるかを予測するモデルを作る

  • 回帰

    • 予測がカテゴリではなく、ある実数などの非可算無限集合の元であるようなモデルを作る

一方で目標ベクトルがない訓練集合を構成して訓練する機械学習もある。これを教師なし学習という。教師なし学習は以下のような問題を解くのに使われる。

  • クラスタリング

    • 類似した入力データをグルーピングした結果を予測として返すモデルを作る

  • 密度推定

    • 入力データの従う分布を予測として返すモデルを作る

  • 視覚化

    • 高次元データから2次元、3次元にパラメータを削減し可視化した結果を予測として返すモデルを作る

  • 強化学習

    • ある与えられた状況下で報酬を最大にするために適当な行動を予測として返すようにする

    • 例えばバックギャモンなどのゲームを高い水準でプレイするモデルを作れる。

    • 一般的に、新しい種類の行動がどれくらい有効であるかを試す探査と、高い報酬を得られることがわかっている行動をとる(知識)利用をバランスよく行うことが、よいモデルを得るために重要である

この記事が気に入ったらサポートをしてみませんか?