タグ

emに関するyukimori_726のブックマーク (15)

  • 初めてのEMアルゴリズム with R - yasuhisa's blog

    混合正規分布について 混合正規分布のEMアルゴリズムによるパラメータ推定 EMアルゴリズムの単調増加性について この前はEMアルゴリズムがどんな感じのメカニズムで、どんな性質を持っているか簡単に書いた。 初めてのEMアルゴリズム - yasuhisa's blog というわけで、ちょちょいとRで書いてみることにした。お題はありがちな混合正規分布。 混合正規分布について確率変数がにがで、それぞれ0.3、0.7で生成されているというような分布が真の分布だとしよう。図で書くとこんな感じの密度関数である。 図を書くためのRのスクリプト。 mixture_gaussian <- function(x) { pi_0 <- 0.3 ifelse(runif(1) < pi_0, rnorm(1, -5, 1), rnorm(1, 5, 4)) } N <- 1000 x <- sapply(1:N,

    初めてのEMアルゴリズム with R - yasuhisa's blog
  • C++を使ったEMアルゴリズムの実装(+Pythonによるプロット) - kivantium活動日記

    複数のガウス分布を重ねあわせてできる混合ガウス分布はある程度複雑な分布を近似するときに使われ、Fisher Vectorや声質変換、手書き漢字変換などの応用がある重要な分布です。今回はEMアルゴリズムを用いて混合ガウス分布による近似を求めるプログラムを実装してみました。 EMアルゴリズムは混合ガウス分布以外にも使えるアルゴリズムですが、ここでは混合ガウス分布に話を限定しています。 EMアルゴリズム 式はPRML第9章に従います。いつものようにベクトルの太字は省略しています。 混合ガウス分布は という形で表される分布です。 はk番目のガウス分布の割合を表し、とを満たします。 D次元ガウス分布は という式で表されます。 式変形を楽にするために、潜在変数zを導入します。 K次元ベクトルを、どれか一つの要素だけが1で他の全ての要素が0であるようなベクトルとします。 zの確率分布は、とを満たすを用い

    C++を使ったEMアルゴリズムの実装(+Pythonによるプロット) - kivantium活動日記
  • EMアルゴリズム - 画像処理とか機械学習とか

    今回は、前回の混合ガウスモデルに引き続き、混合ガウスモデルのパラメータ推定の手法に使えるEMアルゴリズムについて紹介したいと思います。 混合ガウスモデルを例に挙げますので、混合ガウスモデルが分からない方は前回の記事を参照してください。 hiro2o2.hatenablog.jp なぜ最尤推定で解けないか? 混合ガウスモデルは以下の式で表せました。 何か近似したい確率密度分布(真の分布)がある際に、混合ガウスモデルを使って近似する場合、最も真の分布に近づくような、パラメータが分かれば良いです。 このパラメータの学習に、通常のガウスモデルと同じように最尤推定を用い、対数尤度の最大化のアプローチで解けるでしょうか? このように、正規分布の和のlogの部分で、微分して0とおく計算が難しくなります。 また、重みを足し合わせて1であるという条件と、共分散行列が正定値であるという条件のもと、を最大にする

  • 混合ガウスモデルと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 - 人工知能に関する断創録
  • GMMとEMアルゴリズム | 一日一アルゴリズム « FiFiFactory

  • EMアルゴリズムを使って多峰型分布をモデル化してみる - Qiita

    概要 標から得られた分布が多峰型であったとき, 単純なガウス分布でモデル化するのは適切ではありません. 多峰型の分布は複数のガウス分布を組み合わせた混合ガウス分布を使ってモデル化することができます. この記事ではEMアルゴリズムを使って, 混合ガウス分布のパラメータを決定する例を紹介します. まずは単峰型分布から 最尤推定 標を$x_n (n=1,…,N)$とします. ガウス分布の最尤推定によって, 平均と分散を以下の形で求めることができます. \mu_{ML}=\frac{1}{N}\sum_{n=1}^N x_n \\\ \sigma^2_{ML}=\frac{1}{N-1}\sum_{n=1}^N (x_n-\mu_{ML})^2 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt

    EMアルゴリズムを使って多峰型分布をモデル化してみる - Qiita
  • 数式を使わずイメージで理解するEMアルゴリズム

    機械学習でよく使う線形代数の公式です。行列やlog行列式の微分、逆行列の微分、2次形式のtraceでの記述、ブロック行列の逆行列などの公式が書かれています。

    数式を使わずイメージで理解するEMアルゴリズム
  • EMアルゴリズム

    最適輸送問題(Wasserstein 距離)を解く方法についてのさまざまなアプローチ・アルゴリズムを紹介します。 線形計画を使った定式化の基礎からはじめて、以下の五つのアルゴリズムを紹介します。 1. ネットワークシンプレックス法 2. ハンガリアン法 3. Sinkhorn アルゴリズム 4. ニューラルネットワークによる推定 5. スライス法 このスライドは第三回 0x-seminar https://sites.google.com/view/uda-0x-seminar/home/0x03 で使用したものです。自己完結するよう心がけたのでセミナーに参加していない人にも役立つスライドになっています。 『最適輸送の理論とアルゴリズム』好評発売中! https://www.amazon.co.jp/dp/4065305144 Speakerdeck にもアップロードしました: https

    EMアルゴリズム
  • Just One More: Modeling Binge Watching Behavior (KDD2016) 読んだ - 糞糞糞ネット弁慶

    Just One More: Modeling Binge Watching Behavior このタイトルを見るまで "binge-watching" という単語を知らなかった.ある番組などにハマってまとめて見てしまうことらしい. 論文では VOD (Video On Demand) サービス (特にこのサイトは定額見放題ではなく話数ごとに購入が必要なものである) について,ユーザのまとめ見のような行動をモデル化する. 定義 「セッション」とは,一以上の動画を見ており,その操作の間隔が 1 時間未満であるものとする. ここからは,1 つのセッションに何の動画が視聴されているか,について調べていく. 読み飛ばしているのだと思うけど,セッションの定義はこれだけでは不十分であって,正確には「同一デバイスにおいて同一の番組シリーズを視聴しており,操作の間隔が1時間未満のものの集合」ではないだ

    Just One More: Modeling Binge Watching Behavior (KDD2016) 読んだ - 糞糞糞ネット弁慶
  • オンラインEMアルゴリズムで混合ガウス分布推論 - 木曜不足

    ずいぶん前にできていたのだが、変分ベイズのフォローのために、ブログに書くのを後回しにしてたオンラインEMについて。 確率的勾配法など、通常はオンラインの方がバッチより収束が遅い。 が、EMアルゴリズムについては、オンラインの方が収束が速いらしい。PRML にも「この逐次型のアルゴリズムはバッチ型に比べて速く収束する」と書かれており、また論文にもそういうデータが載っている。 EM アルゴリズムを実装してみると、確かに収束が遅い。 収束し始めてから遅いのなら許せるけど、2サイクル目くらいからすでに遅い。せめて最初くらいもうちょっと速くなんないの! と文句言いたくなる。 EM アルゴリズムの1サイクルは結構重いので、さらにその気分を助長する。 というわけで、オンラインEMアルゴリズムについてとても興味が湧いたので、実装してみた。 参考にしたのは Neal and Hinton の increme

    オンラインEMアルゴリズムで混合ガウス分布推論 - 木曜不足
  • PythonでEMアルゴリズムを可視化してみた(混合正規分布) - くじらにっき++

    可視化してみました。 解説 以下の動画が一番分かりやすいです。 www.youtube.com Q関数を最大化する, , の求め方は,実際に解いてみると,当にラグランジュの未定乗数法を使うだけという感じでした。ただし という制約を組み込むのを忘れずに… について求めるところはちょっと迷ったので,導出を載せておきます。 ソースコード Pythonで書きました。movieディレクトリにpngを連番で出力します。アニメーションGIFを作るには以下のサイトを参照してください。 アニメーションGIFの作り方 ImageMagick編 hに関してのforループが残っていてnumpy力の低さが感じられますが,自信がある人は消してみてください。 # coding: UTF-8 import os import shutil import scipy import scipy.stats import m

    PythonでEMアルゴリズムを可視化してみた(混合正規分布) - くじらにっき++
  • MAP推定は最尤推定と何が違うのか - HELLO CYBERNETICS

    最も単純な思想である最小二乗誤差推定があります。 これは多変量解析や機械学習でも最も最初に学ぶであろう内容です。次には過学習を防ぐために正則化を用いることを学ぶかと思います。 これらが、確率論の導入によって最尤推定とMAP推定に含まれることを見ていきます。数式は要点だけを見ていくので、詳しい式変形は追いません。しかしそれでも、近年統計的機械学習(確率論を使う機械学習の方法)が非常に活躍している理由が分かるかと思います。 SVMやニューラルネットなどの決定論的手法も確率的に取り扱えますが、なぜそんな面倒なことをやるのかを納得していただけたらと思います。 決定論的な多項式フィッティングの過学習対策 次数の問題 過学習対策:正則化 確率論的な多項式フィッティングの過学習対策 最尤推定によるフィッティング MAP推定 まとめ 確率論を用いるメリットとは? 決定論的な多項式フィッティングの過学習対策

  • 混合ガウス分布問題のEMアルゴリズム計算 - Qiita

    こんにちは。 混合ガウス分布問題のEMアルゴリズム計算をPythonで書きました。1変量と2変量の例です。初期値等をランダム生成しているので繰り返し走らせると収束の進行はいろいろ変わることが分かります。 $ ./em.py --univariate nstep= 98 log(likelihood) = -404.36 $ ./em.py --bivariate nstep= 39 log(likelihood) = -1534.51 #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import division from __future__ import print_function import numpy as np import matplotlib.pyplot as plt import matplo

    混合ガウス分布問題のEMアルゴリズム計算 - Qiita
  • Numpyを使って混合ガウス分布のEMアルゴリズムを実装 - Wolfeyes Bioinformatics beta

    Pythonの練習ということで,Numpyを使って混合ガウス分布のEMアルゴリズムによる最尤推定を実装してみた.そもそもPythonを書いた経験があまり無いうえに,全く知らないNumpyを使って行列演算や確率計算をしようということで,手探りでかなり苦戦してしまったが,何とか形にはなったと思う.ということで,次の勉強に活かすためにもここでコードを振り返ってみる. 注意:以下のコードはテストデータでしか確かめてないので多分どこかバグってる.あと確率値に対数を取ってないので,値が限りなく小さくなってゼロ除算になることがある. とっかかり まずscipyあたりで多変量正規分布が無いか探す 普通の正規分布scipy.stats.normはあるが多変量は無いっぽい 自分で関数を書く 逆行列とか転置とか書き方が複数あって混乱する 今回はとりあえず動いたらいいので適当に使う np.matrixとnp.ar

  • EMアルゴリズムの幾何学的解釈 - めもめも

    EMアルゴリズムが幾何学的に説明できる」と聞いた驚きが情報幾何に興味を持ったきっかけということで、そこのところを綺麗に整理してみます。議論の元ネタは、「情報幾何学の新展開」の第12章です。 幾何を用いない(普通の)EMアルゴリズムの説明は、こちらを参照ください。 確率分布が構成する空間 観測可能な変数 と観測できない変数(Latent variable) を持つ確率分布について、考えうるすべての分布 を集めた空間 を用意します。 この中で特に、パラメータ で特徴づけられたモデルの分布 を集めると、これは、空間 の部分空間 を構成します。これを「モデル空間」と呼びます。 一方、観測データ が与えられた場合、この観測データが得られる確率が 1 になる(この観測データにオーバーフィッティングした)確率分布が構成できます。 ここに、 は、 を満たす任意の関数です。 このような をすべて集めたもの

  • 1