icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
TRANSCRIPT
【ICML2015 論文紹介】
Sparse Subspace Clustering with Missing Entries Congyuan Yang, Daniel Robinson, René Vidal
佐藤 貴海 @tkm2261
株式会社ブレインパッド
2015年8月20日 ICML2015読み会 1
ICML2015読み会@株式会社ドワンゴ様 セミナールーム
自己紹介
2015年8月20日 ICML2015読み会 2
名前: 佐藤 貴海 (さとう たかみ) @tkm2261
専門: 経営工学/数理最適化 (OR屋さん)
所属: 株式会社ブレインパッド
最近やってること:
物流の最適化
レコメンドアルゴリズムの検証
Lilleはいいところでした
せっかく行ってきたので、話すことに
2015年8月20日 ICML2015読み会 3
Sparse Subspace Clustering (SSC)[Elhamifar+ 2009]
画像処理の分野等では 高次元空間に低次元空間が埋め込まれるていることが多々ある
2015年8月20日 ICML2015読み会 4
http://vision.jhu.edu/ssc.htm http://motion.pratt.duke.edu/sketchmimicking/
観測された点を、複数の線形部分空間に分割する問題
3つの部分空間で構成 2次元平面上に文字を描写
Sparse Subspace Clustering (SSC)[Elhamifar+ 2009]
線形部分空間内の点は、同空間の点の線形結合で表現できる
2015年8月20日 ICML2015読み会 5
全データ(N個)
1
1
線形結合の係数
自分以外で線形結合
(self-expressive)
Sparse Subspace Clustering (SSC)[Elhamifar+ 2009]
2015年8月20日 ICML2015読み会 6
このままだと、D次元の部分空間作られて意味がないので
これを行列表現で書くと
となってるが、行列のL1ノルムになるので、得られる解は異なりそう・・・
Sparse Subspace Clustering (SSC)[Elhamifar+ 2009]
疎な表現のCが得られたら、後はスペクトラルクラスタリングの要領
2015年8月20日 ICML2015読み会 7
こんな風に、類似度行列を作り
コレをグラフラプラシアン行列だと思えばOK (記述はないが、行和を対角に入れたほうが良いかも)
あとは固有ベクトル求めてK-means法を実行
http://vision.jhu.edu/ssc.htm
本論文の貢献
2015年8月20日 ICML2015読み会 8
(私見)
先行研究(欠損値なし)
K-subspaces [Bradley+ 2000, Tseng 2000]
2015年8月20日 ICML2015読み会 9
欠損値がない場合の先行研究と筆者の見解
k-means法を拡張して、k個の超平面への距離でクラスタリング
⇒ 局所解に陥りやすい
mixture of probabilistic PCAs [Tipping+ 1999]
データをk個の超平面から生成されたと思って、GMM解く感じ
⇒ 局所解に陥りやすい
先行研究(欠損値なし)
2015年8月20日 ICML2015読み会 10
欠損値がない場合の先行研究と筆者の見解
Generalized Principal Component Analysis [Vidal+ 2005]
⇒ ノイズに弱い
Sparse Subspace Clustering (SSC) [Elhamifar+2009]
前述のアルゴリズム。今回はコレの拡張
先行研究(欠損値あり)
[Gruber+ 2004]
2015年8月20日 ICML2015読み会 11
欠損値がある場合の先行研究は少ないが、いくつか存在
mixture of probabilistic PCAsとEMアルゴリズムで欠損値に対応 ⇒ 局所解に陥りやすい
[Vidal+ 2004]
データ行列全体も低ランクであることを仮定して低ランク補完
⇒ 部分空間が低ランクでも全体が低ランクとは限らない
先行研究(欠損値あり)
2015年8月20日 ICML2015読み会 12
欠損値がある場合の先行研究は少ないが、いくつか存在
[Eriksson+ 2012]
欠損値を近傍点で補完
⇒ 保持する近傍点が多く必要で非実用的
[Candes+ 2014]
特定のカーネル行列の欠損値を期待値で補完し Danzig Selectorで学習
⇒ 期待値の計算方法が与えられていない
比較手法
2015年8月20日 ICML2015読み会 13
MC+SSC Matrix Completion + SSC
ZF+SSC Zero-Fill+SSC
SSC-EWZF SSC by Entry-Wise Zero-Fill
SSC-EC SSC by Expectation-based Completion
SSC-CEC SSC by Column-wise Expectation-based Completion
BCDS Bias-corrected Dantzig Selector
※BCDSは一部データのみ
この6つの手法を検証(赤色が提案手法)
Matrix Completion + SSC (MC+SSC)
私がこのタスクを解くのに真っ先に思いついたのがコレ
2015年8月20日 ICML2015読み会 14
最初に低ランク補完(核ノルム+フロベニウスノルム最小化)して、
その後に普通にSSCを解く
観測されてるところはX=A
Zero-Fill+SSC (ZF+SSC)
非常に直感的
ただ単に欠損値をゼロで補完
2015年8月20日 ICML2015読み会 15
SSC by Entry-Wise Zero-Fill (SSC-EWZF)
2015年8月20日 ICML2015読み会 16
観測されていないところの誤差はゼロだと思って学習
実験的に以下の場合にはコレでうまくいくらしい
①部分空間が十分分割されている
②観測点が各部分空間内に十分分散している
③各部分空間の欠損値のパターンが独立である
SSC by Expectation-based Completion (SSC-EC)
2015年8月20日 ICML2015読み会 17
Lemma 1.
欠損率がこの分布に従う時に
SSC by Expectation-based Completion (SSC-EC)
この補題1を使ってカーネル行列の推定量を書くと
2015年8月20日 ICML2015読み会 18
欠損値をゼロで補完
ただし、第二項のせいで半正定値性を仮定できないので補正する
非常にわかりやすい補正だが、
せっかく不偏推定量まで求めたのに補正してしまうのは勿体無い (悪い補正じゃないし、代案があるわけではないが・・・)
SSC by Expectation-based Completion (SSC-EC)
2015年8月20日 ICML2015読み会 19
最終的に解くのはこちら
SSC by Column-wise Expectation-basedCompletion (SSC-CEC)
SSC-ECはゼロ補完があるので、ZF+SSCに近い
SSC-EWZFのように、欠損の誤差を無視したモデルを考案
2015年8月20日 ICML2015読み会 20
行列型ではなく、元の列ごとの最適化
各列で欠損の無いところだけで学習
データjで
観測されてるインデックスの集合
SSC by Column-wise Expectation-basedCompletion (SSC-CEC)
誤差項を展開すると、
2015年8月20日 ICML2015読み会 21
Lemma 2.
列の一部ω だけでも
補題1同様に 不偏推定量
cが関わらないので無視
※要推定 ※要推定
この関係にも注意 =
SSC by Column-wise Expectation-basedCompletion (SSC-CEC)
2015年8月20日 ICML2015読み会 22
この補題2を使ってカーネル行列の推定量を書くと
こちらも第二項のせいで半正定値性を仮定できないので補正する
SSC by Column-wise Expectation-basedCompletion (SSC-CEC)
2015年8月20日 ICML2015読み会 23
最終的に解くのはこちら
これもADMM [Boyd+ 2010]で解ける
問題サイズは対して小さくなってないのに、 データの数だけ解く必要があるので基本大変
Γのj列ベクトル
Bias-corrected Dantzig Selector (BCDS)
2015年8月20日 ICML2015読み会 24
[Candes+ 2014]で提案
誤差項が制約に落ちてきて、無限大ノルムになっている
筆者らの実験では、以下の傾向があるとのこと
• SSC-CECよりも計算コストが高く
• λの選択に敏感
数値実験(検証手法)
2015年8月20日 ICML2015読み会 25
MC+SSC 低ランク行列補完+SSC(スペクトラルクラスタリング)
ZF+SSC ゼロ補完+SSC
SSC-EWZF 欠損要素の関連する誤差をゼロにしてSSC
SSC-EC カーネル行列の不偏推定量を使ってSSC
SSC-CEC 列毎のカーネル行列の不偏推定量を使ってSSC
BCDS 誤差項を制約にして、∞ノルムをつかったSSC
これまで紹介した6つの手法を検証
合成データに対する数値実験
高ランクのデータ
2015年8月20日 ICML2015読み会 26
低ランクのデータ
データの次元数 100
部分空間毎のデータ数 50
部分空間のランク 5
部分空間数 2
データの次元数 25
部分空間毎のデータ数 50
部分空間のランク 5
部分空間数 5
ペナルティ項αの影響
• 単純なゼロ置換の結果はαの影響を受けやすい
• SSC-EWZFとSSC-CECは安定して良い性能
2015年8月20日 ICML2015読み会 27
αの定義はコチラ 決め方は先行研究[Elhamifar+ 2013]
δは欠損率
欠損率δの影響
• 低ランクではMC+SSC, SSC-EWZF, SSC-CECが欠損率にロバスト • そのうち高ランクでは低ランク補完を使ったMC+SSCが悪くなっている
2015年8月20日 ICML2015読み会 28
SSC-CECの部分空間の数、次元数、データ数の影響
• 欠損率が低い時は、低ランクの場合にSSC-CECが良く • 欠損率が高い時は、高ランクの場合にSSC-CECが良い
2015年8月20日 ICML2015読み会 29
ペナルティ項αの影響 その2 クラスタリングの精度だけではなく、Cの結果を直接評価したい
横軸: Cの各列での、自クラスタ以外の係数の和の列平均 (低いと良い)
縦軸: クラスタ毎の正規化ラプラシアン行列の第2最小固有値 (高いと良い)
(クラスタのまとまりの指標)
2015年8月20日 ICML2015読み会 30
• 基本的にSSC-EWZFとSSC-CECが良い • 高ランクの場合では行列補完系は基本悪い
※左上にあるほどよい結果
動領域抽出データに対する数値実験
Hopkins 155の155データに対する検証
2015年8月20日 ICML2015読み会 31
http://www.vision.jhu.edu/data/hopkins155/
データの次元数 フレーム数の2倍
部分空間のランク 1~3
部分空間数 2,3
欠損率δとフレーム数の影響
2015年8月20日 ICML2015読み会 32
• 欠損が少ない時はデータ全体が低ランクのためMC+SSCが良い • 欠損が多く、フレームが少ない(擬似高ランク)場合には、 SSC-EWZFとSSC-CECが良い結果となっている
本論文の貢献
2015年8月20日 ICML2015読み会 33
再掲
私見
2015年8月20日 ICML2015読み会 34
• 個人的には疎(スパース)で欠損値アリは琴線に触れた
• 『部分空間内なら他の点で自己表現可能(self-expressive)』 、という着眼点で疎学習は好きな感じでした – 欠損をベルヌーイ分布を仮定して扱うのは定石だったりするのか?
• 恐らく大規模問題には対応できなそう – 行列型で解くと、計算途中でCの疎性が使えないはず
– 列毎に解いても、データ数だけ解くのは厳しい
– 計算時間に論文中で一切言及が無いのは、その証左かと
ご清聴ありがとうございました
2015年8月20日 ICML2015読み会 35
初日のWelcome cocktail 最終日のBanquet