グラフィカルモデル入門

50,258 views

Published on

Published in: Science
0 Comments
194 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
50,258
On SlideShare
0
From Embeds
0
Number of Embeds
19,277
Actions
Shares
0
Downloads
911
Comments
0
Likes
194
Embeds 0
No embeds

No notes for slide

グラフィカルモデル入門

  1. 1. いまさら聞けない グラフィカルモデル入門 川本一彦 千葉大学統合情報センター kawa@faculty.chiba-u.jp
  2. 2. グラフィカルモデルとは? グラフィカルモデル = 確率変数間の依存関係のグラフ表現 例:確率変数 の間に左のような依存関係が存在 ・近年の機械学習やコンピュータビジョンでの定番モデル (実際,2000年以降に出版されたおもだった機械学習やコンピュータ ビジョンの教科書にはグラフィカルモデルの説明がある) [Bishop,2006][Szeliski,2011][Prince,2012] etc.
  3. 3. なぜグラフ表現か? 1)確率モデルの構造を視覚化する簡単な方法を提供し, 新しいモデルの設計方針を決めるのに役に立つ. 2)グラフの構造を調べることにより,条件付き独立性 などのモデルの性質に関する知見が得られる. 3)精巧なモデルにおいて推論や学習を実行するために は複雑な計算が必要となるが,これを数学的な表現を暗 に伴うグラフ上の操作として表現することができる. [Bishop,2006 第8章(邦訳:パターン認識と機械学習 (下),丸善,2012 )]
  4. 4. なぜグラフ表現か? 従来手法1 従来手法2 提案手法 コンピュータビジョンへの応用では,とくに ・モデルを設計するときにアイデアを整理しやすい, ・従来手法に対する提案手法の新規性を示しやすい, ・推論アルゴリズムを理解しやすい,など. 例: (実際はすでに提案されてます)
  5. 5. どんなグラフィカルモデルがあるか? マルコフ確率場 (Markov Random Field) ベイジアンネットワーク (Bayesian Network) *これらの下位モデルとして,有向木や無向木がある.また,無向リンクと 有向リンクの両方からなる連鎖グラフ(chain graph)というものもある. 無向グラフィカルグラフ 有向グラフィカルグラフ UGM: Undirected Graphical Model DGM: Directed Graphical Model
  6. 6. どんな応用があるか? モデル 応用例 補足 マルコフ確率場 画像復元・修復, 領域分割,画像合成, ステレオ照合, etc. 画素ベースの手法が多い.画素間 の因果関係を決めることが難しい ため,矢印を引きにくい. ベイジアン ネットワーク 物体追跡, ジェスチャ認識, etc. 系列データに対する手法が多い. 時間という明確な因果関係が存在 するため,矢印が引きやすい.
  7. 7. 本日の内容 グラフィカルモデルの入門編 ・ベイズ推論の簡単な解説 ・条件付き独立性とグラフィカルモデル ・連鎖・木構造をもつグラフに対する推論アルゴリズム ・ループ構造をもつグラフに対する推論アルゴリズム(簡略版)
  8. 8. ベイズ推測 ~準備~ コンピュータビジョンで現れるグラフィカルモデルの 多くはベイズ推測のためのモデルである
  9. 9. 推定したい量は確率変数 ベイズ推論で推定したい量は唯一 の「真」の値をもつとは考えない. 確率的に変動する変数と考える. 領域分割の例: 画素値から,その画素が何の領域かを表すラベルを推定したい.もちろん その画素が地面なのか空なのかは分からないが,どれであるかは唯一に決 まっていると考えるほうが自然であろう(そこには空があるのだから…). しかしそう考えずに,その画素が地面である確率,空である確率というも のを導入する. 物体追跡の例: 画像中の物体位置を推定したい.もちろん,事前にはどこに位置している のかは分からないが,物体は空間のある位置に唯一存在しているのだから, 唯一の「真」の位置を考えるほうが自然であろう.しかしここでも,この あたりに存在する確率というものを導入する.
  10. 10. 事後確率分布を求める 潜在変数: (汚れていない画素値,ラベル,物体位置など) 観測値: (汚れた画素値,画像特徴など) 観測値 が与えられているもとで,潜在変数 の条件付き確率分布(事後分布)を求めよ. *手元にあるデータを最大限利用して,推定したい潜在変数 (未知変数)に関する情報を得たい,という表現になっている. find 基本問題
  11. 11. 事後確率分布を求める 観測値 が与えられているもとで,潜在変数 の条件付き確率分布(事後分布)を求めよ. find 推測 推測 *観測値に対応するノードは塗りつぶすことが多い
  12. 12. MAP推定値と周辺分布を求める 最大事後確率推定問題(Maximum A Posterior) 周辺分布推定問題(marginal distribution) *応用では分布でなく一つの代表値が欲しいことが多い *例えば物体追跡では過去すべての位置が欲しいわけでなく, 現時刻の位置の分布が分かればよいことが多い find find
  13. 13. ベイズの定理でひっくり返す ベイズの定理に基づく推論 潜在変数と観測値をひっくり返す - ひっくり返した分布 は,観測が生成されるプロ セスを表現しており,与えられている(ことが多い). - 求めたい事後分布 は一般には与えられていない. 事前分布 の登場 - 潜在変数に関する事前知識(滑らかなど)を表現. - このモデル化にグラフィカルモデル(マルコフ性)が活躍.
  14. 14. 確率計算は足し算(積分)と掛け算の繰り返し 加法定理: 乗法定理: 基本となる定理(これらの関係をひたすら計算) *周辺化ともいう.同時分布のいくつかの変数を消去する. *連続変数のときは,和を積分に置き換える: *確率分布の因数分解に相当.グラフ構造を決める. *ベイズの定理でこれらの関係がすでに利用されている
  15. 15. 条件付き独立とグラフィカルモデル グラフィカルモデルは,確率変数間の条件付き独立をグラフで表 したものだ,ということができる.条件付き独立こそがモデリン グと効率的なアルゴリズムの鍵になる.
  16. 16. 確率分布の計算は大変 はそれぞれ 個の状態を取りうる離散確率変数とする. この確率分布 を求めるには何回計算が必要か? 例題 A. 回必要である. 一般に 変数に対して の計算量. ・・・
  17. 17. 計算の効率化~独立と条件付き独立~ 独立: 条件付き独立: 例題 A. 回 A. 回 ただし は与えられているとする はそれぞれ 個の状態を取りうる離散確率変数とする. この確率分布 を求めるには何回計算が必要か? ただし確率変数間に次のような依存関係があるとする. ばらばらにできる
  18. 18. 計算の効率化~独立と条件付き独立~ ・確率変数間に独立あるいは条件付き独立が成立すると 因数分解できて組み合わせの数が減り計算量が減少. ・2つのモデルは一般に次のように因数分解され,各項に 含まれる変数(青線部)は独立性と条件付き独立性に依存. 有向グラフィカルモデル: 無向グラフィカルモデル: ここで, は の親ノード集合. ここで, は確率変数の集合 の 部分集合, は正のポテンシャル関数.
  19. 19. 有向グラフィカルモデルを描く 一般形: 描き方:親から子へ矢印をひく ・・・ = 親子 例: プレート (省略記法) …(a) …(b) …(c) (a) (b) (c) *一般に有向非巡回グラフ(ぐるぐる回らない)だけを扱う.
  20. 20. 矢印の向きはどうやって決める? 一般に同時分布の因数分解は一意には定まらない A.モデル設計者がデータが生成されるプロセス(因果関係) に注意を払って決める.例えば: ・現時刻の状態は一つ前の状態に応じて決まる(前時刻→現時刻) ・対象の状態に応じて観測値が生成される(内部状態→観測値) 潜在変数(位置など) 物体追跡の例: 観測値(画像特徴など) ? *データ数値だけから矢印の向きが決めること(因果推定)は非常に難しいと思われる. 一般には矢印の向きを決めるためには,補助的な知識(時間先行性など)が必要である. 一つ前の位置に依存して今の位置が決まる 今の位置に依存して画像上の見えが決まる
  21. 21. 無向グラフィカルモデルはなぜ必要か? A. 変数間に双方的な因果関係(鶏と卵)があるとき,どちら向き に矢印を引いてよいか分からないため.例えば,隣接する画素間で どちらか一方がもう一方の画素値を決めているとは(通常は)いえ ない.このようなとき変数間に無向リンクを張る. どちらともいえない 有向グラフは,データが生成されるプロセスの表現として自然. では,なぜ「無向」を考えるのか? 双方的因果関係
  22. 22. 無向グラフィカルモデルの因数分解 一般形: ・条件付き独立 が成立 どのように因数分解するか? ・各変数が互いに独立(面白くない例) ・各変数が互いに直接的に関連(これ以上分解のしようがない) 各変数間の依存関係によって分解のしかたは変わる.例えば:
  23. 23. ポテンシャル関数とは? ポテンシャル関数は確率分布の別名か?(先ほどは次のように置いた) 条件付き確率分布 同時確率分布 必ずしも確率分布でなくてよい.例えば, 画像復元・修復など多くの応用で利用される. 正則化理論の罰金項に相当する.物理学との アナロジーから をエネルギーともいう 総和が1という制約を気にせずに自由に気楽にモデリングできる ・応用に対して事前にもっている知識(値が近いと嬉しいなど)を反映. ・最終的に全体で総和が1になるように正規化項 が必要. ・数学的な要請からポテンシャル関数は正 とする(Hammersley-Clifford定理)
  24. 24. 無向グラフィカルモデルを描く 描き方:各項の変数集合 の要素を相互につなぐ 例: …(a) …(b) …(c) (a) (b) 一般形: (c) (互いに独立) (互いに直接的に関連) (条件付き独立) * は極大クリーク(青点線)をつくる
  25. 25. 条件付き独立こそがモデリングの鍵 低 高 モデル表現力 計算効率 高 低 バランスをとって このあたりに落ち着く 互いに直接的に関連 条件付き独立 互いに独立 過学習を起こしやすい 同時に考える意味なし モデルに対する推論の計算効率と表現力のバランスをとると, 条件付き独立という関係が重要である. 組み合わせ爆発 ばらばらに計算ほどほどつながっている
  26. 26. 条件付き独立をグラフから読み取る tail-to-tail head-to-tail head-to-head *条件付き独立 は とも表記する( を省略した表記). は空集合 を与えたときに条件付き独立,すなわち独立を意味する. 上2つに対して 条件付き独立か どうかの関係が 反転する. 変数 を与えると依存関係はどう変化するか? (なお条件付き独立は3変数以上あって初めて定義できることに注意) ベイジアンネットワーク
  27. 27. 条件付き独立をグラフから読み取るベイジアンネットワーク 例: これら二つの系列は 直接結ばれていない ため,独立な系列と 考えたくなるがそう ならない. head-to-headノード head-to-head 与えられている
  28. 28. head-to-head はややこしい head-to-head 変数 を与えると依存関係はどう変化するか? 先ほどみたようにhead-to-headは他とは異なる振る舞いをする. さらにややこしいことに,head-to-headノードの子孫のいずれ かが与えられると,条件付き独立性を失ってしまう. 親 子孫 ベイジアンネットワーク … (子だけでなく子孫でも親に影響を与える) 関連を持つ …
  29. 29. 条件付き独立をグラフから読み取る マルコフ確率場 マルコフ確率場のほうがベイジアンネットワークより単純 (向きがないからhead-to-headのようなものを考えなくてよい) が与えられたら 条件付き独立が成立 (これだけ)
  30. 30. マルコフブランケット 前ページの結果を利用して,あるノードが条件付き独立になるには どのノードを与えればよいか,という問題を考える. ベイジアンネットワーク マルコフ確率場 子にhead-to-headノードがあれば 要注意.別の親と関係が生じる. *塗りつぶされているノード集合を赤枠のノードに対する マルコフブランケットという. 隣接しているノードを与えればよい
  31. 31. ノード「集合」に対する条件付き独立性 は成立するか? はそれぞれ赤と緑の背景内にあるノード集合. は灰色で塗りつぶしたノード集合. *ここでは,加法・乗法定理を駆使して記号演算で検証するのではなく グラフを見てわかるかどうかを問うていることに注意. ベイジアンネットワーク
  32. 32. 有向分離 基本的な考え方: と をつなぐすべての経路上のノードに対して, tail-to-tail,head-to-tail,head-to-headかどうか,そしてそれが 与えられているかどうかを見て,経路が遮断されるか(条件付き独 立か)どうかを判定. ベイジアンネットワーク ノード集合間の条件付き独立性をグラフから判定する基準 (3変数間での判定を一般化したもの) 経路1 経路2 *経路の向きは考えない この例では経路上のノードは,head-to-tail とhead-to-headがある.
  33. 33. 有向分離 遮断 遮断 × × 遮断 遮断 × × 遮断 × 遮断 × ベイジアンネットワーク ノード集合 を変えながらいくつかの例で考えてみる. (head-to-headノードでは子孫を考えなくてはいけないのでやっかい) 子孫 head-to-tail head-to-tail head-to-head (与えられていないため 両親は関係を持たない) head-to-head (与えられているため 両親は関係を持つ) head-to-head (与えられていないが 子孫が与えられている ため両親は関係を持つ)
  34. 34. マルコフ確率場では? 遮断 遮断 × × ベイジアンネットワークに比べてhead-to-headのようなやっかい なノードがない子孫を考えなくてよいため単純.経路上のノード が与えられているかどうかで判定. 遮断 遮断 × × 遮断 ×
  35. 35. 有向から無向へ~モラル化~ 有向グラフを無向グラフに変換することができれば, 両者を統一的に扱え,便利なことが多い. 親が1人 親が2人 … 親同士を無向リンクで 相互に結合 親が3人 結婚 結婚 親が1人のとき は矢印をトルだけ. 親同士を無向リンクで 相互に結合 モラル化: 子を通して親同士が関係をもつため(head-to-head),親同士を相互に 無向リンクで結ぶ(結婚).関連ノードでクリークをつくることに相当.
  36. 36. 有向から無向へ~モラル化~ コンピュータビジョンの典型的なモデルである下例では, 親が1人しかいないため,単に矢印を取ればよい. (連鎖グラフ)
  37. 37. 無向グラフのより詳細な表現~因子グラフ~ ポテンシャル関数を因数分解し,変数間のより詳細な関係を表現. この因数分解に現れる関数を因子という.グラフ上で因子は■で 表現し,関連するノードを無向リンクでつなぐ. ポテンシャル関数は3変数の 関数ということしか表現でき ていない ポテンシャル関数は2変数の 関数の積という表現ができる. (この例では,3変数の関係はペアワイズ に決まることを表現している) 因子 因子 因子 *因子はポテンシャル関数の別名ぐらいに考えておけばよい.あるいは,ポテンシャル関数は 極大クリークに対して本来定義するものであるが,それを緩めて(極大がつかない)クリーク でポテンシャル関数を定義したものが因子という説明もできる. 因子ノード
  38. 38. 無向グラフのより詳細な表現~因子グラフ~ ある無向グラフに対する因子グラフ一意ではない.どの因子 グラフにするかはモデル設計者しだいである. これは元と同じ ペアワイズに決まる さらに単項を入れた表現
  39. 39. 推論アルゴリズム~連鎖と木~ グラフがとくに連鎖や木の構造をもつとき厳密解を効率的に求め ることができる.ポイントはグラフ上の経路が一意に決まること である.
  40. 40. 連鎖・木構造をもつグラフの推論 モラル化 すべてのノード(初期ノードを除く) は親が1人しかいないため「矢印」を 取るだけでよい 「連鎖グラフ」というと有向・無向リンクを含むグラフを意味するので注意. 連鎖あるいは木の構造をもつときは有向グラフと無向グラフは同じ ように扱える.親が一人しかいないため,モラル化しても「矢印」 を取るだけでよい. 連鎖構造の例:
  41. 41. 連鎖構造の周辺分布の推論 * に関して,連鎖構造を考えずに素朴に計算すれば 周辺分布を求めたい( ) ただし同時分布は連鎖構造をもつとする.
  42. 42. 乗算と加算の交換による効率的な推論 の例で考える 乗算と加算の交換 乗算と加算の順序をうまく交換することで (正規化項の計算は )
  43. 43. 周辺化の計算 の計算周辺化 ・ポテンシャル表: ・周辺ポテンシャルの計算: この計算は 格子図 1 1 1 1 1 1 … … … … …
  44. 44. 行列演算による表現 ベクトル と の成分ごとの積 (ベクトル の 番目の成分は に関する周辺ポテンシャル) 乗算と加算の順序をうまく交換することで 正規化項は で計算 1段階目 2段階目 3段階目 方向が逆のため転置をとる
  45. 45. メッセージパッシング 両端から始めてメッセージを順々に送る動作に見える 実際の計算は行列計算(メッセージはベクトル) 最初の送信者 (1を送る) 受信者 最初の送信者 (1を送る)
  46. 46. 隠れマルコフモデル ~木構造の例~ 初期状態 事後確率分布 潜在変数が離散確率変数のとき隠れマルコフモデルという
  47. 47. 隠れマルコフモデルの周辺事後分布の推論 (ベイズの定理) 周辺事後分布(観測値で条件付け) 周辺分布 違いはこの項(尤度)だけ 周辺事後分布は周辺分布とほぼ同じ計算で求めることが可能
  48. 48. 隠れマルコフモデルの周辺事後分布の推論 尤度ベクトル: ノード での動作: ≡ 1)前ノードからのベクトル と観測ノードからのベクトル の成分毎 で積を取り新しいベクトルを作成 2)その新しいベクトルに対して,ポテン シャル行列をかけて次のノードへ送信
  49. 49. 隠れマルコフモデルの周辺事後分布の推論 全体として次のような動作をする. 初期状態 受信者 物体追跡などの応用で,逐次的な推論が必要なときは,受信者は右端のノード に置く.このときメッセージは前向きに送信していけばよい.
  50. 50. 積和アルゴリズム(確率伝播法) 根ノード(受信者) 葉ノード 一般に連鎖・木構造をもつグラフィカルモデルに対しても同様にメッ セージを順次送っていけばよい.必要な計算は積と和だけ(加法定理 と乗法定理)で,それらの計算順序をうまく入れ替えて効率的なアル ゴリズムを構成する.総称して積和アルゴリズムという. *あるノードが複数のベクトル(メッセージ)を受け取った ときは,それらの各成分毎で積を取ればよい.
  51. 51. 有向多重木(Polytree)の推論 有向多重木 親が二人以上いる 無向グラフ head-to-headノードが あるためループができる モラル化 因子グラフ 上手く因子ノードを 置くとループが消える 有向グラフにhead-to-headノードが含まれるとき ・モラル化によって無向グラフに変換するとループができる. ・適当に因子ノードを置くとループを消去することができる. ・積和アルゴリズムを適用できる. 因子 *結局,head-to-headノードがやっかいな存在. *もともと木構造だったものをループあり構造に変換して,そして木構造に変換する, という手順はまどろっこしいが,統一的にアルゴリズムを適用できると考えればよい.
  52. 52. 連続確率変数に対する推論 ~積積分アルゴリズム~ 離散確率変数 連続確率変数 潜在変数 が連続確率変数のときは「和」を「積分」に変える この積分が計算できるか?
  53. 53. 連続確率変数に対する推論 ~積積分アルゴリズム~ が正規分布 カルマンフィルタ が一般の分布 粒子フィルタ *積分が解析的に計算可能 *メッセージは平均ベクトルと共分散行列 *積分が解析的に計算不可能.モンテカルロ積分による近似 *メッセージは粒子群 の計算
  54. 54. MAP推定値を与える潜在変数列の推論 MAP推定値を与える潜在変数列を求めたい( ) ただし同時分布は連鎖構造をもつとする. *素朴に全ての系列の確率値を求めて最大値探索すれば
  55. 55. 加算(周辺化)と最大値演算の交換 周辺化: 最大化: 最大化:周辺化の加算を最大値演算に置き換えた問題 加算 最大値演算 効率化のための基本関係:分配則 (周辺分布のときに利用)
  56. 56. MAP推論のためのメッセージパッシング まず最大確率を求める問題を考える( がない) 最初の送信者 受信者 最大値をメッセージとして送信していく 尤度
  57. 57. 過去の系列を記憶しておく ~動的計画法~ 格子図 ←最大確率 … … … … … … … … … … 状態 に関して,最大確率を 与える経路を記憶しておく. 受信者 受信者からノードを後ろ向きに辿っていく MAP推定値:
  58. 58. 推論アルゴリズム~ループ~ グラフがループ構造をもつときは,積和アルゴリズム(確率伝播 法)は近似解を与える.ここでは詳細は省略してアルゴリズムの イメージだけを与えることにする.
  59. 59. ジャンクションツリー グラフがループをもつときは,クリークを一つのノードとする 木構造に変換する.ジャンクションツリーという. … ループ除去 ただし,この変換に手間がかかることと,クリークに多くの変数が 含まれるときは多くの計算時間がかかることに注意.
  60. 60. ループあり確率伝播法 近似解法: ループ構造があるときは確率伝播法は厳密解を与えず, 近似解を与える. スケジュール: ループがあるときはどのような順番でメッセージを送るか スケジュールを決めなければならない. メッセージが グラフ上を 駆け回る.
  61. 61. 同期スケジュール 「すべてのノードで同時に両方向へメッセージを送信」を繰り返す … 1回目 2回目 3回目
  62. 62. 非同期スケジュール … … ラスタスキャンスケジュールの例
  63. 63. その他のアルゴリズム グラフカットアルゴリズム ・MAP推定値の計算に利用. ・ポテンシャル関数にある種の条件を課せば厳密解が求まる. 参考文献:石川博,チュートリアル「グラフカットの理論と応用」第14回 画像センシングシンポジウム マルコフ連鎖モンテカルロ(MCMC)アルゴリズム ・近似解法 ・実装は一般に簡単. ・ ・ ・
  64. 64. ソフトウェア OpenGM: http://hci.iwr.uni-heidelberg.de/opengm2/ さまざまな離散最適化アルゴリズムが実装されている. 例えばメッセージパッシングでは ・Dynamic Programming on acyclic graphs ・Loopy Belief Propagation (LBP) ・Sequential Belief Propagation (BPS) ・Tree-reweighted Belief Propagation (TRBP) MRF Minimization: http://vision.middlebury.edu/MRF/code/ OpenGMに収録されているが,単独でも公開されている.自分でちょっと 試してみたいときは,こちらのほうが敷居が低いと思います. ・Iterated Conditional Modes ・Graph Cuts ・Max-Product Belief Propagation ・Sequential tree-reweighted message passing
  65. 65. まとめ
  66. 66. まとめ:グラフィカルモデル入門編 ・コンピュータビジョンや機械学習に欠かせないベイズ推論の ためのモデル ・計算コストとモデル自由度のバランスを取るために条件付き 独立が重要(head-to-headノードに要注意) ・連鎖・木構造のグラフに対する積和・積最大アルゴリズム (確率伝播法)は厳密解法(実装はそれほど難しくないので実際に自身 で一度実装されることをお勧めします) ・ループ構造があるグラフに対する積和・積最大アルゴリズム は近似解法(グラフカットはある種の条件下で厳密解法)
  67. 67. 参考文献 機械学習・パターン認識・コンピュータビジョン全般 *すべて,あるいは一部の原稿が著者webページからダウンロード可のものをリストアップ ・C.M.Bishop,Pattern Recognition and Machine Learning, Springer, 2006 邦訳:パターン認識と機械学習 (上・下),丸善,2012 ・D.Barber, Bayesian reasoning and machine learning, Cambridge University Press, 2012 ・R.Szeliski, Computer Vision: Algorithms and Applications, Springer, 2011 邦訳:コンピュータビジョン ―アルゴリズムと応用―,共立出版,2013 ・S.J.D.Prince, Computer Vision: models, learning and inferance, Cambridge University Press, 2012 ビデオレクチャ *最近では,YouTube等で「graphical model」と検索すれば多くの(そして有名人の)ビデオレクチャが 見られます.例えば,MOOCsの代表格であるCourseraでは「Probabilistic Graphical Models」がDaphne Koller教授より提供されている(この人は有名なテキスト「Probabilistic Graphical Models,MIT Press, 2009」の 著者でもあり,Courseraの設立者でもあります). 日本語では,玉木先生(広島大)によるレク チャがUdamyで公開されてます. ソフトウェア マルコフ確率場:新しいアルゴリズムが実装されているという意味ではOpenGMがよいかも. ベイジアンネットワーク:HMMの実装はあちらこちらにある. また,グラフを自動的に描きたいときは,Graphvizというソフトウェアがある.

×