SlideShare a Scribd company logo
1 of 28
Download to read offline
Rで学ぶデータサイエンス
   5パターン認識
 第5章 混合分布モデル
      2011/07/02
  TwitterID:sleipnir002
R一人勉強会のご紹介
                      Rで学ぶデータサイエンス 5パターン認識
                      (著)金森 敬文, 竹之内 高志, 村田 昇, 金 明哲
                      共立出版
                      今ならデモスクリプトがダウンロードできる!
                      http://www.kyoritsu-
                      pub.co.jp/service/service.html#019256

                      彼女いない暦の5年8ヶ月の不細工でモテな私が
第1章 判別能力の評価 Done
第2章 k-平均法
第3章 階層的クラスタリング
                      あのかわいい女の子を
                      たったの3ヶ月でGET!!
第4章 混合正規分布モデル
第5章 判別分析
第6章 ロジスティック回帰
第7章 密度推定              はっと息を飲むようなあの美人がこの方法で
第8章 k-近傍法             Rでパターン認識ができるように、
第9章 学習ベクトル量子化
第10章 決定木              その結果、驚愕の真実が!
第11章 サポートベクターマシン
第12章 正則化とパス追跡アルゴリズム
第13章 ミニマックス確率マシン
第14章 集団学習                     さぁ、今すぐAmazonでクリック!!
第15章 2値判別から多値判別へ
前回のあらすじ
• 前回は第2 回としてK-means分析を学んだよ!
• K-Meansのクラスタ数Kを推定する方法
 – カーネル主成分分析による可視化
 – ギャップ統計量による推定

                             L'k
  元のデータ   カーネル主成分
                    Gk  log      log L'k  log Lk
                             Lk
                          ギ
                          ャ
                          ッ
                          プ
                          統
                          計
                          量




                                  クラスタ数K
第5章の目的
     混合分布による教師なしクラスタリング
      EMアルゴリズムによるモデル推定

• キーワード
 – 混合分布
 – EMアルゴリズム
 – AIC、BIC
混合正規分布によるクラスタリングを理解する
混合正規分布とは(1)
• 混合正規分布とは複数の正規分布を混ぜあ
  わせた物
              M
   p( x; )   m ( x; m , m )
             m 1
混合正規分布とは(2)

                               M
               p( x; )   m ( x; m , m )
                              m 1




• ちなみにπも確率    m ;   m  1,  m  0, m  {1,..., M }
                  m



                 {1 m }                       パイは異なる
• θはパラメータ                                          正規分布を
                                                   重み付ける

               m  { m , m , m }
混合分正規分布から
         教師なしクラスタリングへ
1. 2つの要素正規分布から、混合正規分布が構成さ
   れデータが発生する。
2. 混合正規分布モデルの下で、あるデータがもっとも
   発生した要素がデータの属するクラスタである。



逆にデータか                  要素からデー
ら要素を推定                  タが生成され
  する。                   たと考える。
混合正規分布による
       教師なしクラスタリング
• ベイズの定理を使うと…

                 p( x, m; )
   p(m | x; ) 
                  p ( x; )
                                               ただのベイズの定理




                     m ( x;  m ,  m )
                  M

                   
                   m 1
                           ( x;  m ,  m )
                          m


⇒モデルがわかれば、教師なしクラスタリングがで
 きる。
クラスタリングを行うために
• モデルが与えられれば(パラメータが与えら
  れれば)、クラスタリングができる
• 次に考えるのはデータからモデルを推定する
  こと。
 既にあるデータ             モデルθ              クラスタリング
     x11  x1 p                      arg m max p(m | x)
                
 X     
    x  x                                  m
     n1     np 




                            新データ
                               x1 
                               
                            x  
                              x 
                               n
データからモデルを推定する
• データが与えられたときのパラメータθの推定
  をどうするか?
 – 最尤推定は?
                n
    arg Max  log p( xi ; )
   ˆ
           
               i 1
                 n
     arg Max  log   m ( xi ; )
           
               i 1


 ⇒logの中に∑があるので、陽に解析できない。
じゃあ、どうやって推定する?
• しかし、最尤推定を行いたい。
• →パラメータxとモデルを表すラベルmの対、( xi , mi )
が明らかになっていれば計算できる
(証明は教科書で)
                                                         n
                                        arg Max  log p( xi , mi ; )
                                       ˆ
                  n
  arg Max  log p( xi ; )
 ˆ
                                                
                                                       i 1
                 i 1
                                ラベルを与える
                                                                n
                                            arg Max  log  m ( xi , mi ; )
                      n
    arg Max  log   m ( xi ; )                 
                                                              i 1
                  i 1

⇒どのように、 xi , mi )を与えるか?
       (
EMアルゴリズム
• EMアルゴリズム・・・反復によって欠損データの最尤推定を
  行う方法
• 混合分布の場合、所与のデータが属するラベルが欠損して
  いると考える。
   通常のデータ行列           EMアルゴリズムで扱うデータ行列


                                欠けたデータ

    x11  x1 p        x11  x1 p m1 
                                    
X             X            
   x  x             x  x m 
    n1     np         n1     np    n
EMアルゴリズムの計算手順
Eステップ:あるθtを用いて、Q関数を計算する。
• モデルの事後確率に基づく対数尤度→最大化する
               n    M
 Q( , )   p(m | xi ; (t ) ) log p( xi , m; )
        (t )

               i 1 m 1




Mステップ:Q関数を最大化するθtを求める
• ステップtにおけるθの最大化

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

     入力:                         Eステップ:
     データX                        Q( , (t ) )
   x11  x1 p                   の計算
                                                        出力:
      
  x  x                                        t=t++   パラメータ:θ
   n1     np 
                                Mステップ:
パラメータ初期値θ’                        Q( )
                                 の最大化



*アルゴリズムの詳細は下記リンクをチェック!
http://vrl.sys.wakayama-u.ac.jp/PRA/EM/MixtureEMj.html
EMアルゴリズムの正当性
• この繰り返しの中、Q関数つまり尤度関数は
  単調増加になる。
 – 証明は教科書を参照
RでEMアルゴリズムによってクラスタリング
       Mclustパッケージ
Mclustによるクラスタリングの
             大まかな流れ
                             パッケージ:MClust


                                         結果の可視化:
               モデル推定:Mclust
                                          mclust2Dplot
             引数1:データX                 引数2:データX
 所与のデータX     複数のモデルの中からBICの高い         引数2:Mclustのprameters
             ものを選択してMclustオブジェク       引数3:可視化内容
             トを返す                        結果を可視化する


                事後確率の計算:
                                            分類:map
                  cdens
             引数1:予測したい新データX’          引数1:cdensの事後確率
予測したいデータx’   引数2:Mclustのparameters    もっとも事後確率の高いラベ
             データの事後確率を計算する。           ルのデータを返す。


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




                            4クラス
                            データ
混合分布でクラスタリングする
library(mclust); library(mlbench)               Package mclust
dat <- mlbench.smiley()
colnames(dat$x) <- c("x1","x2")
dev.new()
(gmm4 <- Mclust(dat$x,G=4))
                                                混合正規分布モデルの
mclust2Dplot(dat$x,parameters=gmm4$parame       推定、要素数G=4
     ters,z=gmm4$z,what="classification")
title("Classification 4")                       判別結果をプロット
dev.new()
(gmmup8 <- Mclust(dat$x,G=4:8))                 要素モデルの数を4とす
mclust2Dplot(dat$x,parameters=gmmup8$para       る
     meters,z=gmmup8$z,what="classification")
title("Classification From 4 To 8")             要素モデルの数を4から
                                                8とする
結果
予測を行う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)
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種類指定できる。指定しないと、一番当てはまりのよいものを使用する。
おまけ
ここで疑問
モデルの数をいくつにすればよいのか?
混合数の推定
• 混合数の推定=モデルの妥当性の検証
 – 交差検証法
  • 第1回で説明済み
    →you! Forループまわしてプログラム書いちゃいなよ。
 – 情報量を用いる
  • AIC:赤池情報量基準
    – 特定のパラメータのあてはまりのよさ
  • BIC:ベイズ情報量基準
    – モデル全体でのあてはまりのよさ
    – Mclustではモデルの選択にBICを用いている。
BIC
 • 複数のモデルが等しい事前確率で選択され
   ると仮定した上で、尤度の期待値

                       
    BIC  2nE log  p( X ; ) p(l | D)dl      
                 n
BIC ( l )  2 log p( xi ; ) |  l | log n
      ˆ                      ˆ      ˆ
                i 1


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



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

More Related Content

What's hot

ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
horihorio
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
Ohsawa Goodfellow
 

What's hot (20)

階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
RとStanで分散分析
RとStanで分散分析RとStanで分散分析
RとStanで分散分析
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
 
自動微分変分ベイズ法の紹介
自動微分変分ベイズ法の紹介自動微分変分ベイズ法の紹介
自動微分変分ベイズ法の紹介
 
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7
 
負の二項分布について
負の二項分布について負の二項分布について
負の二項分布について
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
3分でわかる多項分布とディリクレ分布
3分でわかる多項分布とディリクレ分布3分でわかる多項分布とディリクレ分布
3分でわかる多項分布とディリクレ分布
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 
ベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-oldベイズ統計学の概論的紹介-old
ベイズ統計学の概論的紹介-old
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
PRML輪読#11
PRML輪読#11PRML輪読#11
PRML輪読#11
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 
Prml14 5
Prml14 5Prml14 5
Prml14 5
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 

Viewers also liked

数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
裕樹 奥田
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 

Viewers also liked (7)

Oshasta em
Oshasta emOshasta em
Oshasta em
 
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
 
EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズム
 
一般化線形混合モデル入門の入門
一般化線形混合モデル入門の入門一般化線形混合モデル入門の入門
一般化線形混合モデル入門の入門
 
Gr 8 music q3 page 121 #mcspicyishere http://ph.sharings.cc/teachermarley/s...
Gr 8 music q3 page 121   #mcspicyishere http://ph.sharings.cc/teachermarley/s...Gr 8 music q3 page 121   #mcspicyishere http://ph.sharings.cc/teachermarley/s...
Gr 8 music q3 page 121 #mcspicyishere http://ph.sharings.cc/teachermarley/s...
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 

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

パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0
sleipnir002
 
PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
Shohei Okada
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
sleipnir002
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
ryotat
 

Similar to パターン認識 04 混合正規分布 (20)

パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0
 
PRML s1
PRML s1PRML s1
PRML s1
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
みどりぼん読書会 第4章
みどりぼん読書会 第4章みどりぼん読書会 第4章
みどりぼん読書会 第4章
 
PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
 
東京都市大学 データ解析入門 8 クラスタリングと分類分析 1
東京都市大学 データ解析入門 8 クラスタリングと分類分析 1東京都市大学 データ解析入門 8 クラスタリングと分類分析 1
東京都市大学 データ解析入門 8 クラスタリングと分類分析 1
 
Kmeans vs kmeanspp_20151124
Kmeans vs kmeanspp_20151124Kmeans vs kmeanspp_20151124
Kmeans vs kmeanspp_20151124
 
Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
 
bigdata2012ml okanohara
bigdata2012ml okanoharabigdata2012ml okanohara
bigdata2012ml okanohara
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
NLPforml5
NLPforml5NLPforml5
NLPforml5
 
クラシックな機械学習の入門 4. 学習データと予測性能
クラシックな機械学習の入門  4.   学習データと予測性能クラシックな機械学習の入門  4.   学習データと予測性能
クラシックな機械学習の入門 4. 学習データと予測性能
 
アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法
 
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.42013.12.26 prml勉強会 線形回帰モデル3.2~3.4
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4
 
Analyze by StatsModels or Numpy
Analyze by StatsModels or NumpyAnalyze by StatsModels or Numpy
Analyze by StatsModels or Numpy
 
Data-Intensive Text Processing with MapReduce ch6.1
Data-Intensive Text Processing with MapReduce ch6.1Data-Intensive Text Processing with MapReduce ch6.1
Data-Intensive Text Processing with MapReduce ch6.1
 
MCMC and greta package社内勉強会用スライド
MCMC and greta package社内勉強会用スライドMCMC and greta package社内勉強会用スライド
MCMC and greta package社内勉強会用スライド
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
 

More from sleipnir002

TSP and Geocoding on R
TSP and Geocoding on RTSP and Geocoding on R
TSP and Geocoding on R
sleipnir002
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
sleipnir002
 
How to use animation packages in R(Japanese)
How to use animation packages in R(Japanese)How to use animation packages in R(Japanese)
How to use animation packages in R(Japanese)
sleipnir002
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベース
sleipnir002
 
パターン認識 第01章-判別能力の評価
パターン認識 第01章-判別能力の評価パターン認識 第01章-判別能力の評価
パターン認識 第01章-判別能力の評価
sleipnir002
 

More from sleipnir002 (6)

TSP and Geocoding on R
TSP and Geocoding on RTSP and Geocoding on R
TSP and Geocoding on R
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
How to use animation packages in R(Japanese)
How to use animation packages in R(Japanese)How to use animation packages in R(Japanese)
How to use animation packages in R(Japanese)
 
animation1.0
animation1.0animation1.0
animation1.0
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベース
 
パターン認識 第01章-判別能力の評価
パターン認識 第01章-判別能力の評価パターン認識 第01章-判別能力の評価
パターン認識 第01章-判別能力の評価
 

Recently uploaded

物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 

Recently uploaded (6)

事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
 
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
company profile.pdf
company profile.pdfcompany profile.pdf
company profile.pdf
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
共有用_aio基本保守プラン_WordPressサイト_20240509.pdf
 
Broadmedia Corporation. 240510fy2023_4q
Broadmedia Corporation.  240510fy2023_4qBroadmedia Corporation.  240510fy2023_4q
Broadmedia Corporation. 240510fy2023_4q
 

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