JP2002318818A - データ処理装置及びその方法、及びそのプログラム - Google Patents

データ処理装置及びその方法、及びそのプログラム

Info

Publication number
JP2002318818A
JP2002318818A JP2001122755A JP2001122755A JP2002318818A JP 2002318818 A JP2002318818 A JP 2002318818A JP 2001122755 A JP2001122755 A JP 2001122755A JP 2001122755 A JP2001122755 A JP 2001122755A JP 2002318818 A JP2002318818 A JP 2002318818A
Authority
JP
Japan
Prior art keywords
similarity
prototype
test vector
vector
data processing
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.)
Withdrawn
Application number
JP2001122755A
Other languages
English (en)
Inventor
Teruyoshi Washisawa
輝芳 鷲澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2001122755A priority Critical patent/JP2002318818A/ja
Publication of JP2002318818A publication Critical patent/JP2002318818A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 与えられたベクトルデータに対して内積を基
にした類似度によるデータ検索が高速に実行できるよう
にする。 【解決手段】 プロトタイプとなるベクトルの各成分に
対するソーティング・リストを作成しておき、テストベ
クトルX及び−Xのm成分値に最も近い値をリストから探
索し、それぞれの位置をPTR+及びPTR-に格納する(S30
3)。k個の近傍集合の初期化を行い(S304)、PTRと関連す
る変数を更新する(S306)。順次プロトタイプYtを取り出
し、判定処理によって、類似度が今までの最小値より大
きければ、最小値に対応するプロトタイプとYtを入れ替
え、近傍集合及び最小値を更新する(S308〜311)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データの検索また
は認識を行なうデータ処理装置に関し、特にベクトルで
表現されたデータ間の内積を基にした類似度によってデ
ータを検索もしくは認識する装置に関するものである。
【0002】
【従来の技術】ベクトルで表現されたデータ間の類似度
として内積が広く用いられている。例えば文字認識や音
声認識システムでは、サンプリングされたデータを適当
な基底で張られた特徴量空間に写像し、ベクトル表現さ
れたデータをプロトタイプとして記憶しておく。新たに
入力されたデータとプロトタイプとの内積を計算し、入
力データを最も近いプロトタイプに対応するクラスに属
するものとして同定する。最も効率の悪い計算方法は全
数探索であり、その計算量はベクトルの次元とプロトタ
イプ数の積のオーダーになる。
【0003】内積の計算量が決定的な障害として認識さ
れるのは、データベース検索においてである。近年のコ
ンピュータ処理能力の飛躍的発達によってデータベース
は文書データのみならず、画像や音声といった非テクス
トデータをも蓄積できるようになった。これら非テクス
トデータを従来のキーワードで検索するためにはキーワ
ードを付与しなければならない。キーワード付与の手間
を避けたいなら特徴量ベクトルによる類似検索を行わな
ければならない。
【0004】また文書データを検索する場合でも、より
柔軟な検索を可能にするために文書をベクトルで表現
し、このベクトルに基づく類似検索を行うアルゴリズム
も実現されている。このとき前記計算量が検索システム
実現の本質的問題となる。通常のデータベースに格納さ
れるデータ件数は数十万件を超える。従ってベクトルの
次元数が1個増加する度に計算量が数十万増加するとい
う絶望的な状況になる。このような状況を回避するため
には、ベクトルの次元を減らすか、計算するデータ数を
減らすしかない。
【0005】前者はデータの表現空間の次元を減らすこ
とに等しいので、データ検索に必要な情報がベクトルの
成分として十分表現されない可能性がある。後者は、検
索結果として要求されているデータ数がデータの総数に
比べて十分小さいときに意味のある方法論である。k-NN
探索で取り扱う問題はこの種のものであり、いくつかの
有効な方法が提案されている。
【0006】k-NN探索は、システムに記憶されているプ
ロトタイプの集合から、テストベクトルに近いk個を探
索し、それらのクラスを基に、テストベクトルのクラス
を同定するための方法である。このような場合、テスト
ベクトルに近いk個のプロトタイプを如何に高速に見つ
けることができるかが重要な課題の1つである。このよ
うな要求はデータベース検索においても存在する。検索
ユーザーは、データベースに格納されている大量のデー
タのうち、自分が指定した検索キーに近いいくつかのデ
ータだけが欲しいのであって、他のデータの、ましてや
内積の値などに何の価値も見出さない。検索ユーザーの
このような要求に応えるための技術は、k-NN探索の高速
アルゴリズムの目的と一致する。
【0007】プロトタイプの集合からテストベクトルに
近いk個を抽出する場合、探索の計算量を軽減するため
に予めプロトタイプの集合を構造化しておくのが一般的
である。構造化の際にデータの性質を反映させればさせ
るほど、探索の計算量の軽減が期待できる。例えばプロ
トタイプを階層的に構造化する場合では、プロトタイプ
が表現されているN次元ベクトル空間を分割するという
操作を再帰的に繰り返すことによって達成される。
【0008】空間を分割管理するときに用いられる境界
が超平面であるものをK-D-B Tree〔文献1〕、矩形領域
で分割する方法をR-Tree 〔文献2〕、超球で分割する
方法をSS-Tree 〔文献3〕、矩形と超球との組み合わせ
で空間を分割する方法をSR-Tree 〔文献4〕という。更
にN次元ベクトル空間をプロトタイプの分布の共分散行
列に関する固有ベクトルで張られる空間に変換し直して
おけば、探索の計算量に対して、より効果的な構造化が
期待できる〔文献5,6〕。
【0009】しかしこれらの方法はデータ構造化のため
の計算量と記憶容量がベクトルの次元数の増加に対して
指数関数的に増大してしまい、高次元ベクトルで表現さ
れているデータへの応用が事実上制限されてしまう可能
性がある。更に、致命的なことに、内積に基づく類似度
は、テストベクトルが与えられなければ計算できない。
従って、類似度を内積で定義した場合、このようなデー
タの構造化が利用できない。
【0010】〔文献1〕JT. Robinson: ”The K-D-B
Tree: A Search Structure forLarge Multidime
nsional Dynamic Indexes,” Proc. On ACM SIGM
OD,pp.10-18, 1981. 〔文献2〕A. Guttman: “R-trees: A dynamic ind
ex structure for spatial searching,” Proc.
ACM SIGMOD, Boston, USA, pp.47-57, Jun.1984. 〔文献3〕DA. White and R. Jain: “Similarity i
ndexing with the SS-tree,” Proc. Of the 12
th Int. Conf. On Data Engineering, NewOrlean
s, 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 Neares
t Neighbor Searchingin k-Dimensional Trees,”
Algorithmica, 6, pp.579-589, 991. 〔文献6〕DA. Hite and R. Jain: “Similarity
Indexing: Algorithmsand Performance,” Proc.
On SPIE, pp.62-73, 1996.
【0011】一方、統計的性質を利用しない”緩い”構
造化と、少し”賢い”探索アルゴリズムによって計算量
の軽減を達成しているアルゴリズムもある。この種のア
ルゴリズムが、内積に基づく類似検索に対して取り得る
唯一の戦略である。そのうち最も基本的なもののひとつ
が射影アルゴリズムと呼ばれる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. 射影アルゴリズムで前処理として要求されるデータの構
造化は、ベクトルの各成分毎のソーティングであり、位
相に基づく構造化である。つまり、プロトタイプがd次
元ベクトルのときは、d個のソーティング・リストが生
成されることになる。
【0012】この処理で、昇順に並べられた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)と一致す
る。
【0013】プロトタイプ集合からテストベクトルXに
最も近いもの1組を抽出するための射影アルゴリズムの
原理を図13を用いて説明する。探索は、適当な基準で
選択された1個のソーティング・リストVmとImに沿って
行われる。これは、図中、m軸を選択したことに対応し
ている。Imは成分値によってソーティングされたデータ
番号が格納されているので、リスト上での並びがm軸上
での位相を正確に反映している。まずテストベクトルX
のm成分X(m)に最も近い値をVmから探す。これをVm(j)と
する。これに対応するプロトタイプはYIm(j)である。図
ではYIm(j)がY1である。Y1はm成分に関してXに最も近い
が、全空間での距離が最も近いとは限らない。
【0014】さて次に、XとY1との距離ρ(X,Y1)を計算
する。すると、m成分の値が開区間(X(m)ρ(X,Y1),X(m)+
ρ(X,Y1))(図中の開区間A)に属するプロトタイプのみ
が、Y 1よりXに近い可能性があり、探索の対象として意
味があることがわかる。図の例では、m成分に関して次
に近いプロトタイプY2を検査することによって、探索対
象となるプロトタイプの集合が更に(X(m)ρ(X,Y2),X(m)
+ρ(X,Y2))(図中の開区間B)に制限される。このよう
に1次元部分空間での成分値をもとに、探索の対象とな
るプロトタイプ集合を小さくしていくことによって、計
算量の軽減を図っているのが射影アルゴリズムである。
【0015】
【発明が解決しようとする課題】上述したFriedmanらの
射影アルゴリズムは、距離に基づく類似検索のための方
法であって、内積の絶対値、あるいは二乗に基づく類似
検索のためには適用できなかった。
【0016】
【課題を解決するための手段】上述した課題を解決する
ために、本発明によれば、多次元ベクトルで記述された
プロトタイプ集合から、与えられた第1のテストベクト
ルに類似する所定個のプロトタイプを検索結果として抽
出するデータ処理装置に、前記多次元ベクトルの各成分
につき、前記プロトタイプ集合の各プロトタイプの識別
子と成分値とを成分値の順に並べたリストを作成し、各
プロトタイプのノルムの2乗を計算する前処理手段と、
前記第1のテストベクトルから第2のテストベクトルを
生成するテストベクトル生成手段と、前記リスト及び前
記各プロトタイプのノルムの2乗と、第1及び第2のテ
ストベクトルとを用いて、当該第1のテストベクトルと
各プロトタイプとの内積の絶対値に基づく類似度を計算
する類似度計算手段と、前記類似度の値に基づく省略条
件の判断により、以後の処理を省略する省略制御手段
と、前記類似度の値に基づいて検索結果を更新する更新
手段とを備える。
【0017】また、本発明の他の態様によれば、多次元
ベクトルで記述されたプロトタイプ集合から、与えられ
た第1のテストベクトルに類似する所定個のプロトタイ
プを検索結果として抽出するデータ処理方法に、前記多
次元ベクトルの各成分につき、前記プロトタイプ集合の
各プロトタイプの識別子と成分値とを成分値の順に並べ
たリストを作成し、各プロトタイプのノルムの2乗を計
算する前処理工程と、前記第1のテストベクトルから第
2のテストベクトルを生成するテストベクトル生成工程
と、前記リスト及び前記各プロトタイプのノルムの2乗
と、第1及び第2のテストベクトルとを用いて、当該第
1のテストベクトルと各プロトタイプとの内積の絶対値
に基づく類似度を計算する類似度計算工程と、前記類似
度の値に基づく省略条件の判断により、以後の処理を省
略する省略制御工程と、前記類似度の値に基づいて検索
結果を更新する更新工程とを備える。
【0018】更に、本発明の他の態様によれば、多次元
ベクトルで記述されたプロトタイプ集合から、与えら得
れた第1のテストベクトルに類似する所定個のプロトタ
イプを検索結果として抽出するデータ処理プログラムに
より、前記多次元ベクトルの各成分につき、前記プロト
タイプ集合の各プロトタイプの識別子と成分値とを成分
値の順に並べたリストを作成し、各プロトタイプのノル
ムの2乗を計算する前処理工程と、前記第1のテストベ
クトルから第2のテストベクトルを生成するテストベク
トル生成工程と、前記リスト及び前記各プロトタイプの
ノルムの2乗と、第1及び第2のテストベクトルとを用
いて、当該第1のテストベクトルと各プロトタイプとの
内積の絶対値に基づく類似度を計算する類似度計算工程
と、前記類似度の値に基づく省略条件の判断により、以
後の処理を省略する省略制御工程と、前記類似度の値に
基づいて検索結果を更新する更新工程とをコンピュータ
に実行させる。
【0019】
【発明の実施の形態】<第1の実施形態>本実施形態で
は、内積と距離との関係式を導出し、内積の高速計算法
として、射影アルゴリズムを利用した。更に、絶対値を
評価するために、与えられたテストベクトルに対する内
積と、テストベクトルと逆方向のベクトルに対する内積
とを評価した。従って、プロトタイプ集合に対する”硬
い”構造化や、予め設定すべきパラメタを必要としない
汎用的なものである。
【0020】本実施形態のアルゴリズムの詳細を述べる
前に、問題設定、語句と記号の定義を明らかにしてお
く。
【0021】想定する問題は、d次元ベクトルとして表
現されたN個のプロトタイプYjの集合をΩとする: Ω={Y1,Y2,・・・,YN},Yj∈Rd このとき、適当に与えられたテストベクトルX∈ Rdに、
計量ρG(X,Yj)の絶対値に関して大きいk個のプロトタイ
プをΩから抽出する。ただし計量ρG(X,Yj)は内積とし
て定義される:
【0022】
【外1】 ここで、テストベクトルX、プロトタイプYjのk成分値を
それぞれX(k)、Yj(k)と表記した。
【0023】本実施形態の特徴は、計量ρG (X,Yj)と同
じ位相を与える関数として、後述するδ(Z,Yj)を採用し
たことである。ρG (X,Yj)の絶対値の大きい順にプロト
タイプを抽出するということは、ρG (X,Yj)とρG (-X,
Yj)の大きい順にプロトタイプを評価することに等し
い。即ち、ρG (X,Yj)が小さくてもρG (-X,Yj)が大き
ければ、Yjは内積の絶対値が大きい。
【0024】ρG(X,Yj)及びρG(-X,Yj)は以下のような2
段階の処理に分割できる: Z=GX ρG(X,Yj)=XTGY=(GX)TY=ZTY=ρ(Z,Yj) ρG(-X,Yj)=-XTGY=-(GX)TY=-ZTY=ρ(-Z,Yj) ここでρ(Z,Yj)及びρ(-Z,Yj)は正規直交系における内
積である。一方、ZとYjとの距離の2乗を展開して次式
を得る: ‖Z-Yj2=(Z-Yj)T(Z-Yj)=‖Z‖2+‖Yj2-2ρ(Z,Yj) 上式を更に変形して次式を得る: 2ρ(Z,Yj)-‖Z‖2=‖Yj2-‖Z-Yj2 上式の右辺(或いは左辺)を新たな関数δ(X,Yj)として定
義する: δ(Z,Yj)=‖Yj2-‖Z-Yj2 同様に δ(-Z,Yj)=‖Yj2-‖Z+Yj2 今、k個のプロトタイプと、それらのテストベクトルXと
の内積の絶対値が与えられているとする。これら内積の
絶対値のうち、最小値をξとする。このk個が、現時点
での最近接点であるとする。
【0025】新たに与えられたプロトタイプYjとXとの
内積の絶対値がξよりも小さいか等しければ、プロトタ
イプYjは、k個の全てのプロトタイプよりも、内積の絶
対値が小さいか等しいので、k個の最近傍点で有り得な
いことが保証される。即ち、次式を満足するかどうかで
判定できる: (ξ≧δ(Z,Yj))∧(ξ≧δ(-Z,Yj)) (2) このようにして、最近傍点集合を更新することが出来
る。一方、δ(Z,Yj)の定義式の右辺第2項に関して以下
の不等式が成立する: ‖Z-Yj2≧‖P(Z-Yj)‖2 ただし、Pは部分空間への直交射影作用素である。従っ
て δ(Z,Yj)≦‖Yj2-‖P(Z-Yj)‖2 (3) 同様に δ(-Z,Yj)≦‖Yj2-‖P(Z+Yj)‖2 (4) 判定条件(2)式は、(3)及び(4)式を用いて以下のように
書き換えられる: (ξ≧‖Yj2-‖P(Z-Yj)‖2)∧(ξ≧‖Yj2-‖P(Z+Yj)‖2) (5) 例えば、ベクトルのm成分に関する差と和の二乗‖Z(m)-
Yj(m)‖2と‖Z(m)+Yj(m)‖2を計算して、(5)式の判定
条件を満たせば、Yjが最近傍点に含まれないことがわか
る。
【0026】(5)式での評価は、(2)式を利用するより
も、計算量の点で効果的である。実際、(2)式を評価す
るための計算量を概算してみると、右辺第1項は、予め
計算できるから、考慮する必要はない。第2項は、ベク
トルの次元数分の乗算と加算が必要になる。一方(5)式
の評価には、部分空間の次元数分の乗算と加算で十分で
ある。よって、(5)式が成立する部分空間の次元が小さ
ければ小さいほど、計算量の軽減が期待出来る。
【0027】以下、図面を用いて本発明の1実施形態を
詳細に説明する。
【0028】〔実施形態1〕図1に本実施形態のデータ
検索装置の構成を示す。入出力装置101は、通信回線
やキーボード等の検索データやコマンドを入力する手段
と、通信制御手段や表示装置等の検索結果を出力する手
段を備える。例えばスタンドアロンのコンピュータの場
合は、該入出力装置101はキーボードと表示装置から
成り、キーボードから入力された入力データを内積計算
装置102へ送信し、内積計算装置102から送信され
たデータを表示装置に出力する。
【0029】一方、通信回線に接続されている通信端末
の場合は、該入出力装置は通信制御装置から成り、通信
回線を介して入力された入力データを類似度計算装置1
02に送信し、類似度計算装置102から受信したデー
タを通信回線を介して指定されたアドレスに送信する。
データベース103には、d次元ベクトルで表現されたN
個のプロトタイプの集合が格納されており、類似度計算
装置102によってアクセスされる。
【0030】<類似度計算装置102>次に、類似度計
算装置102の処理手順を図2のフローチャートを用い
て説明する。
【0031】まず、ステップS201で入出力装置101か
ら入力があったかどうかを検査し、なければステップS2
01を繰り返し、あればステップS202へ進む。ステップS2
02では、入力データがデータベースのデータを更新する
ものかどうかを検査し、そうであればステップS203へ、
そうでなければステップS204へ進む。ステップS203で
は、後述する前処理を実行し、それが終了したらステッ
プS201へ進む。ステップS204では該入力データが計算処
理のものかどうかを検査し、そうであればステップS205
へ、そうでなければステップS201へ進む。ステップS205
では、後述する検索処理を実行し、それが終了したらス
テップS201へ進む。
【0032】図9を用いてステップS203で実行される前
処理について説明する。
【0033】前処理では、プロトタイプ集合に属するプ
ロトタイプのノルムの2乗と、各成分値に関するソーテ
ィング・リストを作成する。前者はプロトタイプYjのノ
ルムの2乗‖Yj2を計算して記憶しておくだけなの
で、以下では後者の処理を説明する。この処理で、昇順
に並べられたj成分値を格納したリストVjと、対応する
プロトタイプID番号を格納したリストIjという2種類の
リストが、ベクトルの次元数だけ得られる。
【0034】ステップS801でnを1に設定する。ステッ
プS802で、N個のプロトタイプそれぞれについて、n成分
値とID番号のペアを作成する。即ち: {(Y1(n),n),(Y2(n),n), ・・・,(YN(n),N)} ステップS803で上記ペアをn成分値の昇順に並べ替え
る。
【0035】{(YIn(1)(n),In(1)),(YIn(2)(n),In(2)),
・・・ ,(YIn(N)(n),In(N))} 以下、成分値の並びとID番号の並びを別々にリストVn、
Inとする: Vn={YIn(1)(n),YIn(2)(n), ・・・ ,YIn(N)(n)} (6) In={In(1),In(2), ・・・ ,In(N)} (7) ステップS804ではnをインクレメントし、ベクトルの次
元dを超えていたら処理を終了し、そうでなければステ
ップS802へ進む。2種類のリストの関係は次のとおりで
ある。Vjの先頭からn+1番目の値Vj(n+1)はn番目の値V
j(n)以上である。また、Ij(n)をID番号とするプロトタ
イプYIj(n)のj成分値YIj(n)(j)がVj(n)と一致する。
【0036】今度は図3を用いてステップS205で実行さ
れる検索処理を説明する。検索処理の入力として、検索
のためのベクトルX(以下テストベクトルと呼ぶ)と、
計量テンソルG、検索結果として要求されているプロト
タイプの個数kが与えられている。
【0037】ステップS301ではテストベクトルに計量テ
ンソルを左から乗じてベクトルZを得る: Z=GX ステップS302ではベクトル空間の基底のインデクスリス
トを作成する。これは後述する棄却条件を適用する基底
の順序を定めるリストであり、例えば、テストベクトル
Xの成分値の絶対値の大きい順に対応するリストであ
る: Λ={λ12,・・・,λd} (8) また小さいほうからL個の集合をΛLと書く: ΛL={λd-L+1d-L+2,・・・,λd} (9) 更にmをλ1に設定する。
【0038】ステップS303ではPTR及び関連する変数の
初期化処理を実行する。この処理を図4を用いて説明す
る。
【0039】ステップS401でm成分値のソーティング・
リストVmを取得する。ステップS402ではテストベクトル
のm成分値X(m)に最も近い値をVmから探索し、その位置
をPTR +に格納する。即ち: |Vm(PTR+)X(m)|≦|Vm(j)X(m)|,∀j∈{1,2,・・・,N} 同様に、-X(m)に最も近い値をVmから探索し、その位置
をPTR-に格納する。即ち: |Vm(PTR-)+X(m)|≦|Vm(j)+X(m)|,∀j∈{1,2,・・・,N} ステップS403では、関連する変数は以下のように初期化
する: PTR+ L=PTR+ 1,BND+ L=0,CAL+ L=0 PTR+ H=PTR+ + 1,BND+ H=0,CAL+ H=0 PTR- L=PTR- 1,BND- L=0,CAL- L=0 PTR- H=PTR-,BND- H=0,CAL- H=0 PTR=PTR+ ステップS304ではk個の近傍集合の初期化を行う。この
処理を図5を用いて説明する。
【0040】ステップS501では近傍集合N0(X)を空集合
に初期化する。ステップS502ではtを1に設定する。ス
テップS503では、図6を用いて後述するPTRの更新を行
う。ステップS504ではID番号Im(PTR)のプロトタイプY
Im(PTR)とΔsを計算する: s=Im(PTR) Δs=2|ρ(Z,Yj)| ただし上式の右辺第1項は前処理で計算されているの
で、記憶装置からの読み出しだけで良い。
【0041】ステップS505では近傍集合Nt-1(X)にID番
号とΔsの値とを追加する: Nt(X)=Nt-1(X) + {(s,Δs)} ステップS506でtをインクレメントし、kを超えればステ
ップS507へ進み、そうでなければステップS503へ戻る。
【0042】ステップS507では近傍集合のなかでΔs
最小値をξt-1、またそれに対応するID番号sをτt-1
して記憶する。以上でステップS304の近傍集合の初期化
を終了する。
【0043】ステップS305ではtをk+1に設定する。ステ
ップS306ではPTRの更新を実行する。この処理を図6、
7を用いて説明する。
【0044】ステップS601ではBND- L が0かつPTR- L
0かどうかを検査し、そうであればステップS602へ、そ
うでなければステップS603へ進む。ステップS602では以
下の処理を実行する: BND- L=1,Dx- L=∞ ステップS603ではBND- Hが0かつPTR- HがPTR+ Hと等しい
かどうかを検査し、そうであればステップS604へ、そう
でなければステップS605へ進む。ステップS604では以下
の処理を実行する: BND- H = 1,Dx- H=∞ ステップS605ではBND+ Lが0かつPTR+ LがPTR-Hより小さ
いどうかを検査し、そうであればステップS606へ、そう
でなければステップS607へ進む。ステップS606では以下
の処理を実行する: BND- H=1,Dx- H=∞ BND+ L=1,Dx+ L=∞ ステップS607ではBND+ Hが0かつPTR+ HがN2以上かどうか
を検査し、そうであればステップS608へ、そうでなけれ
ばステップS609へ進む。ステップS608では以下の処理を
実行する: BND+ H=1,Dx+ H=∞ ステップS609ではBND- LとBND- H及びBND+ LとBND+ Hの4個
の数の積が1かどうかを検査し、そうであれば検索処理
を終了し、そうでなければステップS610へ進む。
【0045】ステップS610ではBND- L+CAL- Lが1かどう
かを検査し、そうであればステップS611へ、そうでなけ
ればステップS612へ進む。ステップS611では以下の処理
を実行する: Dx- L=|Vm(PTR- L)-Z(m)| CAL- L=1 ステップS612ではBND- H+CAL- Hが1かどうかを検査し、
そうであればステップS613へ、そうでなければステップ
S614へ進む。ステップS613では以下の処理を実行する: Dx- H=|Vm(PTR- H)-Z(m)| CAL- H=1 ステップS614ではBND+ L+CAL+ Lが1かどうかを検査し、
そうであればステップS615へ、そうでなければステップ
S616へ進む。ステップS615では以下の処理を実行する: Dx+ L=zVm(PTR+ L)-Z(m)| CAL+ L=1 ステップS616ではBND+ H+CAL+ Hが1かどうかを検査し、
そうであればステップS617へ、そうでなければステップ
S618へ進む。ステップS617では以下の処理を実行する: Dx+ H=|Vm(PTR+ H)-Z(m)| CAL+ H=1 ステップS618ではDx- LがDx- H、Dx+ L、Dx+ Hのいずれより
も小さければステップS619へ、そうでなければステップ
S620へ進む。
【0046】ステップS619では以下の処理を実行し、ス
テップS306のPTRの更新を終了する: Dx=Dx- L,PTR=PTR- L,CAL- L=0 ステップS620ではDx- HがDx- L、Dx+ L、Dx+ Hのいずれより
も小さければステップS621へ、そうでなければステップ
S622へ進む。
【0047】ステップS621では以下の処理を実行し、ス
テップS306のPTRの更新を終了する: Dx=Dx- H,PTR=PTR- H,CAL- H=0 ステップS622ではDx+ LがDx- L、Dx- H、Dx+ Hのいずれより
も小さければステップS623へ、そうでなければステップ
S624へ進む。
【0048】ステップS623では以下の処理を実行し、ス
テップS306のPTRの更新を終了する: Dx=Dx+ L,PTR=PTR+ L,CAL+ L=0 ステップS624では以下の処理を実行し、ステップS306の
PTRの更新を終了する: Dx=Dx+ H,PTR=PTR+ H,CAL+ H=0 PTRの更新処理では、PTRと関連する変数の値を変更し、
条件が満足されれば、図3に示した検索処理そのものを
終了する。
【0049】ステップS307では、次式でρ+及びρ-を計
算する: ρ+=‖Ys‖-‖Z‖ ρ-=‖Ys‖-‖Z‖ ステップS308では、図8につき後述する判定処理によっ
て(5)式を評価する。
【0050】ステップS309では、ステップS308で行った
処理の戻り値がFALSEかどうかを判定し、FALSEならステ
ップS310へ、そうでなければステップS312へ進む。
【0051】ステップS310では、近傍集合からξt-1
対応する要素を削除し、現在処理中のプロトタイプを追
加する: Nt(X)←Nt-1(X){(τt-1t-1)}+{(Im(PTR),Dx)} ステップS311では、Nt(X)の要素のうちのDxの最小値を
ξtに、そのID番号をτ tに格納し、ステップS313へ進
む。
【0052】ステップS312では次式を実行し、ステップ
S313へ進む: ξt=ξt-1 τt=τt-1 ステップS313ではtをインクレメントし、その結果がNを
超えたら処理を終了し、そうでなければステップS306へ
進む。
【0053】ステップS308の判定処理で実行する関数計
算を図8を用いて説明する。
【0054】ステップS701ではjを1に設定する。ステッ
プS702では以下の処理を実行する: ρ+=ρ+-(Ys(λj)-X(λj))2 ρ-=ρ--(Ys(λj)+X(λj))2 Dx←Dx-(Ys(λj)-X(λj))2 ステップS703では次式を判定し、満足したら戻り値にTR
UEを設定して処理を終了し、そうでなければステップS7
04へ進む。ステップS704では、jをインクレメントし、
その結果がベクトルの次元dを超えたら、戻り値にFALSE
を設定して処理を終了し、そうでなければステップS702
へ戻る。
【0055】ステップS313で終了したときの、Nt(X)が
検索結果として出力される。
【0056】以上説明した実施形態による効果を計算機
実験によって検証する。
【0057】〔計算機実験〕上述した実施形態の有効性
を検証するために、検索結果として要求されるプロトタ
イプ数k=10個、プロトタイプ数N=10000個に対して探
索の計算機実験を行った。以下の項目が実験パラメタで
ある: ・ベクトルの次元:d={10から100まで、10きざみ} 実験に使用した計算機の諸元は以下のとおりである: ・CPU:PentiumIII,(500MHz) ・メインメモリ:128MB ・OS:Linux-2.0.36 尚、プログラム言語はCを用いた。
【0058】〔実験手順〕 (1) 一様乱数を用いて、d次元ベクトルN個より成るプロ
トタイプ集合を生成する。 (2) 一様乱数を用いて、d次元 ベクトル空間の計量テン
ソルを1個、生成する。 (3) 一様乱数を用いて、d次元のテストベクトルを1
個、生成する。 (4) 全数探索を行う。 (5) 提案アルゴリズムによる探索を行う。
【0059】上記5つの手順を10回繰り返し、以下に示
す相対CPU時間の平均値を計算した。 相対CPU時間=(提案アルゴリズムのCPU時間)/(全数探索
のCPU時間) 実験結果を図10に示す。図中、ベクトルの次元(numbe
r of dimensions)を横軸、相対CPU時間(CPU time r
atio)を縦軸、プロトタイプ数Nをパラメタとして示し
た。
【0060】図よりプロトタイプ数Nに関わらず、ベク
トルの次元の増加に伴って相対CPU時間が1次のオー
ダーで増加していることがわかる。しかしN=10000個の
ときの傾きは非常に小さい。このときの相対CPU時間の
値は、10次元で2%、100次元でも18%と、高次元でも十分
小さい値を示している。
【0061】<実施形態2>上述した類似度計算を認識
装置に適用する場合について説明する。
【0062】図11は、本実施形態の認識装置の構成を
示す図である。データベース103には、d次元ベクト
ルで表現されたN個のプロトタイプの集合が格納されて
おり、認識対象となる各カテゴリに対してそれぞれ複数
のプロトタイプが存在する。その他は図1と同様であ
る。
【0063】データベース103に格納されるd次元ベ
クトルは、例えば顔認識の場合は、各人物(Aさん、Bさ
ん、・・・)の複数の角度、表情等における画像に、その
人物の情報を関係付けることによって、構成することが
出来る。このような場合、下記に述べる処理によって、
入力画像と近いk個の画像が選択され、それぞれに関係
付けられた人物番号の頻度を集計し、頻度の最も高い人
物を、画像に対応する人物であると特定することが出来
る。
【0064】また、類似度計算装置102の処理手順
は、実施形態1と同様に図2に従う。但し、ステップS2
04〜205では、検索処理は、検索を用いた認識処理とな
る。この認識処理について図12のフローチャートを用
いて説明する。
【0065】図12において、ステップS301〜313は、
図3と同一である。ステップS314では、近傍集合に属す
るID番号に関連付けられたクラス番号の頻度を計算す
る。ステップS315では、クラス番号の頻度の大きい順
に、ID番号を並べ替える。これにより、テストベクトル
が属する可能性が高い順にクラス候補が得られる。この
うち最も頻度の大きいクラスを認識結果として出力して
もよいし、頻度順に所定個あるいは全部のクラスを認識
候補として出力してもよい。
【0066】尚、本発明は、単一の機器からなる装置に
適用しても、複数の機器から構成されるシステムに適用
してもよい。また、上述した実施形態の機能を実現する
ソフトウェアのプログラムコードを記憶した記憶媒体
を、装置あるいはシステムに供給し、装置あるいはシス
テム内のコンピュータが記憶媒体に格納されたプログラ
ムコードを読み出して実行することによって達成しても
よい。
【0067】更に、装置あるいはシステム内のコンピュ
ータが記憶媒体に格納されたプログラムコードを読み出
して実行することによって、上述した実施形態の機能を
直接実現するばかりでなく、そのプログラムコードの指
示に基づいて、コンピュータ上で稼動しているOSなど
の処理により、上述の機能を実現される場合も含まれ
る。
【0068】これらの場合、そのプログラムコードを記
憶した記憶媒体は本発明を構成することになる。
【0069】
【発明の効果】以上説明したように、本発明によれば、
ベクトルの内積の絶対値に基づく類似度を、高速に計算
することができるので、この類似度に基づいて、与えら
れたベクトル表現されたデータに対して、類似データの
検索や属するクラスの認識を高速に実行することができ
るという効果がある。
【図面の簡単な説明】
【図1】本発明に係る一実施形態のデータ検索装置の構
成を示すブロック図である。
【図2】距離計算処理の手順を示すフローチャートであ
る。
【図3】検索処理の詳細手順を示すフローチャートであ
る。
【図4】PTRの初期化手順を示すフローチャートであ
る。
【図5】近傍集合の初期化手順を示すフローチャートで
ある。
【図6】PTRの更新手順を示すフローチャートである。
【図7】PTRの更新手順を示すフローチャートである。
【図8】判定処理の手順を示すフローチャートである。
【図9】前処理の手順を示すフローチャートである。
【図10】計算機実験の結果を示す図である。
【図11】認識装置の構成を示すブロック図である。
【図12】認識処理の詳細手順を示すフローチャートで
ある。
【図13】射影アルゴリズムを説明する図である。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 多次元ベクトルで記述されたプロトタイ
    プ集合から、与えられた第1のテストベクトルに類似す
    る所定個のプロトタイプを検索結果として抽出するデー
    タ処理装置であって、 前記多次元ベクトルの各成分につき、前記プロトタイプ
    集合の各プロトタイプの識別子と成分値とを成分値の順
    に並べたリストを作成し、各プロトタイプのノルムの2
    乗を計算する前処理手段と、 前記第1のテストベクトルから第2のテストベクトルを
    生成するテストベクトル生成手段と、 前記リスト及び前記各プロトタイプのノルムの2乗と、
    第1及び第2のテストベクトルとを用いて、当該第1の
    テストベクトルと各プロトタイプとの内積の絶対値に基
    づく類似度を計算する類似度計算手段と、 前記類似度の値に基づく省略条件の判断により、以後の
    処理を省略する省略制御手段と、 前記類似度の値に基づいて検索結果を更新する更新手段
    とを有することを特徴とするデータ処理装置。
  2. 【請求項2】 上記テストベクトル生成手段が、前記第
    2のテストベクトルとして、前記第1のテストベクトル
    とノルムが等しく方向が逆であるようなベクトルを生成
    することを特徴とする請求項1に記載のデータ処理装
    置。
  3. 【請求項3】 前記プロトタイプ及び第1のテストベク
    トルが表現されているベクトル空間の次元をdとする
    と、前記類似度計算手段は、まず1次元部分空間に対し
    て類似度を計算し、 前記省略制御手段が、当該1次元部分空間における類似
    度に基づく省略条件のを判断し、該省略条件を満足しな
    ければ、部分空間の次元を上げて類似度計算を行うよう
    に前記類似度計算手段を制御し、 前記更新手段は、部分空間の次元がdに達してもなお省
    略条件を満足しないときに、検索結果を更新することを
    特徴とする請求項1に記載のデータ処理装置。
  4. 【請求項4】 前記類似度計算手段が、プロトタイプの
    ノルムの2乗から第1のテストベクトルとプロトタイプ
    の差の2乗を減じたものと、プロトタイプのノルムの2
    乗から第2のテストベクトルとプロトタイプの差の2乗
    を減じたものとを用いて、類似度を計算することを特徴
    とする請求項1に記載のデータ処理装置。
  5. 【請求項5】 検索結果として抽出された前記所定個の
    プロトタイプが属するクラスに基づいて、前記第1のテ
    ストベクトルの属するクラスを認識する認識手段を有す
    ることを特徴とする請求項1に記載のデータ処理装置。
  6. 【請求項6】 多次元ベクトルで記述されたプロトタイ
    プ集合から、与えられた第1のテストベクトルに類似す
    る所定個のプロトタイプを検索結果として抽出するデー
    タ処理方法であって、 前記多次元ベクトルの各成分につき、前記プロトタイプ
    集合の各プロトタイプの識別子と成分値とを成分値の順
    に並べたリストを作成し、各プロトタイプのノルムの2
    乗を計算する前処理工程と、 前記第1のテストベクトルから第2のテストベクトルを
    生成するテストベクトル生成工程と、 前記リスト及び前記各プロトタイプのノルムの2乗と、
    第1及び第2のテストベクトルとを用いて、当該第1の
    テストベクトルと各プロトタイプとの内積の絶対値に基
    づく類似度を計算する類似度計算工程と、 前記類似度の値に基づく省略条件の判断により、以後の
    処理を省略する省略制御工程と、 前記類似度の値に基づいて検索結果を更新する更新工程
    とを有することを特徴とするデータ処理方法。
  7. 【請求項7】 多次元ベクトルで記述されたプロトタイ
    プ集合から、与えられた第1のテストベクトルに類似す
    る所定個のプロトタイプを検索結果として抽出するデー
    タ処理プログラムであって、 前記多次元ベクトルの各成分につき、前記プロトタイプ
    集合の各プロトタイプの識別子と成分値とを成分値の順
    に並べたリストを作成し、各プロトタイプのノルムの2
    乗を計算する前処理工程と、 前記第1のテストベクトルから第2のテストベクトルを
    生成するテストベクトル生成工程と、 前記リスト及び前記各プロトタイプのノルムの2乗と、
    第1及び第2のテストベクトルとを用いて、当該第1の
    テストベクトルと各プロトタイプとの内積の絶対値に基
    づく類似度を計算する類似度計算工程と、 前記類似度の値に基づく省略条件の判断により、以後の
    処理を省略する省略制御工程と、 前記類似度の値に基づいて検索結果を更新する更新工程
    とをコンピュータに実行させるためのデータ処理プログ
    ラム。
JP2001122755A 2001-04-20 2001-04-20 データ処理装置及びその方法、及びそのプログラム Withdrawn JP2002318818A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001122755A JP2002318818A (ja) 2001-04-20 2001-04-20 データ処理装置及びその方法、及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001122755A JP2002318818A (ja) 2001-04-20 2001-04-20 データ処理装置及びその方法、及びそのプログラム

Publications (1)

Publication Number Publication Date
JP2002318818A true JP2002318818A (ja) 2002-10-31

Family

ID=18972416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001122755A Withdrawn JP2002318818A (ja) 2001-04-20 2001-04-20 データ処理装置及びその方法、及びそのプログラム

Country Status (1)

Country Link
JP (1) JP2002318818A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007511838A (ja) * 2003-11-13 2007-05-10 本田技研工業株式会社 距離、局所線形構造およびアフィン対称を用いた画像クラスタリング
JP2007316830A (ja) * 2006-05-24 2007-12-06 Toshiba Corp 情報処理装置及びコンテンツ検索プログラム
WO2011086594A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 画像処理装置、及びその方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007511838A (ja) * 2003-11-13 2007-05-10 本田技研工業株式会社 距離、局所線形構造およびアフィン対称を用いた画像クラスタリング
JP2007316830A (ja) * 2006-05-24 2007-12-06 Toshiba Corp 情報処理装置及びコンテンツ検索プログラム
WO2011086594A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 画像処理装置、及びその方法
JPWO2011086594A1 (ja) * 2010-01-13 2013-05-16 株式会社東芝 画像処理装置、及びその方法
JP5431501B2 (ja) * 2010-01-13 2014-03-05 株式会社東芝 画像処理装置、及びその方法
US8693804B2 (en) 2010-01-13 2014-04-08 Kabushiki Kaisha Toshiba Image processing apparatus and method

Similar Documents

Publication Publication Date Title
CN109635273B (zh) 文本关键词提取方法、装置、设备及存储介质
Friedman Recent advances in predictive (machine) learning
McNames A fast nearest-neighbor algorithm based on a principal axis search tree
US7903883B2 (en) Local bi-gram model for object recognition
JP2018205937A (ja) 画像検索装置及びプログラム
JP2005158010A (ja) 分類評価装置・方法及びプログラム
US6578031B1 (en) Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector
US20020123987A1 (en) Nearest neighbor data method and system
Eghbali et al. Online nearest neighbor search using hamming weight trees
CN113516019B (zh) 高光谱图像解混方法、装置及电子设备
CN113761124B (zh) 文本编码模型的训练方法、信息检索方法及设备
CN112989026B (zh) 一种基于关联规则的文本推荐方法
JP2018173909A (ja) 学習プログラム、学習方法および学習装置
JP3903613B2 (ja) 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体
US6334129B1 (en) Data processing apparatus and method
CN110209895B (zh) 向量检索方法、装置和设备
US20230259761A1 (en) Transfer learning system and method for deep neural network
JP2002318818A (ja) データ処理装置及びその方法、及びそのプログラム
JP4086376B2 (ja) データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
US20230259531A1 (en) Method for efficient re-ranking and classification of ambiguous inputs in deep hierarchy
CN113901278A (zh) 一种基于全局多探测和适应性终止的数据搜索方法和装置
JP2000112944A (ja) データ処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
Neumann et al. Propagation kernels for partially labeled graphs
Kohonen Self-organizing maps of massive document collections
JP4106021B2 (ja) 人工ニューラル・ネットワークにおけるプロトタイプの数を仮想的に増加させる方法および回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080701