SlideShare a Scribd company logo
1 of 10
2014/9/25 CVPR2014勉強会@九大1 
Locally Optimized Product Quantization 
for Approximate Nearest Neighbor Search 
Yannis Kalantidis and Yannis Avrithis 
こうたき 
熊本大学上瀧剛 
gou_koutaki@twitter
p.1のFigure.1 
2 
TPAMI2011 
ベクトル量子化 
CVPR2013 提案手法:CVPR2014
まえがき:何の論文? 3 
プロダクト量子化を使ったベクトル最近傍探索の改良 
データxi 
クエリ 
y 
重心Cj 
距離が一番近い要素を探す 
2 
argmin x y i 
i 
 
全探索は時間がかかるので、クラスタ分割。 
クラスタ要素内を探索 
2 
argmin x y i 
i C j 
 
 
クラスタリングはk-meansが有名。 
ベクトル量子化とも呼ばれる。 
ベクトル量子化の問題点: 
次元が高いと効率が悪くなる。次元の呪い。
まえがき:何の論文? 4 
プロダクト量子化 
ベクトル要素を分割。各分割した空間で量子化→次元の呪いを回避 
例)次元6のベクトルを2分割 
部分空間v1 部分空間v2 
 1 2 3 4 5 6  x  x , x , x | x , x , x 
1 C1 
2 C1 
3 C1 
4 table[C1 
部分空間v1 
部分空間v2 
C1 
i C2 
j 
1 C2 
2 C2 
3C2 
4 
C2 
C1 
i] [C2 
j]にx を登録。 
クエリyを検索をする際は、 
同様に分割・各軸で最近傍の重心インデックスを求めて、 
同じテーブル内の要素を全探索(バケット探索) 
シンプルだが考案されたのはTPAMI2011と最近のこと。 
実際には、粗量子化(coarse quantization)を組み合わせる。
粗量子化(coarse quantization) 
◆K-meansで粗くクラスタリングした後に 
各要素をプロダクト量子化(TPAMI2011) 
5 
zi = xi - cj 
cj 
ポイント: 
クラスタ重心との 
差分データで 
PQを実行 
◆粗量子化にも分割数2のPQを使う(IMI, CVPR2012) 
⇒本論文もこれを採用 
2という値に理論的な 
根拠はない。
p.1のFigure.1 
6 
TPAMI2011 
ベクトル量子化 
CVPR2013 提案手法:CVPR2014 
回転も許し 
て、空間を 
有効活用 
局所的に 
(クラスタ毎に) 
回転行列を 
最適化したら 
いいのでは?
Optimized プロダクト量子化(CVPR2013)と提案手法7 
量子化誤差を最小とするプロダクト量子化器Cと回転行列Rを求める 
 
min 
 
 
z Z 
j 
R c C 
z Rc 
j 
2 
, 
⇒効率的に解くアルゴリズムがある 
提案手法:クラスタ毎に回転行列を最適化 
 
 
min 
 
 
z Z 
j 
j 
R c C 
z R c 
j 
j 
2 
, 
⇒粗量子化でセル内のサンプル少。 
次元の呪いが発生する。 
⇒粗量子化で2分割のPQを行う。回転行列も分割した空間毎に用意する。 
 
 
   
z Z 
j 
j 
j 
j 
min 
1 2 
R R c c C 
z R c z R c 
j j 
j j 
2 
2 
2 2 
2 
1 
1 1 
, , , 1 1 
※2という値に理論的な根拠はない。
性能評価8 
dim データ数クエリ 
MNIST 784 7万1000 
SIFT1M 128 100万10K 
GIST1M 960 100万10K 
SIFT1B 120 10億10K 
提案手法が量子化誤差Eも少なく、recallも高い 
提案手法 
データセット
性能評価9
まとめ10 
・データを2分割PQ粗量子化でクラスタリング(セル分割) 
・各クラスタ内で局所的なOPQ実行 
・recallの改善を確認 
IMIのグループも同じことを同時期に発見しているらしい 
Artem Babenko, Victor Lempitsky, 
Improving Bilayer Product Quantization for Billion-Scale Approximate 
Nearest Neighbors in High Dimensions, arxiv.org プレプリント, 2014

More Related Content

What's hot

関東CV勉強会 Kernel PCA (2011.2.19)
関東CV勉強会 Kernel PCA (2011.2.19)関東CV勉強会 Kernel PCA (2011.2.19)
関東CV勉強会 Kernel PCA (2011.2.19)
Akisato Kimura
 

What's hot (20)

畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
[DL輪読会]VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Envir...
[DL輪読会]VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Envir...[DL輪読会]VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Envir...
[DL輪読会]VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Envir...
 
関東CV勉強会 Kernel PCA (2011.2.19)
関東CV勉強会 Kernel PCA (2011.2.19)関東CV勉強会 Kernel PCA (2011.2.19)
関東CV勉強会 Kernel PCA (2011.2.19)
 
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
[DL輪読会]EfficientDet: Scalable and Efficient Object Detection
 
ICCV 2019 論文紹介 (26 papers)
ICCV 2019 論文紹介 (26 papers)ICCV 2019 論文紹介 (26 papers)
ICCV 2019 論文紹介 (26 papers)
 
物体検知(Meta Study Group 発表資料)
物体検知(Meta Study Group 発表資料)物体検知(Meta Study Group 発表資料)
物体検知(Meta Study Group 発表資料)
 
PRML 5.3-5.4
PRML 5.3-5.4PRML 5.3-5.4
PRML 5.3-5.4
 
BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東)
BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東) BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東)
BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東)
 
semantic segmentation サーベイ
semantic segmentation サーベイsemantic segmentation サーベイ
semantic segmentation サーベイ
 
[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision
 
Image net classification with Deep Convolutional Neural Networks
Image net classification with Deep Convolutional Neural NetworksImage net classification with Deep Convolutional Neural Networks
Image net classification with Deep Convolutional Neural Networks
 
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 
R-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れR-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れ
 
Deformable Part Modelとその発展
Deformable Part Modelとその発展Deformable Part Modelとその発展
Deformable Part Modelとその発展
 
PRML 5章 PP.227-PP.247
PRML 5章 PP.227-PP.247PRML 5章 PP.227-PP.247
PRML 5章 PP.227-PP.247
 
Taking a Deeper Look at the Inverse Compositional Algorithm
Taking a Deeper Look at the Inverse Compositional AlgorithmTaking a Deeper Look at the Inverse Compositional Algorithm
Taking a Deeper Look at the Inverse Compositional Algorithm
 
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
 
Image Retrieval Overview (from Traditional Local Features to Recent Deep Lear...
Image Retrieval Overview (from Traditional Local Features to Recent Deep Lear...Image Retrieval Overview (from Traditional Local Features to Recent Deep Lear...
Image Retrieval Overview (from Traditional Local Features to Recent Deep Lear...
 
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
 

Similar to Locally Optimized Product Quantization for Approximate Nearest Neighbor Search CVPR勉強会@九大

パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
sleipnir002
 
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
Computational Materials Science Initiative
 

Similar to Locally Optimized Product Quantization for Approximate Nearest Neighbor Search CVPR勉強会@九大 (20)

猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial Networks[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial Networks
 
点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-study
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 
Scan Registration for Autonomous Mining Vehicles Using 3D-NDT
Scan Registration for Autonomous Mining Vehicles Using 3D-NDTScan Registration for Autonomous Mining Vehicles Using 3D-NDT
Scan Registration for Autonomous Mining Vehicles Using 3D-NDT
 
第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料
 
関東CV勉強会ECCV2014 (Blind Deblurring using Internal Patch Recurrence)
関東CV勉強会ECCV2014 (Blind Deblurring using Internal Patch Recurrence)関東CV勉強会ECCV2014 (Blind Deblurring using Internal Patch Recurrence)
関東CV勉強会ECCV2014 (Blind Deblurring using Internal Patch Recurrence)
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】
 
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
はじパタLT2
はじパタLT2はじパタLT2
はじパタLT2
 
Introduction to A3C model
Introduction to A3C modelIntroduction to A3C model
Introduction to A3C model
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
PFP:材料探索のための汎用Neural Network Potential_中郷_20220422POLセミナー
PFP:材料探索のための汎用Neural Network Potential_中郷_20220422POLセミナーPFP:材料探索のための汎用Neural Network Potential_中郷_20220422POLセミナー
PFP:材料探索のための汎用Neural Network Potential_中郷_20220422POLセミナー
 
【学会発表】LDAにおけるベイズ汎化誤差の厳密な漸近形【IBIS2020】
【学会発表】LDAにおけるベイズ汎化誤差の厳密な漸近形【IBIS2020】【学会発表】LDAにおけるベイズ汎化誤差の厳密な漸近形【IBIS2020】
【学会発表】LDAにおけるベイズ汎化誤差の厳密な漸近形【IBIS2020】
 
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
 
NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭NINと画像分類 for 人工知能LT祭
NINと画像分類 for 人工知能LT祭
 
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
 

Locally Optimized Product Quantization for Approximate Nearest Neighbor Search CVPR勉強会@九大

  • 1. 2014/9/25 CVPR2014勉強会@九大1 Locally Optimized Product Quantization for Approximate Nearest Neighbor Search Yannis Kalantidis and Yannis Avrithis こうたき 熊本大学上瀧剛 gou_koutaki@twitter
  • 2. p.1のFigure.1 2 TPAMI2011 ベクトル量子化 CVPR2013 提案手法:CVPR2014
  • 3. まえがき:何の論文? 3 プロダクト量子化を使ったベクトル最近傍探索の改良 データxi クエリ y 重心Cj 距離が一番近い要素を探す 2 argmin x y i i  全探索は時間がかかるので、クラスタ分割。 クラスタ要素内を探索 2 argmin x y i i C j   クラスタリングはk-meansが有名。 ベクトル量子化とも呼ばれる。 ベクトル量子化の問題点: 次元が高いと効率が悪くなる。次元の呪い。
  • 4. まえがき:何の論文? 4 プロダクト量子化 ベクトル要素を分割。各分割した空間で量子化→次元の呪いを回避 例)次元6のベクトルを2分割 部分空間v1 部分空間v2  1 2 3 4 5 6  x  x , x , x | x , x , x 1 C1 2 C1 3 C1 4 table[C1 部分空間v1 部分空間v2 C1 i C2 j 1 C2 2 C2 3C2 4 C2 C1 i] [C2 j]にx を登録。 クエリyを検索をする際は、 同様に分割・各軸で最近傍の重心インデックスを求めて、 同じテーブル内の要素を全探索(バケット探索) シンプルだが考案されたのはTPAMI2011と最近のこと。 実際には、粗量子化(coarse quantization)を組み合わせる。
  • 5. 粗量子化(coarse quantization) ◆K-meansで粗くクラスタリングした後に 各要素をプロダクト量子化(TPAMI2011) 5 zi = xi - cj cj ポイント: クラスタ重心との 差分データで PQを実行 ◆粗量子化にも分割数2のPQを使う(IMI, CVPR2012) ⇒本論文もこれを採用 2という値に理論的な 根拠はない。
  • 6. p.1のFigure.1 6 TPAMI2011 ベクトル量子化 CVPR2013 提案手法:CVPR2014 回転も許し て、空間を 有効活用 局所的に (クラスタ毎に) 回転行列を 最適化したら いいのでは?
  • 7. Optimized プロダクト量子化(CVPR2013)と提案手法7 量子化誤差を最小とするプロダクト量子化器Cと回転行列Rを求める  min   z Z j R c C z Rc j 2 , ⇒効率的に解くアルゴリズムがある 提案手法:クラスタ毎に回転行列を最適化   min   z Z j j R c C z R c j j 2 , ⇒粗量子化でセル内のサンプル少。 次元の呪いが発生する。 ⇒粗量子化で2分割のPQを行う。回転行列も分割した空間毎に用意する。      z Z j j j j min 1 2 R R c c C z R c z R c j j j j 2 2 2 2 2 1 1 1 , , , 1 1 ※2という値に理論的な根拠はない。
  • 8. 性能評価8 dim データ数クエリ MNIST 784 7万1000 SIFT1M 128 100万10K GIST1M 960 100万10K SIFT1B 120 10億10K 提案手法が量子化誤差Eも少なく、recallも高い 提案手法 データセット
  • 10. まとめ10 ・データを2分割PQ粗量子化でクラスタリング(セル分割) ・各クラスタ内で局所的なOPQ実行 ・recallの改善を確認 IMIのグループも同じことを同時期に発見しているらしい Artem Babenko, Victor Lempitsky, Improving Bilayer Product Quantization for Billion-Scale Approximate Nearest Neighbors in High Dimensions, arxiv.org プレプリント, 2014

Editor's Notes

  1. 最近、近似近傍探索に興味があって、プロダクト量子化というキーワードをよく聞くので勉強がてら この論文を読むことにしました。論文を読みながら、Twitterで内容を呟いていました。
  2. 論文の図1を見て、論文を読んでないのですが、なんとなくわかった気分になりました。 Twitterの有識者(何者かはご存知ではないです)によると、実際に、この図が全てのことでした。
  3. では、まず、簡単に近傍探索から説明します。 近傍探索は、データベース上のベクトル集合xがあって、 クエリyとの距離が最も近い要素を見つけます。 実際には、すべての要素と全比較すると時間がかかるので、 粗くクラスリングしておいてクラスタとの代表値を比較して、 もっとも近いクラスタを見つけて、そのクラスタ内の要素との 比較(バケット探索)を行います。 クラスタリングはk-meansが有名です。ベクトル量子化とも呼ばれます。 ここで問題は、ベクトルの次元が大きくなると探索の効率がおちます。 K-meansもなかなか収束しません。 画像認識のSIFT等は100とか1000次元くらいあります。
  4. そこで、次元を簡単に削減できる方法としてプロダクト量子化が注目を集めています。 これは単純にベクトルを要素毎に分割し、分割した部分空間でベクトル量子化を行う方法です。 こちらの例では、6次元のベクトルを2分割したものです。 Cはベクトル量子化した結果で、1とか2,3とかのインデックスが入ります。 データxの全要素を、テーブルtbl[C1][C2]のセルにどんどん登録します。 実際の探索では、yも同様に分割して、各部分空間で最も近い代表値C1,C2を 求めて、そのテーブル内の要素をバケット探索します。 プロダクト量子化はこのようにとてもシンプルですが、考案されたのは2011年と最近のことです。 プロダクト量子化だけで近似近傍探索はできるのですが、 実際には粗量子化との組み合わせが用いられます。 おそらくプロダクト量子化だけでは量子化誤差が大きすぎで 使い物にならなかったのかと思います。
  5. 粗量子化の方法の違いで、いくつかバージョンがあります。 最初のプロダクト量子化の論文では、粗量子化にk-meansを使っていました。 ここでポイントは、粗量子化後にプロダクト量子化を掛ける際に、 データベクトルそのものではなく、代表値との差分を取ってから量子化を行います。 こうすることで量子化誤差を低減できます。 2012年には、粗量子化に分割数2のプロダクト量子化を用いるIMIという手法が 提案されています。量子化誤差はk-meansよりも大きいのですが、 代表値を探索する高速なアルゴリズムが知られており、トータルの性能で K-meansを用いる方法より優れていることが示されています。 ちなみに、twitterの有識者によると、2という分割数に、理論的な根拠はないとのことです。 3でも4でもよさそうなのですが、評価データベースに合わせてチューニングしたら 分割数2が良かったとのことです。
  6. もういちどおさらいです。 プロダクト量子化ではデカルト座標系で量子化していたものを (c)のoptimizedプロダクト量子化では、座標系を回転させて 空間を有効利用することで量子化誤差の低減を図ります。 提案手法では、粗量子化で粗くクラスタリングした後に 各クラスタ毎に回転行列を最適化します(局所的)
  7. 回転行列と代表値を求めるための目的関数はこのようになります。 これを効率的に解くアルゴリズムが知られているそうです。 提案手法では、クラスタ毎にこれを最適化します。 ただし、セル分割しているので、要素数が少なく、 またしても次元の呪いが発生する恐れがあります。 そこで、プロダクト量子化で部分空間に分割して、 それぞれの空間で回転行列を最適化します。 論文では分割数2を用いています。 これも理論的な根拠はないかと思われます。
  8. 性能評価結果です。 このようなデータセットに対して、提案手法が最も優れています。 詳細な計算時間は論文にはありませんでしたが、 アルゴリズム的にどれも同じくらいかと思います。 近年注目を浴びるハッシング系の探索との比較がないので アンフェアかもしれませんが、 OPQがバイナリハッシング系で強力なITQよりも 良い、とされているので比較はしていないようです。
  9. 以上です。 ちなみに、IMIのグループも同じようなことを同時期に発見していたとの情報も得ています。