タグ

gmmに関するyuisekiのブックマーク (10)

  • GitHub - masatoi/gnoem: normalized Gaussian Networks with On-line EM algorithm

  • ますうぃき - RubyでGMMを作ってみる

    Rubyによる1次のガウス分布(正規分布)のメソッド † 引数は、値x、平均mu、分散sigma。返り値は確率密度。 include Math def gauss(x,mu,sigma) res1=1/Math.sqrt(2*Math::PI*sigma.to_f) res2=(x.to_f-mu.to_f)*(x.to_f-mu.to_f) res3=Math.exp(-res2.to_f/2*sigma.to_f) res1.to_f*res3.to_f end ↑ 1次のガウス分布に従う乱数の作成 † ボックス=ミュラー法を用いて、ガウス分布に従う乱数を発生させる。 引数は、発生させる総数n、ガウス分布の平均mu、ガウス分布の分散sigma。 返り値はなし。 include Math def gauss_rand(n,mu,sigma) j=0 while j < n a=rand(

  • PRML 混合ガウス分布の EM アルゴリズムを R で実装してみた - higepon blog

    PRML 9 章の混合ガウス分布の EM アルゴリズムを勉強のために実装してみた。(より格的な実装と検証は id:n_shuyo さんのEM アルゴリズム実装(勉強用) - Mi manca qualche giovedi`?を参照のこと)。 今回初めての R だったので色々苦労したが、Rは良く出来ていてとても感心した。 真の分布を定義したのち伝承サンプリングでデータを生成し、Eステップ、Mステップを回して収束させた。 # データ生成 xx <- ancestralSampling(1000) # データを描いてみる plot(xx); # K=2 D=2 の混合ガウス分布を真の分布として定義。 start_pi <- list(rnorm(1, 0.5), rnorm(1, 0.5)); start_mu <- list(c(rnorm(1, 10), rnorm(1, 10)), c

    PRML 混合ガウス分布の EM アルゴリズムを R で実装してみた - higepon blog
  • Intelligence Architecture けんきうノート - GMM-Clustering

    ここにあります。 ただしGMM#p4の共分散行列の更新式は \[ S_i^{t+1} = { \sum_n (x_n-\mu_i^t)(x_n-\mu_i^t)^T E(y_{ni}) \over \sum_n E(y_{ni}) } \] と、\(\mu_i^{t+1}\) の代わりに \(\mu_i^t\) を使いました。 なんとなくループの数とか依存関係とか減らしたかったので。 コードチューンしようってわけではないですが癖ですね。 結果は問題ないようです。 収束判定のための \(\ln p(X|\theta)\) はMステップ直後ではなく、Eステップで計算してます。 \(\phi_k N(x_n|\mu_k, S_k)\) が使いまわせて効率がいいので。 これも無意識にやってた。。。 3クラスからなる2Dのデータ↓を与えてクラスタリングしてみました。 正解の色がついてますが、実際には

    yuiseki
    yuiseki 2012/08/15
  • Intelligence Architecture けんきうノート - GMM

    Gaussian Mixture Model(混合正規分布モデル)は以下のようなデータ生成モデルです。 K個のクラスがあるとする。対応して、K個の正規分布が存在する。 まず、K個からひとつランダムに選ぶ。 次に、選ばれた正規分布に従ってデータベクトル \(x_n\in {\bf R}^D\) を生成する。 これを N回繰り返して \(X=(x_1,\ldots,x_N)\) を得る。 この \(X\) が観測データとなるわけです。 一方、\(x_n\) を生成したクラスはどれかを表す変数を \(y_n\) として、\(Y=(y_1,\ldots,y_N)\) とおきます(隠れ変数)。 \(y_n\) は、普通に考えれば、単に1からKのスカラ値を持てばいい気がします。 ですが後の式変形の便宜上、ひとつの要素だけが1のK次元ベクトルである(\(y_n\in\{0,1\}^K\))とし

  • 混合ガウスモデル

    GMMは混合モデルの一種で,ガウス分布の線形重ね合わせで表されるモデルです. 十分な数のガウス分布を用い,線形結合する重みの係数と各分布の平均と共分散を調節すれば ほぼどのような連続関数でも,任意の精度で近似することができます. GMMはその簡素さと柔軟性から, データマイニング,パターン認識,機械学習,統計的解析に広く応用されています.

  • 混合ガウスモデルとEM - 人工知能に関する断創録

    今回は、9.2の混合ガウス分布のところです。混合ガウス分布はK個のガウス分布の線形重ね合わせで表されます。 ここで、π_kを混合係数と言い、k番目のガウス分布を選択する確率を表します。π_kは確率の条件を満たし、すべてのkについて足し合わせると1になります。ここら辺は、2.3.9の混合ガウス分布でも出てきました。この章では、混合ガウス分布を潜在変数zを導入して再定式化しています。zはK次元ベクトルで、K個の要素のうちどれか1つだけ1を取り、他は0、つまり1-of-K表現です。zはデータxがどのガウス分布から生成されたかを表し、下のような分布になります。 そして、式(9.12)のようにこのzを陽に用いた形でp(x)を求めてもやっぱり混合ガウス分布の式 (9.7) になります(演習9.3)。 つまり、混合ガウス分布を「潜在変数zを含む別の式」で表現できたってことですね。何でこんなことするのか不

    混合ガウスモデルとEM - 人工知能に関する断創録
  • 動く混合ガウス分布(実装編)- 動く PRML シリーズ(1) - Next MIDI Project

    こちらもどうぞ - 動く混合ガウス分布(導出編) 実装には python, SciPy と matplotlib を使います。 テストデータには Old Faithful 間欠泉データを使います。 データの読み込み Old Faithful 間欠泉データを PRML のホームページからダウンロードし、作業ディレクトリに置きます。保存したデータは、SciPy の loadtxt 関数で読み込みます。 from scipy import loadtxt def faithful(): return loadtxt('faithful.txt') 適当に正規化します。 from scipy import sqrt def faithful_norm(): dat = faithful() dat[:, 0] -= dat[:, 0].mean() dat[:, 1] -= dat[:, 1].m

    動く混合ガウス分布(実装編)- 動く PRML シリーズ(1) - Next MIDI Project
  • 動く混合ガウス分布(導出編)- 動く PRML シリーズ(1) - Next MIDI Project

    はじめに 混合ガウス分布 (Gaussian Mixture Model, GMM) は、多次元の特徴量を持つデータ点の集合を機械学習により分類するための重要な手法です。特に、GMM は応用範囲が広く、様々な手法の基礎となっているため、自ら更新式を導出するなどして特性をよく理解することが重要です。 記事ではこれに加え、GMM の長所と短所を視覚的に確認する方法を提案し、実装します。GMM の更新式は「どう動くか」の説明にはなりますが、「長所と短所は何か」を直接教えてはくれません。たとえば、 どんな初期値から、どんな収束値が得られるのか。(初期値に対する特性) 変な初期値を与えるとどうなるのか。(局所解頑健性) どれぐらいの速さで収束するのか。(収束性能) といった疑問にこたえるためには、EM アルゴリズムの各イテレーションでの中間状態をグラフにプロットし、アニメーションとして見る必要があ

    動く混合ガウス分布(導出編)- 動く PRML シリーズ(1) - Next MIDI Project
  • 混合ガウス分布モデルのクラスタをk平均法とEMアルゴリズムと変分ベイズでそれぞれ推定 - 西尾泰和のはてなダイアリー

    「クラスタは球状だ」と想定しているk平均法が苦労するように、細長くて交差したクラスタのデータを使った。また変分ベイズの「クラスタの個数を自動調整する」というメリットを確認するために、クラスタの個数は2, 4, 8個で行った。EMアルゴリズムと変分ベイズでは、k平均法ができていない「長細いクラスタだ」という推定ができている。またEMアルゴリズムではクラスタの個数は人間が与えないといけないが変分ベイズでは自動調整されている。ただし、自動調整に失敗することも結構あるので「何回か実行して一番良かったものを取る」というアプローチが必要だろうな。変分ベイズの8クラスタでの実験は10回やって一番良かったものを取っている。4クラスタの実験は6回。それぞれ初期状態から20ステップの学習過程を動画にしている。 k平均法 k平均法では細長いクラスタを見つけられないのでこれが限界 4クラスタの例。クラスタの個数を

    混合ガウス分布モデルのクラスタをk平均法とEMアルゴリズムと変分ベイズでそれぞれ推定 - 西尾泰和のはてなダイアリー
  • 1