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

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