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.

劣モジュラ最適化と機械学習 2.4節

901 views

Published on

機械学習プロフェッショナルシリーズの、劣モジュラ最適化と機械学習 2.4節 の内容です。

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

  • Be the first to like this

劣モジュラ最適化と機械学習 2.4節

  1. 1. 劣モジュラ最適化と機械学習 2.4節 機械学習プロフェッショナルシリーズ @St_Hakky
  2. 2. 自己紹介と告知 • Twitter : @St_Hakky • ブログ:http://st-hakky.hatenablog.com/ • 関西で機械学習勉強会を実施中!! • 団体のモットー: • 圧倒的スピード感で大量の書物と論文をぶった切る • 「えっ、まだ読んでないの?」と煽り奉り、輪講会を乱立させる • 過去のイベント例 • PRML輪講会、PRML上巻/下巻一気読み • データ解析のための統計モデリング入門の輪講会 • わかりやすいパターン認識(続)の輪講会 • 参加したい方は、Facebookのグループにまずは参加を。 • URL :https://www.facebook.com/groups/1767916400127792/
  3. 3. 劣モジュラ最適化と機械学習の 2.4節をやります
  4. 4. コンテンツ • 2.4 劣モジュラ最適化と多面体 • 2.4.1 : 劣モジュラ多面体と基多面体 • 2.4.2 : 基多面体の端点 • 2.4.3 : 基多面体と劣モジュラ関数最小化
  5. 5. 劣モジュラ最適化と多面体 • 次の正規化された劣モジュラ関数を考える • 𝑓: 2 𝑣 → 𝑅 (𝑉 = {1, … , 𝑛}) • 関数𝑓によって、以下の2つの多面体が定義される • 劣モジュラ多面体:𝑃(𝑓) ⊆ ℝ 𝑛 • 基多面体:𝐵(𝑓) ⊆ ℝ 𝑛 • これらは以下の議論に重要な役割を果たす • 劣モジュラ関数最小化問題 • 劣モジュラ関数の凸性
  6. 6. 劣モジュラ多面体と基多面体 𝒙 = ( 𝑥1, . . . , 𝑥 𝑛) : 𝑛 次元の変数ベクトル 𝑆 ⊆ 𝑉 : 各部分集合に対して、以下を対応させる。 𝑆 = {}のとき不等式(2. 19) は0 ≤ 0となり意味をなさない ので、式(2.19) の形の意味のある不等式は2 𝑛 − 1となる
  7. 7. 劣モジュラ多面体と基多面体 • 劣モジュラ多面体:𝑃(𝑓) ⊆ ℝ 𝑛 • 2 𝑛 − 1個の不等式をすべて満たす𝒙 ⊆ ℝ 𝑛 全体の集合 として定義 • 基多面体:𝐵(𝑓) ⊆ ℝ 𝑛 • 𝒙 ⊆ 𝑃(𝑓)で𝑥 𝑉 = 𝑓(𝑉)を満たす
  8. 8. 劣モジュラ多面体と基多面体の定義
  9. 9. 「なるほど」、と 天才はこう思う
  10. 10. 凡人には不可能なので • 次元𝑛の値が小さい場合の𝑃(𝑓)と𝐵(𝑓)についてみ てみる。
  11. 11. n=2の場合の劣モジュラ多面体と基多面体 • 𝑉 = {1, 2}のとき: • 劣モジュラ多面体:𝑃(𝑓) ⊆ ℝ 𝑛 • 3つの不等式によって定まる多面体 • 基多面体:𝐵(𝑓) ⊆ ℝ 𝑛 • 2つの不等式と1つの等式によって定まる多面体 • 以下の等式
  12. 12. n=2の場合の劣モジュラ多面体と基多面体 以下を満たす場合の𝑃(𝑓)と𝐵(𝑓)を 表示 𝑓 𝑙 = 4 𝑓 2 = 3 𝑓 𝑙, 2 = 5 有界でない 有界
  13. 13. n=3の場合の劣モジュラ多面体と基多面体 • 𝑉 = {1、2、3}の時: • 劣モジュラ多面体:𝑃(𝑓) ⊆ ℝ 𝑛 • 以下の7つの不等式によって定まる3次元ベクトル𝑥 = (𝑥1, 𝑥2, 𝑥3)の集合 • 基多面体:𝐵(𝑓) ⊆ ℝ 𝑛 • 𝑥 = (𝑥1, 𝑥2, 𝑥3) ∈ 𝑃(𝑓)かつ𝑥1 + 𝑥2 + 𝑥3 = 𝑓({1,2,3})を満 たすような3次元ベクトル全体の集合
  14. 14. n=3の場合の劣モジュラ多面体と基多面体 • 𝑉 = {1、2、3}の時: • 劣モジュラ多面体:𝑃(𝑓) ⊆ ℝ 𝑛 • 以下の7つの不等式によって定まる3次元ベクトル𝑥 = (𝑥1, 𝑥2, 𝑥3)の集合 • 基多面体:𝐵(𝑓) ⊆ ℝ 𝑛 • 𝑥 = (𝑥1, 𝑥2, 𝑥3) ∈ 𝑃(𝑓)かつ𝑥1 + 𝑥2 + 𝑥3 = 𝑓({1,2,3})を満 たすような3次元ベクトル全体の集合
  15. 15. 劣モジュラ多面体𝑃(𝑓)と基多面体𝐵(𝑓) の性質 • 以下の性質がある • 𝐵(𝑓)と𝑃(𝑓)の有界性· 非有界性 • 基多面体𝐵(𝑓)が空集合とならない • 任意の𝑆 ∈ 2 𝑣に対して超平面𝑥(𝑆) = 𝑓(𝑆)が𝐵(𝑓)の支 持超平面となる • つまり超平面𝑥(𝑆) = 𝑓(𝑆)と𝐵(𝑓)が共有点をもつ • まずは、「𝐵(𝑓)と𝑃(𝑓)の有界性· 非有界性」について話す
  16. 16. 𝐵(𝑓)の有界性 𝑥 ∈ 𝐵(𝑓)とi ∈ 𝑉について、以下が成り立つ。 これより、以下が成り立つ。 これは、基多面体𝐵(𝑓)が有界であることを示す
  17. 17. 劣モジュラ多面体𝑃(𝑓)の非有界性 • 任意の𝑥 ∈ 𝑃(𝑓)に対して、𝒙′ ≤ 𝒙を満たす任意の 𝒙′ ∈ ℝ 𝑛 をとります • このとき、𝑥′ (𝑆) ≤ 𝑥(𝑆) ≤ 𝑓(𝑆)(∀𝑆 ⊆ 𝑉)より、𝒙′ ∈ 𝑃(𝑓)が成り立つことから、𝑃(𝑓)は非有界となりま す.
  18. 18. 基多面体𝐵(𝑓)の端点 • 端点とは • 𝑃 ⊆ ℝ 𝑛 について、点𝑥 ∈ 𝑃が端的であるとは、𝒚, 𝒛 ∈ 𝑃 かつ𝒚 ≠ 𝒛を満たすどのような2点についても𝒙が𝒚, 𝒛の 中点として表されないこと • 多面体𝑃が有界であるとき, 𝑃の端点集合の凸包 (𝑃の端点集合を含む最小の凸集合)と𝑃自身が一 致する
  19. 19. 基多面体𝐵(𝑓)の端点 • 基多面体𝐵(𝑓)は劣モジュラ多面体𝑃(𝑓)の部分集合で、一 般に𝐵(𝑓)と𝑃(𝑓)の端点集合は一致する。 基多面体𝐵(𝑓)の端点は2個 基多面体𝐵(𝑓)は端点を6個
  20. 20. 基多面体の端点と線形順序 • ℝ 𝑛の𝑛個の成分番号集合𝑉 = {1, … , 𝑛}を並べ替 えることによってできる線形順序𝐿 = (𝑖1, … , 𝑖 𝑛)の 選び方𝑛!は通り
  21. 21. 基多面体の端点と線形順序 • 𝑉の線形順序𝐿を1つ定めると、𝐿に対応する基多 面体𝐵(𝑓)の端点𝑥 𝐿 = (𝑥1 𝐿 , … , 𝑥 𝑛 𝐿) ∈ ℝ 𝑛を定めるこ とができる
  22. 22. 端点を求める貪欲法 • 線形順序𝐿と端点𝑥 𝐿はエドモンズによって1970年 に提案された基多面体(または劣モジュラ多面体) に関する貪欲法により対応づけられる。 • この後の説明 1. 図形的なアルゴリズムを説明 2. 等式のみを用いた同じアルゴリズムの別の表現を与 える
  23. 23. 端点𝑥 𝐿 ∈ ℝ 𝑛 を生成する貪欲法
  24. 24. 端点𝑥(1,2) ∈ ℝ 𝑛 を生成する貪欲法(具体例) 線形順序𝐿 = (1, 2)に対応する𝐵(𝑓)の端点𝑥(1,2) ∈ ℝ 𝑛の構 成方法を見てみる
  25. 25. 端点𝑥(1,2) ∈ ℝ 𝑛 を生成する貪欲法(具体例)
  26. 26. 端点𝑥(1,2) ∈ ℝ 𝑛 を生成する貪欲法(具体例) 線形順序𝐿 = (𝟏, 2)
  27. 27. 端点𝑥(1,2) ∈ ℝ 𝑛 を生成する貪欲法(具体例) 線形順序𝐿 = (1, 𝟐)
  28. 28. 貪欲法の式としての表現
  29. 29. 「なるほど」、と 天才はこう思う
  30. 30. 順当に読み進めればわかりますが、基多面体の定義にも 使われている関数𝒇の出力を利用して、𝟏~𝒋 − 𝟏成分固定 時のj成分の最大値を返すことに気づいていないと、理解 不能です笑
  31. 31. 関数𝑓ってなんだっけ笑 𝒙 = ( 𝑥1, . . . , 𝑥 𝑛) : 𝑛 次元の変数ベクトル 𝑆 ⊆ 𝑉 : 各部分集合に対して、以下を対応させる。
  32. 32. 関数𝑓ってなんだっけ笑 𝒙 = ( 𝑥1, . . . , 𝑥 𝑛) : 𝑛 次元の変数ベクトル 𝑆 ⊆ 𝑉 : 各部分集合に対して、以下を対応させる。 関数𝒇は上限の値を表現
  33. 33. 貪欲法の式としての表現 1〜j番目までの線形順序を表現
  34. 34. 貪欲法の式としての表現 1-j-1成分固定時の、j番目の成分のみにつ いての最大値をとる
  35. 35. さっきアルゴリズムで示した方法を式で表現
  36. 36. さっきアルゴリズムで示した方法を式で表現 4 1成分目を固定した時の、2成 分目の上限を表現:1
  37. 37. 3次元も同様
  38. 38. 𝐵(𝑓)が非負象限に含まれるための必要 十分条件 以下を全て用いると、必要十分条件は正規化された劣モ ジュラ関数𝑓について𝑓が単調であること ・ 𝐵(𝑓)の任意の端点𝒙 𝑒𝑥についてある 線形順序𝐿が存在 して𝒙 𝑒𝑥 = 𝒙 𝐿 と表されること ・ 𝐵(𝑓)のすべての端点の凸包と𝐵(𝑓)が一致すること ・ すべての線形順序𝐿について 式(2.22)が成立すること
  39. 39. 基多面体上の線形最適化 次の問題を考える 𝒙は基多面体 𝒄, 𝒙 = 𝑖=1 𝑛 𝑐𝑖 𝑥𝑖 多面体上で線形関数を最大化または最小化する問題は一 般に線形最適化問題 or 線形計画問題という。
  40. 40. 基多面体上の線形最適化 次の問題を考える 𝒙は基多面体 𝒄, 𝒙 = 𝑖=1 𝑛 𝑐𝑖 𝑥𝑖 実行可能領域を有界な多面体とする線形最適化問題には 端点であるような最適解、端点最適解が必ず存在
  41. 41. 線形最適化問題に対する貪欲法
  42. 42. 「なるほど」、と 天才はこう思う
  43. 43. 順当に読み進めればわかりますが、基多面体の端点の出 力が、線形順序に従って成分が降順になっていることに気 づいていないと、理解不可能です笑
  44. 44. 線形最適化問題に対する貪欲法 𝑐の大きい順序に 線形順序を取る 端点の大きいものが優先的 に𝑐の大きいものに当たる 解がもとまる
  45. 45. 基多面体と劣モジュラ関数最小化 • 劣モジュラ関数最小化問題(2.15)は基多面体𝐵(𝑓) 上の最適化に帰着する こ とができる • この後の説明 • 基多面体上の𝑙1ノルム最小化と劣モジュラ 関数最小化 の関係について解説 • 基多面体上の𝑙2ノルム最小化と それに基づいた劣モ ジュラ関数最小化アルゴリズムについて説明
  46. 46. 𝑙1ノルム最小化問題 次の問題を考える 𝑙1ノルム 現在知られている劣モジュラ最小化の組合せ的な多項式時 間アルゴリズムは、問題(2.24)を解く こ とで 𝑓の最小化
  47. 47. 目的関数の置き換え 関係を明らかにするために 目的関数の置き換えを行う 𝑙1ノルム最小化問題 劣モジュラ関数最小化問題
  48. 48. 目的関数の置き換え 記号 𝒙 ∈ ℝ 𝑛 𝒙− = (𝑥1 − , … , 𝑥 𝑛 −) ∈ ℝ 𝑛 𝑥𝑖 − = 𝑚𝑖𝑛{0, 𝑥𝑖}(𝑖 = 1, … , 𝑛) 𝑥− (𝑆) = 𝑖∈𝑆 𝑥𝑖 − (𝑆 ⊆ 𝑉) 𝑥𝑖 − = 1 2 (𝑥𝑖 − |𝑥𝑖|) (𝑖 = 1, … , 𝑛) 等価な表現
  49. 49. 目的関数の置き換え 𝒙 ∈ 𝐵(𝑓)について、𝑥(𝑉) = 𝑓(𝑉)となることに注意すると、 以下のようになる
  50. 50. 目的関数の置き換え 𝒙 ∈ 𝐵(𝑓)について、𝑥(𝑉) = 𝑓(𝑉)となることに注意すると、 以下のようになる 最小化すると、 𝑥− (𝑉)が最大化
  51. 51. 目的関数の置き換え 等価!! 𝑙1ノルム最小化問題 目的関数を変換!!
  52. 52. 基多面体上の𝑙1ノルム最小化と劣モジュラ関数最小 化の関係 任意の基多面体の点𝑥 ∈ 𝐵(𝑓)と部分集合𝑆 ⊆ 𝑉について次 の不等式が成 り立つことは容易に確認ができる。 実は(2.26)を等号で成立させるような𝑥 ∈ 𝐵(𝑓)と部分集合 𝑆 ⊆ 𝑉のペアが 存在することが知られている(証明は知らん)
  53. 53. 等価!! さらに等価!! 劣モジュラ関数最小化問題 目的関数を変換!! � ノルム最小化問題
  54. 54. 現在知られているほとんどの劣モジュラ 最小化対 する組合せ的な多項式時間アルゴリズム 劣モジュラ関数最小化問題2(.15)の最適解を求めて いる 基多面体上の最大化問題 2(.25)の最適化を行うこ とを通じて、 関係式2(.27)に基づいて、① ② ③
  55. 55. 等価!! さらに等価!! 劣モジュラ関数最小化問題 目的関数を変換!! � ノルム最小化問題 ① ② ③
  56. 56. 𝑙2ノルム最小化と劣モジュラ関数最小化 この𝑙2ノルム最小化問題と劣モジュラ関数最小化の関係を 述べる前に、劣モジュラ関数𝑓の最小化元のなす構造につい て説明する 次の問題を考える 𝑙2ノルム最小化問題
  57. 57. 𝑓の2つの最小化元𝑆1, 𝑆2 𝑆1, 𝑆2について以下が成り立つ 上の式より
  58. 58. 極大な最小化元/極小な最小化元 𝑆1 ∪ 𝑆2と𝑆1 ∩ 𝑆2も𝑓の最小化元となることがわかる 上の式より
  59. 59. 極大な最小化元/極小な最小化元 𝑓 の最小化元として、集合として極大なものと極小な ものが それぞれ唯一存在することがわかる。 � ∪� と� ∩� も� の最小化元となることがわかる 上の式より
  60. 60. 極大な最小化元/極小な最小化元 � の最小化元として集合として極大なものと極小な ものがそ れぞれ唯一存在することがわかる。 ! " ∪ ! $ ! " ∩ ! $ & 極大な最小化元 極小な最小化元
  61. 61. 極大な最小化元/極小な最小化元 � ノルム最小化問題 𝑙2ノルム最小化問題(2.28)の最適解を𝒙∗ = (𝑥1 ∗ , … , 𝑥 𝑛 ∗ ) とおき、さらに とおく。すると、𝑺−は𝒇の極小な最小化元、𝑺 𝟎 ∪ 𝑺−は𝒇の極大 な最小化元となることが知られている(証明は論文を読もう)
  62. 62. ! ! " ∪ ! $ ! " ∩ ! $ & 極大な最小化元 極小な最小化元 � ノルム最小化問題 � ノルム最小化問題(2.28)の最適解を� ∗ = (� ∗,…, � ∗) とおき、さらに とおく。すると、� は� の極小な最小化元、� � ∪� は� の極大 な最小化元となることが知られている(証明は論文を読もう) 劣モジュラ関数最小化問題 解の一意性 解に関係性がある
  63. 63. ! ! " ∪ ! $ ! " ∩ ! $ & 極大な最小化元 極小な最小化元 � ノルム最小化問題 � ノルム最小化問題(2.28)の最適解を� ∗ = (� ∗,…, � ∗) とおき、さらに とおく。すると、� は� の極小な最小化元、� � ∪� は� の極大 な最小化元となることが知られている(証明は論文を読もう) 劣モジュラ関数最小化問題 解の一意性 解に関係性がある 解 け る
  64. 64. 𝑙2ノルム最小化と劣モジュラ関数最小化 つまり基多面体上の𝑙2ノルム最小化問題(2.28)が解ければ 劣モジュラ関数最小化問題(2.15)が解けることになる。 多項式時間アルゴリズムと比較して高速な劣モジュラ関数最 小化アルゴリズムとして知られている最小ノルム点アルゴリ ズムはこの性質に基づいたアルゴリズム � ノルム最小化問題 劣モジュラ関数最小化問題
  65. 65. 基多面体上の𝑙2ノルム最小化問題(2.28)が解ければ劣モ ジュラ関数最小化問題(2.15)が解けることになることはわ かったけど、どうやって最適解を出すんだ?
  66. 66. 最小ノルム点アルゴリズムをやります。
  67. 67. 劣モジュラ関数最小化に対する最小ノルム点 アルゴリズム 基多面体𝐵(𝑓)において𝑙2ノルムを最小化する𝒙∗ が 求まれば𝑓の最小化元は𝑆∗ ∶= {𝑖 ∈ 𝑉: 𝑥𝑖 ∗ < 0}あ るいは𝑆∗ ∶= {𝑖 ∈ 𝑉: 𝑥𝑖 ∗ ≤ 0}として求まる この事実に基づいた劣モジュラ最小化アルゴリズムが 最小ノルム点アルゴリズム ここまでの話
  68. 68. 最小ノルム点アルゴリズムへの準備 記号と言葉の定義 𝒳 = {𝒙1, … , 𝒙 𝑚} ⊆ ℝ 𝑛:𝑛次元空間の有限個の点集合 𝑐𝑜𝑛𝑣(𝒳) ⊆ ℝ 𝑛:凸包。𝒳を含む最小の凸集合 𝑎𝑓𝑓(𝒳) ⊆ ℝ 𝑛 :アフィン包。𝒳を含む最小のアフィン空間 相対的内点:𝑥 ∈ 𝑐𝑜𝑛𝑣(𝒳)がアフィン部分空間𝑎𝑓𝑓(𝒳) の 相対位相に関して内点になっている時
  69. 69. 相対的内点の具体例 点( 1 2 , 1 2 )は𝑐𝑜𝑛𝑣(𝒳1)と𝑐𝑜𝑛𝑣(𝒳2)の両方に含まれるが、点( 1 2 , 1 2 )は𝑐𝑜𝑛𝑣(𝒳1)の相対 的内点であり、𝑐𝑜𝑛𝑣(𝒳2)の相対的内点ではない 𝒳1 = {(1,0), (0,1)} ⊆ ℝ2 𝑐𝑜𝑛𝑣(𝒳1):(1,0)と(0,1)を結ぶ線分 𝑎𝑓𝑓(𝒳1):(1,0)と(0,1)を通る直線 𝑐𝑜𝑛𝑣(𝒳2):3点(1,0), (0,1), (1,1)に囲まれた3角形(の外周と内 部) 𝑎𝑓𝑓(𝒳2) :ℝ2 全体 𝒳2 = {(1,0), (0, 1), (1, 1)} ⊆ ℝ2
  70. 70. 最小ノルム点アルゴリズム
  71. 71. 「なるほど」、と 天才はこう思う
  72. 72. ぶっちゃけよくわかんないっすよね笑
  73. 73. 具体例を見ます
  74. 74. 考える集合関数 次式で定まる3つの集合関数𝑓0, 𝑓1, 𝑓2 ∶ 2{1,2,3} → ℝを考える 凹関数が生成する正規化された劣モジュラ関数 𝑓1, 𝑓2は、関数𝑓0をモジュラ関数によって、ずらした関数なので、 これも正規化された劣モジュラ関数
  75. 75. それぞれの端点集合 基多面体B(𝑓0)の端点集合 {(8, 4, 0), (8, 0, 4), (4, 8, 0), (0, 8, 4), (4, 0, 8), (0, 4, 8)} 故にB(𝑓0)が正6角形になることもわかる B(𝑓0)を(−1, 2, −1)だけ平行移動したもの 基多面体B(𝑓1)の端点集合 B(𝑓0)を(ー8, 16, −8)だけ平行移動したもの 基多面体B(𝑓2)の端点集合
  76. 76. 基多面体B(𝑓1)の端点集合 B(𝑓0)を(−1, 2, −1)だけ平行移動したもの 基多面体B(𝑓1)の端点集合
  77. 77. 基多面体B(𝑓2)の端点集合 B(𝑓0)を(ー8, 16, −8)だけ平行移動したもの 基多面体B(𝑓2)の端点集合
  78. 78. 関数𝑓1と基多面体B(𝑓1)に対し最小ノルム点アルゴ リズムを適用 最小ノルム点アルゴリズム 最小ノルム点(4,4,4)と𝑓1の最小化元{}が求まることを確認 目標
  79. 79. 𝒙0 = 𝒙(2,1,3) = (3, 10, −1)とする 𝒳: = 𝒙0 = 3, 10, −1 , 𝒙: = 𝒙0 = (3, 10, −1) 最小ノルム点アルゴリズム 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓1) 𝒙∗ = (4,4,4) [初期化] (ステップ0)
  80. 80. B(𝑓1)において⟨ 𝒙, 𝒙⟩=⟨ 3,10, −1, 𝒙 ⟩を最小化 →𝒙 = 𝒙(3,1,2) = 3, 2, 7 . 最小ノルム点アルゴリズム [反復1] (ステップ1) 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓1) 𝒙∗ = (4,4,4) 𝒙, 𝒙 − 𝒙 = 3,10, −1 , 0, −8, 8 < 0 →𝒳: = 𝒳 ∪ 𝒙 = {(3,10, −1), (3,2,7)}.
  81. 81. アフィン包𝑎𝑓𝑓(𝒳)は(3,10, −1)と(3,2, 7)を通る直線 最小ノルム点アルゴリズム [反復1] (ステップ2) 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓1) 𝒙∗ = (4,4,4) 凸包𝑐𝑜𝑛𝑣(𝒳) は(3,10, −1)と(3,2, 7)を結ぶ線分となる. 𝑎𝑓𝑓(𝒳)において⟨𝒚, 𝒚⟩を最小化して𝒚 = (3, 9 2 , 9 2 ) 𝒚は𝑐𝑜𝑛𝑣(𝒳)の相対的内点なので、 𝒙: = 𝒚 = (3, 9 2 , 9 2 ) としてステップ1へ
  82. 82. B(𝑓1)において⟨ 𝒙, 𝒙⟩=⟨(3, 9 2 , 9 2 ), 𝒙⟩を最小化 →たとえば𝒙 = 𝑥(1,2,3) = 7, 6, −1 最小ノルム点アルゴリズム [反復2] (ステップ1) 𝒙, 𝒙 − 𝒙 = 3, 9 2 , 9 2 , 4, 3 2 , − 11 2 <0 →𝒳: = 𝒳 ∪ 𝒙 = {(3,10, −1), (3,2,7), (7,6, −1)} 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓1) 𝒙∗ = (4,4,4)
  83. 83. アフィン包𝑎𝑓𝑓(𝒳)は𝑥1 + 𝑥2 + 𝑥3 = 12で定まる平面全体 最小ノルム点アルゴリズム [反復2] (ステップ2) 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓1) 𝒙∗ = (4,4,4) 凸包𝑐𝑜𝑛𝑣(𝒳)は3 点(3,10, −1), (3,2,7), (7,6, −1)に囲まれ た3角形となる。𝑎𝑓𝑓(𝒳)において⟨𝒚, 𝒚⟩を最小化して𝒚 = (4,4,4) 𝒚は𝑐𝑜𝑛𝑣(𝒳)の相対的内点なので 𝒙: = 𝒚 = (4, 4, 4) としてステップ1へ
  84. 84. 𝒙(3,1,2) B(𝑓1) 𝒙∗ = (4,4,4) B(𝑓1)において⟨ 𝒙, 𝒙⟩=⟨(4,4,4), 𝒙⟩を最小化 →たとえば𝒙 = 𝑥(1,2,3) = 7, 6, −1 最小ノルム点アルゴリズム [反復3] (ステップ1) 𝒙, 𝒙 − 𝒙 = 4,4,4 , 3,2, −5 = 0 →𝒙∗ = 𝒙 = (4,4,4) と 𝑆∗ ≔ 𝑖 ∈ 𝑉: 𝑥𝑖 ∗ < 0 = {} 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,2,1) 𝒙(2,3,1)
  85. 85. この実行例ではステップ3を実行せずに最小ノルム点と最小化元を得ていますが, これはある意味でんの更新を順調に行うことができたため 𝒳と𝑐𝑜𝑛𝑣(𝒳)の更新の様子 𝒳 = {(3, 10, −1)} 最終的に𝑐𝑜𝑛𝑣(𝒳)が最小ノルム点を含むように更新 𝒳 = {(3, 10, −1), (3, 2, 7)} 𝒳 = {(3, 10, −1), (3, 2, 7), (7, 6, −1)}
  86. 86. 関数𝑓2と基多面体B(𝑓2)に対し最小ノルム点アルゴ リズムを適用 最小ノルム点アルゴリズム 最小ノルム点(−2,16, −2)と𝑓1の最小化元{1,3}が求まること を確認 目標
  87. 87. 𝒙0 = 𝒙(2,1,3) = (−4, 24, −8)とする 𝒳: = 𝒙0 = −4, 24, −8 , 𝒙: = 𝒙0 = (−4, 24, −8) 最小ノルム点アルゴリズム 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2) [初期化] (ステップ0)
  88. 88. B(𝑓2)において⟨ 𝒙, 𝒙⟩=⟨ −4,24, −8, 𝒙 ⟩を最小化 →𝒙 = 𝒙(3,1,2) = −4, 16, 0 . 最小ノルム点アルゴリズム [反復1] (ステップ1) 𝒙, 𝒙 − 𝒙 = −4,24, −8 , 0, −8, 8 < 0 →𝒳: = 𝒳 ∪ 𝒙 = {(−4,24, −8), (−4,16,0)}. 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  89. 89. アフィン包𝑎𝑓𝑓(𝒳)は(−4,24, −8)と(−4,16,0)を通る直線 最小ノルム点アルゴリズム [反復1] (ステップ2) 凸包𝑐𝑜𝑛𝑣(𝒳) は(−4,24, −8)と(−4,16,0)を結ぶ線分とな る. 𝑎𝑓𝑓(𝒳)において⟨𝒚, 𝒚⟩を最小化して𝒚 = (−4,8, 8) 𝒚 ∉ 𝑐𝑜𝑛𝑣(𝒳)より𝒚は𝑐𝑜𝑛𝑣(𝒳)の相対的内点ではない 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  90. 90. 線分 𝒙 , 𝒚 = [ −4,24, −8 , (−4,8, 8)]と𝑐𝑜𝑛𝑣(𝒳) の共 通部分で𝒚に最も近いのは、𝒙′ = (−4, 16, 0) 最小ノルム点アルゴリズム [反復1] (ステップ3) 𝒙′ ∈ 𝑐𝑜𝑛𝑣(𝒳′) となるような𝒳′ ⊆ 𝒳で極小なものは𝒳′ = {(−4, 16, 0)}であり、𝒳: = 𝒳′ = {(−4, 16, 0)}, 𝒙: = 𝒙′ = (−4, 16, 0)とし、ステップ2へ 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  91. 91. アフィン包𝑎𝑓𝑓(𝒳)と凸包𝑐𝑜𝑛𝑣(𝒳)は共に(−4,16,0)とな る 最小ノルム点アルゴリズム [反復2] (ステップ2) 𝑎𝑓𝑓(𝒳)において⟨𝒚, 𝒚⟩を最小化して𝒚 = (−4,16, 0) 𝒚は𝑐𝑜𝑛𝑣(𝒳)の相対的内点なので 𝒙: = 𝒚 = (−4,16, 0) としてステップ1へ 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  92. 92. B(𝑓2)において⟨ 𝒙, 𝒙⟩=⟨(−4,16,0), 𝒙⟩を最小化 →たとえば𝒙 = 𝑥(1,2,3) = 0, 16, −4 最小ノルム点アルゴリズム [反復3] (ステップ1) 𝒙, 𝒙 − 𝒙 = −4,16,0 , 4,0, −4 <0 →𝒳: = 𝒳 ∪ 𝒙 = {(−4,16,0), (0, 16, −4)} 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  93. 93. アフィン包𝑎𝑓𝑓(𝒳)は(−4,16, 0)と(0,16, −4)を通る直線 最小ノルム点アルゴリズム [反復3] (ステップ2) 凸包𝑐𝑜𝑛𝑣(𝒳) は(−4,16, 0)と(0,16, −4)を結ぶ線分となる. 𝑎𝑓𝑓(𝒳)において⟨𝒚, 𝒚⟩を最小化して𝒚 = (−2,16, −2) 𝒚は𝑐𝑜𝑛𝑣(𝒳)の相対的内点なので 𝒙: = 𝒚 = (−2,16, −2) としてステップ1へ 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  94. 94. B(𝑓2)において⟨ 𝒙, 𝒙⟩=⟨(−2,16, −2), 𝒙⟩を最小化 →たとえば𝒙 = 𝑥(1,2,3) = 0, 16, −4 最小ノルム点アルゴリズム [反復4] (ステップ1) 𝒙, 𝒙 − 𝒙 = −2,16, −2 , 2,0, −2 = 0 →𝒙∗ = 𝒙 = (−2,16, −2) と 𝑆∗ ≔ 𝑖 ∈ 𝑉: 𝑥𝑖 ∗ < 0 = {1,3} 𝒙(2,1,3) 𝒙(1,2,3) 𝒙(1,3,2) 𝒙(3,1,2) 𝒙(3,2,1) 𝒙(2,3,1) B(𝑓2) 𝒙∗ = (−2,16, −2)
  95. 95. 𝒳と𝑐𝑜𝑛𝑣(𝒳)の更新の様子 𝒙 𝒙 𝒳 = {( − 4,24, −8)} 𝒳 = {(−4,24, −8), (−4,16,0)} 𝒳 = {(−4,16,0)} 𝒳 = {(−4,16,0), (0,16, −4)} 関数𝑓1の場合と異なり𝒳の更新は単調ではない
  96. 96. おしまい

×