JP4086376B2 - データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 - Google Patents
データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 Download PDFInfo
- Publication number
- JP4086376B2 JP4086376B2 JP27765698A JP27765698A JP4086376B2 JP 4086376 B2 JP4086376 B2 JP 4086376B2 JP 27765698 A JP27765698 A JP 27765698A JP 27765698 A JP27765698 A JP 27765698A JP 4086376 B2 JP4086376 B2 JP 4086376B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- component
- distance
- selection
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、ベクトル形式のデータの処理に関し、特に、入力ベクトルとの距離に基づいてデータベースより所定数のデータを抽出するデータ処理装置及びその方法に関するものである。
【0002】
【従来の技術】
ベクトルで表現されたデータ間の類似度として距離が広く用いられている。例えば文字認識や音声認識システムでは、サンプリングされたデータを適当な基底で張られた特徴量空間に写像し、ベクトル表現されたデータをプロトタイプとして記憶しておく。新たに入力されたデータとプロトタイプとの距離を計算し、入力データを最も近いプロトタイプに対応するクラスに属するものとして同定する。
【0003】
最も効率の悪い計算方法は全数探索であり、その計算量はベクトルの次元とプロトタイプ数の積のオーダーになる。
【0004】
距離の計算量が決定的な障害として認識されるのは、データベース検索においてである。近年のコンピュータ処理能力の飛躍的発達によってデータベースは文書データのみならず、画像や音声といった非テクストデータをも蓄積できるようになった。これら非テクストデータを従来のキーワードで検索するためにはキーワードを付与しなければならない。キーワード付与の手間を避けたいなら特徴量ベクトルによる類似検索を行わなければならない。
【0005】
また文書データを検索する場合でも、より柔軟な検索を可能にするために文書をベクトルで表現し、このベクトルに基づく類似検索を行うアルゴリズムも実現されている。このとき前記計算量が検索システム実現の本質的問題となる。通常のデータベースに格納されるデータ件数は数十万件を超える。従ってベクトルの次元数が1個増加する度に計算量が数十万増加するという絶望的な状況になる。
【0006】
このような状況を回避するためには、ベクトルの次元を減らすか、計算するデータ数を減らすしかない。前者はデータの表現空間の次元を減らすことに等しいので、データ検索に必要な情報がベクトルの成分として十分表現されない可能性がある。後者は、検索結果として要求されているデータ数がデータの総数に比べて十分小さいときに意味のある方法論である。k-NN探索で取り扱う問題はこの種のものであり、いくつかの有効な方法が提案されている。
【0007】
k-NN探索は、システムに記憶されているプロトタイプの集合から、テストベクトルに近いk 個を探索し、それらのクラスを基に、テストベクトルのクラスを同定するための方法である。このような場合、テストベクトルに近いk 個のプロトタイプを如何に高速に見つけることができるかが重要な課題の1つである。このような要求はデータベース検索においても存在する。
【0008】
検索ユーザーは、データベースに格納されている大量のデータのうち、自分が指定した検索キーに近いいくつかのデータだけが欲しいのであって、他のデータの、ましてや距離の値などに何の価値も見出さない。検索ユーザーのこのような要求に応えるための技術は、k-NN探索の高速アルゴリズムの目的と一致する。
【0009】
プロトタイプの集合からテストベクトルに近いk 個を抽出する場合、探索の計算量を軽減するために、予めプロトタイプの集合を構造化しておくのが一般的である。構造化の際にデータの性質を反映させればさせるほど、探索の計算量の軽減が期待できる。
【0010】
例えばプロトタイプを階層的に構造化する場合では、プロトタイプが表現されているN 次元ベクトル空間を分割するという操作を再帰的に繰り返すことによって達成される。空間を分割管理するときに用いられる境界が超平面であるものをK-D-B Tree 〔文献1〕、矩形領域で分割する方法をR-Tree 〔文献2〕、超球で分割する方法をSS-Tree 〔文献3〕、矩形と超球との組み合わせで空間を分割する方法をSR-Tree 〔文献4〕という。更にN 次元ベクトル空間をプロトタイプの分布の共分散行列に関する固有ベクトルで張られる空間に変換し直しておけば、探索の計算量に対して、より効果的な構造化が期待できる〔文献5,6〕。
【0011】
しかしこれらの方法はデータ構造化のための計算量と記憶容量がベクトルの次元数の増加に対して指数関数的に増大してしまい、高次元ベクトルで表現されているデータへの応用が事実上制限されてしまう可能性がある。
〔文献1〕JT. Robinson: "The K-D-B Tree: A Search Structure for Large Multidimensional Dynamic Indexes," Proc. on ACM SIGMOD, pp.10-18, 1981.
〔文献2〕A. Guttman: "R-trees: A dynamic index structure for spatial searching," Proc. ACM SIGMOD, Boston, USA, pp.47-57, Jun. 1984.
〔文献3〕DA. White and R. Jain: "Similarity indexing with the SS-tree," Proc. of the 12th Int. Conf. on Data Engineering, New Orleans, USA, pp.323-331, Feb. 1996.
〔文献4〕片山,佐藤: "SR-Tree:高次元点データに対する最近接検索のためのインデクス構造の提案," 信学論(D-I), vol.18-D-I, no.8, pp.703-717, Aug. 1997.
〔文献5〕RF. Sproull: "Refinemants to Nearest Neighbor Searching in k-Dimensional Trees," Algorithmica, 6, pp.579-589, 1991.
〔文献6〕DA. White and R. Jain: "Similarity Indexing: Algorithms and Performance," Proc. on SPIE, pp.62-73, 1996.
【0012】
一方、統計的性質を利用しない" 緩い" 構造化と、少し“賢い”探索アルゴリズムによって計算量の軽減を達成しているアルゴリズムもある。そのうち最も基本的なもののひとつが射影アルゴリズムと呼ばれるFriedmanらのアルゴリズムである〔文献7〕。
〔文献7〕JH. Friedman, F. Baskett, and LJ. Shustek: "An Algorithm for Finding Nearest Neighbors," IEEE Trans. on Computers, pp.1000-1006, Oct. 1975.
【0013】
射影アルゴリズムで前処理として要求されるデータの構造化は、ベクトルの各成分毎のソーティングであり、位相に基づく構造化である。つまり、プロトタイプがd次元ベクトルのときは、d個のソーティング・リストが生成されることになる。
【0014】
この処理により、昇順に並べられたj 成分値を格納したリストVjと、対応するプロトタイプID番号を格納したリストIjの2種類が、ベクトルの次元数だけ得られる。即ち、Vjの先頭からn+1 番目の値Vj(n+1) はn 番目の値Vj(n) 以上である。また、Ij(n) をID番号とするプロトタイプYIj(n)のj 成分値YIj(n)(j) がVj(n) と一致する。
【0015】
プロトタイプ集合からテストベクトルX に最も近いもの1 組を抽出するための射影アルゴリズムの原理を図10を用いて説明する。探索は、適当な基準で選択された1個のソーティング・リストVmとImに沿って行われる。これは、図中、m を選択したことに対応している。Imは成分値によってソーティングされたデータ番号が格納されているので、リスト上での並びがm 軸上での位相を正確に反映している。まずテストベクトルX のm 成分X(m)に最も近い値をVmから探す。これをVm(j) とする。これに対応するプロトタイプはYIm(j)である。図ではYIm(j)がY1である。Y1はm 成分に関してX に最も近いが、全空間での距離が最も近いとは限らない。
【0016】
さて次に、X とY1との距離ρ(X,Y1)を計算する。すると、m 成分の値が開区間( X(m) - ρ(X,Y1), X(m) + ρ(X,Y1) )( 図中A の領域)に属するプロトタイプのみが、Y1よりX に近い可能性があり、探索の対象として意味があることがわかる。図10の例では、m 成分に関して次に近いプロトタイプY2を検査することによって、探索対象となるプロトタイプの集合が更に( X(m) - ρ(X,Y2), X(m) + ρ(X,Y2) )( 図中B の領域)に制限される。このように1 次元部分空間での成分値をもとに、探索の対象となるプロトタイプ集合を小さくしていくことによって、計算量の軽減を図っているのが射影アルゴリズムである。
【0017】
【発明が解決しようとする課題】
Friedmanらの射影アルゴリズムは、ベクトルの次元の増加と共に性能が低下することが報告されている〔文献7〕。プロトタイプ数に対して、実際に距離を計算したプロトタイプ数の期待値の割合を相対効率ηと呼べば、1000個のプロトタイプ集合から1個の最近傍系を取り出す課題において、2次元ベクトルのときη= 0.03であるのに対して、9次元ベクトルではη= 0.6 にまで低下している。
【0018】
集合から取り出したプロトタイプ数をNEXT、距離計算を行ったプロトタイプ数をNgとすると、距離計算を行うかどうかを判定する処理の計算量はO(NEXT) 、距離計算のための計算量はO(dNg)となる。NgがNEXTに近付くにつれ、処理のオーバーヘッドが加算されるので、9次元ベクトルに対する実際の計算時間は、全数探索より悪くなってしまう可能性がある。
【0019】
射影アルゴリズムが高次元ベクトルに適用できないということから、Neneらは非常に単純で効果的なアルゴリズムを考案した〔文献8〕。Searching by Slicingと呼ばれるその方法は、テストベクトルのj 番目の成分X(j)を中心に前後εの閉区間〔X(j) - ε, X(j) +ε〕に属するプロトタイプのみを探索結果の候補として残していくという方法である。各成分を独立に評価するこの方法では、その性能は明らかにεに依存する。彼らはεの決定法を提案しているが、それらは確率的であり高次元ベクトルには効果的でない。
〔文献8〕SA. Nene and SK. Nayar: "A Simple Algorithm for Nearest Neighbor Search in High Dimensions," IEEE Trans. on PAMI, vol.19, no.9, pp.989-1003, Sept. 1997.
【0020】
【課題を解決するための手段】
上記課題を解決するために、本発明は、データ処理装置に、所定の複数次元のベクトル形式のデータの集合を記憶したデータベースと、該データベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成手段と、前記複数次元のベクトル形式のテストデータを入力する入力手段と、前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択手段と、該成分選択手段により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択手段と、該データ選択手段により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算手段と、該距離計算手段により計算された距離の小さい順に所定数のデータを抽出する抽出手段と、前記データ選択手段により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択手段によるデータの選択を続行するか終了するかを判定する終了判定手段と、前記データ選択手段により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算手段により全空間における距離を計算するか否かを制御する距離計算制御手段とを備える。
【0021】
また、他の態様によれば、所定の複数次元のベクトル形式のデータの集合を記憶したデータベースと、リスト作成手段と、入力手段と、成分選択手段と、データ選択手段と、距離計算手段と、抽出手段と、終了判定手段と、距離計算制御手段とを備えたデータ処理装置において実行されるデータ処理方法に、前記リスト作成手段が、前記データベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成工程と、前記入力手段が、前記複数次元のベクトル形式のテストデータを入力する入力工程と、前記成分選択手段が、前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択工程と、前記データ選択手段が、該成分選択工程により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択工程と、前記距離計算手段が、該データ選択工程により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算工程と、前記抽出手段が、該距離計算工程により計算された距離の小さい順に所定数のデータを抽出する抽出工程と、前記終了判定手段が、前記データ選択工程により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択工程によるデータの選択を続行するか終了するかを判定する終了判定工程と、前記距離計算制御手段が、前記データ選択工程により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算工程により全空間における距離を計算するか否かを制御する距離計算制御工程とを備える。
【0022】
また、本発明の他の態様によれば、コンピュータ読み取り可能な記憶媒体に、所定の複数次元のベクトル形式のデータの集合を記憶したデータベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成工程と、前記複数次元のベクトル形式のテストデータを入力する入力工程と、前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択工程と、該成分選択工程により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択工程と、該データ選択工程により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算工程と、該距離計算工程により計算された距離の小さい順に所定数のデータを抽出する抽出工程と、前記データ選択工程により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択工程によるデータの選択を続行するか終了するかを判定する終了判定工程と、前記データ選択工程により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算工程により全空間における距離を計算するか否かを制御する距離計算制御工程とをコンピュータに実行させるデータ処理プログラムを記憶したことを特徴とする。
【0023】
【発明の実施の形態】
本実施形態による高速計算アルゴリズムは、射影アルゴリズムを自然に高次元に拡張したものである。従って、プロトタイプ集合に対する" 硬い" 構造化や、予め設定すべきパラメタを必要としない汎用的なものである。
【0024】
Friedmanらのアルゴリズムでは、取り出したプロトタイプとテストベクトルとの距離を計算するかどうかを判定するのに、1 次元部分空間上に射影した差ベクトルのノルムの2 乗を利用していた。
【0025】
本実施形態で提案するアルゴリズムでは、この部分空間の次元を、判定の対象となっているプロトタイプが条件を満足するまで、適応的に増加させる。即ち、既に得られているk 近傍系の半径ξの2 乗よりも、m次元部分空間に射影されたテストベクトルとプロトタイプとの差ベクトルのノルムの2 乗が小さいときには、m+1次元空間での差ベクトルを計算しξ2 と比較する。このような処理を部分空間の次元が予め設定された値に一致するまで繰り返す。
【0026】
本提案アルゴリズムの有効性を検証するために、一様乱数に基づいて計算機で生成したプロトタイプ集合に対する実験を行った結果、ベクトルの次元の増加に依らず計算量の軽減を達成できることを確認した。
【0027】
まず、提案アルゴリズムの詳細を述べる前に、問題設定、語句と記号の定義を明らかにしておく。
【0028】
想定する問題は、d 次元ベクトルとして表現されたN 個のプロトタイプYjの集合をΩとする:
Ω = { Y1, Y2, …, YN }, Yj∈Rd
このとき、適当に与えられたテストベクトルX ∈Rdに、計量ρ(X,Yj)に関して近いk 個のプロトタイプをΩから抽出する。ただしユークリッド距離は差ベクトルの2 乗ノルムとして定義され、従って空間は直交基底で張られていることを前提としている:
【0029】
【外1】
ここで、テストベクトルX 、プロトタイプYjのk 成分値をそれぞれX(k)、Yj(k) 表記した。
【0030】
図1は、本発明の1 実施形態であるデータ処理装置の機能構成を表す図である。入出力部101は、受信装置やキーボード等の入力部と、送信装置や表示装置等の出力部とを備える。
【0031】
例えばスタンドアロンのコンピュータの場合は、入出力部101はキーボードと表示装置から成り、キーボードから入力された入力データを距離計算部102へ送信し、距離計算部102から送信されたデータを表示装置に出力する。
【0032】
或いは、通信回線に接続されている通信端末の場合は、入出力部101は送受信を行なう通信制御装置から成り、通信回線を介して入力された入力データを距離計算部102に送信し、距離計算部102から送信されたデータを通信回線を介して指定されたアドレスに送信する。
【0033】
また、距離計算部102は、CPUがROMやディスクメモリ等に記憶された各機能プログラム(フローチャートにつき後述する処理手順に対応するプログラムを含む)を実行することにより実現され、計算結果や処理により生成される各種データを記憶するためのRAMなどのメモリを備える。
【0034】
データベース103には、d 次元ベクトルで表現されたN 個のプロトタイプの集合が格納されており、距離計算部102によってアクセスされる。
【0035】
距離計算部102の処理を図2 を用いて説明する。
【0036】
ステップS201で入出力部101から入力があったかどうかを検査し、なければステップS201を繰り返し、あればステップS202へ進む。ステップS202では、入力データがデータベース103のデータを更新するものかどうかを検査し、そうであればステップS203へ、そうでなければステップS204へ進む。ステップS203では、後述する前処理を実行し、それが終了したらステップS201へ進む。ステップS204では該入力データが計算処理のものかどうかを検査し、そうであればステップS205へ、そうでなければステップS201へ進む。ステップS205では、後述する検索処理を実行し、それが終了したらステップS201へ進む。
【0037】
図8を用いてステップS203で実行される前処理について説明する。
【0038】
前処理では、プロトタイプ集合の各成分値に関するソーティング・リストを作成する。この処理で、昇順に並べられたj 成分値を格納したリストVjと、対応するプロトタイプID番号を格納したリストIjという2種類のリストが、ベクトルの次元数だけ得られる。ステップS801でn を1に設定する。ステップS802で、N 個のプロトタイプそれぞれについて、n 成分値とID番号のペアを作成する。即ち:
{ (Y1(n), 1), (Y2(n), 2), ... , (YN(n),N) }
【0039】
ステップS803で上記ペアの集合をn 成分値の昇順に並べ替える。
【0040】
{ (YIn(1)(n), In(1)), (YIn(2)(n), In(2)), ... , (YIn(N)(n), In(N)) }
【0041】
以下、成分値の並びとID番号の並びを別々にリストX 、I とする:
Vn={ YIn(1)(n), YIn(2)(n), ... , YIn(N)(n) } (2)
In={ In(1), In(2), ... , In(N) } (3)
【0042】
ステップS804ではn をインクレメントし、ベクトルの次元dを超えていたら処理を終了し、そうでなければステップS802へ進む。
【0043】
2 種類のリストの関係は次のとおりである。Vjの先頭からn+1 番目の値Vj(n+1) はn 番目の値Vj(n) 以上である。また、Ij(n) をID番号とするプロトタイプYIj(n)のj 成分値YIj(n)(j) がVj(n) と一致する。
【0044】
次に図3を用いてステップS205で実行される検索処理を説明する。
【0045】
検索処理の入力として、検索のためのベクトルX (以下テストベクトルと呼ぶ)と、検索結果として要求されているプロトタイプの個数k が与えられている。
【0046】
ステップS301ではベクトル空間の基底のインデクスリストを作成する。これは後述する終了条件や棄却条件を適用する基底の順序を定めるリストであり、例えば、テストベクトルX の成分値の絶対値の大きい順に対応するリストである:
Λ = { λ1, λ1, ..., λd} (4)
また小さいほうからL 個の集合をΛL と書く:
ΛL = { λd-L+1, λd-L+2, ..., λd} (5)
【0047】
ステップS302ではPTR 及び関連する変数の初期化処理を実行する。この処理を図4 を用いて説明する。
【0048】
ステップS401でm をλ1 に設定する。ステップS402でm 成分値のソーティング・リストVmを取得する。ステップS403ではテストベクトルのm 成分値X(m)に最も近い値をVmから探索し、その位置をPTR に格納する。即ち:
|Vm(PTR) - X(m)|≦|Vm(j) - X(m)|, ∀j ∈ {1, 2, ..., N}
関連する変数は以下のように初期化する:
PTRL = PTR - 1, BNDL = 0, CALL = 0
PTRH = PTR + 1, BNDH = 0, CALH = 0
【0049】
ステップS303ではk 個の近傍集合の初期化を行う。この処理を図5を用いて説明する。
【0050】
ステップS501では近傍集合N0(X) を空集合に初期化する。ステップS502ではt 1に設定する。ステップS503では、図6 を用いて後述するPTR の更新を行う。ステップS504ではID番号Im(PTR) のプロトタイプYIm(PTR)とテストベクトルX との距離の2乗ρ(X,YIm(PTR))2 を計算する:
【0051】
【外2】
【0052】
ステップS505では近傍集合Nt-1(X) にプロトタイプのIDと距離の自乗とを追加する:
Nt(X) = Nt-1(X) + {(Im(PTR), ρ(X, YIm(PTR))2)}
【0053】
ステップS506でt をインクレメントし、k を超えればステップS507へ、そうでなければステップS503へ進む。
【0054】
ステップS507では近傍集合のなかでρ(X, YIm(PTR))2の最大値をξt-1 、またそれに対応するID番号をIMAX,t-1として記憶する。
【0055】
ステップS304ではt をk に設定する。ステップS305ではPTR の更新を実行する。この処理を図6を用いて説明する。
【0056】
ステップS601ではPTRLが1未満かどうかを検査し、そうであればステップS602へ、そうでなければステップS603へ進む。ステップS602では以下の処理を実行する:
BNDL = 1, DxL = ∞
【0057】
ステップS603ではPTRHがN を超えるかどうかを検査し、そうであればステップS604へ、そうでなければステップS605へ進む。ステップS604では以下の処理を実行する:
BNDH = 1, DxH = ∞
【0058】
ステップS605ではBNDLとBNDHの積が1かどうかを検査し、そうであれば検索処理を終了し、そうでなければステップS606へ進む。
【0059】
ステップS606ではBNDL+CALLが0かどうかを検査し、そうであればステップS607へ、そうでなければステップS608へ進む。ステップS607では以下の処理を実行する:
DxL = (Vm(PTRL)−X(m))2
CALL = 1
【0060】
ステップS608ではBNDH+CALHが0かどうかを検査しそうであればステップS609へ、そうでなければステップS610へ進む。ステップS609では以下の処理を実行する:
DxH = (Vm(PTRH)−X(m))2
CALH = 1
【0061】
ステップS610では、DxLがDxH より小さければステップS611へ、そうでなければステップS612へ進む。
【0062】
ステップS611では以下の処理を実行し、図3 の検索処理のステップS306へ戻る:
Dx=DxL, PTR=PTRL, CALL = 0
【0063】
ステップS612では以下の処理を実行し、図3 の検索処理のステップS306へ戻る:
Dx=DxH, PTR=PTRH, CALH = 0
【0064】
PTR の更新処理では、PTR と関連する変数の値を変更し、終了条件が満足されれば、図3 に示した検索処理そのものを終了する。ステップS306では次式の終了条件を満足したかどうかを検査し満足すれば検索処理を終了し、そうでなければステップS307へ進む。
【0065】
Dx ≧ ξt-1 (8)
【0066】
ステップS307からステップS309のステップで、棄却条件を満足するかどうかを検査する。ステップS307ではm に2を設定する。
【0067】
ステップS308では次式の処理を実行する:
n = Im(PTR)
j = λm
Dx ← Dx + (Yn(j)-X(j))2
上式で選られるDxはm 次元部分空間におけるYnの距離の2 乗である。
【0068】
次式の棄却条件を満足したかどうかを検査し、満足したらステップS311へ、そうでなければステップS309へ進む:
Dx ≧ ξt-1 (9)
【0069】
ステップS309ではm をインクレメントし、その結果がg を超えたらステップS310へ、そうでなければステップS308へ進む。
【0070】
ステップS310では図7 につき後述する距離計算を実行しステップS311へ進む。ステップS311ではt をインクレメントし、その結果がN を超えたら処理を終了し、そうでなければステップS305へ進む。
【0071】
ステップS310で実行する距離計算を図7 を用いて説明する。
【0072】
ステップS701ではj をg+1 に設定する。ステップS702ではs をλj に設定する。ステップS703では以下の処理を実行する:
Dx ← Dx + (Yn(s)-X(s))2
ただしn = Im(PTR) である。
【0073】
ステップS704ではj をインクレメントし、その結果がベクトルの次元d を超えたらステップS705へ、そうでなければステップS703へ進む。ステップS705ではDxがξt-1 より小さければステップS706へ、そうでなければ処理を終了する。
【0074】
ステップS706とステップS707で近傍集合の更新を行う。ステップS706では、近傍集合からξt-1 に対応するID番号と距離の2 乗のペアを削除する:
Nt(X) ←Nt-1(X) - { (IMAX,t-1,ξt-1) }
【0075】
ステップS707では以下の処理を実行し図3のステップS310へ戻る:
Nt(X) ←Nt-1(X) + { (Im(PTR),Dx) }
【0076】
ステップS305、ステップS306或いはステップS310で終了したときの、Nt(X) が検索結果として出力される。
【0077】
以上説明した実施形態による効果を計算機実験によって検証する。
【0078】
〔計算機実験〕
本発明の有効性を検証するために検索結果として要求されるプロトタイプ数k=10個、プロトタイプ数N=1000,10000 個に対して探索の計算機実験を行った。以下の項目が実験パラメタである:
・ベクトルの次元:d = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }
実験で確認することは以下の項目である:
・ベクトルの次元の増加に伴う計算量の変化
・プロトタイプ数N に対する計算量の変化
実験に使用した計算機の諸元は以下のとおりである:
・シリコングラフィクス社製 O2
・CPU: MIPS R10000, Rev2.6(174 MHz)
・メインメモリ: 128 MB
・OS: IRIX Release 6.3
尚、プログラム言語はCを用いた。
【0079】
〔実験手順〕
(1) 一様乱数を用いて、d 次元ベクトルN 個より成るプロトタイプ集合を生成する。
(2) 一様乱数を用いて、d 次元のテストベクトルを1 個、生成する。
(3) 全数探索を行う。
(4) 提案アルゴリズムによる探索を行う。
【0080】
上記4つの手順を100 回繰り返し、相対CPU 時間の平均値を計算した。ここで、相対CPU 時間 = (提案アルゴリズムのCPU 時間)/( 全数探索のCPU 時間) である。
【0081】
〔高次元ベクトルに対する性能〕
ベクトルの次元数の増加に対する性能の改善を、比較的低次元、小さい集合で確認したので、次に高次元ベクトルで表現されたプロトタイプの、より大規模な集合に対するk-NN探索における性能を検証した。
【0082】
実験結果を図9に示す。図中、ベクトルの次元(dimensionarity)を横軸、相対CPU 時間 (CPU time ratio) ηT を縦軸、プロトタイプ数N をパラメタとして示した。
【0083】
図9よりプロトタイプ数N に関わらず、ベクトルの次元の増加に伴って相対CPU時間が1次のオーダーで増加していることがわかる。しかしN=10000 個のときの傾きは非常に小さい。このときの相対CPU 時間の値は、10次元で1%、90次元でも7%と、高次元でも非常に小さい値を示している。実際、90次元ベクトル10000 個から最近接プロトタイプ10個を取り出す探索処理では、全数探索3.7(sec)に対して、提案方式では0.26(sec) で終了した。
【0084】
尚、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【0085】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているOSなどの処理により、上述の機能を実現される場合も含まれる。
【0086】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0087】
【発明の効果】
以上説明したように、本発明によれば、与えられたベクトル形式のデータとの距離に基づいて、ベクトル形式のデータ集合から所定数のデータを高速に抽出することができる。これにより、例えば画像などのデータベースの検索を高速に行なうことができる。
【図面の簡単な説明】
【図1】実施形態の情報処理装置の機能構成図である。
【図2】距離計算部の処理手順を示すフローチャートである。
【図3】検索処理手順を示すフローチャートである。
【図4】ポインタの初期化処理手順を示すフローチャートである。
【図5】近傍集合の初期化処理手順を示すフローチャートである。
【図6】ポインタの更新処理手順を示すフローチャートである。
【図7】距離計算の処理手順を示すフローチャートである。
【図8】前処理手順を示すフローチャートである。
【図9】計算機実験の結果を示す図である。
【図10】射影アルゴリズムの原理を示す図である。
Claims (11)
- 所定の複数次元のベクトル形式のデータの集合を記憶したデータベースと、
該データベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成手段と、
前記複数次元のベクトル形式のテストデータを入力する入力手段と、
前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択手段と、
該成分選択手段により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択手段と、
該データ選択手段により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算手段と、
該距離計算手段により計算された距離の小さい順に所定数のデータを抽出する抽出手段と、
前記データ選択手段により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択手段によるデータの選択を続行するか終了するかを判定する終了判定手段と、
前記データ選択手段により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算手段により全空間における距離を計算するか否かを制御する距離計算制御手段とを備えたことを特徴とするデータ処理装置。 - 前記リスト作成手段は、各成分について、前記データベースの各データの当該成分の値を、当該値の順に並べたリストと、前記各データの識別子を前記値の順に並べたリストとを作成することを特徴とする請求項1に記載のデータ処理装置。
- 前記抽出手段が、
前記所定数のデータと該所定数のデータと前記テストデータとの距離の二乗の最大値とを記憶するデータ記憶手段と、
前記距離計算手段により新たに距離が計算されたデータの距離の二乗が前記最大値より小さい場合に、当該データを前記最大値に対応するデータに代えて前記データ記憶手段に追加し、最大値を更新する記憶制御手段とを有することを特徴とする請求項1に記載のデータ処理装置。 - 前記終了判定手段が、前記1つの成分値の差の二乗が前記最大値以上である場合に、終了すると判定することを特徴とする請求項3に記載のデータ処理装置。
- 前記距離計算制御手段が、前記部分空間における距離の二乗が前記最大値以上である場合に、全空間における距離の計算を不実施とするように制御することを特徴とする請求項3に記載のデータ処理装置。
- 所定の複数次元のベクトル形式のデータの集合を記憶したデータベースと、リスト作成手段と、入力手段と、成分選択手段と、データ選択手段と、距離計算手段と、抽出手段と、終了判定手段と、距離計算制御手段とを備えたデータ処理装置において実行されるデータ処理方法であって、
前記リスト作成手段が、前記データベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成工程と、
前記入力手段が、前記複数次元のベクトル形式のテストデータを入力する入力工程と、
前記成分選択手段が、前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択工程と、
前記データ選択手段が、該成分選択工程により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択工程と、
前記距離計算手段が、該データ選択工程により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算工程と、
前記抽出手段が、該距離計算工程により計算された距離の小さい順に所定数のデータを抽出する抽出工程と、
前記終了判定手段が、前記データ選択工程により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択工程によるデータの選択を続行するか終了するかを判定する終了判定工程と、
前記距離計算制御手段が、前記データ選択工程により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算工程により全空間における距離を計算するか否かを制御する距離計算制御工程とを備えたことを特徴とするデータ処理方法。 - 前記リスト作成工程において、前記リスト作成手段が、各成分について、前記データベースの各データの当該成分の値を、当該値の順に並べたリストと、前記各データの識別子を前記値の順に並べたリストとを作成することを特徴とする請求項6に記載のデータ処理方法。
- 前記抽出工程は、
前記抽出手段が、前記所定数のデータと該所定数のデータと前記テストデータとの距離の二乗の最大値とをデータ記憶部に記憶するデータ記憶工程と、
前記抽出手段が、前記距離計算工程により新たに距離が計算されたデータの距離の二乗が前記最大値より小さい場合に、当該データを前記最大値に対応するデータに代えて前記データ記憶部に追加し、最大値を更新する記憶制御工程とを有することを特徴とする請求項6に記載のデータ処理方法。 - 前記終了判定工程では、前記終了判定手段が、前記1つの成分値の差の二乗が前記最大値以上である場合に、終了すると判定することを特徴とする請求項8に記載のデータ処理方法。
- 前記距離計算制御工程では、前記距離計算手段が、前記部分空間における距離の二乗が前記最大値以上である場合に、全空間における距離の計算を不実施とするように制御することを特徴とする請求項8に記載のデータ処理方法。
- 所定の複数次元のベクトル形式のデータの集合を記憶したデータベースのデータをベクトルの1成分の値の順に並べたデータのリストを各成分について作成するリスト作成工程と、
前記複数次元のベクトル形式のテストデータを入力する入力工程と、
前記複数次元のベクトル形式における1つの成分を、前記テストデータの各成分値の絶対値の大きい順に順次選択する成分選択工程と、
該成分選択工程により選択された1つの成分につき、前記リストから前記テストデータと成分値の差の小さい順に順次データを選択するデータ選択工程と、
該データ選択工程により選択されたデータと前記テストデータとの全空間における距離を計算する距離計算工程と、
該距離計算工程により計算された距離の小さい順に所定数のデータを抽出する抽出工程と、
前記データ選択工程により選択された1つのデータと前記テストデータとの1つの成分値の差に基づいて、前記データ選択工程によるデータの選択を続行するか終了するかを判定する終了判定工程と、
前記データ選択工程により選択されたデータと前記テストデータとの部分空間における距離に基づいて、前記距離計算工程により全空間における距離を計算するか否かを制御する距離計算制御工程とをコンピュータに実行させるデータ処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27765698A JP4086376B2 (ja) | 1998-09-30 | 1998-09-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
US09/406,696 US6578031B1 (en) | 1998-09-30 | 1999-09-28 | Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27765698A JP4086376B2 (ja) | 1998-09-30 | 1998-09-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000112943A JP2000112943A (ja) | 2000-04-21 |
JP4086376B2 true JP4086376B2 (ja) | 2008-05-14 |
Family
ID=17586475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27765698A Expired - Fee Related JP4086376B2 (ja) | 1998-09-30 | 1998-09-30 | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4086376B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3023306U (ja) * | 1995-09-28 | 1996-04-16 | 株式会社無限オートセールス | 車載用周波数帯域変換装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003330941A (ja) * | 2002-05-08 | 2003-11-21 | Olympus Optical Co Ltd | 類似画像分類装置 |
-
1998
- 1998-09-30 JP JP27765698A patent/JP4086376B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3023306U (ja) * | 1995-09-28 | 1996-04-16 | 株式会社無限オートセールス | 車載用周波数帯域変換装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2000112943A (ja) | 2000-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Harish et al. | Representation and classification of text documents: A brief review | |
Jain et al. | Online metric learning and fast similarity search | |
US7111002B2 (en) | Relevance maximizing, iteration minimizing, relevance-feedback, content-based image retrieval (CBIR) | |
Mezaris et al. | Region-based image retrieval using an object ontology and relevance feedback | |
Fasulo | An analysis of recent work on clustering algorithms | |
Wilson et al. | Instance pruning techniques | |
Padmaja et al. | Comparative study of feature subset selection methods for dimensionality reduction on scientific data | |
US5710916A (en) | Method and apparatus for similarity matching of handwritten data objects | |
JP2018205937A (ja) | 画像検索装置及びプログラム | |
JP3903610B2 (ja) | 検索装置、検索方法及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Wang et al. | A new SVM-based relevance feedback image retrieval using probabilistic feature and weighted kernel function | |
US6578031B1 (en) | Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector | |
JP5094830B2 (ja) | 画像検索装置、画像検索方法及びプログラム | |
Xiao et al. | Motion retrieval using weighted graph matching | |
KR102225586B1 (ko) | 양의 정부호 행렬 위에서의 리만 서브 매니폴드 프레임워크를 이용한 로그 유클리디안 메트릭 러닝 장치 및 방법 | |
Aggarwal | Instance-Based Learning: A Survey. | |
Eghbali et al. | Online nearest neighbor search using hamming weight trees | |
JP3903613B2 (ja) | 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Heisterkamp et al. | Adaptive quasiconformal kernel metric for image retrieval | |
JP4194680B2 (ja) | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 | |
JP4086376B2 (ja) | データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
Zobeidi et al. | Effective text classification using multi-level fuzzy neural network | |
US20230259761A1 (en) | Transfer learning system and method for deep neural network | |
Yong-feng et al. | Comparison of text categorization algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071228 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080219 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |