Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

『劣モジュラ最適化と機械学習』 4章

760 views

Published on

機械学習プロフェッショナルシリーズの,『劣モジュラ最適化と機械学習』 4章 の内容です.

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

『劣モジュラ最適化と機械学習』 4章

  1. 1. 劣モジュラ最適化と機械学習 第4章 最大流とグラフカット Shimada ayato
  2. 2. 4.1 カット関数最小化と最大流アルゴリズム 4.2 マルコフ確率場における推論とグラフカット 4.3 グラフ表現可能な劣モジュラ関数 4.4 補足:プリフロー・プッシュ法
  3. 3. 第2章では… 劣モジュラ関数の最小化は多項式時間で可能  一般の劣モジュラ関数 最悪計算量:𝒪 𝑛5EO + 𝑛6  対称な劣モジュラ関数 最悪計算量:𝒪 𝑛3EO しかし,要素数の多い問題・反復的な計算にはまだ不十分 (EO:関数評価に必要な計算コスト) [Queyranne, 1998] 高速に最小化可能な劣モジュラ関数の特殊クラスを考える
  4. 4. グラフカット コンピュータ・ビジョンで頻繁に使われるアルゴリズム 数万~数百万のオーダーの問題でも実用的時間で適用可能 2次の劣モジュラ関数である“カット関数”の最小化 <最大流アルゴリズム> 理論的/実用的に高速なアルゴリズムの適用ができる
  5. 5. 𝑠-𝑡カットとフロー <有向グラフ> 枝集合 ℰ  各枝 𝑒 ∈ ℰ には枝容量𝑐 𝑒が 定められている 有向グラフ 𝒢(𝒱, ℰ) 上で,“𝑠-𝑡カット”と“フロー”を定義する 頂点集合 𝒱 = 𝑠 ∪ 𝑡 ∪ 𝑉  {𝑠}:ソース  {𝑡}:シンク  𝑉 = {1, … , 𝑛}: 𝑛個の頂点 図4.1は, 𝑉 = {1,2,3,4}とする頂点数6,枝数9の有向グラフの例 各枝の数字は枝容量を表している
  6. 6. 𝑠-𝑡カットとフロー < 𝑠-𝑡カット・最小𝑠-𝑡カット問題> 有向グラフ𝒢(𝒱, ℰ)の頂点集合𝒱を(𝒱1, 𝒱2)に分割する事を考える 𝒱1 𝒱2 𝒱1 𝒱2 など この時,𝑠 ∈ 𝒱1 かつ 𝑡 ∈ 𝒱2 を満たすものを 𝑠-𝑡カット という
  7. 7. 任意の𝑠-𝑡カットは,𝑉のある部分集合𝑆 ⊆ 𝑉を用いると, ( 𝑠 ∪ 𝑆, 𝑡 ∪ 𝑉 ∖ 𝑆 ) と表すことができる 𝑠-𝑡カットとフロー < 𝑠-𝑡カット・最小𝑠-𝑡カット問題> また, 𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆)が次式により定義される 𝜅 𝑠−𝑡 𝑆 = 𝑒∈𝛿 𝒢 out({𝑠}∪𝑆) 𝑐 𝑒 頂点の部分集合 𝒱′ ⊆ 𝒱 とする 𝛿 𝒢 out (𝒱′) ⊆ ℰ:𝒱′の頂点から出て,𝒱の頂点に入る枝𝑒の集合 𝜅 𝑠−𝑡 𝑆 :2 𝑉 → ℝ を 𝑠-𝑡カット関数 と呼ぶ
  8. 8. 𝑠-𝑡カットとフロー < 𝑠-𝑡カット・最小𝑠-𝑡カット問題> 𝜅 𝑠−𝑡 𝑆 = 𝑒∈𝛿 𝒢 out({𝑠}∪𝑆) 𝑐 𝑒 頂点の部分集合 𝒱′ ⊆ 𝒱 とする 𝛿 𝒢 out (𝒱′) ⊆ ℰ:𝒱′の頂点から出て,𝒱の頂点に入る枝𝑒の集合 𝜅 𝑠−𝑡 𝑆 :2 𝑉 → ℝ を 𝑠-𝑡カット関数 と呼ぶ 左図の例を用いると, 𝜅 𝑠−𝑡 {} = 𝑐(𝑠,1) + 𝑐(𝑠,2) = 10 𝜅 𝑠−𝑡 {1} = 𝑐(1,3) + 𝑐(1,2) + 𝑐(𝑠,2) = 9 𝜅 𝑠−𝑡 {2} = 𝑐(𝑠,1) + 𝑐(2,3) + 𝑐(2,4) = 13 (4.1)
  9. 9. 𝑠-𝑡カットとフロー < 𝑠-𝑡カット・最小𝑠-𝑡カット問題> 𝜅 𝑠−𝑡 𝑆 = 𝑒∈𝛿 𝒢 out({𝑠}∪𝑆) 𝑐 𝑒 容量𝜅 𝑠−𝑡 𝑆 を最小にするような𝑠-𝑡カットを求める問題 <最小𝑠-𝑡カット問題> 劣モジュラ関数最小化問題の特殊ケース 最大流アルゴリズムを用いて高速で解ける (4.1)
  10. 10. 𝑠-𝑡カットとフロー <フローと最大流問題>  フロー 有向グラフ 𝒢({𝑠} ∪ {𝑡} ∪ 𝑉, ℰ) において, ソース 𝑠 からシンク 𝑡 へのモノの流れをフローと定義する 各枝𝑒 ∈ ℰにおいて, 変数 𝜉 𝑒 ∈ ℝ を 𝑒上の流れを表すと すると,変数ベクトル𝝃 = (𝜉 𝑒) 𝑒∈ℰをフローと呼ぶ
  11. 11. 𝑠-𝑡カットとフロー <フローと最大流問題>  実行可能フロー フロー 𝝃 は以下の2つの制約を満たす時,実行可能フローという  容量制約 各枝𝑒 ∈ ℰについて, 𝑒上のフローが0以上𝑐 𝑒以下 0 ≤ 𝜉 𝑒 ≤ 𝑐 𝑒 ∀𝑒 ∈ ℰ  流量保存制約 𝑠と𝑡以外の各頂点 𝑖 ∈ 𝒱 ∖ 𝑠, 𝑡 = 𝑉 において, 𝑖から出るフローと,𝑖に入るフ ローの量は等しい 𝑒∈𝛿 𝒢 in(𝑖) 𝜉 𝑒 − 𝑒∈𝛿 𝒢 out 𝑖 𝜉 𝑒 = 0 (∀𝑖 ∈ 𝒱 ∖ 𝑠, 𝑡 = 𝑉) (4.2) (4.3)
  12. 12. 𝑠-𝑡カットとフロー <フローと最大流問題> 𝝃の流量 = 𝑒∈𝛿 𝒢 out(𝑠) 𝜉 𝑒 − 𝑒∈𝛿 𝒢 in 𝑠 𝜉 𝑒  最大流問題 流量を最大にするような実行可能フロー𝝃を見つける問題  最大流 最大流問題の最適解 左図の例だと,流量は 2 + 2 = 4 (𝑠から出るフロー) = (𝑡に入るフロー)
  13. 13. 𝑠-𝑡カットとフロー <フローと最大流問題> 図4.1における最大流問題を最適化問題として定式化すると… 線形最適化問題としても解くことができるが, 最大流アルゴリズムを用いると,より高速に解くことができる
  14. 14. 𝑠-𝑡カットとフロー <フローとカットの関係>  𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆) ソース𝑠側の頂点{𝑠} ∪ 𝑆を出て,シンク𝑡側の頂点{𝑡} ∪ (𝑉 ∖ 𝑆)に 入る枝容量の和 容量制約 0 ≤ 𝜉 𝑒 ≤ 𝑐 𝑒 ∀𝑒 ∈ ℰ より,以下の関係式が成立する 実行可能フロー𝝃の流量 ≤ (𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆)) 𝜅 𝑠−𝑡 𝑆 = 𝑒∈𝛿 𝒢 out({𝑠}∪𝑆) 𝑐 𝑒 (4.5)
  15. 15. 𝑠-𝑡カットとフロー <フローとカットの関係> 実行可能フロー𝝃の流量 ≤ (𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆)) (4.5)  左辺の最大値 = 最大流の流量  右辺の最小値 = 最小𝑠-𝑡カットの容量 <最大流最小カット定理> 最大流の流量 = (最小𝑠-𝑡カットの容量) (4.6)
  16. 16. 𝑠-𝑡カットとフロー <フローとカットの関係> 最大流=6 最小𝑠-𝑡カット=6
  17. 17. 最大流アルゴリズム <最大流を求める方法①>  𝑠-𝑡パス 有向グラフ 𝒢({𝑠} ∪ {𝑡} ∪ 𝑉, ℰ) において,ソース 𝑠 からシンク 𝑡 へ の有向パスを𝑠-𝑡パスと呼ぶ.  最大流を求める方法①-反復法(うまくいくとは限らない) Step1. フロー𝝃を𝜉 𝑒 = 0 (𝑒 ∈ ℰ)に初期化する Step2. 任意の𝑠-𝑡パスを1つ選び𝑃とする Step3. 𝑠-𝑡パス𝑃に沿って, 𝛼(≥ 0)だけフローを流す 枝 𝑖, 𝑗 がパス𝑃上にある ⇒ 𝜉(𝑖,𝑗)を𝛼増やす 枝 𝑖, 𝑗 がパス𝑃上にない ⇒ 𝜉(𝑖,𝑗)はそのまま Step4. Step2に戻る ただし, 𝛼 = min{𝑐 𝑖,𝑗 − 𝜉 𝑖,𝑗 : (𝑖, 𝑗)は𝑃の枝}
  18. 18. 最大流アルゴリズム <最大流を求める方法①> min 4, 1, 6 = 1より このパスにフローを1流す min 6, 2, 2, 3 = 2より このパスにフローを2流す min 4 − 2, 6, 3 − 2 = 1より このパスにフローを1流す よって 流量 = 2 + 1 + 1 = 4 しかしこのグラフの最大流は6
  19. 19. 最大流アルゴリズム <最大流を求める方法①> 最大流=6 最小𝑠-𝑡カット=6 答え つまり,単純な反復法では,最大流が求まらないことがある
  20. 20. 最大流アルゴリズム <残余ネットワーク>  残余ネットワーク 反復法を改良するため,残余ネットワークを定義する 有向グラフ 𝒢({𝑠} ∪ {𝑡} ∪ 𝑉, ℰ) と, 𝒢上の実行可能フロー𝝃が与えられているとする “この時,容量制約を満たしつつ𝝃をどの程度変化させられるか” を表現する有向グラフ,残余ネットワーク 𝒢 𝝃 = 𝒱, ℰ 𝝃 を定義する 最大流アルゴリズムを与えるために重要な役割を果たす
  21. 21. 最大流アルゴリズム <残余ネットワーク>  残余ネットワーク 𝒢 𝝃 = 𝒱, ℰ 𝝃 における枝集合ℰ 𝝃 有向グラフ 𝒢 の枝集合ℰの各枝を置き換える事で得られる 枝集合ℰ 𝝃 の各枝の枝容量,残余容量を𝑐 𝑒 𝝃 > 0 (𝑒 ∈ ℰ 𝝃 )とする 𝒢 𝝃𝒢
  22. 22. 最大流アルゴリズム <残余ネットワーク> 左側のグラフの残余ネットワークを求めると 有向グラフとフロー 残余ネットワーク
  23. 23. 最大流アルゴリズム <最大流を求める方法②> 残余ネットワークを取り入れた反復法①の改良 残余ネットワークの枝集合ℰ 𝝃を2種類に分類する 1. 𝒢と同じ向きの枝の集合をℰfor 𝝃 とする 2. 𝒢と反対向きの枝の集合をℰrev 𝝃 とする Step1. フロー𝝃を𝜉 𝑒 = 0 (𝑒 ∈ ℰ)に初期化する Step2. 残余ネットワーク𝒢 𝝃 における,任意の𝑠-𝑡パスを1つ選び𝑃とする Step3. 𝑠-𝑡パス𝑃に沿って, 𝛼(≥ 0)だけフローを流す Step4. Step2に戻る ただし, 𝛼 = min{𝑐 𝑒 𝝃 : 𝑒は𝑃の枝} 𝑖, 𝑗 ∈ ℰfor 𝝃 かつ(𝑖, 𝑗)が𝑃上にある ⇒ 𝜉(𝑖,𝑗)を𝛼だけ増やす 𝑗, 𝑖 ∈ ℰrev 𝝃 かつ(𝑗, 𝑖)が𝑃上にある ⇒ 𝜉(𝑖,𝑗)を𝛼だけ減らす 𝑖, 𝑗 が𝑃上にない ⇒ 𝜉(𝑖,𝑗)はそのまま 増加パスと呼ぶ
  24. 24. 最大流アルゴリズム <最大流を求める方法②> Step1. フロー𝝃を𝜉 𝑒 = 0 (𝑒 ∈ ℰ)に初期化する Step2. 残余ネットワーク𝒢 𝝃 における,任意の𝑠-𝑡パスを1つ選び𝑃とする Step3. 𝑠-𝑡パス𝑃に沿って, 𝛼(≥ 0)だけフローを流す Step4. Step2に戻る ただし, 𝛼 = min{𝑐 𝑒 𝝃 : 𝑒は𝑃の枝} 𝑖, 𝑗 ∈ ℰfor 𝝃 かつ(𝑖, 𝑗)が𝑃上にある ⇒ 𝜉(𝑖,𝑗)を𝛼だけ増やす 𝑗, 𝑖 ∈ ℰrev 𝝃 かつ 𝑗, 𝑖 が𝑃上にある ⇒ 𝜉 𝑖,𝑗 を𝛼だけ減らす 𝑖, 𝑗 が𝑃上にない ⇒ 𝜉(𝑖,𝑗)はそのまま ・・・パターンA ・・・パターンB ・・・パターンC A A B A min 2,5,2,5 = 2だけ フローを増加させる
  25. 25. 最大流アルゴリズム <最大流を求める方法②> まとめると以下の通り フォード・ファルカーソンのアルゴリズムとも呼ばれる
  26. 26. 最大流アルゴリズム <増加パスアルゴリズム> min 6,2,2,3 = 2 フローに増加 min 4,1,6 = 1 フローに増加
  27. 27. 最大流アルゴリズム <増加パスアルゴリズム> min 2,5,2,5 = 2 フローに増加 min 3,6,1 = 1 フローに増加
  28. 28. 最大流アルゴリズム <増加パスアルゴリズム> 残余ネットワーク に増加パスが無 くなったので終了 流量は6となる
  29. 29. 最大流アルゴリズム <増加パスアルゴリズム> アルゴリズム4.1において 1. フロー𝝃は常に実行可能であるか? 2. 流量は反復ごとに単調増加するか? 3. 反復回数がどの程度になるのか? 4. 出力されるフロー𝝃が最大流になるのか? 1:残余ネットワークの性質上明らか 2:自明 3:増加パスの選び方を工夫することで反復回数を多項式で抑えられる 4:フロー𝝃は最大流となる 3,4について,これから説明していく
  30. 30. 最大流アルゴリズム <最大流アルゴリズムの計算量> 枝容量が正の有理数であれば, 流量の単調性から有限回の反復で停止する しかし,このままでは多項式時間アルゴリズムではない
  31. 31. 最大流アルゴリズム <最大流アルゴリズムの計算量> 増加パスが複数ある時,枝数の最も多いパスを選ぶとする 上図のようなグラフの場合,フローが 𝜖 ずつしか増えない よって,𝑠 → 1 → 2 → 𝑡の増加パスを延々と繰り返してしまう 但し,𝜖 > 0 かつ 1 𝜖 が整数 となるような十分小さい正の数
  32. 32. 最大流アルゴリズム <最大流アルゴリズムの計算量> 増加パスが複数ある時,枝数の最も少ないパスを選ぶとする 𝒢の頂点数を𝑛 + 2,枝数を𝑚としたときの 反復回数が𝒪(𝑛𝑚)となることが知られている 1回の反復回数は𝒪(𝑚)であるため 増加パスアルゴリズムの計算量は𝒪 𝑛𝑚2 となる (エドモンズ・カープのアルゴリズム)
  33. 33. 最大流アルゴリズム <最大流アルゴリズムの計算量> 他にも様々なアルゴリズムが知られている  ゴールドバーグ・タージャンのアルゴリズム(4.4節) フローが溢れることを許したプリフロー・プッシュ法と呼ばれる,増加パス アルゴリズムとは異なる枠組みを用いている 計算時間は𝒪(𝑛𝑚 log 𝑛2 𝑚 )となる  ギャロ・グリゴリアディス・タージャンのアルゴリズム 規則性を持った複数の最大流問題を1度に解くパラメトリック最大流問題 に対して応用可能 次章で重要 [G.Gallo, M.D. Grigoriadis, and R.E. Tarja 2011] 最大流問題が 𝒪(𝑛𝑚)で解けるかは長年の未解決問題だったが, 2013年の論文で肯定的に解決された [J.B. Orlin 2013]
  34. 34. 最大流アルゴリズム <増加パスアルゴリズムの妥当性> 以下のような状態の残余ネットワーク𝒢 𝝃を考える “𝝃が必ず最大流である”であることを示せばよい 実行可能フロー𝝃について,残余ネットワーク𝒢 𝝃が増加パス を持たない場合 ソース 𝑠から有向パスで到達可能な頂点集合: 𝒱1 それ以外の頂点集合:𝒱2 明らかに,𝑠 ∈ 𝒱1, 𝑡 ∉ 𝒱1, 𝑡 ∈ 𝒱2より (𝒱1, 𝒱2)は𝑠- 𝑡カットとなる. さらに, 𝑆 = 𝒱1 ∖ {𝑠} とおく 𝒱1 𝒱2 𝑆
  35. 35. 最大流アルゴリズム <増加パスアルゴリズムの妥当性> 命題4.2 実行可能フロー𝝃の流量と𝑠-𝑡カットの容量𝜅(𝑆)は等しい ソース 𝑠から有向パスで 到達可能な頂点集合: 𝒱1 それ以外の頂点集合:𝒱2 明らかに,𝑠 ∈ 𝒱1, 𝑡 ∉ 𝒱1, 𝑡 ∈ 𝒱2より(𝒱1, 𝒱2)は𝑠- 𝑡カット となる. さらに, 𝑆 = 𝒱1 ∖ {𝑠} とおく 𝒱1 𝒱2 𝑆 (残余0)⇒(流量満タン) (逆方向の枝が無い) ⇒(フロー0)
  36. 36. 最大流アルゴリズム <増加パスアルゴリズムの妥当性> 命題4.2 実行可能フロー𝝃の流量と𝑠-𝑡カットの容量𝜅(𝑆)は等しい 命題4.2と(4.5)式より,以下の事が分かる  実行可能フロー𝝃が最大流である  𝑠-𝑡カット(𝒱1, 𝒱2)が,容量最小の𝑠-𝑡カットである (4.5)式 実行可能フロー𝝃の流量 ≤ (𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆)) 実行可能フロー𝝃の流量 = (𝑠-𝑡カットの容量𝜅 𝑠−𝑡(𝑆))
  37. 37. 最大流アルゴリズム < 𝑠-𝑡カット関数最小化問題> これまでの話から, 劣モジュラ関数であるカット関数𝜅: 2 𝑉 → ℝの最小化問題は 以下のように解くことが可能である 計算量は,𝒪(𝑛𝑚log 𝑛2 𝑚 )もしくは𝒪(𝑛𝑚)となる →劣モジュラ関数の特殊ケースである𝑠-𝑡カット関数最小化 は理論的・実用的に高速で解くことが可能
  38. 38. 4.1 カット関数最小化と最大流アルゴリズム 4.2 マルコフ確率場における推論とグラフカット 4.3 グラフ表現可能な劣モジュラ関数 4.4 補足:プリフロー・プッシュ法
  39. 39. マルコフ確率場における推論 <マルコフ性> • 有限個のラベル集合ℒ ≔ 0,1, … , 𝑙 𝑙 > 0 • 𝑑個の確率変数𝑥𝑖 (𝑖 = 1, … , 𝑑) について,各確率変数𝑥𝑖はいずれかのラベルを持つ さらに,各変数𝑥𝑖に対応するような頂点集合𝒱 = {1, … , 𝑑}を持つ 無向グラフ𝒢 = (𝒱, ℰ)が与えられるとする 枝集合ℰの情報は,確率変数どうしの関係を表している マルコフ確率場において,このグラフ構造は以下のような性質を示す 𝑝 𝑥𝑖 𝑥1, … , 𝑥𝑖−1, 𝑥𝑖+1, … , 𝑥 𝑑 = 𝑝(𝑥𝑖| 𝑥𝑗: 𝑖, 𝑗 ∈ ℰ ) ただし, 𝑥𝑗: 𝑖, 𝑗 ∈ ℰ は𝑥𝑖とグラフ上で隣接する頂点の集合 𝑥𝑖以外の変数を条件とした場合の𝑥𝑖の条件付き確率が,𝑥𝑖に隣接する頂 点上の変数のみを条件とした場合の条件付き確率と等しい
  40. 40. マルコフ確率場における推論 <マルコフ性> 𝑝 𝑥𝑖 𝑥1, … , 𝑥𝑖−1, 𝑥𝑖+1, … , 𝑥 𝑑 = 𝑝(𝑥𝑖| 𝑥𝑗: 𝑖, 𝑗 ∈ ℰ ) ただし, 𝑥𝑗: 𝑖, 𝑗 ∈ ℰ は𝑥𝑖とグラフ上で隣接する頂点の集合 𝑥𝑖以外の変数を条件とした場合の𝑥𝑖の条件付き確率が, 𝑥𝑖に隣接する頂点上の変数のみを条件とした場合の条件付き確率と等しい このような性質を,マルコフ性という よって,𝒙 = 𝑥𝑖 𝑖∈𝒱として,確率分布は以下のように分解可能 𝑝 𝒙 = 𝑐∈𝒞 Θ 𝑐(𝒙 𝑐)
  41. 41. マルコフ確率場における推論 <マルコフ確率場> よって,𝒙 = 𝑥𝑖 𝑖∈𝒱として,確率分布は以下のように分解可能 𝑝 𝒙 = 𝑐∈𝒞 Θ 𝑐(𝒙 𝑐) ただし,𝒞は𝒢のクリーク(互いに全て隣接しあう頂点集合)全体からなる集合 この画素の条件付き確率は 周囲4頂点(クリーク𝑐)のみか ら求められる また,Θ 𝑐はクリーク𝑐内の頂点に対応する 変数𝒙 𝒄 = 𝑥𝑖 𝑖∈𝑐上に定義された関数 このようにマルコフ性に基づき確率 分布が分解可能なモデルのことを, マルコフ確率場と呼ぶ (以下無向グラフは,格子状のものとする)
  42. 42. マルコフ確率場における推論 <マルコフ確率場> マルコフ確率場で扱う分布は指数型分布族 次式のような関数𝐸(𝒙)を用いる 𝑝 𝒙 ∝ exp −𝐸 𝒙 𝐸 𝒙 = 𝑐∈𝒞 Θ 𝑐 𝒙 𝐸(𝒙)をエネルギー関数と呼ぶ (4.8)
  43. 43. マルコフ確率場における推論 <マルコフ確率場> 以下,無向グラフは格子状のものに限定する • 画像を扱う際には非常に自然なモデル化 • このようなマルコフ確率場を1階マルコフ確率場と呼ぶ 格子状グラフにおいては,クリークは隣接する変数ペアからなる要素 数2の集合になる 𝐸 𝒙 = 𝑐∈𝒞 Θ 𝑐 𝒙 を用いると,関数は枝ごとのペアに分解される min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9)
  44. 44. マルコフ確率場における推論 <マルコフ確率場> min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9) 𝑉 ≔ 𝒱 = 1, … , 𝑑 𝒙 = 𝑥𝑖 𝑖∈𝑉の取り得る範囲をℒ 𝑉 と表記する ただし 右辺の第1項は,変数ごとに定義される量を組みこむ事を可能に 𝜃constは定数 ※本質的には第2項のみでも1階マルコフ確率場は表現可能
  45. 45. マルコフ確率場における推論 <条件付き確率場> 条件付き確率場の最大事後確率推定を考える :直接観測されない変数(元の画素) :観測可能な変数(観測できる画素) 例:ノイズのある画像(𝒚)に対して,元の画像(𝒙)を復元する状況 各々の画素𝑖における値𝑥𝑖から,ノイズの存在する観測過程𝑝(𝑦𝑖|𝑥𝑖)を経て, 実際に観測できる画素𝑦𝑖が得られる状況をモデル化している
  46. 46. マルコフ確率場における推論 <条件付き確率場> 条件付き確率場の最大事後確率推定を考える :直接観測されない変数(元の画素) :観測可能な変数(観測できる画素) 観測されない変数(隠れ変数) 𝒙のみに注目すると,格子状グラフとなっている 𝑝 𝒙 = 𝐶 exp − 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗)同時分布𝑝(𝒙)は
  47. 47. マルコフ確率場における推論 <条件付き確率場> 𝑝 𝒙 = 𝐶 exp − 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) 𝐶 > 0は何らかの定数 よって,変数𝒚に関する観測𝒚(1) , … , 𝒚(𝑁) が得られたとき,その最大事後確率推定 は次式の通り計算される
  48. 48. マルコフ確率場における推論 <エネルギー関数最小化> min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9)
  49. 49. マルコフ確率場における推論 <エネルギー関数最小化における劣モジュラ性> min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9) エネルギー関数最小化問題(4.9)は,NP困難である事が知られている 変数の数が増えるにしたがって,可能な解の個数が指数関数的に増える 左図において,1つの頂点を画素とする画像とみなす 画素のラベルを{0,1}だと考えると,状態数は2 𝑁 となる ただし𝑁は画素数を表す しかし,𝒙が二値変数の場合,ペア項が次式の条件を満たせば(4.9)の計算は 多項式時間で可能になる 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10)
  50. 50. マルコフ確率場における推論 <エネルギー関数最小化における劣モジュラ性> 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10) では,この条件式(4.10)は「自然なもの」なのかどうか? エネルギーは小さい方が良い,つまり不等式の右辺の方が好まれる 両辺はそれぞれどんな意味を持っているのか? 左辺:隣接する画素𝑖と𝑗が 1,0 , (0,1)の場合(異なるラベル)のエネルギー 右辺:隣接する画素𝑖と𝑗が 0,0 , (1,1)の場合(同じラベル)のエネルギー 不等式の右辺の方が好まれるので… ある画素が0であるなら,その画素に隣接する画素も0となる傾向が高い つまり,「滑らかさ」を表すことができる
  51. 51. マルコフ確率場における推論 <エネルギー関数最小化における劣モジュラ性> 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10) 不等式の右辺の方が好まれるので… ある画素が0であるなら,その画素に隣接する画素も0となる傾向が高い 実際の画像を考えても… • 前景画素の隣は,前景画素である可能性が高い • 背景画素の隣は,背景画素である可能性が高い 前景(背景)画素の隣が,背景(前景)画素であって欲しいのは… • 前景と背景との境界 のみとなる.これは境界線だけの話であり画像全体における割合はごくわずか
  52. 52. マルコフ確率場における推論 <ノイズ除去への適用例> 40*40の画像に対して,エネルギー関数最小化を適用した例 • (入力画素)=(復元画素)ならば𝜃𝑖 𝑥𝑖 = 0 • (入力画素)≠(復元画素)ならば𝜃𝑖 𝑥𝑖 = 1 • 𝜃𝑖𝑗 1,0 = 𝜃𝑖𝑗 0,1 = 1 • 𝜃𝑖𝑗 1,1 = 𝜃𝑖𝑗 0,0 = 0 隣接する画素𝑖, 𝑗が異なるとした場合はエネル ギーが1増加する そうでなければ,エネルギーは増加しない min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const 条件:𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) 今回の例では,𝑉 = 1, … , 40 × 40 ℒ = {0,1}
  53. 53. マルコフ確率場における推論 <式(4.10)の劣モジュラ性> 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10) (4.10)式の劣モジュラ性を(1.1)式に基づいて確認する • (4.10)式は要素𝑖, 𝑗の2つのみなので,𝑉 = {1,2}として考えると, 部分集合𝑆 ⊆ 𝑉は, , 1 , 2 , {1,2}(= 𝑉)の4通りのみとなる • 𝜃𝑖𝑗 1,0 と𝜃𝑖𝑗 {1} は等価 𝜃𝑖𝑗 1,0 = 𝜃𝑖𝑗 {1} = 𝑓( 1 )とみなせる 𝑓 𝑆 + 𝑓 𝑇 ≥ 𝑓 𝑆 ∪ 𝑇 + 𝑓 𝑆 ∩ 𝑇 (∀𝑆, 𝑇 ⊆ 𝑉) (1.1)
  54. 54. マルコフ確率場における推論 <式(4.10)の劣モジュラ性> i 𝑇 = の時(𝑆 = { }も同様) 𝑆 ∪ 𝑇 = 𝑆, 𝑆 ∩ 𝑇 = = 𝑇となるので, 𝑓 𝑆 ∪ 𝑇 = 𝑓 𝑆 , 𝑓 𝑆 ∩ 𝑇 = 𝑓(𝑇)となり,(1.1)式を明らかに満たす ii 𝑇 = 𝑉 の時(𝑆 = 𝑉も同様) 𝑆 ∪ 𝑇 = 𝑉 = 𝑇, 𝑆 ∩ 𝑇 = 𝑆となるので, 𝑓 𝑆 ∪ 𝑇 = 𝑓 𝑇 , 𝑓 𝑆 ∩ 𝑇 = 𝑓(𝑆)となり,(1.1)式を明らかに満たす iii 𝑆 = 𝑇 の時, 𝑓 𝑆 ∪ 𝑇 = 𝑓 𝑆 , 𝑓 𝑆 ∩ 𝑇 = 𝑓(𝑆)となり,(1.1)式を明らかに満たす iv S = 1 かつ 𝑉 = {2} の時(S = 2 かつ𝑉 = {1}も同様) 𝑆 ∪ 𝑇 = 𝑉, 𝑆 ∩ 𝑇 = { }より(1.1)式は(4.10)式そのものであることが分かる 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10) 𝑓 𝑆 + 𝑓 𝑇 ≥ 𝑓 𝑆 ∪ 𝑇 + 𝑓 𝑆 ∩ 𝑇 (∀𝑆, 𝑇 ⊆ 𝑉) (1.1) エネルギー最小化の目的関数は (4.10)式が成立するときに限り,劣モジュラ性を満たす
  55. 55. グラフカット min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9)式はNP困難な問題だと知られているが,(4.10)式で表される 劣モジュラ性を満たせば,グラフカットを用いて高速に解ける (4.9) 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10) グラフカットを適用するためには, グラフの重みが全て非負である必要がある. そのため,再パラメータ化を行う
  56. 56. グラフカット <再パラメータ化> min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const 𝐸 𝒙 は𝒙の関数だが,実際は𝜃𝑖(𝑥𝑖)と𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗)の値によって決まる ありうる𝜃の組み合わせは以下の通り(𝑥𝑖 = {0,1}) (4.9) 𝜃𝑖𝑗 1,0 + 𝜃𝑖𝑗 0,1 ≥ 𝜃𝑖𝑗 0,0 + 𝜃𝑖𝑗(1,1) (4.10)
  57. 57. グラフカット <再パラメータ化> min 𝒙∈ℒ 𝑉 𝐸 𝒙 = min 𝒙∈ℒ 𝑉 𝑖∈𝑉 𝜃𝑖(𝑥𝑖) + 𝑖,𝑗 ∈ℰ 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗) + 𝜃const (4.9) この時,𝜃𝑖 𝑥𝑖 , 𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗)は以下のように書ける ただし, 𝑥𝑖 = 1 − 𝑥𝑖を表す
  58. 58. グラフカット <再パラメータ化> ただし, 𝑥𝑖 = 1 − 𝑥𝑖を表す 𝜃𝑖(𝑥𝑖)について,𝛿 ∈ ℝを用いて, 𝜃𝑖;0 ← 𝜃𝑖;0 − 𝛿, 𝜃𝑖;1 ← 𝜃𝑖;1 − 𝛿, 𝜃const ← 𝜃const − 𝛿 とすると 𝜃𝑖 𝑥𝑖 = 𝜃𝑖;1 − 𝛿 𝑥𝑖 + 𝜃𝑖;0 − 𝛿 𝑥𝑖 となるが,𝑥𝑖 = {0,1}なので結局以下の式のようになる 𝜃𝑖 0 = 𝜃𝑖;0 − 𝛿 , 𝜃𝑖 1 = 𝜃𝑖;1 − 𝛿 以上より,𝛿を用いて置き換える前後で影響は出ない事が分かる → min 𝜃𝑖;0, 𝜃𝑖;1 = 0かつmax 𝜃𝑖;0, 𝜃𝑖;1 ≥ 0となるように𝛿を調整できる
  59. 59. グラフカット <再パラメータ化> ただし, 𝑥𝑖 = 1 − 𝑥𝑖を表す また,𝜃𝑖𝑗(𝑥𝑖, 𝑥𝑗)も考慮に入れると, 𝛿 ∈ ℝを用いて, もしくは, これにより,𝜃𝑖𝑗;00, 𝜃𝑖𝑗;11, 𝜃𝑖𝑗;01, 𝜃𝑖𝑗;10を非負にすることが可能
  60. 60. グラフカット <標準形> (4.13a)になるように𝜃 を調整すれば,劣モ ジュラ性を確保できる. (4.13b)になるように𝜃 を調整すれば,優モ ジュラ性を確保できる.
  61. 61. グラフカット <標準形> ざっくりいえば, 各ステップ内において, 「𝜃の最小値を,全ての 𝜃から減算する」ことで 𝜃が負になる事を防いて いる これにより,最小値 𝜃は0になるので,標準形 を満たせる
  62. 62. グラフカット <標準形> 以上の標準化により, 非負の重みが保証されている 有向グラフ 𝒢 = ( 𝒱, ℰ)が構築で きる これによって最大流アルゴリズ ムが適用可能 きわめて高速な劣モジュラ関数 最適化が可能
  63. 63. 4.1 カット関数最小化と最大流アルゴリズム 4.2 マルコフ確率場における推論とグラフカット 4.3 グラフ表現可能な劣モジュラ関数 4.4 補足:プリフロー・プッシュ法
  64. 64. グラフ表現可能な劣モジュラ関数 有向グラフの𝑠-𝑡カット関数(①) 高速な最小化が可能な劣モジュラ関数の特殊クラス 記述力に限界があるため,実用的ではない 高速化可能で記述力が①よりもある関数を見つけよう グラフ表現可能な劣モジュラ関数
  65. 65. グラフ表現可能な劣モジュラ関数 <𝑠-𝑡カット関数の一般化> 頂点集合𝒱,枝集合ℰとする有向グラフ𝒢 = (𝒱, ℰ)を考える • 𝒱 = 𝑠 ∪ 𝑡 ∪ 𝑉 ∪ 𝑈とする.ただし,𝑉 = 1, … , 𝑛 , 𝑈 = {𝑢1, … , 𝑢 𝑘} • 各枝𝑒 ∈ ℰには,枝容量𝑐 𝑒 > 0が定められているとする 図4.14は 𝑉 = 1,2,3 , 𝑈 = {𝑢1, 𝑢2}としたときの例
  66. 66. グラフ表現可能な劣モジュラ関数 <𝑠-𝑡カット関数の一般化> これは,(4.1)式と同様の関数であり,劣モジュラ関数となる 𝜅′ 𝑆′ = 𝑒∈𝛿 𝑔 out( 𝑠 ∪𝑆′) 𝑐 𝑒 (∀𝑆′ ⊆ 𝑉 ∪ 𝑈) 𝜅 𝑠−𝑡 𝑆 = 𝑒∈𝛿 𝒢 out({𝑠}∪𝑆) 𝑐 𝑒 (4.1) ここで,𝑉 ∪ 𝑈の部分集合全体2 𝑉∪𝑈で 定義される𝑠-𝑡カット関数𝜅′: 2 𝑉∪𝑈 → ℝを次式の通り定める この時,𝑉の部分集合全体2 𝑉で定義される集合関数𝛾: 2 𝑉 → ℝを次式で定義する 𝛾 𝑆 = min 𝑊⊆𝑈 𝜅′(𝑆 ∪ 𝑊) (∀𝑆 ⊆ 𝑉) (4.14) ここで,𝑊は𝑈の部分集合全体を表す
  67. 67. グラフ表現可能な劣モジュラ関数 <𝑠-𝑡カット関数の一般化> 𝛾 𝑆 = min 𝑊⊆𝑈 𝜅′(𝑆 ∪ 𝑊) (∀𝑆 ⊆ 𝑉) (4.14) 𝑈が空集合の場合,(4.14)式は(4.1)式と一致するため, 集合関数𝛾: 2 𝑉 → ℝは𝑠-𝑡カット関数の一般化であるといえる また,集合関数𝛾: 2 𝑉 → ℝは劣モジュラ関数である[Jegelka, Lin and Blimes, 2011] (4.14)式で定義される一般化したグラフカット 関数を用いることで,かなり広いクラスの劣モ ジュラ関数を扱うことができる.
  68. 68. グラフ表現可能な劣モジュラ関数 <𝑠-𝑡カット関数の一般化> 𝛾 𝑆 = min 𝑊⊆𝑈 𝜅′(𝑆 ∪ 𝑊) (∀𝑆 ⊆ 𝑉) (4.14) 図4.14において,𝑆 = {1}としたときの関数値を調べてみると… 𝛾 {1} = min 𝑊⊆𝑈 𝜅′({1} ∪ 𝑊) ここで,𝑈 = {𝑢1, 𝑢2}より,𝑊 = { , 𝑢1 , 𝑢2 , 𝑢1, 𝑢2 }の4通り よって, 𝜅′({1} ∪ 𝑊)を4通り求めると以下の通り
  69. 69. グラフ表現可能な劣モジュラ関数 <一般化したグラフカット関数の最小化> 関数𝛾: 2 𝑉 → ℝの最小化が最大流アルゴリズムを用いて効率的に可能で あることを確かめる min 𝑆⊆𝑉 𝛾 𝑆 = min 𝑆⊆𝑉 min 𝑊⊆𝑈 𝜅′(𝑆 ∪ 𝑊) = min 𝑆′⊆𝑉∪𝑈 𝜅′(𝑆′) 上式より, 𝛾: 2 𝑉 → ℝ と 𝜅′: 2 𝑉∪𝑈 → ℝ の最小化は関係している事が分かる 𝜅′: 2 𝑉∪𝑈 → ℝ の最小化は最大流アルゴリズムを用いて可能である さらに,𝜅′の最小化元𝑆 ⊆ 𝑉 ∪ 𝑈について,𝑆 = 𝑆′ ∩ 𝑉とおくと 𝑆 ⊆ 𝑉は𝛾の最小化元であることがわかる. 𝑉 𝑈 𝑆′ = 𝑉 ∪ 𝑈𝑆 = (𝑆′ ∩ 𝑉) ⊆ 𝑉
  70. 70. グラフ表現可能な劣モジュラ関数 <一般化したグラフカット関数の最小化> よって,劣モジュラ関数𝛾: 2 𝑉 → ℝの最小化問題は以下のように解ける 𝑉 𝑈 𝒱1𝑆 = (𝒱1 ∩ 𝑉) ⊆ 𝑉
  71. 71. グラフ表現可能な劣モジュラ関数 <一般化したグラフカット関数の最小化> アルゴリズム4.5の計算量は,アルゴリズム4.2における頂点数が𝑛から 𝑛 + 𝑘に増えただけなので 𝒪 𝑛 + 𝑘 𝑚 log 𝑛+𝑘 2 𝑚 や,𝒪 𝑛 + 𝑘 𝑚 となる 𝛾の最小化問題もかなり 高速に解くことが可能
  72. 72. 4.1 カット関数最小化と最大流アルゴリズム 4.2 マルコフ確率場における推論とグラフカット 4.3 グラフ表現可能な劣モジュラ関数 4.4 補足:プリフロー・プッシュ法
  73. 73. プリフロー・プッシュ法 有向グラフの最大流計算を行う方法の1つ 計算量は,𝒪 𝑛𝑚log 𝑛2 𝑚 だが,実用上高速な実装が存在 パラメトリック最適化にも拡張できる
  74. 74. プリフロー・プッシュ法 <用語の定義> • 頂点𝑖 ∈ 𝒱における残存量𝑎(𝑖) 𝑎 𝑖 = 𝑒∈𝛿 𝒢 in(𝑖) 𝜉 𝑒 − 𝑒∈𝛿 𝒢 out 𝑖 𝜉 𝑒 ※残存量=0であれば,頂点𝑖は流量保存制約を満たす 𝑖 3/4 1/2 フロー/枝容量 頂点𝑖の残存量は 3 − 1 = 2  容量制約 各枝𝑒 ∈ ℰについて, 𝑒上のフローが0以上𝑐 𝑒以下  流量保存制約 𝑠と𝑡以外の各頂点 𝑖 ∈ 𝒱 ∖ 𝑠, 𝑡 = 𝑉 において, 𝑖から出るフローと, 𝑖に入るフローの量は等しい
  75. 75. プリフロー・プッシュ法 <用語の定義> • プリフロー フローの「流量保存制約」を緩和したもの 「入ってくる流量が余るのは大目に見た」フロー ※「出ていく流量の方が多い」のはダメ」 • 活性頂点 残存量が正である頂点(頂点𝑠, 𝑡は活性頂点にはならない) 「活性頂点が存在しない」⇔「全ての頂点は流量保存制約を満たす」 よって,プリフローは実行可能フローとなる  容量制約 各枝𝑒 ∈ ℰについて, 𝑒上のフローが0以上𝑐 𝑒以下  流量保存制約 𝑠と𝑡以外の各頂点 𝑖 ∈ 𝒱 ∖ 𝑠, 𝑡 = 𝑉 において, 𝑖から出るフローと, 𝑖に入るフローの量は等しい
  76. 76. プリフロー・プッシュ法 <用語の定義> • 距離ラベル𝑑(𝑖) プリフロー𝝃に対し,残余ネットワーク𝒢 𝝃の各頂点𝑖 ∈ 𝒱に非負整数を 対応付けるような関数 𝑑: 𝒱 → ℤ≥0 𝑑(𝑖)は以下の条件を満たす グラフ𝒢 𝝃上の各枝𝑒 ∈ ℰ 𝝃について 𝑑 𝜕+ 𝑒 ≤ 𝑑 𝜕− 𝑒 + 1 𝑑 𝑠 = 𝒱 = 𝑛 + 2 ただし,𝜕+ 𝑒, 𝜕− 𝑒は枝𝑒の始点,終点が存在する頂点を表す • 可能枝 𝑑 𝜕+ 𝑒 = 𝑑 𝜕− 𝑒 + 1 を満たす枝 (4.15)
  77. 77. プリフロー・プッシュ法 <距離ラベル𝑑(𝑖)> • (4.15)式より以下の式が常に成立 𝑑 𝑖 − 𝑑 𝑗 ≤ 𝐷 𝑖, 𝑗 𝐷(𝑖, 𝑗)は,残余ネットワーク𝒢 𝝃 上で,頂点𝑖から𝑗までの最小枝数 <直観的な説明> 頂点{1, … , 4}が次のようになっていたと考える 𝑑(𝜕+ 𝑒) ≤ 𝑑(𝜕− 𝑒) + 1 (4.15) 𝑑 𝑠 = 𝒱 = 𝑛 + 2 1 2 3 4 𝑑 1 𝑑 2 𝑑 3 𝑑 4 (4.15)式より,以下の式が常に成立 𝑑(1) ≤ 𝑑(2) + 1 𝑑(2) ≤ 𝑑(3) + 1 𝑑(3) ≤ 𝑑(4) + 1 これらの不等式を全て加算して整理すると, 𝑑 1 − 𝑑(4) ≤ 3
  78. 78. プリフロー・プッシュ法 <距離ラベル𝑑(𝑖)> • (4.15)式より以下の式が常に成立 𝑑 𝑖 − 𝑑 𝑗 ≤ 𝐷 𝑖, 𝑗 𝐷(𝑖, 𝑗)は,残余ネットワーク𝒢 𝝃 上で,頂点𝑖から𝑗までの最小枝数 𝑑 𝑖 − 𝑑 𝑗 が頂点𝑖, 𝑗間の最短距離の下限になっている • 残余ネットワーク𝒢 𝝃 において𝑠から𝑡までの有向パスが存在する時 (頂点数)= 𝑛 + 2より,𝐷 𝑠, 𝑡 ≤ 𝒱 − 1 = 𝑛 + 1が成立 →直線型のネットワーク(最悪のパターン)だとしても,辺数は最高で𝑛 + 1 よって,𝑑 𝑠 − 𝑑 𝑡 ≥ 𝑛 + 2の時,𝑠から𝑡への有向パスが存在しない 𝑑(𝜕+ 𝑒) ≤ 𝑑(𝜕− 𝑒) + 1 (4.15) 𝑑 𝑠 = 𝒱 = 𝑛 + 2 本では,𝑛 − 1になってい るが恐らく間違い
  79. 79. プリフロー・プッシュ法 <用語の定義> • プッシュ操作 活性頂点から出る可能枝に沿って,プリフローを更新する動作 • 再ラベル操作 活性頂点から出る可能枝が𝒢 𝝃が存在しない場合に,距離ラベルを 更新する動作 この2つの操作を,活性頂点がなくなるまで繰り返す
  80. 80. プリフロー・プッシュ法 <アルゴリズム> 𝝃と𝑑の初期化 活性頂点𝑖の選択 𝑖を始点とする可能枝の選択 プリフロー𝝃の更新 距離ラベル𝑑の更新 頂点𝑖から出る枝の終点の中 で,最小の𝑑に+1したもの
  81. 81. プリフロー・プッシュ法 <アルゴリズム適用例> 図4.15のグラフにプリフロー・プッシュ法を適用する
  82. 82. プリフロー・プッシュ法 <アルゴリズム適用例> 𝑎 𝑖 :残存量 〇内の数字:距離ラベル𝑑(𝑖) 活性頂点:残存量𝑎 𝑖 ≥ 0 可能枝:𝑑 𝜕+ 𝑒 = 𝑑 𝜕− 𝑒 + 1 ※𝜕+ 𝑒, 𝜕− 𝑒: 枝eの始点,終点の頂点 矢印:フロー/枝容量 初期化で,𝑠のみフロー を最大まで流しておく 活性頂点として 頂点1を選択する 頂点1から出る可能枝 が見つからない 見つからない場合は 距離ラベルを更新 頂点1から出る枝は3本 その先の距離ラベルは{4,0,0}なので,新しい距 離ラベルはmin 4,0,0 + 1 = 0 + 1 = 1となる.
  83. 83. プリフロー・プッシュ法 <アルゴリズム適用例> 𝑎 𝑖 :残存量 〇内の数字:距離ラベル𝑑(𝑖) 活性頂点:残存量𝑎 𝑖 ≥ 0 可能枝:𝑑 𝜕+ 𝑒 = 𝑑 𝜕− 𝑒 + 1 ※𝜕+ 𝑒, 𝜕− 𝑒: 枝eの始点,終点の頂点 矢印:フロー/枝容量 活性頂点として 頂点1を選択する 頂点1から出る可能枝:頂点1 →頂点2 𝑑 1 = 1, 𝑑 2 = 0より,𝑑 1 = 𝑑 2 + 1が成立 見つかったので,プリフロー𝝃を更新する 𝜉 𝑒 ← 𝜉 𝑒 + min{𝑎 𝑒 , 𝑐 𝑒 𝝃 } 今回の例では, 𝜉 𝑒 ← 0 + min 𝑎 1 = 7, 𝑐 𝑒 𝝃 = 3 = 3
  84. 84. プリフロー・プッシュ法 <アルゴリズム適用例> 𝑎 𝑖 :残存量 〇内の数字:距離ラベル𝑑(𝑖) 活性頂点:残存量𝑎 𝑖 ≥ 0 可能枝:𝑑 𝜕+ 𝑒 = 𝑑 𝜕− 𝑒 + 1 ※𝜕+ 𝑒, 𝜕− 𝑒: 枝eの始点,終点の頂点 矢印:フロー/枝容量 活性頂点が存在しない (全て残存量𝑎 𝑖 = 0) 𝝃を最大流として出力し アルゴリズムを終了する (c)~(g)は省略
  85. 85. プリフロー・プッシュ法 <アルゴリズムの妥当性> • プリフロー・プッシュ法が出力するフロー𝝃について 活性頂点が存在しないので,実行可能フローとなる (活性頂点が存在しない) ⇔(残存量が全ての頂点で0) ⇔全ての頂点で,入ってくるフローと出ていくフロー の流量が等しい ⇔流量保存制約を満たす • 初期化(ステップ0)において,𝑑は明らかに(4.15)式を満たす • 𝑑の更新時も,𝑑は必ず距離ラベルの条件を満たす 𝑑(𝜕+ 𝑒) ≤ 𝑑(𝜕− 𝑒) + 1 (4.15) 𝑑の更新時,必ず最小の𝑑(𝜕− 𝑒)が選ばれる よって,更新後は,更新した𝑒について必ず等式が 成り立ち,𝑒から出ているその他の辺についても左 辺の方が大きくなる事も無い
  86. 86. プリフロー・プッシュ法 <アルゴリズムの妥当性> • アルゴリズム終了時 𝑑 𝑠 = 𝑛 + 2は条件式より自明 𝑑 𝑡 = 0も,同様に明らか(頂点𝑠, 𝑡は活性頂点ではないため) よって,𝑑 𝑠 − 𝑑 𝑡 = 𝑛 + 2となり,残余ネットワークは𝑠から𝑡まで の有向パスを持たないという事が分かる • 以上より, 1. フロー𝝃が実行可能フローである 2. 残余ネットワークにおいて,𝑠から𝑡への有向パスを持たない という条件を両方満たすので,フロー𝝃は最大流となる ざっくり言えば,フローを流すだけ流して(有向パスを最初から 持たせない)から流量制約条件を満たすように残存量を調整していく
  87. 87. プリフロー・プッシュ法 <アルゴリズムの計算量> • 単純に実装すると𝒪 𝑛2 𝑚 • 活性頂点を選ぶとき,距離ラベルが最大のものを常に選 んでいくような実装をすると,𝒪 𝑛2 𝑚 • 動的木を用いると,𝒪 𝑛𝑚 log 𝑛2 𝑚
  88. 88. 参考文献 石川博: グラフカット, CVIMチュートリアルシリースコンピュータビジョン最先端 ガイド1, アドコムメディア株式会社, (2008)

×