パターン認識と機械学習の勉強ノート【1.3 モデル選択】

深層学習を学ぶシリーズ

こちらの『パターン認識と機械学習』を読んで,勉強したことをまとめていきます.

前回は,1.2節の確率理論において,確率理論(の導入)についてまとめました.

今回は,1.3節のモデル選択です.

複雑なモデルのメリットとデメリット

前回,確率モデルとしてガウス分布として仮定したり,曲線を多項式としてフィッティングしたように,機械学習のアプローチでは,データ分布をモデル化します.

モデルを考えるとき,単純なモデルより複雑なモデルの方が,より高い表現力を持ちます.

例えば,多項式を考えたとき,1次多項式では直線しか引けないので,表現力としては傾きと切片を変えるのが限界ですが,9次多項式では8回曲がれるので,より高い表現力を持つことになります.

しかし,1.1節の多項式フィッティングで見たように,9次元多項式(M=9)のような複雑なモデルを仮定すると,

・必要なデータ量が増える

・過学習を起こす可能性があったりと,汎化性能が上がるとは限らない

などの問題があります.

複雑なモデル

表現力が高い

必要なデータ量が増加する

汎化性能が落ちる場合がある

そこで,上の問題点を克服する方法として,以下のようなものがあります.

解決策

・確認用集合とテスト集合の用意

・交差確認

・情報量基準

・ベイズ的アプローチ

本記事では,このうち交差確認情報量基準について簡単に述べます.

交差確認は,データ量が少ない場合でも,複雑なモデルの学習を行うためのものです.

情報量基準は,過学習が起きないようにする,モデルの汎化性能を上げるものです.

交差確認(cross-validation)

交差確認は,少ないデータをうまく使うことで,学習を行う手法です.

交差確認の手順は,以下の通りです.

交差確認の手順

持っているデータをS等分する.

1. データの (S-1)/S を訓練データとして使用し,学習を行う.

2. 残りの 1/S をテストデータに用いる.

3. 訓練データに使うデータの部分を変え,1,2 を繰り返す

この手順を,下の図を使って説明します.

パターン認識と機械学習から引用
赤い部分がテストデータ,白い部分が訓練データ

まず,例えばデータを4等分に分割します(上図).

はじめ(run1)は,左の4分の3(白い部分)を訓練データに用いて,残りの4分の1(赤い部分)をテストデータに使います.

run1の学習が終わったら,run2のように,左から2番目の部分をテストデータに用いて,それ以外を訓練データに用います.

これを,全部で4回(run4)行えば終了です.

このようにすることで,runごとに中身が違った訓練データ集合を用意することができ,持っているデータを一度にすべて使うよりも,S倍の学習を行うことができます.

情報量基準(information criterion)

(対数)尤度関数に罰則項(ペナルティ項)を課すことで,複雑なモデルによる過学習を防ぎます.

赤池情報量基準(AIC)

    \[{\rm ln} p(D| \mathbf w) - M\]

Mはパラメータの数で,罰則項になります.

ベイズ情報量基準(BIC)

    \[{\rm ln} p(D| \mathbf w) - \frac{M}{2}{\rm ln}N\]

Mはパラメータの数,Nはデータ点の数です.

※4.4.1節で改めて述べます.

これらのように罰則項を課すことで過学習を抑える方向にもっていくことができますが,これらはモデルの不確実さを考慮した形にはなっていないので,過度に単純なモデルになってしまうことがあります.

そこで,より自然な方法としてベイズアプローチがあります(3.4節).

まとめ

今回は,複雑なモデルを選ぶことによるメリット・デメリットについて述べ,そのデメリットに対する解決策を挙げました.

次回は,1.4節『次元の呪い』について述べます.

コメント

タイトルとURLをコピーしました