Vanishing Component Analysis

18,985 views

Published on

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

Published in: Technology
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
18,985
On SlideShare
0
From Embeds
0
Number of Embeds
15,260
Actions
Shares
0
Downloads
93
Comments
0
Likes
23
Embeds 0
No embeds

No notes for slide

Vanishing Component Analysis

  1. 1. 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
  2. 2. 1ページで分かる(?) Vanishing Comonent Analysis PCA/ICA 基底(basis function)は線形に限定 VCA 任意の多項式を基底にとれる 〜本論文のテーマ〜 データをコンパクトに表現する を求める How ? Brute Forceに行うと指数オーダーなので,低次のものから順に探索的に求める Why ? 特徴量抽出に使うと「チューンした多項式カーネル」とほぼ同じことができる(100倍速い) 13/07/09 Vanishing Component Analysis 2
  3. 3. なんとか 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
  4. 4. Vanishing Component Analysis • データ集合の「代数的な視点からみた構造」を 多項式の集合で表現する,非線形なComponent Analysis – ただし,次元が削減されるとは限らない(後述) • 理解するには代数幾何(環論)の知識が必要そう – 今回はざっくり行きます(コメント歓迎) 13/07/09 Vanishing Component Analysis 4 問題設定 Input : m個のデータ点 Sm ( ∈ Rn ) Output : すべてのデータ点xに対して f(x) ≒ 0 となるような 多項式 f の集合
  5. 5. 分類問題における応用 • クラスごとの訓練データ集合に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
  6. 6. 準備(あまり要らないかも) • 単項式(Monomials) • 多項式 (Polynomials) αは正の整数,データ点のxとごっちゃになるので スライドでは単に p と書くことも • 多項式環 – 有限次数で,かつ積,和 が定義できる多項式全体 の集合 • イデアル(Ideal) – 集合の中の要素に何をかけ ても,元の集合に戻る性質 (吸収律)を持った多項式 の集合 • 零化イデアル(Vanishing Ideal) – データ点集合 S が与えられた とき,f(x) = 0 (x ∈ S)が成り 立つような多項式の集合 – I(S) と表記 13/07/09 Vanishing Component Analysis 6
  7. 7. Problem Setup • n次元の点集合 Sm が与えられる • このもとで,零化イデアル I(Sm)の生成多 項式集合を求める – ややこしいが,Smのすべての要素に対して f(x) = 0 になるような多項式 f の集合を求める, と思ってよい • Smの要素を「ほとんど」零化(ε-許容) – exactな計算は現実的ではない – データ点にはノイズが乗っている点を考慮 13/07/09 Vanishing Component Analysis 7
  8. 8. シンプルな方法(1) • 生成多項式の次数の上限をDに制限, m 個のデータ点 • D次までの単項式の集合をTとして, – 行列A (m*|T|) を考える( |T| は指数的に増大) – Aij = tj(xi) • tj = 単項式集合Tのj番目の要素, xi = データ点 A = 1 p1(x1) p2(x1) p1 2(x1) p2 2(x1) p1p2(x1) ・・・ p|T|(x1) 1 p1(x2) p2(x2) p1 2(x2) p2 2(x2) p1p2(x2) ・・・ p|T|(x2) ・・・ 1 p1(xm) p2(xm) p1 2(xm) p2 2(xm) p1p2(xm) ・・・ p|T|(xm) 13/07/09 Vanishing Component Analysis 8 p1 p2
  9. 9. シンプルな方法(2) • あとはSVD • しかし・・・ – O(nD)で行列Aが大きくなるので現実的ではない • n:変数の数, D:次数の上限 – この方法で抽出される多項式には冗長性がある • 例)p1, p2, が含まれる場合, p1, p2, p1 2, p2 2, p1p2,… • イデアルの持つ吸収律を考慮していないため(省略) 図の出典 : http://www.cs.iastate.edu/~cs577/handouts/svd.pdf 零または非常に小さい(< ε)特異値に対応する特異ベクトル => 対応する単項式の係数( Proposition 3.1 ) 13/07/09 Vanishing Component Analysis 9 m : データ数 n : 単項式集合のサイズ(|T|) (零空間の基底)
  10. 10. 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
  11. 11. 初期化 最初の候補集合を生成(1次式) 候補集合の仕分け 仕分けた結果をマージ 繰り返し・・・ 1次上げた候補集合を生成 候補集合が空(Ft-1=0)なら終 候補集合の仕分け マージ 13/07/09 Vanishing Component Analysis 11 VCAアルゴリズムの流れ
  12. 12. 候補集合の仕分け 13/07/09 Vanishing Component Analysis 12 Cの要素をFの空間に写像 単項式をデータで評価した 行列を作り直交基底を求める 基底を用いて多項式を生成 特異値が大きい要素F に追加 特異値が小さい要素V に追加
  13. 13. 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
  14. 14. なぜ多項式の「集合」か 13/07/09 Vanishing Component Analysis 14 平面と円筒の交差 平面を表す1次式,円筒を表す2次式 の組み合わせでデータ点を記述できる たぶん,低次のほうがロバスト(低い次数で記述できるならそのほうが良い) p1+p2+p3-定数=0 p1 2+p2 2+p3-定数=0 ※図は原著者のスライドより引用
  15. 15. アルゴリズムの性質 • 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
  16. 16. 分類問題における応用(再掲) • クラスごとの訓練データ集合に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
  17. 17. 実験 • 多項式カーネルSVM(KSVM) vs VCA+線形SVM • 各種データセットでKSVMに対してCompetitive – パラメータ : KSVM(degree,C), VCA(ε,用いる最大次数,C) はCVで 決定 • 分類時間において,KSVMに対して2桁高速 – KSVM(SVの数) – VCA(numberof operation needed to compute the vanishing component) 13/07/09 Vanishing Component Analysis 17 ちなみに,MNistのstate of the artは0.4とかのようです(DBM+Dropout) 単純に比べて 良いのかは謎
  18. 18. 感想 • 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/
  19. 19. 付録 • 多項式から生成したデータでの実験(横軸:データ数) – 破線:training error, 実線 : test error 13/07/09 Vanishing Component Analysis 19 やっぱりoverfitしてそう?

×