パターン認識 04 混合正規分布

28
Rで学ぶデータサイエンス 5パターン認識 5混合分布モデル 2011/07/02 TwitterID:sleipnir002

Upload: sleipnir002

Post on 05-Jun-2015

28.235 views

Category:

Business


3 download

TRANSCRIPT

Page 1: パターン認識 04 混合正規分布

Rで学ぶデータサイエンス5パターン認識

第5章 混合分布モデル

2011/07/02

TwitterID:sleipnir002

Page 2: パターン認識 04 混合正規分布

R一人勉強会のご紹介

Rで学ぶデータサイエンス 5パターン認識(著)金森敬文, 竹之内高志, 村田昇, 金明哲共立出版今ならデモスクリプトがダウンロードできる!

http://www.kyoritsu-pub.co.jp/service/service.html#019256

第1章判別能力の評価 Done第2章 k-平均法第3章階層的クラスタリング第4章混合正規分布モデル第5章判別分析第6章ロジスティック回帰第7章密度推定第8章 k-近傍法第9章学習ベクトル量子化第10章決定木第11章サポートベクターマシン第12章正則化とパス追跡アルゴリズム第13章ミニマックス確率マシン第14章集団学習第15章 2値判別から多値判別へ

彼女いない暦の5年8ヶ月の不細工でモテな私が

あのかわいい女の子を

たったの3ヶ月でGET!!

はっと息を飲むようなあの美人がこの方法でRでパターン認識ができるように、その結果、驚愕の真実が!

さぁ、今すぐAmazonでクリック!!

Page 3: パターン認識 04 混合正規分布

前回のあらすじ

• 前回は第2 回としてK-means分析を学んだよ!

• K-Meansのクラスタ数Kを推定する方法

– カーネル主成分分析による可視化

– ギャップ統計量による推定

クラスタ数K

ギャップ統計量

kk

k

kk LL

L

LG log'log

'log

元のデータ カーネル主成分

Page 4: パターン認識 04 混合正規分布

第5章の目的

• キーワード

–混合分布

– EMアルゴリズム

– AIC、BIC

混合分布による教師なしクラスタリングEMアルゴリズムによるモデル推定

Page 5: パターン認識 04 混合正規分布

混合正規分布によるクラスタリングを理解する

Page 6: パターン認識 04 混合正規分布

混合正規分布とは(1)

• 混合正規分布とは複数の正規分布を混ぜあわせた物

M

m

mmm xxp1

),;();(

Page 7: パターン認識 04 混合正規分布

混合正規分布とは(2)

• ちなみにπも確率

• θはパラメータ

},...,1{,0,1; Mmm

m

mm

M

m

mmm xxp1

),;();(

},,{ mmmm

}{ 1 m パイは異なる正規分布を重み付ける

Page 8: パターン認識 04 混合正規分布

混合分正規分布から教師なしクラスタリングへ

1. 2つの要素正規分布から、混合正規分布が構成されデータが発生する。

2. 混合正規分布モデルの下で、あるデータがもっとも発生した要素がデータの属するクラスタである。

要素からデータが生成されたと考える。

逆にデータから要素を推定する。

Page 9: パターン認識 04 混合正規分布

混合正規分布による教師なしクラスタリング

• ベイズの定理を使うと…

⇒モデルがわかれば、教師なしクラスタリングができる。

);(

);,();|(

xp

mxpxmp

M

m

mmm

mmm

x

x

1

),;(

),;(

ただのベイズの定理

Page 10: パターン認識 04 混合正規分布

クラスタリングを行うために

• モデルが与えられれば(パラメータが与えられれば)、クラスタリングができる

• 次に考えるのはデータからモデルを推定すること。

モデルθ クラスタリング

新データ

nx

x

x 1

m

xmpm

)|(maxarg

既にあるデータ

npn

p

xx

xx

X

1

111

Page 11: パターン認識 04 混合正規分布

データからモデルを推定する

• データが与えられたときのパラメータθの推定をどうするか?–最尤推定は?

⇒logの中に∑があるので、陽に解析できない。

n

i

ixpMax1

);(logargˆ

n

i

im xMax1

);(logarg

Page 12: パターン認識 04 混合正規分布

じゃあ、どうやって推定する?

• しかし、最尤推定を行いたい。

• →パラメータxとモデルを表すラベルmの対、

が明らかになっていれば計算できる

(証明は教科書で)

⇒どのように、 を与えるか?

n

i

ii mxpMax1

);,(logargˆ

n

i

iim mxMax1

);,(logarg

n

i

ixpMax1

);(logargˆ

n

i

im xMax1

);(logarg

ラベルを与える

),( ii mx

),( ii mx

Page 13: パターン認識 04 混合正規分布

EMアルゴリズム

• EMアルゴリズム・・・反復によって欠損データの最尤推定を行う方法

• 混合分布の場合、所与のデータが属するラベルが欠損していると考える。

npn

p

xx

xx

X

1

111

nnpn

p

m

m

xx

xx

X

1

1

111

EMアルゴリズムで扱うデータ行列

欠けたデータ

通常のデータ行列

Page 14: パターン認識 04 混合正規分布

EMアルゴリズムの計算手順

Eステップ:あるθtを用いて、Q関数を計算する。

• モデルの事後確率に基づく対数尤度→最大化する

Mステップ:Q関数を最大化するθtを求める

• ステップtにおけるθの最大化

n

i

i

M

m

t

i

t mxpxmpQ1 1

)()( );,(log);|(),(

),(arg )()( tt QMax

Page 15: パターン認識 04 混合正規分布

EMアルゴリズムのイメージ• 言葉で言ってもわからないので、可視化したものをみてみましょう。

*アルゴリズムの詳細は下記リンクをチェック!http://vrl.sys.wakayama-u.ac.jp/PRA/EM/MixtureEMj.html

入力:データX

パラメータ初期値θ’

出力:パラメータ:θ

Eステップ:

の計算

Mステップ:

の最大化

),( )(tQ

)(Q

t=t++

npn

p

xx

xx

1

111

Page 16: パターン認識 04 混合正規分布

EMアルゴリズムの正当性

• この繰り返しの中、Q関数つまり尤度関数は単調増加になる。

–証明は教科書を参照

Page 17: パターン認識 04 混合正規分布

RでEMアルゴリズムによってクラスタリング

Mclustパッケージ

Page 18: パターン認識 04 混合正規分布

Mclustによるクラスタリングの大まかな流れ

パッケージ:MClust

引数1:データX複数のモデルの中からBICの高いものを選択してMclustオブジェクトを返す

モデル推定:Mclust

引数2:データX引数2:Mclustのprameters引数3:可視化内容

結果を可視化する

結果の可視化:mclust2Dplot

引数1:cdensの事後確率

もっとも事後確率の高いラベルのデータを返す。

分類:map

引数1:予測したい新データX’引数2:Mclustのparametersデータの事後確率を計算する。

事後確率の計算:cdens

所与のデータX

予測したいデータx’

注:関数のデータの大まかなながれです。引数は他に色々あるので注意してください。

Page 19: パターン認識 04 混合正規分布

データセット

• 用いるデータセットはmlbench.smily

4クラスデータ

Page 20: パターン認識 04 混合正規分布

混合分布でクラスタリングする

library(mclust); library(mlbench)

dat <- mlbench.smiley()

colnames(dat$x) <- c("x1","x2")

dev.new()

(gmm4 <- Mclust(dat$x,G=4))

mclust2Dplot(dat$x,parameters=gmm4$parameters,z=gmm4$z,what="classification")

title("Classification 4")

dev.new()

(gmmup8 <- Mclust(dat$x,G=4:8))

mclust2Dplot(dat$x,parameters=gmmup8$parameters,z=gmmup8$z,what="classification")

title("Classification From 4 To 8")

Package mclust

混合正規分布モデルの推定、要素数G=4

判別結果をプロット

要素モデルの数を4とする

要素モデルの数を4から8とする

Page 21: パターン認識 04 混合正規分布

結果

Page 22: パターン認識 04 混合正規分布

予測を行うmapとcdens

• Cdens関数でテストデータの事後確率を計算

• Map関数でラベルに変換

#40のテストデータ、gmmup8をモデルで実験testdat <- mlbench.smiley(n=40) colnames(testdat$x) <- c("x1","x2")dev.new()testc1<-map(cdens(modelName=

gmmup8$modelName, data=testdat$x, parameters=gmmup8$parameters))

mclust2Dplot(testdat$x, parameters=gmmup8$parameters,

classification=testc1)

Page 23: パターン認識 04 混合正規分布

ModelNamesオプション

• Mclustパッケージではモデルとして以下のオプションの中から希望のものを指定できる。

#e.g.(gmm5 <- Mclust(dat$x,G=5, modelNames="EEE"))mclust2Dplot(dat$x,parameters=gmm5$parameters,z=gmm5$z,what="classification")title("EEE")

注:全部で10種類指定できる。指定しないと、一番当てはまりのよいものを使用する。

Page 24: パターン認識 04 混合正規分布

おまけ

Page 25: パターン認識 04 混合正規分布

ここで疑問

Page 26: パターン認識 04 混合正規分布

モデルの数をいくつにすればよいのか?

Page 27: パターン認識 04 混合正規分布

混合数の推定

• 混合数の推定=モデルの妥当性の検証

–交差検証法

• 第1回で説明済み→you! Forループまわしてプログラム書いちゃいなよ。

–情報量を用いる

• AIC:赤池情報量基準– 特定のパラメータのあてはまりのよさ

• BIC:ベイズ情報量基準– モデル全体でのあてはまりのよさ

– Mclustではモデルの選択にBICを用いている。

Page 28: パターン認識 04 混合正規分布

BIC

• 複数のモデルが等しい事前確率で選択されると仮定した上で、尤度の期待値

gmm<-Mclust(dat$x)plot.mclustBIC(gmm$BIC, legendArgs=list(x="bottomright", cex=0.7, ncol=2))

ll dDpXpnEBIC )|();(log2

nxpBIC l

n

i

il log|ˆ|)ˆ;(log2)ˆ(1

モデルVVVの要素数7がBICがもっとも高いのでMclustで選ばれる。