【文献】
田中 竜仁、外4名,スケッチを入力とした3次元モデル検索の高速化,Media Computing Conference 2012 2012年度 画像電子学会第40回年次大会 予稿集 Visual Computing/グラフィクスとCAD合同シンポ [DVD−ROM] Media Computing Conference,日本,一般社団法人画像電子学会,2012年 7月 2日,p.1−4
【文献】
鈴木 郁美、外3名,「ハブの出現しやすさ」から見たラプラシアンベースカーネル,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2011年11月 2日,第111巻,第275号,p.257−262
【文献】
三川 健太、外3名,テキスト分類問題におけるカテゴリ情報を用いた適応的距離学習に関する一考察,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2012年10月31日,第112巻,第279号,p.83−88
(58)【調査した分野】(Int.Cl.,DB名)
複数のデータサンプルを格納するデータ格納部に格納された前記複数のデータサンプル間についての類似度行列に、前記複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく前記複数のデータサンプル間の類似度行列が近似するように、前記特定のデータサンプルを抽出する
処理を含み、コンピュータが実行する情報処理方法。
複数のデータサンプルを格納するデータ格納部に格納された前記複数のデータサンプル間についての類似度行列に、前記複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく前記複数のデータサンプル間の類似度行列が近似するように、前記特定のデータサンプルを抽出する
処理を、コンピュータに実行させるためのプログラム。
【背景技術】
【0002】
最近傍探索は、データが分布するn次元ベクトル空間において、与えられた点に最も近いデータを探す技術である。
【0003】
高次元データ空間における最近傍探索技術として、高次元データ空間を低次元データ空間に写像することにより、大規模データを小さく圧縮してから最近傍探索を行う方法が有用であることが近年示されている。
【0004】
このような方法において、元のデータ集合における距離関係を保存したまま低次元データ空間に写像するラプラシアン固有マップ法(例えば非特許文献1)を用いることが好ましい。
【0005】
しかし、ラプラシアン固有マップ法を用いる場合、入力される未知のデータを低次元データ空間に写像するときに、未知のデータが低次元データ空間においてどこに写像されるかを知るために、未知のデータと既知のすべてのデータサンプルとの類似度計算を行うことになる。そのため、ラプラシアン固有マップ法を最近傍探索にそのまま適用すると、処理時間が膨大になってしまうという問題があった。
【0006】
これに対して、Anchor Graph Hashing(例えば非特許文献2)という方法は、データ集合からアンカーと呼ばれるk個のデータサンプルを選んだ後に、各データサンプルを、それから最も近いアンカーからの距離(又は類似度)で表す。これにより、入力された未知のデータに対してもアンカーとの距離を計測することで低次元データ空間に写像することができる。すなわち、未知のデータを低次元データ空間に写像する場合、未知のデータとアンカーとの類似度計算を行えばよいので、処理時間の問題を解決できる。
【0007】
しかしながら、アンカーをk−means法(K−平均法)によって選択しており、データの分布の形状によっては最近傍探索の精度が低下する問題があった。
【0008】
k−means法は、データサンプル群をクラスタに分類する代表的な方法として知られている。具体的なアルゴリズムは以下のとおりである。
1.各データサンプルに対してランダムにクラスタを割り振る。
2.割り振ったデータサンプルを基に各クラスタの中心を計算する。
3.各データサンプルについて各クラスタ中心との距離を求め、最も近いクラスタ中心のクラスタに割り当て直す。
4.上記の処理で全てのデータサンプルについてクラスタの割り当てが変化しなかったら終了する。そうでない場合は2及び3の処理を繰り返す。
【0009】
この方法によってアンカーが選ばれる場合、データサンプルの分布の形状によっては最近傍探索の精度が低下する問題がある。
【0010】
例えば、
図1に模式的に示すような特徴空間におけるデータサンプル群(×印)があったとき、k−means法でアンカーを算出すると、アンカーaは分布の中心付近となる。そうすると、各データサンプルはアンカーaからの距離がほぼ等しくなるので、アンカーを経由した類似度は、どれもほぼ同じになる。従って、
図2に模式的に示すように、各データサンプルを低次元特徴空間に写像すると、これらのデータサンプルはおおよそ一カ所に密集した状態となる。
【0011】
一方、
図3に示すように、特徴空間において未知のデータXが入力されて、未知のデータXに対する最近傍点を求めるものとする。このとき、
図4に模式的に示すように、未知のデータXを低次元特徴空間に写像すると、密集したデータ集合の中に写像されるため、誤った点を最近傍点として抽出する可能性が高くなる。
図5に示すように、本来特徴空間では、未知のデータXはデータサンプルZに最も近いが、低次元特徴空間では、アンカーaを経由した距離が同じであるデータサンプルYが最も近いデータサンプルとして抽出されてしまう。
【発明を実施するための形態】
【0017】
まず、
図6乃至
図13を用いて、本実施の形態の概要を説明しておく。
【0018】
本実施の形態では、AGH法におけるアンカーをk−means法で抽出するのではなく、特徴空間のデータ分布を近似するアンカーを算出する。
【0019】
まず、アンカーを設定することによってデータ分布がどのように変化するのかを
図6を用いて模式的に説明する。
【0020】
AGH法では、アンカーを設定した後、各データサンプル間の距離又は類似度を、アンカーを経由して計測する。アンカーaを経由して計測したときの2点A及びB間の距離を|AB|
anchorと表すと、|AB|
anchor及び|AC|
anchorは、元の特徴空間における2点間距離|Aa|、|Ba|及び|Ca|によって以下のように表される。
【0022】
特徴空間のデータ分布を近似するアンカーを算出するということは、データサンプル間の距離をできるだけ保存するアンカーを求めるということである。具体的には、アンカーを経由した場合の距離の比||Aa|−|Ba||:||Aa|−|Ca||を、元の特徴空間における距離の比|AB|:|AC|と可能な限り同じにするようなアンカーを抽出する。
【0023】
すなわち、データサンプル間の距離を可能な限り保存するアンカーを求めるという問題は、類似度行列によって定式化できる。すなわち、
図7に模式的に示すように、アンカーを設定したときのデータ分布を表す類似度行列Z
^anchor(”^”は、以下、Zの上に置かれたものとする)が、
図8に模式的に示すような元の特徴空間におけるデータ分布を表す類似度行列Z
^に可能な限り一致するようにアンカーaを設定する。
【0024】
類似度行列とは、データサンプルがm個与えられた場合はm×mの行列であり、行列の(i,j)成分はデータサンプルiの特徴ベクトルs
iとデータサンプルjの特徴ベクトルs
jの類似度を表すものである。
【0025】
アンカーを設定したときのデータ分布を表す類似度行列Z
^anchorは、アンカーをl個として、それらの特徴ベクトルをa
1、a
2,...,a
lと表すと、a
1,a
2,...,a
lの関数となるが、類似度行列の定義からして非線形の極めて複雑な関数となる。具体的には、AGH法における類似度の算出方法は足切りなどの演算が存在するので、a
1,a
2,...,a
lを陽に変数とした関数として表すことができず、以下のような方程式を立てて解くことは困難である。
【0027】
そこで、類似度行列Z
^を固有値分解して、Z
^を近似するアンカーを算出する。Z
^を固有値分解すると、Z
^は射影行列の和に近似でき、「どのデータサンプルをアンカーとして用いれば類似度行列に近い行列を得られるか」という問題が、「どのデータサンプルをアンカーとして用いれば射影行列に近い行列を得られるか」という問題に分解できる。そして、「どのデータサンプルをアンカーとして用いれば射影行列に近い行列を得られるか」という問題については、近似的な解を得ることができる。
【0028】
すなわち、データサンプルs
jの射影行列σ
iv
iv
iTに対する寄与度が固有ベクトルv
iの成分の絶対値で測れるので、固有ベクトルの成分の絶対値が大きいデータサンプルをアンカーとして選択する。
【0029】
具体的には、本実施の形態におけるアンカーには、
図9に模式的に示すような特徴空間においては、データサンプルbのようなデータサンプルが選択される。そうすると、低次元特徴空間においては、
図10に模式的に示すように、1箇所に集中することなく、分散するようになる。このような場合、
図11に模式的に示すように特徴空間において未知のデータXが入力された場合、
図12に模式的に示すように低次元特徴空間に写像されるわけであるが、分布に応じた低次元特徴空間となっているので、アンカーbからの距離が近い他のデータサンプルが多数となることはない。従って、
図13に模式的に示すように、未知のデータXに近いデータサンプルZが正しく見つかるようになる。
【0030】
次に、このような前提の下処理を行う、本実施の形態における情報処理装置の構成例を
図14に示す。
【0031】
本実施の形態における情報処理装置100は、第1データ格納部101と、アンカー抽出部102と、アンカー格納部103と、ハッシュベクトル算出部104と、登録部105と、データベース106と、データ入力部107と、第2データ格納部108と、照合処理部109と、データ出力部110とを有する。
【0032】
第1データ格納部101は、例えばm個のデータサンプルの特徴ベクトル及びカテゴリ名が格納されている。
【0033】
アンカー抽出部102は、類似度行列算出部1021と、固有値分解処理部1022と、アンカー特定部1023とを有する。
【0034】
類似度行列算出部1021は、第1データ格納部101に格納されているデータサンプルの特徴ベクトルから類似度行列を算出する。
【0035】
固有値分解処理部1022は、類似度行列に対して固有値分解処理を実行し、固有ベクトルを生成する。
【0036】
アンカー特定部1023は、固有ベクトルを用いて、第1データ格納部101に格納されているデータサンプルのうちアンカーとして採用するデータサンプルを選定し、アンカー格納部103に格納する。
【0037】
ハッシュベクトル算出部104は、第1データ格納部101に格納されているデータサンプルの特徴ベクトルから、アンカー格納部103に格納されているアンカーに基づきハッシュベクトルを算出し、登録部105に出力する。ハッシュベクトル算出部104によるハッシュベクトル算出処理については、従来と同じなので詳細には述べない。
【0038】
登録部105は、ハッシュベクトルと、当該ハッシュベクトルの元となったデータサンプルのカテゴリ名とを、データベース106に登録する。
【0039】
データ入力部107は、ユーザ又は他のコンピュータから、未知のデータの特徴ベクトルの入力を受け付け、第2データ格納部108に格納する。
【0040】
照合処理部109は、ハッシュベクトル算出部104に、第2データ格納部108に格納されているデータの特徴ベクトルについてのハッシュベクトルを算出させる。そして、照合処理部109は、当該ハッシュベクトルと、データベース106に格納されている各ハッシュベクトルとのハミング距離を算出して、最短のハミング距離が算出されたハッシュベクトルに対応付けて格納されているカテゴリ名を特定し、データ出力部110に出力する。
【0041】
データ出力部110は、出力装置(表示装置、印刷装置や他のコンピュータなど)に、特定されたカテゴリ名を出力する。
【0042】
次に、
図15乃至
図18を用いて、情報処理装置100の処理内容について説明する。
【0043】
本実施の形態では、AGH法と同様に、予め実施しておく学習処理と、学習処理の結果に基づき未知のデータに対してカテゴリ名を識別する識別処理とが行われる。
【0044】
まず、学習処理について、
図15乃至
図17を用いて説明する。
【0045】
アンカー抽出部102は、本実施の形態における主要部であるアンカー抽出処理を実行する(
図15:ステップS1)。アンカー抽出処理については、
図16を用いて説明する。
【0046】
まず、類似度行列算出部1021は、第1データ格納部101に格納されているデータサンプルの特徴ベクトルから、類似度行列を算出する(
図16:ステップS11)。
【0047】
(A)初期類似度行列Zの算出
類似度行列算出部1021は、各データサンプルの特徴ベクトルs
iに対して、自データサンプル以外の他のデータサンプルの特徴ベクトルs
jとのユークリッド距離に基づく類似度h(s
i,s
j)を算出する。具体的には、以下のような式に従って類似度を算出する。
【0049】
なお、D(A,B)は、AとBとのユークリッド距離を表しており、D
2(A,B)は、ユークリッド距離の二乗を表す。また、Tは、比例定数で、予め設定された値である。
【0050】
このような計算をデータサンプルi及びjのペアの各々について算出すれば、
図17に示すように、初期類似度行列Zのij成分の値が算出される。
【0051】
(B)足切り処理
類似度h(s
i,s
j)については、以下のような足切りを行う。
・{h(s
i,s
j)|i:fixed,1≦j≦m,j≠i}において、上位r個以外はh(s
i,s
j)=0
【0052】
すなわち、初期類似度行列Zの行毎に、類似度が大きい順にr+1番目以降は類似度を0に設定する。
図17の例では、点線矩形で囲まれたi行目において、類似度を大きい順にソートして、r+1番目以降の類似度を0に設定する。
【0053】
(C)正規化処理
足切り処理後の初期類似度行列Zの行毎に、成分の総和が1となるように正規化する。
図17の例では、点線矩形で囲まれたi行目において、類似度の総和が1となるように正規化する。
【0054】
(D)対称行列生成
正規化処理後の初期類似度行列Zから、類似度行列Z
^を算出する。これによって、m×mの対称行列となった類似度行列Z
^が得られる。
【0056】
次に、固有値分解処理部1022は、類似度行列Z
^に対して固有値分解処理を実行する(ステップS13)。
【0057】
本実施の形態では、固有値のうち大きい順に上位k個の固有値σ
iを採用して、類似度行列Z
^を以下のように近似する。
【0060】
【数7】
なお、v
iは、固有値σ
iに対応する固有ベクトルである。また、σ
iv
iv
iTは、射影行列と呼ばれる。
【0061】
その後、アンカー特定部1023は、各固有ベクトルv
tから、アンカーとして用いるべきデータサンプルを特定し、当該データサンプルの特徴ベクトルをアンカー格納部103に格納する(ステップS15)。そして呼び出し元の処理に戻る。
【0062】
具体的には、固有ベクトルv
t(1≦t≦k)の各々について、当該固有ベクトルv
tにおいて絶対値が最も大きい成分を特定する。そして、k>lであれば、k個の固有ベクトルのうち、特定された成分の絶対値が大きい順にl個の固有ベクトルを選択して、選択された固有ベクトルについて特定された成分の順番i
uのデータサンプルs
iuを、アンカーa
iuとして採用する。
【0063】
すなわち、固有ベクトルv
tを以下のように表す。
【0065】
そして、固有ベクトルv
tにおいて絶対値が最も大きい成分を特定するということは、以下のように表される。
【0066】
【数9】
なお、既に選択されたi
1乃至i
u-1と同じi
uについては選択できないので、次に絶対値が大きい成分の番号を特定する。
【0067】
このような処理を実行すれば、m個のデータサンプル間についての類似度行列Z
^に、m個のデータサンプルから選択されたアンカーとの類似度に基づくm個のデータサンプル間の類似度行列Z
^anchorが近似するように、アンカーが選択される。
【0068】
すなわち、AGH法における識別処理の高速性を保持しつつ、識別精度を向上させることができるようになる。
【0069】
すなわち、本実施の形態では、高速且つ高精度な最近傍探索を行うことができる。特に、高次元空間内においてデータ分布がいかなる状態であっても高精度な最近傍探索を行うことができる。
【0070】
図15の処理の説明に戻って、ハッシュベクトル算出部104は、第1データ格納部101に格納されている各データサンプルの特徴ベクトルから、アンカー格納部103に格納されているアンカーのデータに基づき、ハッシュベクトルを算出し、登録部105に出力する(ステップS3)。ハッシュベクトルは、n次元のベクトルであって、個々の成分の値は0又は1である。この処理は、従来と同じであるから、詳細な説明については省略する。
【0071】
そして、登録部105は、ハッシュベクトル算出部104によって算出されたハッシュベクトルと、当該ハッシュベクトルの元となったデータサンプルのカテゴリ名とを、対応付けてデータベース106に登録する(ステップS5)。
【0072】
このようにすれば、学習処理が完了して、識別処理を行う準備ができたことになる。
【0073】
次に、
図18を用いて、識別処理の処理フローを説明する。
【0074】
まず、データ入力部107は、ユーザ又は他のコンピュータから、未知のデータの入力を受け付け、第2データ格納部108に格納する(
図18:ステップS21)
【0075】
そうすると、照合処理部109は、第2データ格納部108に格納されている未知のデータの特徴ベクトルに対するハッシュベクトルを、ハッシュベクトル算出部104に算出させる(ステップS23)。この処理も、従来と同じであり、演算内容としてはステップS3と同様であり、詳細な説明は省略する。
【0076】
そして、照合処理部109は、未知のデータに対するハッシュベクトルと、データベース106に格納されている各ハッシュベクトルとのハミング距離を算出し、最もハミング距離が短いハッシュベクトルに対応付けられているカテゴリ名を特定する照合処理を実行し、処理結果をデータ出力部110に出力する(ステップS25)。
【0077】
データ出力部110は、照合処理部109から処理結果であるカテゴリ名を受け取ると、ユーザ又は他のコンピュータに対してカテゴリ名を出力する(ステップS27)。
【0078】
以上のような処理を行うことで、アンカーが適切に設定されているので、高精度なデータ識別を行うことができるようになる。
【0079】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。
【0080】
例えば、
図14の情報処理装置100の機能ブロック構成は、プログラムモジュール構成とは一致しない場合がある。また、処理フローについても、処理結果が変わらない限り、順番を入れ替えたり、並列に実行する場合もある。
【0081】
なお、本実施の形態におけるデータは、画像データであったり、文字データであったり、個人情報であったりする。
【0082】
さらに、情報処理装置100は1台のコンピュータではなく、複数台のコンピュータで機能分担する場合もある。
【0083】
なお、上で述べた情報処理装置100は、コンピュータ装置であって、
図19に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0084】
以上述べた本実施の形態をまとめると、以下のようになる。
【0085】
本実施の形態に係る情報処理装置は、(A)複数のデータサンプルを格納するデータ格納部と、(B)データ格納部に格納された複数のデータサンプル間についての類似度行列に、複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく複数のデータサンプル間の類似度行列が近似するように、特定のデータサンプルを抽出する抽出部とを有する。
【0086】
このような特定のデータサンプルを抽出してAGH法におけるアンカーとして用いれば、識別精度を向上させることができるようになる。
【0087】
なお、上で述べた抽出部が、(b1)複数のデータサンプル間についての類似度行列を算出する類似度行列算出部と、(b2)算出された類似度行列に対して固有値分解を行って固有ベクトルを生成する固有値分解処理部と、(b3)生成された固有ベクトルの各成分の絶対値に基づき、複数のデータサンプルから上記特定のデータサンプルを特定する特定部とを有する。
【0088】
例えば、固有ベクトルの各成分の絶対値のうち最も大きい絶対値が得られた成分の順番を用いて、複数のデータサンプルから上記順番における特定のデータサンプルを特定するものである。
【0089】
さらに、上で述べた情報処理装置は、(C)特定のデータサンプルを用いて複数のデータサンプルの各々についてハッシュベクトルを算出する算出部と、(D)算出されたハッシュベクトルと、データサンプルについてのカテゴリ名とを対応付けてデータベースに登録する登録部と、(E)あるデータについて特定のデータサンプルを用いて算出されたハッシュベクトルとデータベースに登録されたハッシュベクトルとの距離を算出して、最短距離のハッシュベクトルに対応付けられたカテゴリ名を特定する処理部とをさらに有するようにしても良い。このようにすれば、AGH法で最近傍探索が行われる。
【0090】
なお、上で述べたような処理をプロセッサ又はコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0091】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0092】
(付記1)
複数のデータサンプルを格納するデータ格納部と、
前記データ格納部に格納された前記複数のデータサンプル間についての類似度行列に、前記複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく前記複数のデータサンプル間の類似度行列が近似するように、前記特定のデータサンプルを抽出する抽出部と、
を有する情報処理装置。
【0093】
(付記2)
前記抽出部が、
前記複数のデータサンプル間についての類似度行列を算出する類似度行列算出部と、
算出された前記類似度行列に対して固有値分解を行って固有ベクトルを生成する固有値分解処理部と、
生成された前記固有ベクトルの各成分の絶対値に基づき、前記複数のデータサンプルから前記特定のデータサンプルを特定する特定部と、
を有する付記1記載の情報処理装置。
【0094】
(付記3)
前記特定のデータサンプルを用いて前記複数のデータサンプルの各々についてハッシュベクトルを算出する算出部と、
算出された前記ハッシュベクトルと、前記データサンプルについてのカテゴリ名とを対応付けてデータベースに登録する登録部と、
あるデータについて前記特定のデータサンプルを用いて算出されたハッシュベクトルと前記データベースに登録されたハッシュベクトルとの距離を算出して、最短距離のハッシュベクトルに対応付けられたカテゴリ名を特定する処理部と、
をさらに有する付記1又は2記載の情報処理装置。
【0095】
(付記4)
複数のデータサンプルを格納するデータ格納部に格納された前記複数のデータサンプル間についての類似度行列に、前記複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく前記複数のデータサンプル間の類似度行列が近似するように、前記特定のデータサンプルを抽出する
処理を含み、コンピュータが実行する情報処理方法。
【0096】
(付記5)
前記抽出する処理が、
前記複数のデータサンプル間についての類似度行列を算出し、
算出された前記類似度行列に対して固有値分解を行って固有ベクトルを生成し、
生成された前記固有ベクトルの各成分の絶対値に基づき、前記複数のデータサンプルから前記特定のデータサンプルを特定する
処理を含む付記4記載の情報処理方法。
【0097】
(付記6)
複数のデータサンプルを格納するデータ格納部に格納された前記複数のデータサンプル間についての類似度行列に、前記複数のデータサンプルから選択された特定のデータサンプルとの類似度に基づく前記複数のデータサンプル間の類似度行列が近似するように、前記特定のデータサンプルを抽出する
処理を、コンピュータに実行させるためのプログラム。
【0098】
(付記7)
前記抽出する処理が、
前記複数のデータサンプル間についての類似度行列を算出し、
算出された前記類似度行列に対して固有値分解を行って固有ベクトルを生成し、
生成された前記固有ベクトルの各成分の絶対値に基づき、前記複数のデータサンプルから前記特定のデータサンプルを特定する
処理を含む付記6記載のプログラム。