局所鋭敏な階層的ハッシュ関数を用いた探索時可変...
TRANSCRIPT
論 文
局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの
高次元近似最近傍探索手法
小林 卓夫†a) 清水 郁子† 中川 正樹†
An Approximate Nearest Neighbor Search Method with Run-Time Changeable
Parameters in High Dimensional Spaces Using Locality Sensitive Hierarchical Hash
Functions
Takao KOBAYASHI†a), Ikuko SHIMIZU†, and Masaki NAKAGAWA†
あらまし 近年,局所鋭敏なハッシュ関数を利用した高次元空間の近似最近傍探索手法(LSH)が注目されている.しかしながら LSHは原理的に R-近傍探索手法であり,最近傍探索に適用するには,データの分布の疎密の格差が大きい場合に一律のハッシュ関数では対応できないという問題がある.また,前処理時にデータに応じて最適なハッシュ関数と各種パラメータを決定する必要があり,探索時にパラメータを変更できないという問題もある.本論文では,階層的なハッシュ関数を使用することによりデータの分布によらず効率良く探索でき,また,探索に関するパラメータは前処理時に決定するのではなく実行時に指定できる手法を提案する.様々な条件による人工データと現実データによる実験で,提案手法の有効性を示す.
キーワード 近似最近傍探索,LSH,階層的ハッシュ関数,ジオデシック分割,分散コーディング
1. ま え が き
最近傍探索は計算幾何学の基本的な技術であり,大
量のデータを分析するためのクラスタリング,パター
ン認識における k 最近傍探索識別法(kNN法)など,
幅広い分野において適用することができる.例えば,
提示されたクエリに対して,類似性で序列を付けた候
補を上位から順番に提示することは検索技術の典型的
な実用例である.また,大量の学習サンプルを用いた
ドキュメント分析システムや画像検索に高速な近似最
近傍探索技術の利用が提案されている [18], [27].
類似性や近接性が測られるべき対象は,その性質を
良く表す実数値多次元の特徴ベクトルに表現できれば,
ユークリッド距離等によるデータ間の距離を測る問題
に集約することができる.したがって,ベクトルデー
タ,特に高次元ベクトルの高速な探索が重要な課題と
†東京農工大学工学部,小金井市Department of Computer and Information Sciences, Tokyo
University of Agriculture and Technology, 2–24–16 Nakacho,
Koganei-shi, 184–8588 Japan
a) E-mail: [email protected]
なる.
高次元データの厳密探索では,全数探索の時間を十
分に下回る効率的なアルゴリズムは知られていないた
め,近似アルゴリズムの研究に注目が集まっている.
近似最近傍探索アルゴリズムはこれまでに Arya
ら [4],Clarkson [28],Kleinberg [29] などによるも
のが提案されている.しかしながらいずれも総当り
探索に較べて十分な探索時間の削減がなされている
とは言いがたい.その後,Indykらは高次元データの
近似最近傍探索アルゴリズムに適用できる局所鋭敏
なハッシュ関数を使用する枠組み(Locality sensitive
hashing scheme: LSH)を提案し,その計算量を理
論的に示した [1].それ以降,最近傍探索の性能の向
上 [2], [3]と実問題への応用が研究されている.
LSH は理論的には精度に関してプロトタイプ数の
1未満の指数オーダで探索の時間計算量を縮小させる
ことができる.しかしながら,LSHは k 個の最近傍
を求める手法としてはいくつかの問題点がある.まず,
LSHは基本的には半径 R 内の最近傍を求める手法で
あり,データが疎の場合には最近傍が見つからず,逆
に密の場合には探索時間がかかりすぎてしまう.理論
電子情報通信学会論文誌 A Vol. J96–A No. 5 pp. 225–237 c©一般社団法人電子情報通信学会 2013 225
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
的に R-NN は 1-NN へ変換することができるが [1],
探索時間とメモリ使用量が増大する.
また,LSHを含むこれまでに知られている近似最近
傍探索手法の多くでは,厳密解との誤差などの探索に
関するパラメータをあらかじめ指定して前処理を行う.
そのため,探索時にこれらを変更することができない.
現実の近似探索問題においては,要求される探索性能
に関する情報が前処理時に未知であることはしばしば
発生する.また,状況に応じて探索精度や時間,候補
数に関する要求が変わるということも起こり得る.し
たがって,前処理時にパラメータを固定して探索時に
変更できない手法は不都合が生じる.
この問題の解決策としては,理論的には多種類のパ
ラメータについて探索プログラムを用意することで対
応できるように思える.しかしながら,パラメータを
細かく設定すればプログラムの個数は膨大になってし
まう.そして随時発生するクエリに対して即時処理を
行うには全てのプログラムをあらかじめメモリ上に読
み込んでおく必要があるので,探索時の空間計算量が
増大する.
最近傍探索問題では,一般に,クエリが無数にある
と前提しているので,前処理時間のいかんにかかわら
ず探索が高速である方が全体の時間計算量は小さくな
ると考えられる.ただし,探索のコストは時間計算量
と空間計算量の両方を考慮すべきであり,パラメータ
固定の手法は,探索時可変パラメータという条件にお
いて多大な空間計算量が問題点である.
これらのことを踏まえて,本論文では LSH 型の近
似 k 最近傍探索手法で,探索時可変パラメータの手法
を提案する.これにより,探索時パラメータ指定とい
う条件で,固定パラメータの手法に比べて空間計算量
を大きく削減することができる.また,人工データと
現実のデータを用いた実験により,少なくともある条
件のもとでは既存の可変パラメータの手法よりも探索
性能が優れていることを示す.
2. 近似最近傍探索の定義と従来技術
2. 1 最近傍探索
最近傍探索とその近似問題にはいくつかのバリエー
ションが存在する.一般にはただ一つの最近傍を求め
る問題として定義されることが多いが,複数の上位候
補を得ることは実用的に重要であるので,本論文では
最近傍の個数 k を考慮した定義を与え,また,それに
対応する形式の R 近傍探索問題をまとめて図 1に示
図 1 各種の最近傍探索問題Fig. 1 Family of exact and approximate nearest
neighbor problems.
す.c = 1 あるいは δ = 0 の場合が厳密 k-NN 及び
R-NNに対応する.(1, c)-NNと (R, c)-NNは相互に
変換可能であることが示されている [1], [5].
一般にデータは多次元実数値ベクトルとして表現さ
れるので,多次元実数空間の最近傍探索問題に集約さ
れる.そして距離尺度として l2 ノルム(ユークリッ
ド距離)が一般的に使用されている.
以下では高次元データに適用できる近似アルゴリズ
ムについて述べる.
2. 2 ANN
Approximate Nearest Neighbor(ANN)[4]は,kd-
tree [6]をもとにした (k, c)-NNのための手法である.
ANNでは探索に関するパラメータである c と k は探
索時に指定し,前処理では探索に関するパラメータは
指定しないで行うことができる [13].
2. 3 LSH
距離空間 S の任意の元 x,y に対して,ハッシュ
226
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
関数の族 F : S → U が次の条件を満たすとき,
(R, cR, p1, p2)-sensitiveであるという [1].
if ‖x− y‖ ≤ R then Prh∈F [h(x) = h(y)] ≥ p1
if ‖x− y‖ ≥ cR then Prh∈F [h(x) = h(y)] ≤ p2
(1)
ここで本論文では特に p1 > p2,c > 1 とする.
そして K 個のハッシュ関数の直積
H(x) = (h0(x), . . . , hK−1(x)) (2)
も局所鋭敏にでき,K によって鋭敏さを調節できる.
LSH による (R, c)-NN アルゴリズムは次のよう
に実現することができる [1].あらかじめ L 個の
ハッシュ関数 H0, . . . , HL−1 を用意し,全てのプロ
トタイプ p ∈ P に対してハッシュコード Hl(p)
(0 ≤ l ≤ L− 1)を計算してハッシュテーブルに格納
しておく.クエリ q が与えられたとき Hl(q) = Hl(p)
となる p ∈ P について距離 ‖q − p‖ を計算し,‖q − p‖ ≤ cR であるかチェックする.n をプロト
タイプ数,ρ = log(1/p1)/log(1/p2) とするとき,探
索の時間計算量は O(nρ) となる.
アルゴリズムの性能は ρ に依存するが,計算量を
最小化するためには探索誤差に応じたハッシュ関数
のパラメータを事前に最適化する必要があり,探索
時に変更することができない.また,(R, c)-NNはク
エリによっては最近傍の探索に失敗することがある.
(R, c)-NNを経由して (k = 1, c)-NNを解くことはで
きるが,オーバヘッドを伴う.
具体的な局所鋭敏なハッシュ関数としては次の
p-stable LSH(E2LSH)[2]が代表的である.
h(x) =⌊a · x + b
w
⌋(3)
ここで,a は各成分がガウス乱数で与えられたベクト
ル,b は [0, w) の範囲の一様乱数とする.E2LSHは
l2 ノルムの (R, 1− δ)-NNを解く.
2. 4 その他の手法
PCH,A-PCH [7] は,主成分分析を行った複数の
軸にデータを射影し,バケットに入るデータの個数の
期待値が一定になるように区間分割を行う.これによ
り,最近傍候補が見つからなかったり,探索に時間が
かかったりするケースを排除できるようにしている.
PCH はデータ分布にガウス分布を仮定してハッシュ
関数を使用しているが,A-PCHではその仮定を除き,
2分木を使用している.しかしながら,一般に,大局的
な分布の情報である主成分分析がクエリの近傍という
局所的な領域で常に成り立つとは仮定できず,理論的
な曖昧さがある.また,探索性能に関係するパラメー
タのいくつかは前処理時に指定する必要があり,探索
時に変更することができない.
Muja らは,ランダムな軸を選んで kd-tree を複数
構築する手法 [9]と,階層的 k-means tree [10]による
手法について,前処理時のパラメータ最適化処理手法
を開発した [11].しかしながら,プロトタイプセット
を用いてパラメータ空間での線形計画問題を解くため,
解の精度を重視すると多大な時間を必要とする.また,
望む探索精度を指定して前処理を行うので,探索時に
精度を変更できない.
また,これら手法全て,LSHのように探索精度と時
間の計算量について必ずしも明らかではない.
3. 提 案 手 法
3. 1 高次元球面空間の領域分割
高次元のベクトルを多数の量子化したベクトルの集
合で表現することにより,ベクトル同士の距離や,ベク
トルとクラスあるいはクラス同士の類似度を計算する
ための多様な形式を導くことができる [21], [23], [25].
ベクトルの量子化には局所鋭敏なハッシュ関数を使用
することができる.このスキームに属する手法とし
て,本論文では高次元の超球上に分布するデータの
l2 ノルム近似最近傍探索問題を解くアルゴリズムを提
案し,これを分散コーディングによる近似最近傍探索
(DC-ANN)と名付ける.
さて,d−1 次元単位球面空間 Sd−1 とは全てのデー
タのノルムが 1であるような点の集合である:
Sd−1 = {x |x ∈ �d, ‖x‖ = 1} (4)
ノルムが正規化されたデータセットはパターン認識
など多くの分野で用いられる一方,実数空間 �d の
データセットもまた一般的である.提案手法を �d に
適用する場合には,�d から Sd への埋込技術を用い
ることができる.これについては後述する.
実用的なハッシュ関数としては計算が高速にできる
ことも重要である.Sd−1 の局所鋭敏なハッシュ関数
のうち,単純な演算で実現できるものは各種存在する.
x = (x0, . . . , xd−1) ∈ Sd−1 とするとき,ハッシュ関
数を構成するための基本的なハッシュ演算の例を下に
いくつか挙げる.sgn(a) = 1 (a ≥ 0),−1 (a < 0)と
227
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
定義する.
[例 1]
hi(x) = sgn(xi) [12], [23] (5)
[例 2]mi = 0, . . . , d−1, (i = 0, . . . , d−1) mi �= mj ,
(i �= j) に対して |xm0 | > |xm1 | > · · · > |xmd−1 | とするとき,
hi(x) = sgn(xmi) ·mi (6)
[例 3]ni = 0, . . . , d− 1, (i = 0, . . . , d− 1) ni �= nj ,
(i �= j)に対して xn0 > xn1 > · · ·xnd−1 とするとき,
hi(x) = ni [19], [24] (7)
[例 4]
wi = (x3i, x3i+1, x3i+2), (i < d/3)v0 = (1, 1, 1), v1 = (1,−1,−1),
v2 = (−1, 1,−1), v3 = (−1,−1, 1)
(すなわち v0, . . . ,v3 は正四面体の頂点である.)とす
るとき,
hi(x) = arg max0≤j≤3
{wivtj} (8)
さて,このような hi により式 (2) のハッシュ関数
H = (hi) (0 ≤ i ≤ K − 1)を構成するとき,一様ラ
ンダムな直交行列 T との合成関数による族 {H(Tx)}は Charikarの意味での局所鋭敏性 [26],すなわち,
Pr(H(x) = H(y)) = sim(x, y) (9)
を満たす.ここで sim は何らかの類似関数とする.
したがって上記例のようなハッシュ演算を用いて
LSHによる (R, c)-NNを実現できる.その際,R,プ
ロトタイプ数,次元等を勘案して目的に応じて適切な
ハッシュ演算と K,L を選べばよい.しかしながら
(k, 1 − δ)-NN のためにはクエリと最近傍プロトタイ
プまでの距離は一定ではないのでハッシュ関数の鋭敏
さのファクタである K をあらかじめ固定することが
できない.
そこで本論文ではこの K をクエリの近傍のプロト
タイプ分布に応じて動的に変えられるようにする.
K を増加させるとハッシュ関数は鋭敏になっていく.
したがって K によってハッシュテーブルのバケツを
階層化し,一つのバケツに入るプロトタイプの数が一
定の範囲になるようにすることができる.これにより,
距離計算を行う最近傍候補の数を適正な範囲に調整す
ることができる.具体的な実現方法は 3. 3で述べる.
3. 2 ジオデシック分割による階層的領域分割
前節で提示した関数 H(x) は x により Sd−1 を互
いに重なり合わない領域に分割する操作に相当する.
例 1は K を 1増やすごとに領域数が 2倍になってい
くのに対して,例 2 は 2(d −K) 倍,例 3 は d −K
倍,例 4は 4倍になる.最も滑らかな増加となるのは
例 1であり,ハッシュ関数の鋭敏さをきめ細かく選択
できる.また,極めて演算量が少なく実用的である.
この理由から本研究では例 1の関数を採用する.
しかしながら,例 1は Sd−1 を最大 2d 個までしか
分割できない.例えば局所的に分布が非常に密である
ようなデータ集合の場合,最大の分割でも一つの領域
にたくさんのデータが含まれて,探索速度が低下して
しまう可能性がある.
これを解決するために,次に示すアルゴリズムによ
り更に深い階層までの分割を用意する.
今,
ai,j(x) =2
πarctan
|xj ||xi| (10)
(ただし xi = 0 のとき ai,j(x) = 1)
とするとき ai,j の 2進表現を 0.a1i,ja
2i,ja
3i,j · · · とする
(ai,j = 1 のときは 0.1).このとき各 m (= 1, 2, . . .)
に対して
gmt (x) = am
i,j (0 ≤ t ≤ d(d− 1)/2− 1) (11)
を図 2のアルゴリズムにより定義する.
これに基づきハッシュ関数 HK を次のように定義
する.
・1 ≤ K ≤ d のとき
HK = (h0, . . . , hK−1) (12)
・d < K のとき
Hd+md(d−1)/2 = (Hd+(m−1)d(d−1)/2, gm0 , . . . ,
gmd(d−1)/2−1) (m = 1, 2, . . .)と表記すると,
HK =
(Hd+(m−1)d(d−1)/2,gm0 ,...,gm
K−1−d−(m−1)d(d−1)/2)
(13)
この gmt の順序定義を用いたハッシュ関数は,大きな
228
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
図 2 ジオデシック分割のためのハッシュ関数定義アルゴリズム
Fig. 2 Algorithm to define hash functions for
geodesic partitions.
領域の分割を優先し,Sd−1 をなるべく均等に分割する
性質をもつ.式 (12),(13)において,K ≤ d + d/2のとき HK は Sd−1 を 2K 個の均等な領域に分割し,
d + d/2 < K ≤ 2d− 1 のとき 2K 個の均等ではな
い領域に分割する.K = 2d のときは 2d+1(2d−1 − 1)
個の均等な領域に分割し,d(d + 1)/2 のときは 2d · d!
個の均等な領域に分割する.K が大きくなるにつれて
分割数は 2K を緩やかに下回る.
この分割方法をジオデシック分割(Geodesic par-
tition)と呼ぶことにする.また,階層的領域分割を
実現するハッシュ関数を階層的ハッシュ関数と呼ぶこ
とにする.分割操作の理解の助けとするため,図 3に
S2 の場合の領域分割を視覚的に示す.ただし,高次
元空間においては,次元の呪いと呼ばれる現象により,
分割領域内のほとんど全ての 2点間距離はほぼ√
2 ま
たは最遠点になることは注意に値する.
なお,実際のデータでは K ≤ 2d 程度で十分な場合
が多い.したがって,式 (10)よりも,
a1i,j(x) = sgn(|xi| − |xj |) (14)
を採用した方が処理は高速になる.
3. 3 データ構造の実現
式 (12),(13)で定義されるハッシュ関数 HK にお
いてハッシュコードは K ビットとなる.K が増加す
ると領域は細分化されていき,領域内のプロトタイプ
の数は単調に減少する.
(a),(b),(c),(d) のそれぞれは H3 = (h0, h1, h2) により球面を 8 分割,H4 = (h0, h1, h2, g1
0) で 16 分割,H6 = (h0, h1, h2, g1
0, g11, g1
2) で 48 分割,H9 =
(h0, h1, h2, g10, g1
1, g12, g2
0, g21, g2
2) で 240 分割する.
図 3 S2 の場合のジオデシック分割の例Fig. 3 Examples of geodesic partitions in S2.
ある K ビットのハッシュコードでハッシュテーブ
ルを参照し,ハッシュ値の衝突するプロトタイプの数
が多いときは K を増加させ,少ないときは減少させ
る.こうすることによりどんなクエリに対しても最近
傍候補の数を常にほぼ一定の範囲にすることができる.
この処理を実現するためには,あらかじめ大きめの
数 Kmax を決めて Kmax 個のハッシュテーブルを作
成しておけばよい.このとき,バケットに入っている
プロトタイプ数のパラメータ θ を指定して,∣∣{p ∈ P |HKopt−1(q) = HKopt−1(p)}∣∣ > θ
≥∣∣{p ∈ P |HKopt(q) = HKopt(p)}
∣∣ (15)
である Kopt を見つける処理は O(Kopt) 時間であり,
最大 O(Kmax) となる.しかしながら,LSH型探索で
は L 個のハッシュ関数を使用するので,それぞれに対
して Kmax 個のハッシュテーブルを作成することは多
大な記憶領域を必要とする.別の実現方法としては,
木構造または整列済みの配列を用いることができる.
計算量については 3. 6で述べる.本研究ではプログラ
ムの実装として整列済み配列のデータ構造を採用する.
データ構造を図 4に示す.Kmax ビットのハッシュ
コードでソートされた配列で,探索に十分なハッシュ
関数の数を Lmax とし,その個数分を同様に作成する.
探索時に指定するパラメータは L ≤ Lmax,θ,及び
k であるが,これらは前処理には関係しない.
探索は,hA = (HK(q), 0, · · · , 0),hB = (HK(q),
1, · · · , 1) とするとき,バイナリサーチを用いて
229
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
図 4 整列済み配列によるデータ構造Fig. 4 Data structure by a sorted array.
hI−1 < hA ≤ hI,hJ−1 ≤ hB < hJ となる I,J を
求めることができるので,K を 1から始めて θ ≥ J−I
となるまで増加させる,あるいは K に関してバイナ
リサーチするなどにより実現できる.
3. 4 LSHにおける階層化の議論
3. 2では Sd−1 における階層的ハッシュ関数を定義
したが,同様の考え方を用いて一般の LSH における
ハッシュ関数を階層化できる可能性がある.
E2LSHでは (3)のハッシュ関数から H = (h0, . . . ,
hK−1) を構成する.ハッシュ関数を階層化するには,
K を増やしていくことが考えられる.しかし,定数 w
の適切な値を決定することは自明ではなく [2],また,
この階層化は一度に 2より多くの領域に分割されるの
で階層が緩やかにならないという問題がある.また,
K と w の両方を変化させて領域の細分化のレベルが
異なる多数のハッシュテーブルを作成することも考え
られる.しかしこの場合,K と w の適切な関係が明
らかではない.更に,ハッシュテーブルの数が多くな
り多大な記憶領域が必要になるという問題がある.同
様に,K を固定して w を変化させる場合もハッシュ
テーブルの数が多くなる.また,あらかじめ K をど
のように決めるかが自明ではない.
このように,既存のハッシュ関数を階層化する着想
には未解決の要素があり実現性は不明である.一方,
本論文では高次元球面空間における具体的な分割アル
ゴリズムとデータ構造を明らかにし,これにより階層
化を実現している.
3. 5 �d の Sd への埋込
現実のデータは球面空間上のベクトルとは限らず,
実数ベクトルであることが多い.�d から Sd′へ埋め
込む方法は各種存在するが,本研究では計算コストが
比較的小さく,かつ変換後の次元の増加が 1にとどま
る次の方法を採用する.
全てのデータ x ∈ �d の各成分 xi が 0 ≤ xi ≤ 2a
の範囲であるとき,変換 Φ:�d → Sd = {x = (x′i)}を
x′i = (xi − a)/a
√αd (i = 0, . . . , d− 1)
x′d =
√√√√1−d−1∑i=0
((xi−a)/a√
αd )2 (α ≥ 1)(16)
により定義する.
ただしこの変換でひずみが生じる.今,p, q ∈ �d,
d(p, q) = Rに対して,Sd に変換したベクトルを p′,q′
とすると,d(p′, q′) = sR/a√
αd となる.ここでひず
み s は p,q に依存し,最大値 smax が存在する(α を
大きくすれば smax は小さくなる).Charikarの意味で
のハッシュ関数の族 F ′: Sd → U は c > smax に対し
て (smaxR/a√
αd, cR/a√
αd, p1, p2)-sensitive (p1 >
p2)となり,ゆえに,合成関数の族 F ′ ◦Φ:�d → U は
(R, cR, p1, p2)-sensitiveである.したがって,H ∈ F ′
に対して H(q′) = H(p′) となる p について,‖q− p‖を計算することで最近傍を求めることができる.
3. 6 計 算 量
前処理時に探索で指定するハッシュ関数の数 L の
上限となるような十分な大きさの値 Lmax を決める.
また,ほとんど全ての場合で Kmax ≥ Kopt となるよ
うに Kmax を設定する.
前処理は,一つのハッシュ関数に対して各プロトタ
イプの Kmax ビットのハッシュ値を計算する.n 個の
プロトタイプに対してこれを行い,整列済み配列を作
成する.Lmax 個のハッシュ関数に対して同じ処理を
行うので,前処理時間は O(Lmax(min{Kmax, d}d +
t1Kmax+t2 log n)n)となる.ここで t1,t2 は実数演算,
比較,ポインタ演算など各種演算に依存する値である.
また,データ構造のサイズは O(Lmax(Kmax+log n)n)
となる.
Kmax はデータ分布に依存し,θ = 1 を考慮すると
理論的にはデータが密になると限りなく大きくなり得
る.しかしながら,式 (10)の ai,j の要求される精度
はデータ x,y の距離 ‖x−y‖ の精度に等しい.これは d,n,L に無関係であるので定数として扱い Kmax
230
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
の最大は O(d2) となる.
探索は,ハッシュ値の計算・テーブル参照の時間と,
得られた最近傍候補に対して正確な距離計算を行って
検証をする時間の合計となる.また k > 1 に対しては
k 個の最近傍を近さの順番に整列する処理が加わる:
(探索時間) = (ハッシュ値計算・テーブル参照時間)
+ (最近傍候補の検証時間)
+ (最近傍の整列時間)
ハッシュ値計算・テーブル参照はKopt の平均を Kopt
とするとき O(L(min{Koptd}d+ tQKopt log n)) であ
る.ここで tQ をテーブルの完全一致探索に要する
時間とする.ハッシュテーブルを使用することによ
り O(L(min{Koptd}d + tQKopt)) のアルゴリズムも
存在する.一般に K ビットのデータの完全一致探索
は K が大きいときはビット数に比例するので,デー
タ分布が最悪の場合で,Kopt が非常に大きくなると
O(Ld2 log n) となる.一方,例えば Kopt ≤ 64 の
場合,Kopt ビットの演算は定数時間であり,かつ,
Kopt ≤ 2d のとき,式 (5),(14) の演算は相対的に
小さいので,O(L(min{d, Kopt}d + tQ log n)) または
O(L(min{d, Kopt}d + tQ)) に近づく.
最近傍候補の検証は,高々 O(Lθ) 個の候補が見つ
かり,それぞれに対してクエリとの距離計算を行い,
上位 k 個のプロトタイプを選出する.したがって,
O(Lθd) 時間で行える.最近傍の整列は O(k log k) 時
間である.
3. 7 探索精度と θ,L の関係
探索時に探索性能に関するパラメータが指定できる
最近傍探索プログラムのためには,θ,L と所望する
探索精度の関係を明らかにして,適切な値を指定でき
ることが必要である.本節ではこれを実現するための
簡単な方法を提案する.
dist(q, p) = Rのとき確率 prob(K) = Pr(HK(q) =
HK(p)) は K に依存する.そして θ を指定したとき
(15) の Kopt は各 l(1, . . . , L)に応じてばらつきが
ある.
いまクエリ q と P の最近傍との距離が R であると
き,各 lに対するKopt をKl とすると,探索誤差 δ は,
E
[L−1∏l=0
(1− prob(Kl))
]= δ (17)
と表現される(ここで議論の簡明さのため k = 1 と
している.k > 1 の探索精度については 4. 1で言及す
る).左辺括弧内を
L−1∏l=0
(1−prob(Kl))∼=1−L−1∑l=0
prob(Kl)
∼=(1− 1
L
L−1∑l=0
prob(Kl)
)L
(18)
と近似する.prob(Kl)の平均 prob =1
L
L−1∑l=0
prob(Kl)
は θ に依存する値であり,データに依存する定数 A,
B を用いて
prob(θ) = eA log θ+B (19)
という関係を仮定する.したがって,
A log θ + B = log(1− δ1/L) (20)
を得る.ただし (18)の近似による prob は L にも依
存するので,A,B は L に依存すると考えられる.大
きくない区間ならば L と A,B を線形で近似するこ
とができ,
log θ =log(1− δ1/L)− (b1L + b2)
a1L + a2(21)
を得る.
したがって,適当な数のパラメータの組 (L, θ) につ
いて δ を計測すれば線形補間によってあらゆる (L, θ)
に対する δ を求めることができる.
ここで,A,B について線形補間を行うので計測は
少なくとも 4 種類の (L, θ) について必要である.ま
た,ここでの議論では k = 1 と固定したため,k > 1
の場合はそれぞれに対して計測を行う必要があるよう
に思える.しかし,実際にはそれぞれの計測を独立に
行う必要はなく,重複する処理を統合して時間を削減
することができる.なぜなら,LSHのアルゴリズムは
L に関してインクリメンタルに処理を行うので,ある
(L, θ) について計測を行えば,L′ (> L)の計測につい
ては L までの途中経過を利用することができる.ま
た,k 最近傍探索を行うことによって k′ 最近傍 (< k)
も同時に得られるので,1から k までについてそれぞ
れの探索精度を同時に計測することができる.
この探索精度の計測はプロトタイプと別の予備の
データを使うことができるので予備計測と呼ぶことに
する.予備計測の時間は予備データの数と計測の回数
231
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
に依存する.これらを増やすほど正確な推定を行える.
式 (21) を導いた仮定の妥当性及び推定の精度につい
ては 4. 4で議論する.
なお,固定した δ に対して探索時間を最小にする
(θ, L) の組は計算機環境及びプログラムの実装に依存
するため,この決定には別の知識が必要となる.
4. 実 験
4. 1 実 験 方 法
実験は人工データ及び現実データを用いて提案手法
の性能を評価する.
近似最近傍探索の既存手法を 2. に挙げたが,その
うち探索時にパラメータ指定可能な近似 k-NN 手法
は ANNのみである.したがって,性能の比較のため,
公開されている ANNのライブラリ [13]について同条
件で測定を行う.
探索精度 (1− δ) の測定指標として次の定義を用い
る.クエリ q に対してプロトタイプ集合の正しい k 最
近傍を A = {a0, . . . , ak−1},探索プログラムが返した集合を B = {b0, . . . , bk′−1}(k′ ≤ k)とするとき,
探索スコアを次式で定義する.
score(q) = |A ∩B|/|A| (22)
これは集合の類似度の Simpson 係数に相当する.そ
して,近似最近傍探索プログラムのデータ分布に対す
る探索精度とは,データ分布から生起される各クエリ
に対し上記値を求めた次の平均値とする.
accuracy = E[score(q)]q∈Q (23)
探索精度の評価として,k = 1 に関しては多くの文
献で上記基準が用いられている [2], [11], [12].しかし
ながら ANNは (k, c)-NNの手法であるので,上記精
度指標が評価基準としてふさわしいかは直ちには断定
できない.例えば k = 2 のとき,探索プログラムが第
1,第 3近傍を返した場合と,第 2,第 1000近傍を返
した場合でもスコアは同じとなってしまう.ANN は
正解の最近傍との距離の c 倍以内の誤差を保証する
が,提案手法では誤差を保証していない.誤差情報を
考慮しない探索精度 (22) では公平な比較が行えない
可能性が考えられる.
そこで実験にあたり,式 (22)以外に次のような 2種
類の探索スコアも定義して測定を行った.
・順位の低いプロトタイプを返した場合ほどスコア
が低くなるように近傍の順位の逆数を合計する
・正解の最近傍に対する探索結果の距離の比を合計
する
その結果,性能の優劣の議論ではいずれのスコアでも
同様となることが確認された.したがって,探索精度
の指標としてこれ以降の議論では (22)を使用する.
実験の計算機環境はWindowsXp 32 bit 3 GBRAM
の PC を用いる.提案プログラムを C++で記述し,
VisualC/C++で一般的な最適化オプションを付けて
コンパイルする.
4. 2 人工データによる実験
人工データは,生成プログラムにより Sd−1 上にラ
ンダムにベクトルを生成させる.分布は一様ランダム
と偏りのある分布の 2通りとする.一般に一様ランダ
ムのデータ分布は LSH 型アルゴリズムに有利である
と思われるので,データ分布の条件設定には注意が必
要である.
Sd−1 上の一様ランダムなベクトル v = (vi) は d 個
のガウス分布乱数 v0, . . . , vd−1 を生成し,
vi ← vi
/(∑d−1
j=0v2
j
)1/2
(24)
とすることにより生成できる.偏りのある分布にする
には,標準偏差 σ0, . . . , σd−1 と適当な直交行列 T を
あらかじめ定め,
v′ = T(σ0v0, . . . , σd−1vd−1)t (25)
とした後 v′ の長さを正規化する.実験では,σi = i+1
とする.すなわち最も強い軸方向と弱い軸方向とでは
d 倍の密度の違いになる.
実験では次元数 d を 20及び 100とし,プロトタイ
プ数 n を 1,024から 1,000,000の範囲で変化させる.
また,最近傍候補数 k を 1と 100の場合で実験する.
Kmax は d = 20 のとき 30,d = 100 のとき 100とし
た.θ,L を変えることにより探索精度と探索時間が
変化する.各次元数,プロトタイプ数,候補数におい
てそれらを計測した結果を図 5に示す.
探索精度同一の条件で比較すると,提案手法
(DC-ANN)は ANN よりも探索速度が速いことが
分かる.そして,探索精度が高くなるほど提案手法の
優位性が高まる傾向がうかがえる.例えば,d = 100,
n = 1,000,000,一様分布の場合,探索精度がそれぞ
れ 0.8,0.93,0.97のとき,速度比は 1.9,3.9,6.0倍
になる.
また,一様分布,偏りのある分布のどちらでも提案
232
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
図 5 人工データにおける提案手法と ANN の比較(横軸:探索精度,縦軸:探索時間(msec.))
Fig. 5 Comparison of proposed method and ANN on synthetic data (horizontal
axis: accuracy, vertical axis: search time (msec.)).
手法に優位性があった.なお,d = 100 では分布の違
いによる性能変化はほとんど見られなかった.そして,
k を大きくすると,両プログラムとも探索時間は低下
するが,k が大きい場合は提案手法の相対的な優位性
が高まるという結果が得られた.20 次元と 100 次元
の比較では,次元数が大きい方が提案手法の相対的な
優位性が高まるという結果が得られた.
4. 3 現実データによる実験
物体認識分野では,1枚の画像から多数の特徴点で
SIFT特徴量を計算し,マッチングや物体認識に利用
する手法が研究されている [14].SIFT 特徴量は各成
分で 0 から 255 までの値をもつ 128 次元ベクトルで
ある.
まず,SIFTによる一般物体認識手法について述べ,
そこにおいて高性能な近似 k-NNが現実の課題解決に
おいて重要であることを示す.
一般物体認識の手法として知られる Bag of Visual
Words(BoVW)[20] では,あらかじめ k-means 法
で得たクラスタを用いて画像から SIFT特徴量のヒス
トグラムを作成する.今,画像 I に対する SIFT 特
徴量の集合を X = {xi} とするとき,クラスタ Kj
(j = 0, . . . , J − 1)に属する xi の数を数えてヒスト
グラム h = (hj) を作成する.画像 I がクラス Ck に
属する確率は,
Pr(Ck |I)=Pr(Ck |X)∝J−1∏j=0
Pr(Ck |Kj)hj (26)
と見積もられる.ここでベイズの定理及び
Pr(X |Ck) ∼=∏
xi∈X
Pr(xi |Ck)
∼=J−1∏j=0
Pr(Kj |Ck)hj (27)
という仮定を適用している.式 (26)の意味は,xi をク
ラスタ Kj のセントロイド kj に量子化し,kj の近傍
のクラス確率 Pr(Ck |kj) を kj の属するボロノイ領
域の平均のクラス確率 Pr(Ck |Kj) で代用し,これを
学習用画像を使って見積もり,Naive Bayesによる識
別を行うということである.すなわちこれは簡略算法
で,より厳密には xi の近傍のクラス確率 Pr(Ck |xi)
を見積もることにより行える.これには k 最近傍密度
推定が適用でき,高速な k-NN技術が重要である.
また,Pr(Ck |Kj) を計算する場合でも,ヒストグ
233
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
表 1 SIFT データでの探索時間(上:ANN,下:DC-ANN,単位 ms,括弧内は倍率)
Table 1 Search time for SIFT data (above: ANN,
below: DC-ANN, units are ms, ratio of the
two in parentheses).
ラムの作成自体が最近傍探索問題そのものであり,ク
ラスタ数が多くなれば高速化は重要である.高精度の
物体認識のために大量の画像を学習させるアプローチ
が研究されているが,学習の特徴点数が多くなるほど
空間内の特徴点は密になり,クラス確率 Pr(Ck |Kj)
を見積もる領域は小さくする必要がある.すなわち学
習量に呼応してクラスタ数を増やしていく必要がある
(例えば 14 万枚の画像を学習させた実験ではコード
ブック 20 万のとき良い結果になったと報告されてい
る [22]).
また BoVWにおいて,機械学習における確率の推
定値を平滑化する考え方により,ヒストグラムを作成
する場合に xi から 1位最近傍へのクラスタのみをカ
ウントするのではなく周辺の k 個のクラスタへも加算
する方法も有効であると思われる.この場合も k > 1
である近似 k-NNが重要となる.
本実験では,Caltech101 [15] の “Background” を
除くカテゴリー 100 個のそれぞれイメージ No.0001
から 0009をプロトタイプ用,No.0010をクエリ用に
用いた.画像から SIFT特徴量を算出するプログラム
は Rob Hessのものを使用した [16].この結果,プロ
トタイプは 132,253個,クエリは 14,674個となった.
そして,[0, 255]128 のベクトルを 3. 5で述べた方法に
より S128 に埋め込んだ.本実験では α = 1.0 とした.
また Kmax = 129 とした.k = 1,10,100とし,探
索精度が 0.9,0.99,0.999となる場合について探索時
間を比較した.
表 1に示すとおり k = 1 かつ精度 0.9の場合を除い
た全てで DC-ANNが ANNより優位となった.また,
k を大きくし,探索精度を高くするほど DC-ANNが
優位となることが分かる.
表 2 DC-ANN の探索時必要メモリ(MByte)Table 2 Required memory size of DC-ANN at
run-time. (MByte)
ただし,人工データでの実験と比較すると ANNに
対する DC-ANNの優位性はやや弱くなっている.そ
の原因の一つとしては �d から Sd への埋込による
オーバヘッドや誤差による影響は否定できない.
もう一つの原因はデータ分布が人工データの場合と
は質的に異なる可能性である.そこで,データの分布
の次元を分析する方法の一つである相関積分法(GP
法)[17]で分析したところ,近傍の数が平均で 1から
50,000 までの範囲で見積もられた次元は 7.5 程度と
なった.したがって,SIFT データはかなり偏りのあ
る分布で,実質的に低い次元の空間で探索処理を行っ
ていると考えられる.
とはいえ,このような �d の現実データの探索にお
いて,提案手法は Sd への変換を経由しても,高精度
(99~99.9%以上)の探索において高速であり,複数の
最近傍が必要な場合にも,既存手法よりも優位性があ
ることが確認できた.
メモリ使用量に関しては DC-ANNは ANNよりも
多くのメモリを必要とする.今回実装したプログラ
ムにおける探索時の必要メモリサイズを表 2 に示す.
ANN のメモリサイズは約 130MByte であるのに対
して,DC-ANNでは探索精度を上げていくと必要メ
モリサイズは限りなく増大する.しかしながら精度
= 0.999,k = 100 の場合でも高々1.2 GByteであり,
現実的な実行に全く問題はない.
4. 4 探索パラメータと探索精度の見積り
まず 3. 7の議論を検証する.実験全体を通じて,人
工・現実データのいずれでも log θ と log(1− δ1/L) の
関係は線形となることが確認できた.また A,B はほ
ぼ定数であるが L に依存して若干変化することが観
察できた.例として図 6に 20次元,分布偏りありの
場合のグラフを示す.この観察から,少ない回数の予
備計測と線形補間をすることにより L,θ,δ の関係
が決定できることが分かる.
次に,実際に得られた式 (21)の係数 a1,b1,a2,b2
を使って L,θ を指定したとき見積もられる探索誤差
234
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
図 6 log θ と log(1 − δ1/L) の関係(上),L と A,B
の関係(中・下)
Fig. 6 Relation between log θ and log(1 − δ1/L)
(above), Relation between L and A, B (mid-
dle, below).
が実際のものとどの程度のずれがあるかを検証する.
比較のためANNについても同様に検証する.ANN
において実行時に探索精度の指定をできるようにする
ためには,あらかじめ誤差パラメータ c と δ の関係
を求めておかなければならない.本論文では,いくつ
かの c について δ を計測して線形補間する方法を採
用する.
予備計測と,それにより得られた関係式によって見
積もられた探索誤差と実際の値とのずれの計測には,
いずれも実験データのテストセットを用いる.見積も
られた探索誤差を δest , 計測された探索誤差を δ とす
るとき,δest と δ との乖離の度合を次の式で定義する.
s =|δ − δest |√δ(1− δ)/N
(28)
ここで N はテストセットのデータ数である.式 (28)
の意味は,N 個のデータのうち探索成功するデータの
数は平均 N(1− δ) の 2項分布となり,確率変数 δest
と δ の標準偏差を√
δ(1− δ)/N と仮定したとき計
測値と推定値の差 |δ − δest | は δ の標準偏差の何倍で
あるかという尺度となる.また前述のとおり本実験に
おいて人工データでは N = 10,000,現実データでは
N = 14,674 である.ここでは δ = 0.01~0.30の範囲
全てで s < 2.0 となることを目標として,何回の予備
計測が必要となるかを調べた.なお,本実験は k = 1
の場合のみについて行った.
ANNでは,いずれのデータの場合も最低 4回の(適
切な)c における探索精度を計測すれば目標が達成で
きることが確認できた.
DC-ANN では,人工データの場合は 4~6 回の適
切な精度計測を行えば目標を達成できた.また,現実
データの場合は 10回の計測で目的が達成できること
が確認できた.余計な回数が必要となった理由は,次
元の埋込によるひずみが生じたためと考えられる.
しかしながら,結局,この実験に用いたデータにお
いては,適切な計測用データ数を用意し,適切な回数
の計測を行えば十分に正確な見積りが行えることが分
かる.そしてその回数はさほど多くはならないことが
確認できた.
4. 5 固定パラメータにおける空間計算量の考察
本節では固定パラメータの手法の空間計算量につい
て考察し,空間計算量に関して可変パラメータの優位
性を示す.
固定パラメータの近似最近傍探索手法を,探索時
に δ と k を指定できる (k, 1 − δ)-NN 手法として構
成するには,あらかじめ多数の δ,k に対応した探索
プログラムを作成しておけばよい.その場合,何種類
のプログラムが必要となるかが問題となる.
指定された候補数 k で平均的に誤差 δ で探索を実
行するプログラムを Pδ,k とする(議論の簡明さのた
めに,各 P に対する正確な δ が分かっているものと
仮定する).いくつかの Pδi(δ1 < δ2 < · · ·)があるとき,クエリに対して平均的な δ で探索を実行するに
は,δi ≤ δ < δi+1 に対して δ = αδi +(1−α)δi+1 で
ある α に対して確率 α で Pδi,1− α で Pδi+1 を実
行すればよい.このとき,一般にプログラム Pδ,k の
235
電子情報通信学会論文誌 2013/5 Vol. J96–A No. 5
平均実行時間を time(Pδ,k) とすると,
time(Pδ,k)≤α·time(Pδi,k)+(1−α)time(Pδi+1,k)
が成り立つ.
次に k の指定に対しては,k′-NN(k′ ≥ k)の探索
結果の上位 k 個を採用するプログラムが要求される誤
差 δ であるような Pδ′,k′ を実行すればよい.このとき
time(Pδ,k) ≤ time(Pδ′,k′)
が成り立つ.δ′ に関して Pδ′,k′ が存在しないときは前述
の方法を利用する.(Pδ,k に対して P1−(1−δ)k/(k−1),k−1
を利用することも考えられるが,実験データでは速度
的なメリットが認められない).
このことから,δ,k の種類を多くするほど任意の
δ,k に対する time(Pδ,k) を最良に近づけることがで
きることが分かる.例えば探索時間の増加を最良の場
合の 1 + ε 倍以下にするという条件を定めれば必要な
δ,k の個数が決まる.
既存の各手法に関して実行時間に関するデータをも
たないので実際にこれを求めることができない.そこ
で,一般に各手法で探索精度と探索時間の関係は同様
の曲線になると仮定して,提案手法で実験したデータ
で見積もることにする.大ざっぱではあるが傾向をつ
かむことができる.
4. 3の実験データに対して,δ = 0.01~0.3,k = 1~
100の範囲で,ε に対するプログラムの推定個数を表 3
に示す.固定パラメータによる手法で探索時間の増大
を抑えようとすると,多大な空間計算量を必要とする
ことが分かる.
次に,階層的ハッシュ関数を使用しない場合の LSH
のメモリサイズを考察する.
一般に LSH における探索時に指定するパラメータ
表 3 固定パラメータの手法を使った場合の必要な探索プログラムの推定数(δ = 0.01~0.3,k = 1~100 の範囲)
Table 3 Estimated number of required programs us-
ing stable parameter methods (δ = 0.01
∼0.3,k = 1∼100).
が K と L のみであるとすると,提案手法のように階
層的ハッシュ関数を用いなければ K の種類だけテー
ブルを用意する必要がある.あるいは,指定された θ
でテーブルを参照できるように θ の種類だけテーブル
を作成する方法も考えられる.もし図 4のデータ構造
を採用せず,K の数だけテーブルを用意した場合,メ
モリサイズは提案手法の約 59 倍になる.また,θ の
種類だけテーブルを用意した場合,控え目な試算でも
11.8倍以上になる.
したがって,階層的ハッシュ関数を用いることによ
り,探索時可変パラメータの探索において LSH のメ
モリサイズを大きく削減できることが分かる.
5. む す び
本論文では,局所鋭敏な階層的ハッシュ関数を用い
て,探索時に探索性能に関するパラメータを指定でき
る高次元球面空間の近似最近傍探索手法を提案した.
また,期待する探索精度と探索パラメータの関係を簡
単に推定できる方法を示した.また,探索時可変パラ
メータの手法は,固定パラメータの手法と比較して探
索時の空間計算量を大きく削減できることを確認した.
人工データと現実のデータを用意し,様々なデータ
分布,次元数,最近傍数の条件の下で探索性能を評価
した.少なくとも,階層が次元数の 1~1.5 倍以内と
なる分布のデータにおいて,可変パラメータの既存手
法に対する優位性を確認した.特に,探索精度が高い
ほど,そして,最近傍数が大きいほど提案手法の優位
性が顕著となることを確認した.
今後の課題は,更に探索性能の高いハッシュ関数を
考案し,時間,空間計算量の削減を図ることである.
文 献[1] P. Indyk and R. Motwani, “Approximate nearest
neighbors: Towards removing the curse of dimension-
ality,” Proc. 30th Symposium on Theory of Comput-
ing, 1998.
[2] M. Datar, N. Immorlica, P. Indyk, and V. Mirrokni,
“Locality-sensitive hashing scheme based on p-stable
distributions,” Proc. 20th ACM Symposium on Com-
putational Geometry, pp.253–262, 2004.
[3] A. Andoni and P. Indyk, “Near-optimal hashing algo-
rithms for approximate nearest neighbor in high di-
mensions,” Proc. 47th Annual IEEE Symposium on
Foundations of Computer Science, pp.459–468, 2006.
[4] S. Arya and D.M. Mount, “Approximate nearest
neighbor queries in fixed dimensions,” Proc. 4th Sym-
posium on Discrete Algorithms (SODA), pp.271–280,
1993.
236
論文/局所鋭敏な階層的ハッシュ関数を用いた探索時可変パラメータの高次元近似最近傍探索手法
[5] S. Har-Peled, “A replacement for Voronoi diagrams
of near linear size,” Proc. 42nd Annual symposium
on Foundations of Computer Science, 2001.
[6] J. Bentley, “Multidimensional binary search trees
used for associative searching,” Commun. ACM,
vol.18, no.9, pp.509–517, 1975.
[7] Y. Matsushita and T. Wada, “Principal component
hashing: An accelerated approximate nearest neigh-
bor search,” Proc. PSIVT 2009, pp.374–385, 2009.
[8] G. Shakhnarovich, T. Darrell, and P. Indyk (ed.),
Nearest neighbor methods in learning and vision:
Theory and practice, MIT Press, 2006.
[9] C. Silpa-Anan and R. Hartley, “Optimized KD-trees
for fast image descriptor matching,” Proc. CVPR
2008, pp.1–8, 2008.
[10] D. Nister and H. Stewenius, “Scalable recognition
with a vocabulary tree,” Proc. CVPR2006, pp.2161–
2168, 2006.
[11] M. Muja and D.G. Lowe, “Fast approximate nearest
neighbors with automatic algorithm configuration,”
Proc. International Conference on Computer Vision
Theory and Applications, 2009.
[12] 小林卓夫,中川正樹,“分散コーディングによる高次元の最近傍探索,” 信学技報,PRMU2006-41, 2006.
[13] ANN — Approximate Nearest Neighbor Library
http://www.cs.umd.edu/∼mount/ANN/
[14] D.G. Lowe, “Distinctive image features from scale-
invariant keypoints,” International Journal of Com-
puter Vision, vol.60, no.2, pp.91–110, 2004.
[15] Caltech101 http://www.vision.caltech.edu/
Image Datasets/Caltech101/
[16] Rob Hess - SIFT Library
http://blogs.oregonstate.edu/hess/code/sift/
[17] P. Grassberger and I. Procaccia, “Measuring the
strangeness of strange attractors,” Physica, vol.9D,
pp.189–208, 1983.
[18] 黄瀬浩一,岩村雅一,中居友弘,野口和人,“局所特徴量のハッシングによる大規模画像検索,” 日本データベース学会論文誌,vol.8, no.1, pp.119–124, 2009.
[19] 小林卓夫,中川正樹,“線形時間学習及び定数時間識別の一パターン識別手法,” 信学論(A),vol.J89-A, no.11,
pp.981–992, Nov. 2006.
[20] G. Csurka, C. Bray, C. Dance, and L. Fan, “Visual
categorization with bags of keypoints,” Proc. ECCV
Workshop on Statistical Learning in Computer Vi-
sion, pp.1–22, 2004.
[21] 小林卓夫,清水郁子,“大きなカテゴリー集合のクラスタリングのためのカテゴリー間距離の定義,” 画像の認識・理解シンポジウム(MIRU2009),pp.902–907, July 2009.
[22] 秋山瑞樹,柳井啓司,“特定物体認識手法による大量画像を用いた一般物体認識,” 画像の認識・理解シンポジウム(MIRU2010),pp.1348–1355, 2010.
[23] 小林卓夫,データベース生成装置,データ分析装置およびデータベース検索装置,特許出願 2004-49833, 2004.
[24] 小林卓夫,パターン認識方法及び装置及び辞書作成方法,
特許第 2937729, 1999.
[25] T. Kobayashi and I. Shimizu, “Fast density esti-
mation for approximated k nearest neighbor clas-
sification,” Proc. 12th International Conference on
Frontiers in Handwriting Recognition (ICFHR 2010),
Nov. 2010.
[26] M.S. Charikar, “Similarity estimation techniques
from rounding algorithms,” Proc. 34th Annual ACM
Symposium on Theory of Computing, 2002.
[27] H.S. Baird and M.R. Casey, “Towards versatile doc-
ument analysis systems,” Proc. 7th IAPR Workshop
on Document Analysis Systems, pp.280–290, Nelson,
New Zealand, Feb. 2006.
[28] K. Clarkson, “An algorithm for approximate closest-
point queries,” Proc. Tenth Annual ACM Symposium
on Computational Geometry, pp.160–164, 1994.
[29] J. Kleinberg, “Two algorithms for nearest-neighbor
search in high dimensions,” Proc. 29th Annual ACM
Symposium on Theory of Computing, 1997.
(平成 24 年 4 月 28 日受付,10 月 14 日再受付)
小林 卓夫 (正員)
1988埼玉大・理卒.企業に勤務中,2003
東京農工大学大学院博士後期課程社会人入学.2006 単位取得退学.2008 博士(工学).同年から 2011まで,東京農工大学工学府特任助教.パターン認識の研究に従事.
清水 郁子 (正員)
1994東大・工・計数卒.1999同大大学院工学系研究科計数工学専攻博士課程了.博士(工学).同年埼玉大学工学部助手,2004
東京農工大学大学院講師,現在に至る.コンピュータビジョンの研究に従事.計測自動制御学会,IEEE-CS 等会員.
中川 正樹 (正員:フェロー)
1977 東大・理・物理卒.1979 同大大学院理学系研究科修士課程了.在学中,英国Essex 大学留学(M.Sc. with distinction
in Computer Studies).1999東京農工大学助手.現在,教授.理博.オンライン手書き認識,手書きインタフェース等の研究
に従事.
237