Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IQ-MEANS: Web-Scale Image Clustering Revisited

Keisuke OGAKI
February 06, 2016
69

IQ-MEANS: Web-Scale Image Clustering Revisited

コンピュータビジョン勉強会: ICCV2015読み会での論文紹介です
https://kantocv.connpass.com/event/24696/

Keisuke OGAKI

February 06, 2016
Tweet

Transcript

  1. WEB-SCALE IMAGE CLUSTERING REVISITED •  Yannis Avrithis, Yannis Kalantidis, Evangelos

    Anagnostopoulos, Ioannis Z. Emiris , from University of Athens, Yahoo! Labs •  Oral Session 2C - Statistical Methods and Learning •  プロダクト量子化したコードをK-meansする、IQ-Meansを提案
  2. WEB-SCALE K-MEANS Webの強豪企業たちの戦い。 •  2010, WWW: “Web-Scale K-Means Clustering” • 

    Google •  ターゲットは特に画像ではない •  Mini batch法。sklearnにも実装されてるのでお世話になっている •  2015, CVPR: “Web Scale Photo Hash Clustering on A Single Machine” •  Facebook AIラボ •  バイナリ特徴を使う •  2015, ICCV: “Web-scale image clustering revisited” •  Yahoo! Labs •  コードブックを用いた、より効率のよいハッシング(IQ)
  3. WEB-SCALE K-MEANS Webの強豪企業たちの戦い。 •  2010, WWW: “Web-Scale K-Means Clustering” • 

    Google •  ターゲットは特に画像ではない •  Mini batch法。sklearnにも実装されてるのでお世話になっている •  2015, CVPR: “Web Scale Photo Hash Clustering on A Single Machine” •  Facebook AIラボ •  バイナリ特徴を使う •  2015, ICCV: “Web-scale image clustering revisited” •  Yahoo! Labs •  コードブックを用いた、より効率のよいハッシング(IQ)
  4. BK-MEANS バイナリ特徴のK-means。入力データをバイナリにエンコードして、セント ロイドもバイナリとして得る 1.  エンコードは Iterative Quantization •  “Iterative quantization:

    A Procrustean approach to learning binary codes for large-scale image retrieval.” •  実数からハッシュに落とす時に、回転行列Rをかけてからハッ シュにする。1) ハッシュ割り当て、2)回転の最適化、を交互に繰 り返すのでiterative 2.  UpdateStep •  割り当てられたベクトルを全部足して、各次元ごとに正になるか 負になるかで更新できる 3.  Assignment Step •  “Fast search in hamming space with multi-index hashing” •  N次元ハッシュで距離N以下だったら必ず1次元は衝突する、とい う原理に基づき高速探索
  5. SUBSPACE QUANTIZATION 詳しくは、第27回勉強会での @ketsumedo_yarou の資料を参照 http://www.slideshare.net/ketsumedo_yarou/presentation-for-web-44080684?related=1 0.34 0.22 0.68 1.02

    0.03 0.71 入力特徴群 2つの部分空間毎にk-means (一部データでも十分な精度) 割り当てられたセントロイドで 2次元にエンコード(全データ) … 4096次元とか
  6. SUBSPACE QUANTIZATION 詳しくは、第27回勉強会での @ketsumedo_yarou の資料を参照 http://www.slideshare.net/ketsumedo_yarou/presentation-for-web-44080684?related=1 0.34 0.22 0.68 1.02

    0.03 0.71 入力特徴群 … 2つの部分空間毎にk-means (一部データでも十分な精度) 割り当てられたセントロイドで 2次元にエンコード(全データ) ID:2 0.32 0.27 0.73 ID:501 1.08 0.01 0.78 … … … … … … この結果はコードブックとして、距離の 計算などに使い回す Kはこの論文では128~1024 4096次元とか
  7. SUBSPACE QUANTIZATION 詳しくは、第27回勉強会での @ketsumedo_yarou の資料を参照 http://www.slideshare.net/ketsumedo_yarou/presentation-for-web-44080684?related=1 0.34 0.22 0.68 1.02

    0.03 0.71 入力特徴群 … 2つの部分空間毎にk-means (一部データでも十分な精度) 割り当てられたセントロイドで 2次元にエンコード(全データ) ID:2 0.32 0.27 0.73 ID:501 1.08 0.01 0.78 … … … … … … 2 501 … この結果はコードブックとして、距離の 計算などに使い回す Kはこの論文では128~1024 4096次元とか
  8. 問題の整理 1.  全てのデータは2次元(ただし離散) ベクトルになっている。セルの番地 で表現できる 2.  ただし、2次元空間での距離は元空 間での距離を表さない。 3.  それぞれのセルに対応する元空間

    でのベクトルをコードブックに保存し てあるので、それを用いてセル同士 の距離は計算できる 4.  必須項目ではないが、この手法では、 データは2次元セル番地だが、セン トロイドは元空間で求める。 この条件から、高速・省メモリでk-meansを行う
  9. エンコード “Optimized Product Quantization for Approximate Nearest Neighbor Search”(by MSR)

    に従う。先の図のように前半次元と後 半次元でやってもいいんだけど、簡単に最適化する方法が有るので。 •  PQかける前の生ベクトルに回転行列RをかけてからPQすることで、 より量子化歪みを小さくする •  1. 回転を固定して、量子化歪みを最小化するようにPQのエン コーダを求める。(普通にk-means) •  2. PQのエンコーダを固定して、量子化歪みを最小化するよう に回転を求める。(直交プロクラステス回転を求める問題であり、 閉形式解が求まる) •  1と2を収束するまで繰り返す
  10. ASSIGNMENT STEP (2) FAST せっかくセルの2次元空間に落としてるんだから、全部のセント ロイドと全部のセルを比較する必要はないよね。。 すべてのセントロイドについて以下の操作をする 1.  サブ空間U1, U2それぞれの中で距離が近いw個(論文で

    は16)のインデックスを取り出す 2.  近い順に並べた新しい2次元 (例b) を作る 3.  最も近いセル(新しい2次元での(0,0))から初めて、距離 が近い順に周囲のセルを探索していく。 1.  そのセルの、今までのセントロイドとの最小距離よ りも小さければ更新 4.  終了条件に達したら次のセントロイドへ 1.  終了条件は、それまでに訪問したセルに含まれて いた累計サンプル数が閾値T(論文中ではT=全サ ンプル/k)を超えたら。 2.  あるいは、w×wを全部訪問したら
  11. Kの推定 1.  適当に大きめのKを決める 2.  全てのセントロイドについて、近傍にある セントロイドを求めておく 1.  これは、assignmentステップと同時 に行えることに注意 3. 

    全てのセントロイドを等方正規分布と仮 定して分散を求めておく 4.  閾値以上近すぎるセントロイド同士を間 引く なお、このアイデア自体は著者らのECCV2012の論文。 この論文での主張は、それを追加コスト少なくできるよっ てこと 閾値をきつめにすると、kの初期値に依存せ ず決まるようになる
  12. 巨大データセットでの実験 Yahoo flicker 100M dataset •  Flickrに投稿された100M枚のデータセット •  ここから、Alexnetの最終層を特徴として抽出して(4096次元)、PCAで 128次元にしたもの

    •  DKM: Apache Spark をもちいた、分散k-means。スケールアウト手 法との比較。 CKM: 2次元のセル座標そのものをk-meansした場合。ただのベース ライン。そんなに比較する意味は無い precisionは、教師ラベルありデータをクラスタリングした、クラスタ内 のラベルの純度(最も多いラベルの割合) •  分散手法よりも全然早い。
  13. WEB企業的に、実用上は たしかに、k-meansを正確にやらなきゃいけないというシーンはあまりな い。速度・メモリ・マシン台数を減らすほうが、実用上は大事。 •  安直に金をつぎ込んでsparkで解決するべき問題じゃないという考察 は素晴らしい。 •  実用上のクラスタリングの精度、というのは難しい。ユーザーさんが納 得できる結果であればいいってことが多い。 • 

    クラスタリング自体が主問題なら、コードも公開されているし、IQ- meansを利用する価値はある。 •  https://github.com/iavr/iqm •  ただ、PQに特有の、コードブックを利用しなきゃ距離計算が出来ない デメリットは有るので、元空間の距離を保った次元圧縮を使ったほうが 取り回しやすいシーンは多いか。 •  あと、ハイパーパラメータが多いところに不安がある。閾値設定とかミ スると論文通りの性能は出ないかと •  たぶんこの論文でBk-meansが遅かったのもそういう事情なんじゃ ないかな