19
Vanishing Component Analysis Roi Livni, David Lehavi, Sagi Schein, Hila Nachlieli, Shai Shalev-Shwartz and Amir Globerson ICML 2013 (Best Paper) すずかけ論文読み会#4 (2013/07/07) / ICML2013読み会@PFI/東大 (2013/07/09) 紹介者 : matsuda ( @conditional ) 13/07/09 Vanishing Component Analysis 1

Vanishing Component Analysis

Embed Size (px)

DESCRIPTION

Vanishing Component Analysis [Livni+ ICML 2013] の紹介

Citation preview

Page 1: Vanishing Component Analysis

Vanishing Component Analysis

Roi Livni, David Lehavi, Sagi Schein, Hila Nachlieli, Shai Shalev-Shwartz and Amir Globerson

ICML 2013 (Best Paper)すずかけ論文読み会#4 (2013/07/07) / ICML2013読み会@PFI/東大 (2013/07/09)

紹介者 : matsuda ( @conditional )

13/07/09 Vanishing Component Analysis 1

Page 2: Vanishing Component Analysis

1ページで分かる(?) Vanishing Comonent Analysis

PCA/ICA基底(basis function)は線形に限定

VCA任意の多項式を基底にとれる

〜本論文のテーマ〜

データをコンパクトに表現する を求める

How ? Brute Forceに行うと指数オーダーなので,低次のものから順に探索的に求めるWhy ? 特徴量抽出に使うと「チューンした多項式カーネル」とほぼ同じことができる(100倍速い)

13/07/09 Vanishing Component Analysis 2

Page 3: Vanishing Component Analysis

なんとか Component Analysis

• 成分分析– Principal Component Analysis(PCA)

– Independent Component Analysis(ICA) etc…

• 次元削減,信号分離,特徴量抽出等,おなじみの手法

• ほとんどの手法は「線形」な成分を取り出す– Kernel PCAなど,例外もあるが・・・

13/07/09 Vanishing Component Analysis 3図の出典 http://dave.langers.nl/index.php?/archives/277-PCA,-ICA-FA-galore.html

Page 4: Vanishing Component Analysis

Vanishing Component Analysis

• データ集合の「代数的な視点からみた構造」を多項式の集合で表現する,非線形なComponent Analysis

– ただし,次元が削減されるとは限らない(後述)

• 理解するには代数幾何(環論)の知識が必要そう

– 今回はざっくり行きます(コメント歓迎)

13/07/09 Vanishing Component Analysis 4

問題設定Input : m個のデータ点 Sm ( ∈ Rn )Output : すべてのデータ点xに対して f(x) ≒ 0 となるような

多項式 f の集合

Page 5: Vanishing Component Analysis

分類問題における応用

• クラスごとの訓練データ集合にVCAを行う

– データ点が「ほとんど零」になる多項式の集合が得られる(クラスごとに)

(ほぼ)線形分離できる!あとはこのデータで..

≒零殆ど非零

13/07/09 Vanishing Component Analysis 5

p1

p2

クラス2の事例

I(Sm1) I(Sm2)

fで評価 クラス1の事例

x x x x x

x x x x x

x x x x x

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

x x x x x

x x x x x

x x x x x

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

f2

f2

f1

f1

Page 6: Vanishing Component Analysis

準備(あまり要らないかも)

• 単項式(Monomials) • 多項式 (Polynomials)

αは正の整数,データ点のxとごっちゃになるのでスライドでは単に p と書くことも

• 多項式環

– 有限次数で,かつ積,和が定義できる多項式全体の集合

• イデアル(Ideal)

– 集合の中の要素に何をかけても,元の集合に戻る性質(吸収律)を持った多項式の集合

• 零化イデアル(Vanishing Ideal)– データ点集合 S が与えられた

とき,f(x) = 0 (x ∈ S)が成り立つような多項式の集合

– I(S) と表記

13/07/09 Vanishing Component Analysis 6

Page 7: Vanishing Component Analysis

Problem Setup

• n次元の点集合 Sm が与えられる

• このもとで,零化イデアル I(Sm)の生成多項式集合を求める– ややこしいが,Smのすべての要素に対して

f(x) = 0 になるような多項式 f の集合を求める,と思ってよい

• Smの要素を「ほとんど」零化(ε-許容)– exactな計算は現実的ではない

– データ点にはノイズが乗っている点を考慮

13/07/09 Vanishing Component Analysis 7

Page 8: Vanishing Component Analysis

シンプルな方法(1)

• 生成多項式の次数の上限をDに制限, m 個のデータ点

• D次までの単項式の集合をTとして,– 行列A (m*|T|) を考える( |T| は指数的に増大)

– Aij = tj(xi) • tj = 単項式集合Tのj番目の要素, xi = データ点

A =

1 p1(x1) p2(x1) p12(x1) p2

2(x1) p1p2(x1) ・・・ p|T|(x1)

1 p1(x2) p2(x2) p12(x2) p2

2(x2) p1p2(x2) ・・・ p|T|(x2)

・・・

1 p1(xm) p2(xm) p12(xm) p2

2(xm) p1p2(xm) ・・・ p|T|(xm)

13/07/09 Vanishing Component Analysis 8

p1

p2

Page 9: Vanishing Component Analysis

シンプルな方法(2)

• あとはSVD

• しかし・・・– O(nD)で行列Aが大きくなるので現実的ではない

• n:変数の数, D:次数の上限

– この方法で抽出される多項式には冗長性がある• 例)p1, p2, が含まれる場合, p1, p2, p1

2, p22, p1p2,…

• イデアルの持つ吸収律を考慮していないため(省略)

図の出典 : http://www.cs.iastate.edu/~cs577/handouts/svd.pdf

零または非常に小さい(< ε)特異値に対応する特異ベクトル=> 対応する単項式の係数( Proposition 3.1 )

13/07/09 Vanishing Component Analysis 9

m : データ数n : 単項式集合のサイズ(|T|)

(零空間の基底)

Page 10: Vanishing Component Analysis

Vanishing Componentの効率的生成

• 小さい次数のものから探索的に生成

• いくつかの集合

– F : non-vanishingな多項式• 次数を上げることでvanishingになる可能性がある

– V : vanishingな多項式,C : 候補集合

• (おおざっぱに言うと)以下の繰り返し

– 候補集合Cの直交基底を求める(using SVD)• C の要素を F or Vに「仕分ける」

• 特異値が大きい -> F , 特異値が小さい -> V

– 一次上げた C を生成

13/07/09 Vanishing Component Analysis 10

Page 11: Vanishing Component Analysis

初期化

最初の候補集合を生成(1次式)

候補集合の仕分け

仕分けた結果をマージ

繰り返し・・・

1次上げた候補集合を生成

候補集合が空(Ft-1=0)なら終

候補集合の仕分け

マージ

13/07/09 Vanishing Component Analysis 11

VCAアルゴリズムの流れ

Page 12: Vanishing Component Analysis

候補集合の仕分け

13/07/09 Vanishing Component Analysis 12

Cの要素をFの空間に写像

単項式をデータで評価した

行列を作り直交基底を求める

基底を用いて多項式を生成

特異値が大きい要素F に追加

特異値が小さい要素V に追加

Page 13: Vanishing Component Analysis

VCAアルゴリズムの流れ

13/07/09 Vanishing Component Analysis 13

C = [x1,x2,x3]F0 = [定数]V0 = []

C = [p1,p2,p3] 互いに直交(1次)

F1 = [定数,p1,p2] {f : ε > Dii}を追加

V1 = [p3] {f : ε ≦ Dii}を追加SVD

C = [p12,p1p2,p22]F1 = [定数,p1,p2]V1 = [p3]

1次

2次C = [g1,g2,g3]F2 = [定数,p1,p2,g1,g2]V2 = [p3,g3]

C = [g1p1,g2p1,g2p2]F2 = [定数,p1,p2,g1,g2]V2 = [p3,g3]

C = [h1,h2,h3]F3 = [定数,p1,p2,g1,g2,h1,h2]V3 = [p3,g3,h3]

3次

直交(2次の成分を含む)

直交(3次の成分を含む)

・・・C = []F = [定数,p1,p2,g1,g2,h1,h2,…]V = [p3,g3,h3,…]

※Fの要素が増えなくなったら終了

(最大)m次

SVD

SVD

C : 候補多項式の集合 F : non-vanishingな多項式の集合 V : vanishingな多項式の集合

FindRangeNull

C : F1 × Ft-1

Page 14: Vanishing Component Analysis

なぜ多項式の「集合」か

13/07/09 Vanishing Component Analysis 14

平面と円筒の交差

平面を表す1次式,円筒を表す2次式の組み合わせでデータ点を記述できる

たぶん,低次のほうがロバスト(低い次数で記述できるならそのほうが良い)

p1+p2+p3-定数=0

p12+p2

2+p3-定数=0

※図は原著者のスライドより引用

Page 15: Vanishing Component Analysis

アルゴリズムの性質

• Theorem 5.1 : どのようなεに対しても– t ≦ m+1 ステップで終了– 多項式の最大次数は m– |F| ≦ m かつ |V| ≦ |F|2・min{|F|・n}

• 「次元削減」される訳ではない

• Theorem 5.2 : ε=0の場合– Smの全ての点をVanishする

• Theorem 7.1 : Feature Extraction– この生成多項式集合を用いて特徴量抽出をおこなうと,「線形分離できる」ことが保証される• あくまでも Training Data に対しての保証

13/07/09 Vanishing Component Analysis 15

Page 16: Vanishing Component Analysis

分類問題における応用(再掲)

• クラスごとの訓練データ集合にVCAを行う

– データ点が「ほとんど零」になる多項式の集合が得られる(クラスごとに)

(ほぼ)線形分離できる!あとはこのデータで..

≒零殆ど非零

13/07/09 Vanishing Component Analysis 16

p1

p2

クラス2の事例

I(Sm1) I(Sm2)

fで評価 クラス1の事例

x x x x x

x x x x x

x x x x x

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

x x x x x

x x x x x

x x x x x

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

f2

f2

f1

f1

Page 17: Vanishing Component Analysis

実験

• 多項式カーネルSVM(KSVM) vs VCA+線形SVM

• 各種データセットでKSVMに対してCompetitive– パラメータ : KSVM(degree,C), VCA(ε,用いる最大次数,C) はCVで

決定

• 分類時間において,KSVMに対して2桁高速– KSVM(SVの数)

– VCA(number of operation needed to compute the vanishing component)

13/07/09 Vanishing Component Analysis 17

ちなみに,MNistのstate of the artは0.4とかのようです(DBM+Dropout)

単純に比べて良いのかは謎

Page 18: Vanishing Component Analysis

感想

• Theorem 7.1 が強烈(どんなデータでも完全に線形分離できる)– ただ,各ステップでSVDに突っ込むのでそこそこ重そう– カーネルとはまったく異なるアプローチで新鮮

• 知りたかったこと– Kernel PCAとの比較,VCA自体の計算時間,高次元での挙動(高次の項がoverfitしそう)– ジャーナル版に期待 (代数幾何,勉強しときます・・・

• 今後の展開(素人考えです)– 何らかの正則化

• 集合のサイズ,次数,係数等にペナルティをかけるなど,複雑さを抑える

– ε−許容に正規分布を仮定している?• このへんを確率的に取り扱う方向性もありそう(ベイジアンの皆さん!)

– 教師あり/半教師あり化• あるクラスの事例は零化,他クラスの事例は零化しない,という条件を積極的に

入れる ( max margin的な.Vapnik教徒の皆さん! )

• 応用– NLP : Parsing, Relation Extraction, etc… (高次の多項式カーネルが有用)– Deep Learningに組み込む動きもあるらしい(第一著者のプレプリント参照)

13/07/09 Vanishing Component Analysis 18

Matlab implementation is available here !http://www.cs.huji.ac.il/~rlivni73/

Page 19: Vanishing Component Analysis

付録

• 多項式から生成したデータでの実験(横軸:データ数)– 破線:training error, 実線 : test error

13/07/09 Vanishing Component Analysis 19

やっぱりoverfitしてそう?