ダウンロード - Researchmap

Greed is Good:
劣モジュラ関数最大化と
その発展
𠮷田 悠一
国立情報学研究所
6月11日 @ PFIセミナー
自己紹介
𠮷田 悠一
国立情報学研究所 情報学プリンシプル研究系
専門
理論的・実用的に速いアルゴリズムを作ること
(理論の道具を使って実用分野を荒らす)
准教授
今日のメッセージ
貪欲にやれば大抵うまくいく
例:アンテナ配置問題
目標:B個のアンテナを選んで被覆される人の数を最大化
アンテナ配置問題に対する貪欲法
貪欲法: 「被覆できる人数が一番増えるアンテナを選ぶ」
ことをB回繰り返す。
例: B=2
貪欲法の性能
小さい実データでの実験:
(被覆人数ではなくアンテナから得られる情報を最大化)
貪欲法の近似保証
貪欲法は1-1/e近似を与える
=最適に配置した場合と比べて
1-1/e ≈ 63%の人を被覆できる
証明のイメージ:最適値との差が毎回1/B割合縮まる
被覆
人数
最適値
1/e
1
1/B
1
1/B
0
1
2
3
…
B
センサー個数
kステップ後の
最適値との差:
(1-1/B)B ≤ 1/e割合
なぜ貪欲法が上手くいくか?
アンテナ配置問題には
単調劣モジュラ性
があるから
劣モジュラ関数
V: n個の要素集合
集合関数f: 2V → ℝ
fが劣モジュラ: 任意のS, T ⊆ Vに対して
f(S) + f(T) ≥ f(S ∪ T) + f(S ∩ T)
V
S∪T
S
≥
f(S)
T
S∩T
劣モジュラ関数の等価な定義
fが劣モジュラ ⇔ 任意のS ⊆ T ⊆ V, v ∈ V \ Tに対して
f(S + v) – f(S) ≥ f(T + v) – f(T)
(限界効用逓減性)
S+v
S
ー
v
v
T+v
≥
T
ー
v
v
アンテナ配置問題の単調性
• V = アンテナの集合
• f(S) =アンテナ集合Sが被覆する人数
アンテナを配置すればするほど被覆できる人数が増える
→単調性を満たす
アンテナ配置問題の劣モジュラ性
• V = アンテナの集合
• f(S) =アンテナ集合Sが被覆する人数
新たにアンテナを配置するときに被覆できる人数は、既に
選んだアンテナが少なければ少ないほど多い。
→ 限界効用逓減性=劣モジュラ性を満たす
劣モジュラ関数最大化
入力:単調劣モジュラ関数f: 2V → ℝ, 整数B
目的:大きさBの集合S ⊆ Vで、f(S)を最大にするものを計算
貪欲法: 「現段階で値が最も上がる要素を集合に加える」
ことをB回繰り返す。
貪欲法は1-1/e近似を与える
=最適な集合S*と比べて
1-1/e ≈ 63%の値を達成できる
※1-1/e+ε近似はNP困難
劣モジュラ関数に関する最適化問題
劣モジュラ関数最小化
• 強多項式時間 [Schrijver’00, Iwata et al.’01]
• 最小ノルム点アルゴリズム: 実用的に高速, 擬多項式時間
[Fujishige’80, Chakrabarty et al.’14]
劣モジュラ関数最大化
機械学習分野に多数の応用
• バイラル・マーケティング
• センサー配置
• 文書要約
• 広告割当
• 素性選択
これからの内容
• 整数格子上の
劣
モジュラ関数
• k劣モジュラ関数
整数格子上の
劣モジュラ関数最大化
アンテナ配置問題の一般化
先ほどはアンテナを「使う」と「使わない」の二択だった
もう少し細やかな配置は出来ないか?
• アンテナに強度(0〜100)を許す
• 強度の強いアンテナに囲まれた人は満足度が高い
強度付きアンテナ配置問題
60
100
60
60
60
人の満足度:その人を被覆するアンテナ強度の和
(ただし100を越えない)
全体の満足度:各人の満足度の和
強度付きアンテナ配置問題
人の満足度:その人を被覆するアンテナ強度の和
(ただし100を越えない)
全体の満足度:各人の満足度の和
• 三つのアンテナの強度100 → 全体の満足度 = 500
• 全アンテナの強度50 → 全体の満足度 = 600
強度付きアンテナ配置問題
目標:アンテナ強度の和 ≤ Bという制約のもとで全体の
満足度を最大化
(言い換え)
目標:Σv xv ≤ Bという制約のもとで、f(x)を最大化
f(x) = アンテナvを強度xvで使う時の全体の満足度
強度付きアンテナ配置問題に対する貪欲法
貪欲法: 「全体の満足度が最も上がる様にアンテナの強度
を1ずつ上げる」ことをB回繰り返す。
貪欲法は1-1/e近似を与える
なぜ貪欲法は上手く行くか?
強度付きアンテナ配置問題には
単調性&限界効用逓減制
があるから
整数格子上の劣モジュラ関数
fは単調かつ限界効用逓減性を持つ
単調: ∀x ≤ y ∈ ℤV, f(x) ≤ f(y)
v2
y
x
0
v1
整数格子上の劣モジュラ関数
fは単調かつ限界効用逓減性を持つ
限界効用逓減性: ∀x ≤ y ∈ ℤV, v ∈ V,
f(x + χv) – f(x) ≥ f(y + χv) – f(y)
(χv: v方向の単位ベクトル)
v2
y
x
0
y+χv1
x+χv1
v1
実は整数格子では
劣モジュラ
≠限界効用逓減性
貪欲法の問題点
強度の種類を細かくするとBは非常に大きくなりうる
• 強度の種類が100 → B ≈ 100n
• 強度の種類が10000 → B ≈ 10000n
貪欲法の計算時間はÕ(Bn)
遅すぎる!
ほぼ線形時間アルゴリズム
[相馬-𠮷田’15a]
(1 − 1/e − ε) 近似解を求めるほぼ線形時間アルゴ
リズム
正確な計算時間O(n/ε ∙ log B/ε)時間で得る
アイデ
ア: 閾値を徐々に下げながら貪欲法 [Badanidiyuru-Vondrák’14]
• 満足度の上がり方が閾値以上なら一気に強度を上げる
• どこまで上げるかは限界効用逓減性を利用した二分探索
(関連問題の)実験の設定 [相馬-𠮷田’15b]
Σxv ≤ Bのもとでf(x)を最大化 ⇔ f(x) ≥ αのもとで Σxvを最小化
Battle of the Water Sensor Networks (BWSN)を用いて実験
• 水の汚染をセンサーで検出
• 汚染を発見するまでにかかる
時間を最小化
• センサー強度
=汚染を検出する確率に対応
http://www.water-simulation.com/wsp/blog/page/9/
実験結果
貪欲法は解の質が良い
改善手法は単純な貪欲法より
数十倍高速化
k劣モジュラ関数最大化
アンテナ配置問題の一般化
アンテナを「使う」と「使わない」の二択
アンテナに種類を許すことは出来ないか?
– 強度は強いが貴重なアンテナ
– 特定の環境に強いアンテナ
今回はi種目のアンテナはi種目の人に届く設定を考える
k種アンテナ配置問題
アンテナの種類={緑, 黄, 赤}
緑色のアンテナを配置 → 範囲内の緑の人を被覆
一つのアンテナには一種類の色しか割り当てられない
k種アンテナ配置問題
目標:各アンテナの色を選んで被覆される人の数を最大化
貪欲法: 「被覆できる人数が一番増える様にアンテナに
色を塗る」ことを、全てのアンテナに色を塗り
終わるまで繰り返す
貪欲法の近似保証
• 貪欲法は1/2近似解を与える
• (k+1)/2k+ε近似はNP困難
[岩田-谷川-𠮷田’15]
なぜ貪欲法は上手く行くか?
k種アンテナ配置問題には
単調k劣モジュラ性
があるから
k劣モジュラ性
単調k劣モジュラ ⇔ 単調 & 象限劣モジュラ
象限劣モジュラ:
各アンテナの使える色を一つに限定することで得られる
関数f: 2V → ℝが劣モジュラ
使わない or 黄色
使わない or 緑色
使わない or 赤色
サイズ制約付きk劣モジュラ関数最大化
制約①:アンテナを計B個まで使える
制約②:i種目のアンテナはBi個まで使える
[大坂-𠮷田’15]
• 貪欲法は制約①に対して1/2近似解を与える
• 貪欲法は制約②に対して1/3近似解を与える
(k+1)/2k+ε近似はNP困難 [岩田-谷川-𠮷田’15]
自明な貪欲法はO(knB)時間かかって遅すぎる
• ①に対するO(kn log2B)時間アルゴリズム
• ②に対するO(k2nlog2B)時間アルゴリズム
実験の設定
Intel Lab Dataを用いて実験
部屋の54カ所に置かれたセンサーから得られた湿度、温
度、光量のデータ
湿度センサー、温度センサー、光量センサーをそれぞれ1
個〜18個置いた時に得られる情報量を最大化
http://db.csail.mit.edu/labdata/labdata.html
実験結果
貪欲法は一種のセンサー
のみを使う手法よりも
性能が高い
改善手法は単純な
貪欲手法より数割高速
まとめ
機械学習の様々な問題は単調劣モジュラ性を持つ
→ 貪欲法が上手く動く
様々な拡張
• 整数格子:1-1/e近似 & ほぼ線形時間
• k劣モジュラ:1/2近似 & ほぼ線形時間
今後の方向性
• 実用的には99%ぐらいの近似度。何故か?
• 最小化への応用?