劣モジュラ最適化と機械学習 2.4節
-
Upload
hakky-st -
Category
Data & Analytics
-
view
84 -
download
0
Transcript of 劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習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 つの多面体が定義される• 劣モジュラ多面体:• 基多面体:
• これらは以下の議論に重要な役割を果たす• 劣モジュラ関数最小化問題• 劣モジュラ関数の凸性
劣モジュラ多面体と基多面体
: 次元の変数ベクトル
: 各部分集合に対して、以下を対応させる。
のとき不等式 (2. 19) はとなり意味をなさないので、式 (2.19) の形の意味のある不等式はとなる
劣モジュラ多面体と基多面体• 劣モジュラ多面体:• 個の不等式をすべて満たす全体の集合として定義
• 基多面体:• でを満たす
劣モジュラ多面体と基多面体の定義
「なるほど」、と
天才はこう思う
凡人には不可能なので• 次元の値が小さい場合のとについてみてみる。
n=2 の場合の劣モジュラ多面体と基多面体• のとき:• 劣モジュラ多面体:
• 3 つの不等式によって定まる多面体• 基多面体:
• 2 つの不等式と 1 つの等式によって定まる多面体
• 以下の等式
n=2 の場合の劣モジュラ多面体と基多面体
以下を満たす場合のとを表示
有界でない有界
n=3 の場合の劣モジュラ多面体と基多面体• の時:• 劣モジュラ多面体:
• 以下の 7 つの不等式によって定まる 3 次元ベクトルの集合
• 基多面体:• かつを満たすような 3 次元ベクトル全体の集合
n=3 の場合の劣モジュラ多面体と基多面体• の時:• 劣モジュラ多面体:
• 以下の 7 つの不等式によって定まる 3 次元ベクトルの集合
• 基多面体:• かつを満たすような 3 次元ベクトル全体の集合
劣モジュラ多面体と基多面体の性質• 以下の性質がある• との有界性 · 非有界性• 基多面体が空集合とならない• 任意のに対して超平面がの支持超平面となる
• つまり超平面とが共有点をもつ• まずは、「との有界性 · 非有界性」について話す
の有界性とについて、以下が成り立つ。
これより、以下が成り立つ。
これは、基多面体が有界であることを示す
劣モジュラ多面体の非有界性• 任意のに対して、を満たす任意の をとります• このとき、より、 が成り立つことから、は非有界となります.
基多面体の端点• 端点とは• について、点が端的であるとは、かつを満たすどのような 2 点についてもがの中点として表されないこと
• 多面体が有界であるとき, の端点集合の凸包( の端点集合を含む最小の凸集合)と自身が一致する
基多面体の端点• 基多面体は劣モジュラ多面体の部分集合で、一般にとの端点集合は一致する。
基多面体端点は 2 個 基多面体は端点を個
基多面体の端点と線形順序• の個の成分番号集合を並べ替えることによってできる線形順序の選び方は通り
基多面体の端点と線形順序• の線形順序を 1 つ定めると、に対応する基多面体の端点を定めることができる
端点を求める貪欲法• 線形順序と端点はエドモンズによって 1970 年に提案された基多面体(または劣モジュラ多面体)に関する貪欲法により対応づけられる。• この後の説明1. 図形的なアルゴリズムを説明2. 等式のみを用いた同じアルゴリズムの別の表現を与える
端点を生成する貪欲法
端点を生成する貪欲法 (具体例 )
線形順序に対応するの端点の構成方法を見てみる
端点を生成する貪欲法 (具体例 )
端点を生成する貪欲法 (具体例 )
線形順序
端点を生成する貪欲法 (具体例 )
線形順序
貪欲法の式としての表現
「なるほど」、と
天才はこう思う
順当に読み進めればわかりますが、基多面体の定義にも使われている関数の出力を利用して、成分固定時のj成分の最大値を返すことに気づいていないと、理解不能です笑
関数ってなんだっけ笑
: 次元の変数ベクトル
: 各部分集合に対して、以下を対応させる。
関数ってなんだっけ笑
: 次元の変数ベクトル
: 各部分集合に対して、以下を対応させる。
関数は上限の値を表現
貪欲法の式としての表現1 〜 j 番目までの線形順序を表現
貪欲法の式としての表現
1-j-1 成分固定時の、 j 番目の成分のみについての最大値をとる
さっきアルゴリズムで示した方法を式で表現
さっきアルゴリズムで示した方法を式で表現4 1 成分目を固定した時の、
2 成分目の上限を表現: 1
3 次元も同様
が非負象限に含まれるための必要十分条件以下を全て用いると、必要十分条件は正規化された劣モジュラ関数 について が単調であること𝑓 𝑓
・ 𝐵 ( )𝑓 の任意の端点についてある 線形順序 が存在𝐿してと表されること
・ 𝐵 ( )𝑓 のすべての端点の凸包と𝐵 ( )𝑓 が一致すること
・ すべての線形順序 について 式𝐿 (2.22) が成立すること
基多面体上の線形最適化次の問題を考える
は基多面体
⟨𝒄 , 𝒙 ⟩=∑𝑖=1
𝑛
𝑐 𝑖 𝑥𝑖
多面体上で線形関数を最大化または最小化する問題は一般に線形最適化問題 or 線形計画問題という。
基多面体上の線形最適化次の問題を考える
は基多面体
⟨𝒄 , 𝒙 ⟩=∑𝑖=1
𝑛
𝑐 𝑖 𝑥𝑖
実行可能領域を有界な多面体とする線形最適化問題には端点であるような最適解、端点最適解が必ず存在
線形最適化問題に対する貪欲法
「なるほど」、と
天才はこう思う
順当に読み進めればわかりますが、基多面体の端点の出力が、線形順序に従って成分が降順になっていることに気づいていないと、理解不可能です笑
線形最適化問題に対する貪欲法
の大きい順序に線形順序を取る 端点の大きいものが優先的にの大きいものに当たる解がもとまる
基多面体と劣モジュラ関数最小化• 劣モジュラ関数最小化問題 (2.15) は基多面体上の最適化に帰着する こ とができる• この後の説明• 基多面体上のノルム最小化と劣モジュラ 関数最小化の関係について解説• 基多面体上のノルム最小化と それに基づいた劣モジュラ関数最小化アルゴリズムについて説明
ノルム最小化問題次の問題を考える ノルム
現在知られている劣モジュラ最小化の組合せ的な多項式時間アルゴリズムは、問題 (2.24) を解く こ とで の最小化
目的関数の置き換え
関係を明らかにするために目的関数の置き換えを行う
ノルム最小化問題
劣モジュラ関数最小化問題
目的関数の置き換え記号𝒙∈ℝ𝑛
𝒙−=(𝑥1− ,…,𝑥𝑛−)∈ℝ𝑛
𝑥𝑖−=𝑚𝑖𝑛 {0 ,𝑥 𝑖 }(𝑖=1 ,…,𝑛)
𝑥−(𝑆)=∑𝑖∈𝑆
𝑥 𝑖−(𝑆⊆𝑉 )
𝑥𝑖−=12 ¿
等価な表現
目的関数の置き換えについて、となることに注意すると、以下のようになる
目的関数の置き換えについて、となることに注意すると、以下のようになる
最小化すると、が最大化
目的関数の置き換え
等価!!
ノルム最小化問題
目的関数を変換!!
基多面体上のノルム最小化と劣モジュラ関数最小化の関係任意の基多面体の点と部分集合について次の不等式が成 り立つことは容易に確認ができる。
実は (2.26) を等号で成立させるようなと部分集合のペアが 存在することが知られている (証明は知らん )
等価!!
さらに等価!!
現在知られているほとんどの劣モジュラ 最小化対する組合せ的な多項式時間アルゴリズム
劣モジュラ関数最小化問題 2(.15) の最適解を求めている
基多面体上の最大化問題 2(.25) の最適化を行うことを通じて、
関係式 2(.27) に基づいて、①
②
③
等価!!
さらに等価!!①
②
③
ノルム最小化と劣モジュラ関数最小化
このノルム最小化問題と劣モジュラ関数最小化の関係を述べる前に、劣モジュラ関数の最小化元のなす構造について説明する
次の問題を考えるノルム最小化問題
の 2 つの最小化元について以下が成り立つ
上の式より
極大な最小化元 /極小な最小化元
ともの最小化元となることがわかる
上の式より
極大な最小化元 /極小な最小化元
の最小化元として、集合として極大なものと極小な ものがそれぞれ唯一存在することがわかる。
極大な最小化元 /極小な最小化元
極大な最小化元
極小な最小化元
極大な最小化元 /極小な最小化元ノルム最小化問題 (2.28) の最適解をとおき、さらに
とおく。すると、はの極小な最小化元、はの極大な最小化元となることが知られている (証明は論文を読もう )
解の一意性解に関係性がある
解の一意性解に関係性がある
解ける
ノルム最小化と劣モジュラ関数最小化つまり基多面体上のノルム最小化問題 (2.28) が解ければ劣モジュラ関数最小化問題 (2.15) が解けることになる。
多項式時間アルゴリズムと比較して高速な劣モジュラ関数最小化アルゴリズムとして知られている最小ノルム点アルゴリズムはこの性質に基づいたアルゴリズム
基多面体上のノルム最小化問題 (2.28) が解ければ劣モジュラ関数最小化問題 (2.15) が解けることになることはわかったけど、どうやって最適解を出すんだ?
最小ノルム点アルゴリズムをやります。
劣モジュラ関数最小化に対する最小ノルム点アルゴリズム
基多面体においてノルムを最小化するが求まればの最小化元はあるいはとして求まる
この事実に基づいた劣モジュラ最小化アルゴリズムが最小ノルム点アルゴリズム
ここまでの話
最小ノルム点アルゴリズムへの準備記号と言葉の定義 :次元空間の有限個の点集合
:凸包。を含む最小の凸集合
:アフィン包。を含む最小のアフィン空間
相対的内点:がアフィン部分空間の相対位相に関して内点になっている時
相対的内点の具体例
点( ) はとの両方に含まれるが、点( ) はの相対的内点であり、の相対的内点ではない
𝒳1={(1,0) ,(0,1)}⊆ℝ 2
:とを結ぶ線分:とを通る直線
: 3 点 (1,0), (0,1), (1,1) に囲まれた 3角形(の外周と内部) :全体
𝒳2={(1,0) ,(0 ,1) ,(1 ,1)} ⊆ℝ2
最小ノルム点アルゴリズム
「なるほど」、と
天才はこう思う
ぶっちゃけよくわかんないっすよね笑
具体例を見ます
考える集合関数次式で定まる 3 つの集合関数を考える
凹関数が生成する正規化された劣モジュラ関数
は、関数をモジュラ関数によって、ずらした関数なので、これも正規化された劣モジュラ関数
それぞれの端点集合基多面体の端点集合
{(8 ,4 ,0) ,(8 ,0 ,4 ) ,(4 ,8 ,0) ,(0 ,8 ,4) ,(4 ,0 ,8) ,(0 , 4 ,8)}故にが正 6角形になることもわかる
をだけ平行移動したもの基多面体の端点集合
をしたもの基多面体の端点集合
基多面体の端点集合をだけ平行移動したもの
基多面体の端点集合
基多面体の端点集合をしたもの
基多面体の端点集合
関数と基多面体に対し最小ノルム点アルゴリズムを適用
最小ノルム点アルゴリズム
最小ノルム点との最小化元{}が求まることを確認目標
とする
最小ノルム点アルゴリズム
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)
B( 𝑓 1)
𝒙∗=(4,4,4)
[初期化] (ステップ 0)
においてを最小化→
最小ノルム点アルゴリズム
[反復 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)
→
アフィン包はとを通る直線
最小ノルム点アルゴリズム
[反復 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)
凸包はとを結ぶ線分となる . においてを最小化してはの相対的内点なので、としてステップ 1へ
においてを最小化→たとえば
最小ノルム点アルゴリズム
[反復 2] ( ステップ 1)
→
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1) B( 𝑓 1)
𝒙∗=(4,4,4)
アフィン包はで定まる平面全体
最小ノルム点アルゴリズム
[反復 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角形となる。
はの相対的内点なのでとしてステップ 1へ
𝒙(3 , 1 ,2)
B( 𝑓 1)
𝒙∗=(4,4,4)
においてを最小化→たとえば
最小ノルム点アルゴリズム
[反復 3] ( ステップ 1)
→ と
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)
この実行例ではステップ 3 を実行せずに最小ノルム点と最小化元を得ていますが, これはある意味でんの更新を順調に行うことができたため
との更新の様子
最終的にが最小ノルム点を含むように更新
𝒳={(3 ,10 ,−1) ,(3 ,2 ,7)} 𝒳={(3 ,10 ,−1) ,(3 ,2 ,7) ,(7 ,6 ,−1)}
関数と基多面体に対し最小ノルム点アルゴリズムを適用
最小ノルム点アルゴリズム
最小ノルム点との最小化元{ 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)
[初期化] (ステップ 0)
においてを最小化→
最小ノルム点アルゴリズム
[反復 1] ( ステップ 1)
→
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)
B( 𝑓 2)
𝒙∗=(−2,16 ,−2)
アフィン包はとを通る直線
最小ノルム点アルゴリズム
[反復 1] (ステップ2)
凸包はとを結ぶ線分となる . においてを最小化して
よりはの相対的内点ではない
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)B( 𝑓 2)
𝒙∗=(−2,16 ,−2)
線分との共通部分でに最も近いのは、
最小ノルム点アルゴリズム
[反復 1] (ステップ3)
となるようなで極小なものはであり、 , とし、ステップ 2へ
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)B( 𝑓 2)
𝒙∗=(−2,16 ,−2)
アフィン包と凸包は共にとなる
最小ノルム点アルゴリズム
[反復 2] (ステップ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)
においてを最小化→たとえば
最小ノルム点アルゴリズム
[反復 3] ( ステップ 1)
→
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)B( 𝑓 2)
𝒙∗=(−2,16 ,−2)
アフィン包はとを通る直線
最小ノルム点アルゴリズム
[反復 3] (ステップ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)
においてを最小化→たとえば
最小ノルム点アルゴリズム
[反復 4] ( ステップ 1)
→ と
𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒙(1 ,3 ,2)
𝒙(3 , 1 ,2)𝒙(3 , 2 ,1)
𝒙(2 , 3 ,1)B( 𝑓 2)
𝒙∗=(−2,16 ,−2)
との更新の様子𝒙(2,1,3) 𝒙(1 ,2 , 3)
𝒳={(−4,24 ,−8¿} 𝒳={(−4 ,2 4 ,−8) ,(−4,16,0)}
𝒳={(−4,16,0)} 𝒳={(−4 ,16 ,0) ,(0 ,16 ,−4 )}
関数の場合と異なりの更新は単調ではない
おしまい