説明

パターン探索装置及びその方法

【課題】ハッシュ関数を用いた近似最近傍探索法において、高速かつ少ない誤差比で最近傍パターンを探索するパターン探索装置を提供する。
【解決手段】登録部2、累積確率分布獲得部3、ハッシュ関数部4、学習部5、探索部6から構成され、予め検索対象となるパターン集合を登録して学習パターン集合としておき、学習パターンの任意の軸上における累積確率分布をシグモイド関数で近似し、その累積確率分布を基に確率値を一定間隔で分割するハッシュ関数を複数個定義し、未知のパターンを入力すると各ハッシュ関数の出力であるハッシュ値によりバケット中の部分集合の和集合を求め、その集合中から最近傍パターンを探索する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習パターン集合中から入力パターンに対してハッシュ関数を用いて高速に最近傍パターンを探索するパターン探索装置及びその方法に関する。
【背景技術】
【0002】
従来のハッシュ関数を用いた近似最近傍探索法には、非特許文献1と非特許文献2に開示されているものがある。この従来技術は、図5に示すように、学習パターン集合を任意ベクトル上に射影し、そのベクトル上での存在範囲を一定間隔で分割するハッシュ関数を定義し、入力パターンのハッシュ値により学習パターン集合中の限られた最近傍候補から最近傍パターンを探索するものである。
【非特許文献1】P. Indyk and R. Motwani, 「Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality,」 In Proceedings of the 30th ACM Symposium on Theory of Computing (STOC'98) , pp.604-613, May 1998.
【非特許文献2】M. Datar, P. Indyk, N. Immorlica, and V. Mirrokni,「Locality-Sensitive Hashing Scheme Based on p-Stable Distributions,」 In Proceedings of the 20th Annual Symposium on Computational Geometry(SCG2004), June 2004.
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記したように、従来技術には、図5に示すように、登録済みパターンを任意ベクトル上に射影し、そのベクトル上での存在範囲を一定間隔で分割するハッシュ関数を用いるものがある。
【0004】
しかし、ハッシュ関数により分割した空間領域(以下、バケットという)において探索対象である入力パターンを内包するバケット中に存在する学習パターンが、学習パターン集合の分布に応じてパターン数が異なり、学習パターンの密度が高いバケットでは探索時間が遅くなり、学習パターンの密度が低いバケットでは真の最近傍パターンと得られた近似最近傍パターンとの距離の誤差の比(以下、誤差比という)が高くなるという問題点がある。
【0005】
また、探索対象である入力パターンを内包するバケット中に学習パターンが存在しない場合、探索することができないという問題点がある。
【0006】
そこで本発明は、上記問題点を解決するためになされたものであって、探索速度の高速化と誤差比の低減を可能とするパターン探索装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、d次元の複数の学習パターンを記憶する記憶部と、前記複数の学習パターンから、前記d次元の任意の次元軸上における前記学習パターンのそれぞれの存在確率の累積確率を表す累積確率分布を求める分布獲得部と、累積確率が分割された複数の確率区間のそれぞれに前記累積確率分布で対応する前記次元軸上の分布区間内の任意の点の値を、前記各確率区間に対応するハッシュ値に変換するハッシュ関数を求めるハッシュ関数獲得部と、前記ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求め、前記各学習パターンを前記ハッシュ値に対応するバケットに分類する学習部と、前記ハッシュ関数を用いて入力パターンのハッシュ値を求め、前記入力パターンのハッシュ値に対応するバケットに属する前記学習パターンの中から、前記入力パターンに最も類似する前記学習パターンを探索する探索部と、を有するパターン探索装置である。
【発明の効果】
【0008】
本発明によれば、学習パターンの累積確率分布から、確率値を一定間隔で分割するハッシュ関数を定義するため、各バケット中のパターン数がほぼ一定になり、最近傍解を得る際の平均的な探索速度の高速化と誤差比の低減を可能とする。
【発明を実施するための最良の形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
(第1の実施形態)
以下、第1の実施形態のパターン探索装置1について図1と図2に基づいて説明する。
【0011】
本実施形態のパターン探索装置1は、図2に示すように、予め検索対象となる複数の学習パターンを学習パターン集合として登録する。ここで、学習パターン集合は正規分布(ガウス分布)で表現できると仮定する。
【0012】
これら学習パターンの任意の軸上における累積確率分布をシグモイド関数で近似し、その累積確率分布を基に確率値を一定間隔で分割するハッシュ関数を複数個定義する。
【0013】
そして、未知のパターンが入力されると各ハッシュ関数の出力であるハッシュ値によりバケット中に存在する学習パターン集合の各部分集合からの和集合を求め、その和集合中から入力パターンに最も類似する学習パターン(以下、最近傍パターンという)を探索する。
【0014】
本実施形態のパターン探索装置1は、パターン認識に用いられるものであり、例えば、画像に写された物体認識(例えば、顔認識)やデータマイニングに適用できる。
【0015】
(1)パターン探索装置1の構成
図1は、本実施形態に係わるパターン探索装置1を示すブロック図である。
【0016】
パターン探索装置1は、登録部2、累積確率分布獲得部3、ハッシュ関数部4、学習部5、探索部6から構成されている。
【0017】
各部2〜6の下記で説明する各機能は、コンピュータに格納されたプログラムによっても実現できる。
【0018】
以下、順番に各部の機能を説明する。
【0019】
(2)登録部2
登録部2は、予め検索対象となる顔画像などの複数の学習パターンを学習パターン集合として登録する。
【0020】
そして、登録した学習パターンを累積確率分布獲得部3と学習部5に送る。
【0021】
(3)累積確率分布獲得部3
累積確率分布獲得部3は、登録部2で登録した学習パターン集合の任意軸での累積確率分布を主成分分析で求める。
【0022】
本実施形態では、学習パターン集合が正規分布(ガウス分布)であると仮定し、全ての次元での累積確率分布を求めるが、仮にd次元上での累積確率分布を推定し分布を求める場合、下記の(1)式のシグモイド関数により近似する。
【数1】

【0023】
ここで、μは平均値、αは標準偏差である。この2つのパラメータは初期値としては前記学習パターン集合の平均値と標準偏差を用い、最小二乗近似により累積確率分布へのシグモイド関数当てはめの最適化を行う。
【0024】
獲得した各累積確率分布をハッシュ関数部4に送る。
【0025】
(4)ハッシュ関数部4
ハッシュ関数部4は、累積確率分布獲得部3により求めた累積確率分布のそれぞれについて、確率値が一定になるようにn個に分割するハッシュ関数を求める。
【0026】
ハッシュ関数は、下記の(2)式で定義できる。
【数2】

【0027】
ここで、ΔはPs(x)の値域[0,1]を[0,Δ],[Δ,2Δ],・・・[(n−1)Δ,1]のようにn個に分割した際の1つのバケットの確率値である。
【0028】
各次元でのハッシュ関数を獲得し、学習部5と探索部6に送る。
【0029】
(5)学習部5
学習部5は、登録部2により登録した学習パターン集合とハッシュ関数部4により獲得した各ハッシュ関数により、学習パターン集合に属する各学習パターンを、各ハッシュ関数の出力値であるハッシュ値に対応する各バケットに振り分け、部分集合を構成して、リスト構造にする。
【0030】
これら部分集合は、パターンの次元数がDで、n個に分割するハッシュ関数である場合、全部でDn個生成する。
【0031】
生成した部分集合は、探索部6に送る。
【0032】
(6)探索部6
探索部6には、まず検索したい顔画像などの未知のパターンqが入力される。そして、この入力パターンqについての、学習パターン集合ALLの中から最も類似する学習パターン(すなわち、最近傍パターン)を探索する。
【0033】
この探索は、ハッシュ関数部4により獲得した各ハッシュ関数と、学習部5によって生成した部分集合により探索する。
【0034】
入力パターンqを入力値としたときハッシュ関数の出力であるハッシュ値Hにより限定される部分集合BiHは、下記の(3)式で定義できる。
【数3】

【0035】
ここでは、ランダムで選択したm個のハッシュ関数により得られる部分集合の和集合を最近傍候補C(q)とする。
【数4】

【0036】
このとき、最近傍候補C(q)を獲得する際に、含まれたバケット数を重複度w(x)とし、これによりソートし最大となるパターンと入力パターンとの距離を暫定距離zとする。xとxのL距離をd(x,x)と定義すると、暫定距離zは下記の(5)式のようになる。
【数5】

【0037】
ここで、下記の(6)式を満たす候補xは最近傍にはなり得ないので最近傍候補C(q)から除外できる。
【数6】

【0038】
この性質に基づき、以下の手続きで絞込み探索を行う。
【0039】
ステップ1において、i:=1とする。
【0040】
ステップ2において、Ci−1(q)内の各要素に対して上記の(6)式の条件を満足する候補を除外し、得られた候補集合をC(q)とする。もし、i=mなら、ステップ4へ進む。もし、|C(q)|=1なら、その要素を最近傍パターンとして停止する。
【0041】
ステップ3において、i:=i+1としてステップ2に戻る。
【0042】
ステップ4において、C(q)内の候補全てと入力パターンとの距離計算を行い、最小距離を与える学習パターンを最近傍パターンとして停止する。
【0043】
最後に獲得した最近傍パターンをパターン探索装置1の外部に出力する。
【0044】
(7)変更例
(7−1)変更例1
上記実施形態では、探索部6において最近傍候補C(q)は重複度w(x)により並び替え、上位b%のみとして探索してもよい。
【0045】
(7−2)変更例2
上記実施形態では、探索部6においてハッシュ関数により得られる部分集合の和集合を最近傍候補C(q)としているが、探索部6においてハッシュ関数により得られる部分集合の積集合、または、その積集合の近傍の和集合を最近傍候補C(q)として探索してもよい。
【0046】
(第2の実施形態)
本発明の第2の実施形態に係わるパターン探索装置101について図3に基づいて説明する。
【0047】
本実施形態のパターン探索装置101と第1の実施形態のパターン探索装置1と異なる点は次の2点である。
【0048】
第1の異なる点は、直交変換部107において学習パターン集合のそれぞれの学習パターンを部分空間に射影し、ベクトル空間内でのユークリッド距離に直交変換し、この直交変換した学習パターンを登録部102に登録する。
【0049】
第2の異なる点は、累積確率分布獲得部103において、各学習パターンに関してシグモイド関数の重み付け和により累積確率分布を獲得する。
【0050】
(1)パターン探索装置101の構成
図3は、本実施形態に係わるパターン探索装置101を示すブロック図である。
【0051】
パターン探索装置101は、登録部102、累積確率分布獲得部103、ハッシュ関数部104、学習部105、探索部106、直交変換部107から構成されている。
【0052】
なお、パターン探索装置101の動作のうち、第1の実施形態のパターン探索装置1と同様な処理については説明を省略する。
【0053】
(2)直交変換部107
直交変換部107は、予め検索対象となる学習パターン集合を主成分分析する。そして、固有値の高い順に直交変換を行うためのN番目までの固有ベクトル、つまりN×Dの直交変換行列O={φ,φ,・・・,φ}を保存し、登録部102へ送る。
【0054】
(3)登録部102
登録部102は、直交変換部107により獲得した固有ベクトルを用いて、予め検索対象となる学習パターン集合のそれぞれを直交変換した後、学習パターン集合として登録する。
【0055】
そして、この直交変換した学習パターン集合を累積確率分布獲得部103と学習部105に送る。
【0056】
(4)累積確率分布獲得部103
累積確率分布獲得部103は、登録部102で登録した学習パターン集合の各軸上での累積確率分布をそれぞれ求める。
【0057】
ここでは各累積確率分布を、一般分布とし、この一般分布を混合ガウス分布と仮定し、シグモイド関数の重み付け和により推定する。実際には、ランダムで選択した学習パターンに対して、下記の(7)式により各学習パターンでのhを最適化し最小二乗近似により累積確率分布を関数化する。
【数7】

【0058】
ここでh’はhの平均値である。nの個数は定数で与えるか、一般的な最適化手法により近似精度の許容範囲における最小数を求める。
【0059】
(5)探索部106
探索部106は、まず検索したい顔画像などの未知の入力パターンqが入力される。そして、この入力パターンqについての、学習パターン集合ALL中の最近傍パターンを探索する。この探索は、ハッシュ関数部104により獲得した各ハッシュ関数と、学習部105によって生成した部分集合により探索する。
【0060】
直交変換部107により獲得した固有ベクトルにより入力パターンを直交変換し、直交入力パターンOqとする。直交入力パターンを入力値としたときハッシュ関数の出力であるハッシュ値Hにより限定される部分集合BiHを下記の(8)式で定義できる。
【数8】

【0061】
ここでは、ランダムで選択したm個のハッシュ関数により得られる部分集合の和集合を最近傍候補C(q)とする。
【数9】

【0062】
このとき、最近傍候補C(q)を獲得する際に、含まれたバケット数を重複度w(x)とし、これによりソートし最大となるパターンと入力パターンとの距離を暫定距離zとする。xとxのL距離をd(x,x)と定義すると、暫定距離zは下記の(10)式のようになる。
【数10】

【0063】
ここで、下記の(11)式を満たす候補xは最近傍にはなり得ないので最近傍候補C(q)から除外できる。
【数11】

【0064】
この性質に基づき、固有値の高い主軸への射影成分から順に、以下の手続きで絞込み探索を行う。
【0065】
ステップ1において、i:=1とする。
【0066】
ステップ2において、Ci−1(q)内の各要素に対して上記の(11)式の条件を満足する候補を除外し、得られた候補集合をC(q)とする。もし、i=mなら、ステップ4へ進む。もし、|C(q)|=1なら、その要素を最近傍パターンとして停止する。
【0067】
ステップ3においてi:=i+1としてステップ2に戻る。
【0068】
ステップ4において、C(q)内の候補全てと入力パターンとの距離計算を行い、最小距離を与える学習パターンを最近傍パターンとして停止する。
【0069】
このような計算を行う理由は、固有値の最も高い第一主成分は最も分散の大きい軸であり、C(q)−B1h1(q)の殆どの要素が、|φq−φx|>zという条件を満足してしまうためφの値を調べるだけで一挙に最近傍候補集合を小さくすることができる。第二主成分以降もそれ以降の主軸と比べた際に同様のことが言えるため、候補を絞り込む効率を考えると妥当な処理であるといえる。
【0070】
最後に獲得した最近傍パターンをパターン探索装置1の外部に出力する。
【0071】
(第3の実施形態)
本発明の第3の実施形態に係わるパターン認識装置201について図4に基づいて説明する。
【0072】
本実施形態のパターン認識装置201と、第1の実施形態のパターン探索装置1及び第2の実施形態のパターン探索装置101と異なる点は次の点である。
【0073】
第1の異なる点は、パターン認識装置201は、予め検索対象となる学習パターン集合を登録して学習パターン集合とする。この学習パターン集合に対応するクラスを登録し、入力パターンに対してパターン探索部208により最近傍パターンを探索し、クラス部209により出力した対応するクラスを認識結果として出力する。
【0074】
第2の異なる点は、パターン探索部208は、累積確率分布獲得部203においてパターンを獲得する次元軸での値により、累積ヒストグラムを獲得し、それを累積確率分布とする。
【0075】
(1)パターン認識装置201の構成
図4は、本実施形態に係わるパターン認識装置201を示すブロック図である。
【0076】
パターン認識装置201は、登録部202、累積確率分布獲得部203、ハッシュ関数部204、学習部205、探索部206、直交変換部207、パターン探索部208、クラス部209から構成されている。
【0077】
なお、パターン認識装置201の動作のうち、第1の実施形態のパターン探索装置1及び第2の実施形態のパターン探索装置101と同様な処理については説明を省略する。
【0078】
(2)累積確率分布獲得部203
累積確率分布獲得部203は、登録部202で登録した学習パターン集合の各軸上での累積確率分布をそれぞれ獲得する。ここでは各累積確率分布を、学習パターン集合の各軸上での値により並び替えを行い、累積ヒストグラムを求めることにより推定する。
【0079】
上記各実施形態における関数による分布表現との違いは、最適化パラメータがないため一意に求めることができる反面、学習パターンが少ないと学習パターン間の分布が線形で表現されるため誤差が大きくなる点である。
【0080】
(3)パターン探索部208
パターン探索部208は、登録部202、累積確率分布獲得部203、ハッシュ関数部204、学習部205、探索部206、直交変換部207から構成され、入力パターンの最近傍パターンを、登録部202に登録した学習パターン集合の中から探索する。
【0081】
(4)クラス部209
クラス部209は、学習パターン集合中の各パターンに対応するクラスを登録しておき、パターン探索部208により探索した入力パターンの最近傍パターンに対応するクラスを、入力パターンのクラスとしてパターン探索装置1の外部に出力する。
【0082】
(変更例)
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【0083】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0084】
【図1】本発明の第1の実施形態のパターン探索装置の構成を示すブロック図である。
【図2】第1の実施形態の概念の説明図である。
【図3】第2の実施形態のパターン探索装置の構成を示すブロック図である。
【図4】第3の実施形態のパターン探索装置の構成を示すブロック図である。
【図5】従来技術の概念の説明図である。
【符号の説明】
【0085】
1・・・パターン探索装置
2・・・登録部
3・・・累積確率獲得部
4・・・ハッシュ関数部
5・・・学習部
6・・・探索部

【特許請求の範囲】
【請求項1】
d次元の複数の学習パターンを記憶する記憶部と、
前記複数の学習パターンから、前記d次元の任意の次元軸上における前記学習パターンのそれぞれの存在確率の累積確率を表す累積確率分布を求める分布獲得部と、
累積確率が分割された複数の確率区間のそれぞれに前記累積確率分布で対応する前記次元軸上の分布区間内の任意の点の値を、前記各確率区間に対応するハッシュ値に変換するハッシュ関数を求めるハッシュ関数獲得部と、
前記ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求め、前記各学習パターンを前記ハッシュ値に対応するバケットに分類する学習部と、
前記ハッシュ関数を用いて入力パターンのハッシュ値を求め、前記入力パターンのハッシュ値に対応するバケットに属する前記学習パターンの中から、前記入力パターンに最も類似する前記学習パターンを探索する探索部と、
を有するパターン探索装置。
【請求項2】
前記複数の確率区間は、累積確率が一定の幅で分割された区間である、
請求項1記載のパターン探索装置。
【請求項3】
前記分布獲得部は、前記学習パターンの分布が正規分布であると仮定し、前記累積確率分布をシグモイド関数で近似する、
請求項2記載のパターン探索装置。
【請求項4】
前記分布獲得部は、前記累積確率分布を関数の重み付け和によって近似する、
請求項2記載のパターン探索装置。
【請求項5】
前記分布獲得部は、前記各次元軸に関して、前記学習パターンの値により累積ヒストグラムを獲得し、前記累積ヒストグラムを前記累積確率分布とする、
請求項2記載のパターン探索装置。
【請求項6】
前記複数の学習パターンのそれぞれを部分空間に射影し、ベクトル空間内でのユークリッド距離に直交変換する直交変換部をさらに有し、
前記登録部は、前記直交変換した学習パターンをそれぞれ登録する、
請求項2記載のパターン探索装置。
【請求項7】
前記直交変換部は、前記学習パターンを主成分分析により直交変換する、
請求項6記載のパターン探索装置。
【請求項8】
前記分布獲得部は、前記d次元のうちの任意の複数の次元軸のそれぞれについての累積確率分布をそれぞれ求め、
前記ハッシュ関数獲得部は、前記各累積確率分布についてのハッシュ関数をそれぞれ求め、
前記学習部は、前記各ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求めて、前記各学習パターンを前記各ハッシュ値に対応するバケットに分類し、
前記探索部は、前記ハッシュ値に対応する前記バケット中の複数の前記学習パターンを求めるときに、前記各バケット中の前記学習パターンの和集合の中から前記探索を行う、
請求項2記載のパターン探索装置。
【請求項9】
前記探索部は、前記学習パターンのそれぞれが前記和集合に属する回数を求め、前記回数が上位のみの複数の前記学習パターンの中から前記探索を行う、
請求項8記載のパターン探索装置。
【請求項10】
前記分布獲得部は、前記d次元のうちの任意の複数の次元軸のそれぞれについての累積確率分布をそれぞれ求め、
前記ハッシュ関数獲得部は、前記各累積確率分布についてのハッシュ関数をそれぞれ求め、
前記学習部は、前記各ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求めて、前記各学習パターンを前記各ハッシュ値に対応するバケットに分類し、
前記探索部は、前記ハッシュ値に対応する前記バケット中の複数の前記学習パターンを求めるときに、前記各バケット中の前記学習パターンの積集合、または、前記積集合の近傍の中から前記探索を行う、
請求項2記載のパターン探索装置。
【請求項11】
d次元の複数の学習パターンを記憶する記憶ステップと、
前記複数の学習パターンから、前記d次元の任意の次元軸上における前記学習パターンのそれぞれの存在確率の累積確率を表す累積確率分布を求める分布獲得ステップと、
累積確率が分割された複数の確率区間のそれぞれに前記累積確率分布で対応する前記次元軸上の分布区間内の任意の点の値を、前記各確率区間に対応するハッシュ値に変換するハッシュ関数を求めるハッシュ関数獲得ステップと、
前記ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求め、前記各学習パターンを前記ハッシュ値に対応するバケットに分類する学習ステップと、
前記ハッシュ関数を用いて入力パターンのハッシュ値を求め、前記入力パターンのハッシュ値に対応するバケットに属する前記学習パターンの中から、前記入力パターンに最も類似する前記学習パターンを探索する探索ステップと、
を有するパターン探索方法。
【請求項12】
d次元の複数の学習パターンを記憶する記憶機能と、
前記複数の学習パターンから、前記d次元の任意の次元軸上における前記学習パターンのそれぞれの存在確率の累積確率を表す累積確率分布を求める分布獲得機能と、
累積確率が分割された複数の確率区間のそれぞれに前記累積確率分布で対応する前記次元軸上の分布区間内の任意の点の値を、前記各確率区間に対応するハッシュ値に変換するハッシュ関数を求めるハッシュ関数獲得機能と、
前記ハッシュ関数を用いて前記各学習パターンのハッシュ値をそれぞれ求め、前記各学習パターンを前記ハッシュ値に対応するバケットに分類する学習機能と、
前記ハッシュ関数を用いて入力パターンのハッシュ値を求め、前記入力パターンのハッシュ値に対応するバケットに属する前記学習パターンの中から、前記入力パターンに最も類似する前記学習パターンを探索する探索機能と、
をコンピュータによって実現するパターン探索プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−20769(P2009−20769A)
【公開日】平成21年1月29日(2009.1.29)
【国際特許分類】
【出願番号】特願2007−183788(P2007−183788)
【出願日】平成19年7月13日(2007.7.13)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】