劣モジュラ最適化と機械学習1章
機械学習プロフェッショナルシリーズ
@St_Hakky
自己紹介と告知
• Twitter : @St_Hakky
• ブログ:http://st-hakky.hatenablog.com/
• 関西で機械学習勉強会を実施中!!
• 団体のモットー:
• 圧倒的スピード感で大量の書物と論文をぶった切る
• 「えっ、まだ読んでないの?」と煽り奉り、輪講会を乱立させる
• 過去のイベント例
• PRML輪講会、PRML上巻/下巻一気読み
• データ解析のための統計モデリング入門の輪講会
• わかりやすいパターン認識(続)の輪講会
• 参加したい方は、Facebookのグループにまずは参加を。
• URL :https://www.facebook.com/groups/1767916400127792/
劣モジュラ最適化と機械学習の
1章をやります
コンテンツ
• 1.1 : はじめに
• 1.2 : 劣モジュラ性への導入
• 1.2.1 : 劣モジュラ関数の定義とその直感的解釈
• 1.2.2 : 劣モジュラ関数の例
• 1.3 機械学習における劣モジュラ性
• 1.4 本書で扱う話題
• 1.5 利用可能なソフトウェア
本の内容に入る前に
• 「劣モジュラってなんやねん。ざっくり説明してくれ」
となりますよね。わかりますその気持ち。
• そんなあなたにこちらの動画を。
• アルゴリズムが世界を変える Season 3.0〜口コミ効果
最大化と劣モジュラ関数〜
• https://www.youtube.com/watch?v=Z7eMzSHGGAE
コンテンツ
• 1.1 : はじめに
• 1.2 : 劣モジュラ性への導入
• 1.2.1 : 劣モジュラ関数の定義とその直感的解釈
• 1.2.2 : 劣モジュラ関数の例
• 1.3 機械学習における劣モジュラ性
• 1.4 本書で扱う話題
• 1.5 利用可能なソフトウェア
本書で取り扱う問題
• 本書では、機械学習における組合せ的な側面を
考える。
「組合せ」とは
• 「組合せ」
• 「何らかの選択可能な集まりの中から, その一部を選
択する」という手続き
• 機械学習における問題を扱う際には、様々な場面
で、この「組合せ」(的な計算)が重要な役割を担う。
組合せの例:病院の患者データ
• 目標:新しい患者の必要な入院期間の予測
• 使用するモデル:回帰モデル
• 問題点:回帰モデルで使用する変数は?
• 患者の体重や来院歴 → 有用な可能性大
• 患者の趣味や職業 → 関係がなさそう
• 関係がない変数は選ばず有用なものを選びたい
• →変数集合の中から有用な変数集合を「システマティッ
クに」選びたい(特徴選択)
集合関数とは
• 選択可能な対象(または要素)の集まりからその一
部を選択する計算
• 離散的な関数の最適化
集合関数の定義
• 𝑛 : 選択可能な対象の数
• 𝑉 = {𝑙, … , 𝑛} : 選択可能な対象の集合(台集合)
• 𝑓: 2 𝑉 → ℝ :集合関数
• 台集合𝑉の各部分集合 𝑠 (⊆ 𝑉)に実数を割り当て
集合関数 𝑓が7 つの要素
から成る台集合𝑉上に定義
3つの要素から成る部分集合𝑆
に実数値を割り当てる
集合関数の最適化
• この関数𝑓が、各部分集合𝑆の何らかのよさを表し
ていてそれを最大化する計算を行います。
• 例
• 入院期間の予測精度に関連する量が𝑓で表されている
とすればこれを最大とするような検査項目の集合を求
めることが問題となる
• これは関数𝑓を用いた集合関数の最大化計算を行うことで達
成できる
組合せ爆発
• 一般に、ある台集合𝑉が与えられたとき、すべての部分集
合S (⊆ 𝑉)の数は、𝑉に含まれる要素数 (I𝑉Iのように表しま
す) に対して指数関数的に増加
• I𝑉I = 2 → 4通り
• I𝑉I = 10 → 1024通り
• I𝑉I = 100 → 約1030通り
• I𝑉I = 1000 → 約10301通り
• 組合せ爆発のわかりやすい例:
• 「フカシギの数え方」オネェさんと一緒!みんなで数えてみよう!
• https://www.youtube.com/watch?v=Q4gTV4r0zRs
劣モジュラ性
• 「集合関数最適化などの組合せ的な計算を扱う難
しさ」に直面しないよう に組合せ的な問題を考える
• 1つのキーとなる概念としても非常に重要
劣モジュラ性への導入
• 劣モジュラ性
• 集合関数における凸性にあたる構造であることが知 ら
れている
• 同時に、凹関数のような性質もあわせもつ(第2章)
• ここでは、劣モジュラ性の基本的な事項について
導入的な説明をする
劣モジュラ関数の定義
• この不等式を満たす集合関数fは「劣モジュラ性を
満たしている」という
• 劣モジュラ性を満たす集合関数を劣モジュラ関数
と呼ぶ。
天才はこの式を見てこう思う
• 某天才氏:「おぉ〜劣モジュラ性と. 連続関数の凸
性との関係を見れてるや〜ん」
• 凡人は、何も見えません。なので、直感的な説
明をします(大事)。そのための準備を少しだけしま
す。
擬似ブール関数
• 直感的説明のために集合関数と0-1ベクトル上に
定義される実数値関数(擬似ブール関数)との対
応に触れる
• 擬似ブール関数とは
• 各成分が0または1のいずれかの値を持つベクトルの事
を言う。
特性ベクトル
• 台集合𝑉が与えられた時の各部分集合S ⊆ 𝑉:
• 𝑆に含まれる要素の成分:1
• 𝑆に含まれない要素の成分:0
• この表現で、𝒏次元の0-1ベクトルと1対1対応させ
ることができ、集合関数は𝑛次元0-1ベクトル上の
実数値関数であるともいえる。
• このようなベクトルを特性べクトルと呼ぶ。
特性ベクトル
• 任意の集合𝑆 ⊆ 𝑉に対して特性ベクトル𝜒 𝑠 =
(𝑣1, … 𝑣 𝑛)は、
• のように定義される
直感的理解をさせて仕り候
• 行くよ!!!
直感的理解のための具体例の設定
• 台集合𝑉 :
• 𝑉 = {1}と 𝑉 = {1,2}の場合について直感的に説明する
• 集合関数𝑓 :
• 𝑉 = {1} の場合:
• {}, {1}の2通りの場合への実数値への割り当て
• f : 1次元の格子状の点に定義
• 𝑉 = {1,2}の場合:
• {}, {1}, {2}, {1, 2}の4通りの場合への実数値への割り当て
• f : 2次元の0-1の格子状の点に定義
集合関数と凸性との関係を見るために集合
関数を拡張
• 以下のように拡張
• 一次元の 𝑓 ∶ ℝ → ℝ
• 二次元の 𝑓 ∶ ℝ2
→ ℝ
集合関数と凸性との関係を見るために集合
関数を拡張
• 一次元:
• 𝑓({})と𝑓({1})の間を線形補間
集合関数と凸性との関係を見るために集合
関数を拡張
• 2次元の場合
• 𝑝1 ≤ 𝑝2を満たす𝑝 = (𝑝1, 𝑝2) ∈ ℝに対する 𝑓(𝑝)の値は、
以下のように分割して考える
• (𝑖) 原点(0,0)から(1,1)の方向へ(𝑝1, 𝑝2)まで進む
• (𝑖𝑖) その次に(𝑝1, 𝑝2)から(0, 1) の方向へ(𝑝1, 𝑝2)まで進む
集合関数と凸性との関係を見るために集合
関数を拡張
• 2次元の場合
• 𝑝1 ≤ 𝑝2を満たす𝑝 = (𝑝1, 𝑝2) ∈ ℝに対する 𝑓(𝑝)の値は、
以下のように分割して考える
• (𝑖) 原点(0,0)から(1,1)の方向へ(𝑝1, 𝑝2)まで進む
• (𝑖𝑖) その次に(𝑝1, 𝑝2)から(0, 1) の方向へ(𝑝1, 𝑝2)まで進む
• (𝑖)と(𝑖𝑖)について1次元の場合と同様に線形補間により値
の変化量を考えて、それらを足し合わせることで 𝑓(𝑝)の値
が定まります
集合関数と凸性との関係を見るために集合
関数を拡張
• 定義された連続関数 𝑓 ∶ ℝ2 → ℝは、もとの集合関数𝑓が式
(1.1)を満たしていれば、必ず(0,0)と(1,1)を結ぶ直線が谷と
なるような凸関数となります.
集合関数と凸性との関係を見るために集合
関数を拡張
• これは,式(1.1)で𝑆 = {1}, 𝑇 = {2} とすると、𝑓({𝑙}) +
𝑓({2}) ≥ 𝑓({1, 2}) + 𝑓({})となることなどからも確かめられ
る
ロヴァース拡張
• 劣モジュラ関数に対し,このような凸関数を生成する補間
(凸緩和)を数理的に厳密に定義したものは、ロヴァース拡
張と呼ばれる(2章で議論)
• これは劣モジュラ性に関連する最も重要な概念の1つ
• 集合関数が劣モジュラ関数である必要十分条件=そのロ
ヴァース拡張が凸関数であること
別の劣モジュラの定義(1.1と等価)
𝑖を加えた時の関数値の増分
𝑇に包含される「小さい」集合𝑆へ要素
𝑖(∈ V ∖ 𝑇)を加えた際の関数値の増え方
𝑆を包含する「大きい」集合𝑇への増え方
この式は関数𝒇の逓減的な性質を表している
逓減的な性質の直感的解釈
• 情報分野で現れる関数には、逓減的な性質をもつ
関数が頻繁に見られる。
• これは情報の本質的な性質でもあるため
• 直感的な解釈:
• 既知の情報が少ない場合に新しく得られ多情報の価値は大き
い
• すでにより多くのことが既知であれば同じ情報であってもその
価値は比較的小さくなる
• 劣モジュラ関数の定義式(1.2)は, まさにこのよう
な状況を表しているといえます.
劣モジュラ関数の例
• モジュラ関数
• カット関数
• カバー関数
モジュラ関数
任意のn次元実ベクトルα ∈ ℝ 𝑛に対して
と定義される集合関数は,劣モジュラ性を満たす(定義式
(1.1)を等号で満たす)
このような関数はモジュラ関数と呼ばれ、特性ベクトル𝜒 𝑠 ∈
{0,1} 𝑛
を用いれば線形関数𝑓 𝑆 = 𝑎 𝑇
𝜒 𝑠としても表現される
ため、最も単純な劣モジュラ関数であるといえる
カット関数
任意の無向グラフ𝒢 = (𝑉, ε) が与えられたとき、選択した
ノード集合(𝑆 ⊆ 𝑉)とその補集合(𝑉 ∕ 𝑆)との間の枝の数を
返すような関数
カバー関数
何らかの有限個の要素集合と、それらの一部を各々含む
ようなグループの集合𝑉が与えられたとき、選択したグ
ループ𝑆 ⊆ 𝑉に含まれる要素の数を返すような関数を、カ
バー関数と呼ぶ
その他の劣モジュラ性を持つ関数
• 実行列Mが与えられたとき、すべての行𝑉の中か
ら、その一部の行𝑆 ⊆ 𝑉 を選択したときに得られる
部分行列のランクは、劣モジュラ関数
その他の劣モジュラ性を持つ関数
• その他にも、様々な情報分野(やその他の周辺分
野)における集合関数が劣モジュラ関数である
• 相互情報量
• 情報利得
• 経済分野における効用関数(優モジュラ関数)
• 正定値対称行列の行列式
• 凸ゲーム
• 自乗重相関係数など
機械学習における劣モジュラ性
• 機械学習の主要なアルゴリズムでの利用:
• 能動学習
• ノンパラメトリック・ベイズ推定
• スペクトラル法
• グラフ構造の推定
• 特徴選択に限らず、多様な応用的問題へと適用:
• グラフマイニング
• バイラル・マーケティング
• ネットワーク分析
離散的なデータ構造への適用
• 劣モジュラ関数:
• 離散的なデータ構造を表すのに適した関数
• 画像での例;
• 背景画素の隣の画素は同じく背景であり、オブジェクト
の隣の画素はオブジェクトである場合が多い
• 境界上でのみ, これと異なる状況が起こる
• この関係を用いたアルゴリズム:グラフカット
構造正則化と劣モジュラ
• 機械学習を用いる際にはしばしば変数間に構造
的な依存関係が存在する場合があり、劣モジュラ
関数を用いて表現される場合が多い
• 例1:変数間に階層関係があるような状況
• 例2:変数に一種の冗長性があり類似したものが含まれ
ている状況
• そのようなデータ変数間の構造を取り込むことで,
より精度が高く解釈が容易な学習が期待できる。
その他の劣モジュラ性を持つ関数
• 情報分野などでよく用いられる量である(同時)エ
ントロピーも、変数から成る集合に関する集合関
数として見た場合は劣モジュラ性をもっていること
が知られている。
• 第3章で考えるセンサ配置においては, このエント
ロピーの性質を用いた定式化について見ていく。
本書で扱う話題
• 劣モジュラ最適化がどのように機械学習における
問題の定式化やその解法の中で用いられている
かについて説明
• 機械学習で議論される主要な問題への適用を中
心として. 現時点でも実用につながると思われる
話題を中心に取り上げている
第2章 劣モジュラ最適化の基礎の概要
• 劣モジュラ関数とその最適化に関する以下のよう
な基本的な事項について説明
• 劣モジュラ関数の定義
• 代表的な劣モジュラ関数における劣モジュラ性の証明
• 劣モジュラ関数最適化の基本的な考え方や代表的な
アルゴリズム
• この内容は、後の部分の基礎になるのでひと通り
理解して進むのが良い
第3章劣モジュラ関数の最大化と貪欲法
の適用の概要
• 劣モジュラ関数の最大化とその応用について見る
• 機械学習分野において劣モジュラ最適化が用いられる
ようになった火つけ役
• この問題は、1.3節で述べたように応用上重要な定
式化である一方、理論的にはいわゆるNP困難な
問題の一種で、効率的に厳密に最適化することは
期待できない。
第3章劣モジュラ関数の最大化と貪欲法
の適用の概要
• しかしながら、貪欲法という極めて単純な方法でよ
い近似的な解が見つかることなどが知られている
• 代表的な応用例として、以下への適用も紹介
• 文書要約
• センサ配置問題
• 能動学習
第4章最大流とグラフカットの概要
• グラフカットについて紹介する
• 劣モジュラ関数の最小化が実用的にも用いられている例
• 本章ではグラフカットに加えて以下も考えていく
• グラフカットの劣モジュラ関数の最小化における位置づけ
• 高速に最小化計算可能な劣モジュラ関数とはどういうも
のか
第5章劣モジュラ最適化を用いた構造正
則化学習の概要
• データ変数間の依存関係を機械学習アルゴリズ
ムヘ取り込むアプローチである構造正則化学習に
ついて取り上げる
• この依存関係は多くの場合に劣モジュラ関数で表せる
• 劣モジュラ関数として表すことで最終的にはパラメ
トリック最大流と呼ばれる問題の反復的な計算へ
と帰着することが可能
• パラメトリック最大流は, 実用的な高速アルゴリズムで
計算可能なことが知られている
利用可能なソフトウェア
• 割愛
• (普通に本書を参照するといいと思います。)
参考文献
• S. Fujishige. Submodular Functions and
Optimization. Elsevier, 2nd edition, 2005.
• 劣モジュラ最適化に関する教科書
• 藤重による書籍[13]

劣モジュラ最適化と機械学習1章