(57)【特許請求の範囲】
【請求項１】
多次元空間内における単位球面上に存在する粒子の位置ベクトルを特徴量ベクトル空間を分割する超平面の法線ベクトルとし、当該超平面を評価する所定の評価関数を前記単位球面上に粒子が存在する確率を示す確率密度関数として、前記単位球面上における複数の粒子の位置を前記確率密度関数の値に応じて移動させ、
前記移動させた各粒子の位置ベクトルを前記超平面の法線ベクトルとみなして前記特徴量ベクトルをバイナリ列に変換する
処理を情報変換装置が実行することを特徴とする情報変換方法。
【請求項２】
前記単位球面上における複数の粒子の位置を移動させる処理は、
前記粒子の移動先候補を抽出し、
前記移動先候補に前記粒子を移動させた際の位置ベクトルを前記超平面の法線ベクトルとして算出した前記評価関数の値を、前記粒子の現在の位置ベクトルを前記超平面の法線ベクトルとして算出した前記評価関数の値で除算した値を算出し、
前記算出した値が０以上１以下となる乱数よりも大きい場合は、前記抽出した移動先候補に前記粒子を移動させ、前記算出した値が前記乱数以下となる場合は、前記粒子を移動させない処理であることを特徴とする請求項１に記載の情報変換方法。
【請求項３】
前記粒子を前記単位球面上で複数の粒子の位置を移動させる処理を所定の回数繰り返し実行することを特徴とする請求項１または２に記載の情報変換方法。
【請求項４】
同じラベルが付与された特徴量ベクトルのペアを正例ペアとして選択し、
異なるラベルが付与された特徴量ベクトルのペアを負例ペアとして選択し、
前記正例ペアに含まれる２つの特徴量ベクトルを前記超平面が異なる領域に分割する場合は、値が減少し、前記負例ペアに含まれる２つの特徴量ベクトルを前記超平面が異なる領域に分割する場合は、値が増加する評価関数を前記確率密度関数として、前記複数の粒子を前記単位球面上で移動させることを特徴とする請求項１または２に記載の情報変換方法。
【請求項５】
複数の前記正例ペアと複数の前記負例ペアとを選択し、
前記正例ペアのうち、前記超平面によって分割された一方の領域に両方の特徴量ベクトルが含まれている正例ペアの数と、前記負例ペアのうち、前記超平面によって２つの特徴量ベクトルが異なる領域に分割されている負例ペアの数との和を指数とし、ネイピア数を底とする評価関数を前記確率密度関数とすることを特徴とする請求項４に記載の情報変換方法。
【請求項６】
複数の前記正例ペアと複数の前記負例ペアとを選択し、
前記正例ペアのうち、前記超平面によって分割された一方の領域に両方の特徴量ベクトルが含まれている正例ペアの比率と、前記負例ペアのうち、前記超平面によって２つの特徴量ベクトルが異なる領域に分割されている負例ペアの比率との和を指数とし、ネイピア数を底とする評価関数を前記確率密度関数とすることを特徴とする請求項４に記載の情報変換方法。
【請求項７】
複数の前記正例ペアと複数の前記負例ペアとを選択し、
前記正例ペアに含まれる一方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値と、他方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値とを加算して絶対値を取った値を全ての前記正例ペアについて加算し、
前記負例ペアに含まれる一方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値と、他方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値との差分の絶対値を取った値を全ての前記負例ペアについて加算し、
前記正例ペアについて加算した値と前記負例ペアについて加算した値との和を指数とし、ネイピア数を底とする評価関数を前記確率密度関数とすることを特徴とする請求項４に記載の情報変換方法。
【請求項８】
複数の前記正例ペアと複数の前記負例ペアとを選択し、
前記正例ペアに含まれる一方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値と、他方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値とを加算して絶対値を取った値を全ての前記正例ペアについて加算し、
前記負例ペアに含まれる一方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値と、他方の特徴量ベクトルと前記超平面の法線ベクトルとの間の角度のコサイン値との差分の絶対値を取った値を全ての前記負例ペアについて加算し、
前記正例ペアについて加算した値を前記正例ペアの数で除算した値と、前記負例ペアについて加算した値を前記負例ペアの値で除算した値との和を指数とし、ネイピア数を底とする評価関数を前記確率密度関数とすることを特徴とする請求項４に記載の情報変換方法。
【請求項９】
多次元空間内における単位球面上に存在する粒子の位置ベクトルを特徴量ベクトル空間を分割する超平面の法線ベクトルとし、当該超平面を評価する所定の評価関数を前記単位球面上に粒子が存在する確率を示す確率密度関数とみなして、前記単位球面上における複数の粒子を移動させた位置を算出する算出部と、
前記算出部が算出した各粒子の位置を示す位置ベクトルを前記超平面の法線ベクトルとみなして前記特徴量ベクトルをバイナリ列に変換する変換部と
を有することを特徴とする情報変換装置。
【請求項１０】
コンピュータに、
多次元空間内における単位球面上に存在する粒子の位置ベクトルを特徴量ベクトル空間を分割する超平面の法線ベクトルとし、当該超平面を評価する所定の評価関数を前記単位球面上に粒子が存在する確率を示す確率密度関数として、前記単位球面上における複数の粒子の位置を、前記確率密度関数の値に応じて移動させ、
前記移動させた各粒子の位置ベクトルを前記超平面の法線ベクトルとみなして前記特徴量ベクトルをバイナリ列に変換する
処理を実行させることを特徴とする情報変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報変換方法、情報変換装置および情報変換プログラムに関する。
【背景技術】
【０００２】
従来、指紋、画像、音声などのデータの特徴を示す特徴量ベクトルを用いて類似するデータを検索する際に、厳密性を緩和することで、検索処理を高速化する技術が知られている。このような技術の一例として、特徴量ベクトル間の距離関係を保持したまま特徴量ベクトルをバイナリ列に変換し、バイナリ列同士のハミング距離を計算することで、計算コストを削減する方法が知られている。【０００３】
また、特徴量ベクトルの距離関係を保持しつつ特徴量ベクトルをバイナリ列に変換する手法の一例として、ＬＳＨ（Locality-Sensitive  Hashing）の技術が知られている。例えば、情報処理装置は、特徴量ベクトル空間を分割する複数の超平面を設定し、各超平面の法線ベクトルと特徴量ベクトルとの内積がそれぞれ正であるか負であるかを示すバイナリ列に特徴量ベクトルを変換する。すなわち、情報処理装置は、超平面を用いて特徴量ベクトル空間を複数の領域に分割し、分割された領域のうちどの領域に特徴量ベクトルが属するかを示すバイナリ列に特徴量ベクトルを変換する。【０００４】
ここで、データの登録を行った個人を特定するＩＤ等、各データに類似性を示すラベルが付与される場合は、新たに登録されるデータの分類を容易にするため、各データをラベルごとに分類する超平面を設定するのが望ましい。このため、同じラベルが付与されたデータペアと異なるラベルが付与されたデータペアとを用いて、各データをラベルごとに分類する超平面の組を学習する技術が知られている。【０００５】
例えば、情報処理装置は、分類対象となる特徴量ベクトルから、同じラベルが付与された２つの特徴量ベクトル（以下、正例ペアと記載する）と、異なるラベルが付与された２つの特徴量ベクトル（以下、負例ペアと記載する）とを選択する。そして、情報処理装置は、正例ペア間のハミング距離が近くなり、負例ペア間のハミング距離が遠くなるように超平面の組を繰り返し最適化することで、各データをラベルごとに分類する超平面の組を学習する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２５２３３３号公報
【特許文献２】特開２０１０−０６１１７６号公報
【特許文献３】特開２００７−００４４５８号公報
【非特許文献】
【０００７】
【非特許文献１】M.  Datar,  N.  Immorlica,  P.  Indyk,  V.  S.  Mirrokni:  Locality-Sensitive  Hashing  Scheme  Based  on  p-Stable  Distributions,  Proceedings  of  the  twentieth  annual  symposium  on  Computational  geometry  (SCG  2004)
【非特許文献２】M.  Norouzi  and  D.  Fleet:  Minimal  Loss  hashing  for  compact  binary  codes,  Proceedings  of  the  28th  International  Conference  on  Machine  Learning  (ICML  '11)  (2011)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、バイナリ列に変換した際の距離関係の精度を向上させるには、設定する超平面の数を増加させればよい。しかし、上述した超平面の組を学習する技術では、超平面の数を増加させると、超平面の組を最適化する際の計算量が増加するので、各データをラベルごとに分類する超平面の組を学習するのが困難になるという問題がある。【０００９】
一方、複数の超平面を個別に最適化した場合は、特徴量ベクトル空間を同じように分割する超平面を学習し易いので、距離関係の精度が劣化してしまう。【００１０】
１つの側面では、本発明は、超平面の組を容易に最適化することを目的とする。
【課題を解決するための手段】
【００１１】
１つの側面では、情報変換装置は、多次元空間内における単位球面上に存在する粒子の位置ベクトルを特徴量ベクトル空間を分割する超平面の法線ベクトルとする。また、情報変換装置は、超平面を評価する所定の評価関数を単位球面上に粒子が存在する確率を示す確率密度関数として、単位球面上における複数の粒子の位置を確率密度関数の値に応じて移動させる。そして、情報変換装置は、移動させた各粒子の位置ベクトルを超平面の法線ベクトルとみなして特徴量ベクトルをバイナリ列に変換する。
【発明の効果】
【００１２】
１つの実施形態では、超平面の組を容易に最適化することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る検索システムを説明するための図である。
【図２】図２は、生体認証の一例を説明するための図である。
【図３】図３は、ランダムウォークによる効果を説明するための図である。
【図４】図４は、学習データ記憶部が記憶するデータの一例を説明するための図である。
【図５】図５は、ＭＣＭＣ処理の内容を説明するための図である。
【図６】図６は、情報変換装置が実行する処理の流れを説明するためのフローチャートである。
【図７】図７は、ＭＣＭＣ処理の流れを説明するためのフローチャートである。
【図８】図８は、評価関数の値の計算を行う処理の流れを説明する第１のフローチャートである。
【図９】図９は、評価関数の値の計算を行う処理の流れを説明する第２のフローチャートである。
【図１０】図１０は、評価関数の値の計算を行う処理の流れを説明する第３のフローチャートである。
【図１１】図１１は、評価関数の値の計算を行う処理の流れを説明する第４のフローチャートである。
【図１２】図１２は、情報変換プログラムを実行するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して本願に係る情報変換方法、情報変換装置および情報変換プログラムについて説明する。
【実施例１】
【００１５】
以下の実施例１では、図１を用いて、情報変換装置を有する検索システムの一例を説明する。図１は、実施例１に係る検索システムを説明するための図である。図１に示すように、検索システム１は、クライアント装置２、情報変換装置１０、情報検索装置２０を有する。【００１６】
また、情報変換装置１０は、学習データ記憶部１１、データペア生成部１２、粒子位置算出部１３、変換行列生成部１４を有する。また、情報検索装置２０は、検索対象データベース記憶部２１、バイナリ変換部２３、バイナリデータベース記憶部２２、検索処理部２４を有する。【００１７】
図１に示す検索システム１は、クライアント装置２からクエリデータを受信すると、検索対象データベース記憶部２１から、クエリデータの近傍データを検索する。そして、検索システム１は、クエリデータの近傍に類似するデータが登録されているか否かをクライアント装置２へ通知するシステムである。具体的には、検索システム１は、情報変換装置１０が生成した変換行列を用いて、情報検索装置２０が検索対象となるデータをバイナリ列に変換し、変換後のバイナリ列を用いて、クエリデータの近傍データを検索する。【００１８】
ここで、検索システム１が検索対象とするデータは、例えば、画像や音声などのデータであり、指紋のパターンや静脈のパターンを用いた生体認証における生体データである。すなわち、検索システム１は、クライアント装置２に入力された利用者の生体データをクエリデータとして受信すると、利用者の生体データが登録されているか否かを判別するシステムである。【００１９】
なお、画像や音声の特徴量は様々なものが提案されているが、検索システム１は、特定の特徴量に依存するものではないため、任意の特徴量を用いることができる。例えば、画像の特徴量として一般的に用いられているＳＩＦＴ特徴量やＳＵＲＦ特徴量などを用いることもできる。これらの特徴量は画像中の局所的な情報を特徴量ベクトルとして用いることで、隠れや変動に対してロバストな特徴量であることが知られているが、このような特徴量を示す任意の形式の特徴量ベクトルを用いてよい。【００２０】
図２は、生体認証の一例を説明するための図である。なお、図２に示す例では、利用者のＩＤ（Identification）等の情報が入力されず、利用者のＩＤを用いた生体データの絞込みを行わないＩＤレスの１：Ｎ認証における処理を示す。図２に示すように、検索システム１は、複数の利用者が登録した登録生体データを複数記憶する。【００２１】
そして、検索システム１は、クライアント装置２からクエリデータとして、生体データを受信すると、入力された生体データの特徴量を示す特徴量ベクトルを抽出し、抽出した特徴量ベクトルと類似する特徴量ベクトルを有する登録生体データを検索する。すなわち、検索システム１は、クエリデータを入力した利用者の登録生体データが登録されているか否かを判別する。【００２２】
また、検索システム１は、特徴量ベクトルを所定のビット長のバイナリ列に変換する変換行列を生成し、生成した変換行列を用いて、登録生体データの特徴量ベクトルをバイナリ列に変換する。また、検索システム１は、クエリデータとして入力された生体データにおける特徴量ベクトルを所定のビット長のバイナリ列に変換し、登録生体データの特徴量ベクトルを変換したバイナリ列とのハミング距離を算出する。【００２３】
そして、検索システム１は、ハミング距離が所定の閾値以下となる登録生体データを検索対象の候補として抽出する。その後、情報検索装置１は、検索した登録生体データとクエリデータとして入力された生体データとの厳密なマッチング処理を実行し、実行結果をクライアント装置２に出力する。【００２４】
このように、検索システム１は、検索対象となる登録生体データの特徴を示す特徴量ベクトルを所定のバイナリ列に変換し、クエリデータの特徴量ベクトルを変換したバイナリ列とのハミング距離を算出することにより、検索対象とするデータの絞込みを行う。そして、検索システム１は、絞り込んだデータとクエリデータとのマッチングを行うことで、生体認証におけるマッチングを行う。【００２５】
なお、入力された生体データや登録生体データが画像である場合には、特徴量ベクトルは、例えば、画像中の特定領域における隆線の方向や長さ、勾配、隆線の終端や分岐などの特徴的な点の密度や座標の数値をベクトル化したものとなる。また、入力された生体データや登録生体データが音声である場合には、特徴量ベクトルは、例えば、周波数成分の分布、強度、ピーク値などの数値をベクトル化したものとなる。【００２６】
以下、情報変換装置１０が実行する処理、および情報検索装置２０が実行する処理について説明する。図１に戻り、情報変換装置１０は、学習データ記憶部１１が記憶する学習データを用いて、特徴量ベクトルを所定のビット長のバイナリ列に変換する変換行列を生成し、生成した変換行列を情報検索装置２０に通知する。【００２７】
ここで、変換行列とは、特徴量ベクトル空間を複数の領域に分割する超平面の法線ベクトルを行成分として有する行列であり、情報検索装置２０が特徴量ベクトルをバイナリ列に変換する際に用いる行列である。例えば、情報検索装置２０は、変換行列と特徴量ベクトルとの積を算出する。そして、情報検索装置２０は、算出した積の各成分について、値が正であるか負であるかを判別し、正の値である場合は「１」、負の値である場合は「０」としたバイナリ列を生成する。つまり、情報検索装置２０は、変換行列を用いて、各特徴量ベクトルが、超平面によって複数の領域に分割された特徴量ベクトル空間のうち、どの領域に属しているかを示すバイナリ列に特徴量ベクトルを変換する。【００２８】
ここで、新たに登録されるデータの分類を容易にするため、各データをラベルごとに分類する超平面を設定するのが望ましい。また、バイナリ列は、特徴量ベクトルが各超平面のどちら側に位置するかを示す情報であるため、類似する超平面を設定した場合は、冗長なビット列が増えてしまい、距離関係の精度が劣化する。このため、各超平面がそれぞれ特徴量ベクトル空間を異なる領域に分割するよう設定されるのが望ましい。【００２９】
ここで、同じラベルが付与された特徴量ベクトルの組である正例ペアと、異なるラベルが付与された特徴量ベクトルの組である負例ペアとを用いて、設定した複数の超平面を同時に評価することで、超平面を最適化する手法が考えられる。しかしながら、複数の超平面を同時に最適化させるには、計算量が多くなる結果、超平面の組を学習するのが困難となっていた。【００３０】
そこで、情報変換装置１０は、超平面と同じ次元数を有する単位球面上に、設定する超平面と同数の粒子を配置し、超平面を評価するための評価関数を単位球面上に粒子が存在する確率を示す確率密度関数とみなして各粒子をランダムウォークさせる。そして、情報変換装置１０は、ランダムウォークさせた結果、確率密度関数が極大値を取る位置に移動した粒子の位置ベクトルを超平面の法線ベクトルとみなす。【００３１】
ここで、図３は、ランダムウォークによる効果を説明するための図である。なお、図３に示す例では、超平面と同じ次元数を有する単位球を２次元に投影した例について記載した。例えば、情報変換装置１０は、図３中（Ａ）で示す単位球面上に、図３中（Ｂ）で示す粒子を配置する。また、情報変換装置１０は、図３中（Ｃ）で示すように、超平面を評価する評価関数を確率密度関数とみなす。そして、情報変換装置１０は、単位球面上の粒子をランダムウォークさせる。【００３２】
このようなランダムウォークを行った場合は、粒子は、確率密度関数が極大値を取る位置に留まりやすい。このため、情報変換装置１０は、図３中（Ｄ）で示すように、ランダムウォークにより確率密度関数が極大値を取る位置に移動した粒子の位置ベクトルを超平面の法線ベクトルとみなすことで、評価関数が極大値を取る超平面の法線ベクトルを求めることができる。【００３３】
また、単位球面上に複数の粒子を無作為に配置し、各粒子をそれぞれランダムウォークさせた場合は、各粒子は、初期配置の近傍にある確率密度関数が極大値を取る位置に留まりやすい。すなわち、ランダムウォークの結果、各粒子は、同じ位置に移動する確率が低くなる。【００３４】
そこで、情報変換装置１０は、単位球面上に複数の粒子を配置し、超平面を評価する評価関数を確率密度関数とみなして各粒子を個別にランダムウォークさせる。すなわち、情報変換装置１０は、単位球面上の複数の粒子の位置ベクトルを超平面の法線ベクトルとみなし、評価関数を確率密度関数とみなして、マルコフ連鎖モンテカルロ法によるサンプリングを行う。そして、情報変換装置１０は、各粒子が移動した位置の位置ベクトルを超平面の法線ベクトルとみなすことで、超平面の組について評価関数の最適化問題を解かずとも、容易に超平面の組を最適化することができる。また、情報変換装置１０は、可積分な非負の関数を評価関数に適用することができる。【００３５】
次に、情報変換装置１０が有する学習データ記憶部１１、データペア生成部１２、粒子位置算出部１３、変換行列生成部１４が実行する処理について説明する。図１に戻り、学習データ記憶部１１は、情報変換装置が超平面を学習するための学習データを記憶する。【００３６】
具体的には、学習データ記憶部１１は、学習データとして、利用者ごとに、複数の特徴量ベクトルを記憶する。ここで、学習データ記憶部１１が記憶する特徴量ベクトルは、後述する検索対象データベース記憶部２１が記憶する特徴量ベクトルの一部である。すなわち、学習データ記憶部１１は、検索システム１に登録された登録生体データの特徴量ベクトルの一部を記憶する。【００３７】
ここで、図４は、学習データ記憶部が記憶するデータの一例を説明するための図である。図４に示すように、学習データ記憶部１１は、データＩＤ（Identification）と特徴量ベクトルとラベルとを対応付けて記憶する。ここで、データＩＤとは、各データに付与されるデータの識別子である。また、ラベルとは、各特徴量ベクトルの類似性を示す情報であり、例えば、各特徴量ベクトルの元となる生体データ等を登録した利用者を示す情報である。【００３８】
例えば、図４に示す例では、学習データ記憶部１１は、データＩＤ「１」で示される特徴量ベクトルであって、ラベル「Ａ」が付与された４０００次元の浮動小数点データ「ａ、ｂ、ｃ…」を特徴量ベクトルとして記憶する。また、学習データ記憶部１１は、データＩＤ「２」で示される特徴量ベクトルであって、ラベル「Ｂ」が付与された４０００次元の浮動小数点データ「ｄ、ｅ、ｆ…」を特徴量ベクトルとして記憶する。【００３９】
図１に戻り、データペア生成部１２は、学習データ記憶部１１が記憶する学習データから、超平面を学習する際に用いるデータペアを収集する。具体的には、データペア生成部１２は、学習データ記憶部１１が記憶する特徴量ベクトルのうち、同じラベルが付与された２つの特徴量ベクトルである正例ペアを複数選択する。また、データペア生成部１２は、学習データ記憶部１１が記憶する特徴量ベクトルのうち、異なるラベルが付与された２つの特徴量ベクトルである負例ペアを複数選択する。そして、データペア生成部１２は、選択した正例ペアと負例ペアとを粒子位置算出部１３に出力する。【００４０】
粒子位置算出部１３は、所定の評価関数を確率密度関数とみなして超平面と同じ次元数を有する単位球面上で複数の粒子をランダムウォークさせ、確率密度関数が極大値となる位置の位置ベクトルを算出する。詳細には、データペア生成部１２から正例ペアと負例ペアとを受信する。また、粒子位置算出部１３は、超平面と同じ次元数を有する単位球面上に、設定する超平面と同数の粒子をランダムに配置する。そして、粒子位置算出部１３は、単位球面上に配置した粒子ごとに以下のマルコフ連鎖モンテカルロ処理（MCMC:Markov  chain  Monte  Carlo  methods)を実行する。【００４１】
まず、粒子位置算出部１３は、現在の粒子の位置ベクトルを法線ベクトルとする超平面について、データペア生成部１２から受信した正例ペアと負例ペアとを用いて、評価関数の値を算出する。次に、粒子位置算出部１３は、粒子の移動先となる候補位置を抽出する。なお、候補位置を抽出する処理の内容としては、所定の距離だけ移動させる方法や、メトロポリス・ヘイスティングス法を用いて、提案分布から候補位置を抽出する方法が考えられる。【００４２】
次に、粒子位置算出部１３は、抽出した候補位置の位置ベクトルを法線ベクトルとする超平面について、データペア生成部１２から受信した正例ペアと負例ペアとを用いて、評価関数の値を算出する。詳細には、粒子位置算出部１３は、候補位置の位置ベクトルを法線ベクトルとする超平面が特徴量ベクトルを分割していない正例ペアの数を計数する。また、粒子位置算出部１３は、候補位置の位置ベクトルを法線ベクトルとする超平面が特徴量ベクトルを分割する負例ペアの数を計数する。そして、粒子位置算出部１３は、計数した正例ペアの数と負例ペアの数とを用いて、超平面を評価する値、すなわち評価関数の値を算出する。【００４３】
また、粒子位置算出部１３は、候補位置の位置ベクトルを法線ベクトルとする超平面について算出した評価関数の値を、現在の粒子の位置ベクトルを法線ベクトルする超平面について算出した評価関数の値で除算した値を算出する。その後、粒子位置算出部１３は、０以上１以下の値を取る乱数を算出し、算出した値が乱数よりも大きい場合は、候補位置を新たな粒子の位置とする。すなわち、粒子位置算出部１３は、ランダム性を考慮しつつ、評価関数の値が大きくなる位置に粒子を移動させる。【００４４】
ここで、図５は、ＭＣＭＣ処理の内容を説明するための図である。なお、図５では、理解を容易にするため、単位球面上の各位置を１次元に投影して横軸方向に射影し、評価関数Ｕ（ｘ）の値を縦軸方向に取り、Ｕ（ｘ）の値をプロットした。例えば、粒子位置算出部１３は、図５中（Ｅ）に示す粒子を移動させる候補位置として、図５中（Ｆ）に示す位置を選択する。【００４５】
そして、粒子位置算出部１３は、候補位置の位置ベクトルを超平面の法線ベクトルとして、評価関数Ｕ（ｘ）の値を求める。次に、粒子位置算出部１３は、候補位置の位置ベクトルを超平面の法線ベクトルとして算出した評価関数Ｕ（ｘ）の値を、現在位置の位置ベクトルを超平面の法線ベクトルして算出した評価関数Ｕ（ｘ）の値で除算した値を算出する。そして、粒子位置算出部１３は、除算結果が０以上１以下の乱数よりも大きいか判定する。【００４６】
ここで、図５中（Ｅ）に示す粒子は、Ｕ（ｘ）の値が極大値を取る位置に配置されているので、候補位置におけるＵ（ｘ）の値は、現在位置におけるＵ（ｘ）の値よりも低くなる。このため、除算結果は、１以下の値となり、乱数よりも小さくなる可能性が高い。このため、図５中（Ｅ）に示す粒子は、図５中（Ｆ）に移動する可能性が低い。【００４７】
同様に、図５中（Ｅ）に示す粒子の候補位置として図５中（Ｈ）に示す位置を選択した場合にも、評価関数の値が低くなるので、候補位置に移動する可能性が低い。この結果、図５中（Ｅ）に示す粒子は、ランダムウォークの結果、他の位置に移動する確率が低く、評価関数の極大値に留まる可能性が高い。【００４８】
一方、図５中（Ｇ）に示す粒子をランダムウォークさせた場合について考える。例えば、図５に示す例では、図５中（Ｇ）に示す粒子の候補位置を図５中（Ｉ）に示す位置とすると、評価関数Ｕ（ｘ）の値が現在の値よりも低くなる。一方、図５中（Ｇ）に示す粒子の候補位置を図５中（Ｊ）に示す位置とすると、評価関数Ｕ（ｘ）の値が現在よりも高くなる。ここで、候補位置における評価関数Ｕ（ｘ）の値が現在位置における評価関数Ｕ（ｘ）の値よりも高い場合は、除算結果が１以上となるので、候補位置が図５中（Ｇ）に示す粒子の新たな位置となる。この結果、図５中（Ｇ）に示すように、評価関数Ｕ（ｘ）が極大値とならない位置の粒子は、ランダムウォークの結果Ｕ（ｘ）が極大値となる位置方向に移動しやすい。【００４９】
このように、複数の粒子を単位球面上に配置し、各粒子をそれぞれ個別にランダムウォークさせた場合は、各粒子が同じ位置に移動していく可能性が低く、評価関数が極大値を取る位置に各粒子が移動していく可能性が高い。そこで、粒子位置算出部１３は、複数の粒子を単位球面上に配置してそれぞれ個別にランダムウォークさせ、各粒子の位置ベクトルを超平面の法線ベクトルとすることで、評価関数が極大値を取り、かつ類似しない超平面の組を容易に算出することができる。また、粒子位置算出部１３は、評価関数を微分可能な形式で得られない場合にも、評価関数が極大値を取るであろう法線ベクトルの組を容易に算出することができる。【００５０】
なお、粒子位置算出部１３は、正例ペアの間に超平面が入るとき値が小さく、負例ペアの間に超平面が入るときは値が大きくなる性質を有する任意の評価関数を確率密度関数とみなして利用することができる。そこで、以下の説明では、粒子位置算出部１３が利用する評価関数の複数の例を説明する。【００５１】
例えば、粒子位置算出部１３は、超平面が分割した２つの領域のうち、いずれか一方の領域に両方の特徴量ベクトルが含まれている正例ペアの数を計数する。詳細には、粒子位置算出部１３は、法線ベクトルと正例ペアに含まれる各特徴量ベクトルの角度をそれぞれθ１（ｐ）、θ２（ｐ）とし、ｃｏｓ（θ１（ｐ））×ｃｏｓ（θ２（ｐ））が正の値となる正例ペアの数を「＃ＰＰ＋」とする。【００５２】
また、粒子位置算出部１３は、データペア生成部１２から受信した負例ペアのうち、粒子の位置ベクトルを法線ベクトルとする超平面が、特徴量ベクトルを異なる領域に分けている負例ペアの個数を計数する。詳細には、粒子位置算出部１３は、法線ベクトルと負例ペアに含まれる各特徴量ベクトルの角度をそれぞれθ１（ｐ）、θ２（ｐ）とする。そして、粒子位置算出部１３は、ｃｏｓ（θ１（ｐ））×ｃｏｓ（θ２（ｐ））が負の値となる負例ペアの数を「＃ＮＰ−」とする。【００５３】
また、粒子位置算出部１３は、以下の式（１）を用いて変数ｘの値を算出する。すなわち、粒子位置算出部１３は、いずれか一方の領域に両方の特徴量ベクトルが含まれている正例ペアの数と、特徴量ベクトルが異なる領域に分けてられている負例ペアの個数との合計を算出する。その後、評価関数Ｕ（ｘ）＝ｅｘｐ（ｘ／Ｔ）の値を算出する。ここで、Ｔは、任意のパラメータであり、例えば「１」である。【００５４】
【数１】
0006004016.tif 000002
【００５５】
また、粒子位置算出部１３は、いずれか一方の領域に両方の特徴量ベクトルが含まれている正例ペアの数の割合と、特徴量ベクトルが異なる領域に分けてられている負例ペアの数の割合とを用いて評価関数の値を算出してもよい。例えば、粒子位置算出部１３は、データペア生成部１２から受信した正例ペアの数を「＃ＰＰ」とし、データペア生成部１２から受信した負例ペアの数を「＃ＮＰ」とする。【００５６】
そして、粒子位置算出部１３は、以下の式（２）を用いて変数ｘの値を算出し、評価関数Ｕ（ｘ）＝ｅｘｐ（ｘ／Ｔ）の値を算出する。【００５７】
【数２】
0006004016.tif 000003
【００５８】
また、粒子位置算出部１３は、他の式を用いて、評価関数の値を算出してもよい。例えば、粒子位置算出部１３は、ｃｏｓ（θ１（ｐ））＋ｃｏｓ（θ２（ｐ））の絶対値を全ての正例ペアについて算出し、算出した絶対値の合計をＤとする。また、粒子位置算出部１３は、ｃｏｓ（θ１（ｐ））−ｃｏｓ（θ２（ｐ））の絶対値を全ての負例ペアについて算出し、算出した絶対値の合計をＥとする。【００５９】
そして、粒子位置算出部１３は、算出したＤとＥとの合計をｘの値とし、評価関数Ｕ（ｘ）＝ｅｘｐ（ｘ／Ｔ）の値を算出する。すなわち、粒子位置算出部１３は、以下の式（３）を用いて変数ｘを算出し、算出した変数ｘの値を用いて、評価関数Ｕ（ｘ）の値を算出する。【００６０】
【数３】
0006004016.tif 000004
【００６１】
また、粒子位置算出部１３は、式（３）について、式（２）と同様に、割合を考慮してもよい。例えば、粒子位置算出部１３は、ｃｏｓ（θ１（ｐ））＋ｃｏｓ（θ２（ｐ））の絶対値を全ての正例ペアについて算出し、算出した絶対値の合計をＤとする。また、粒子位置算出部１３は、ｃｏｓ（θ１（ｐ））−ｃｏｓ（θ２（ｐ））の絶対値を全ての負例ペアについて算出し、算出した絶対値の合計をＥとする。【００６２】
そして、粒子位置算出部１３は、算出したＤを正例ペアの数「＃ＰＰ」で除算した値とＥを負例ペアの数「＃ＮＰ」で除算した値との合計をｘの値とし、評価関数Ｕ（ｘ）の値を算出する。すなわち、粒子位置算出部１３は、以下の式（４）を用いて変数ｘを算出し、算出した変数ｘの値を用いて、評価関数Ｕ（ｘ）の値を算出する。【００６３】
【数４】
0006004016.tif 000005
【００６４】
このように、粒子位置算出部１３は、粒子の位置ベクトルを超平面の法線ベクトルとみなし、超平面が正例ペアを同じ領域に含める数と負例ペアを異なる領域に分割する数とに応じて値が増加する評価関数の値を算出する。そして、粒子位置算出部１３は、算出した評価関数の値を確率密度関数の値とし、確率密度関数が大きくなる方向へ、単位球面上の各粒子を移動させる。この結果、粒子位置算出部１３は、超平面の組について、評価関数の最適値問題を解かずとも、評価関数の値がそれぞれ極大となり、かつ類似しない超平面の組の法線ベクトル、すなわち最適化された超平面の組による変換行列を算出することができる。【００６５】
なお、粒子位置算出部１３は、各粒子に対して、上述したランダムウォーク処理を所定の回数だけ実行し、確率密度関数が極大値となる位置に各粒子を移動させる。その後、粒子位置算出部１３は、各粒子の位置ベクトルを変換行列生成部１４に出力する。【００６６】
図１に戻って、変換行列生成部１４は、粒子位置算出部１３が算出した位置ベクトルを受信すると、受信した位置ベクトルをまとめた行列、すなわち変換行列を生成する。例えば、変換行列生成部１４は、複数の位置ベクトルを受信し、受信した各位置ベクトルを行ベクトルとする変換行列を生成する。そして、変換行列生成部１４は、生成した変換行列を情報検索装置２０のバイナリ変換部２３に出力する。【００６７】
次に、情報検索装置２０が実行する処理について説明する。検索対象データベース記憶部２１は、検索対象となるデータ、すなわち、登録生体データの特徴量ベクトルを記憶する。具体的には、検索対象データベース記憶部２１は、学習データ記憶部１１と同様のデータを記憶する。なお、検索対象データベース記憶部２１は、学習データ記憶部１１が記憶するデータを含む、より多くのデータを記憶しても良い。【００６８】
また、バイナリデータベース記憶部２２は、所定の変換行列を用いて特徴量ベクトルを変換したバイナリ記号と、変換前のデータＩＤとを対応付けて記憶する。【００６９】
図１に戻って、バイナリ変換部２３は、情報変換装置１０の変換行列生成部１４から変換行列を受信した場合は、受信した変換行列を用いて、検索対象データベース記憶部２１が記憶する特徴量ベクトルをバイナリ列に変換する。そして、バイナリ変換部２３は、変換後のバイナリ列を、変換元の特徴量ベクトルと対応付けられたデータＩＤと対応付けて、バイナリデータベース記憶部２２に格納する。【００７０】
検索処理部２４は、クライアント装置２からクエリデータを受信すると、受信したクエリデータの特徴量を示す特徴量ベクトルを抽出し、抽出した特徴量ベクトルを所定の変換行列でバイナリ列に変換する。そして、検索処理部２４は、バイナリデータベース記憶部２２が記憶するバイナリ列のうち、ハミング距離が所定の値以下となるバイナリ列、すなわち、クエリデータの近傍候補となる特徴量ベクトルのバイナリ列を検索する。【００７１】
その後、検索処理部２４は、検索したバイナリ列の変換元である特徴量ベクトルを検索対象データベース記憶部２１から取得する。そして、検索処理部２４は、取得した特徴量ベクトルに、クエリデータから抽出した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在する場合は、以下の処理を実行する。すなわち、検索処理部２４は、クエリデータが登録生体データに一致する旨をクライアント装置２へ送信する。【００７２】
一方、検索処理部２４は、取得した特徴量ベクトルに、クエリデータから抽出した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在しない場合は、以下の処理を実行する。すなわち、検索処理部２４は、クエリデータが登録生体データに一致しない旨をクライアント装置２へ送信する。この結果、クライアント装置２は、クエリデータを入力した利用者の生体認証を行うことができる。【００７３】
例えば、データペア生成部１２、粒子位置算出部１３、変換行列生成部１４、バイナリ変換部２３、検索処理部２４とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路、またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などを適用する。【００７４】
また、学習データ記憶部１１、検索対象データベース記憶部２１、バイナリデータベース記憶部２２とは、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。【００７５】
次に、図６を用いて、情報変換装置１０が実行する処理の流れについて説明する。図６は、情報変換装置が実行する処理の流れを説明するためのフローチャートである。なお、図６に示す例では、情報変換装置１０は、単位球面上にｎ個の粒子１〜ｎを配置した例について説明する。まず、情報変換装置１０は、ステップＳ１０２以降の処理を所定の回数だけ処理したか否かを判定する（ステップＳ１０１）。【００７６】
そして、情報変換装置１０は、ステップＳ１０２以降の処理を所定の回数だけ処理していないと判定した場合は（ステップＳ１０１否定）、学習データ記憶部１１から、正例ペアと負例のペアとを複数選択する（ステップＳ１０２）。次に、情報変換装置１０は、以降の処理を全ての粒子１〜ｎに対して処理したか否かを判定する（ステップＳ１０３）。そして、情報変換装置１０は、全ての粒子に対して処理していないと判定した場合は（ステップＳ１０３否定）、粒子ｉについてマルコフ連鎖モンテカルロ処理を実行する（ステップＳ１０４）。【００７７】
続いて、情報変換装置１０は、ｉの値に１を加算し（ステップＳ１０５）、ステップＳ１０３の処理を再度行う。また、情報変換装置１０は、全ての粒子１〜ｎについてステップＳ１０４を実行した場合は（ステップＳ１０３肯定）、再度ステップＳ１０１を実行する。そして、情報変換装置１０は、ステップＳ１０２以降の処理を所定の回数だけ処理した場合は（ステップＳ１０１肯定）、各粒子の位置ベクトルを法線ベクトルとした超平面の変換行列を生成し（ステップＳ１０６）、処理を終了する。【００７８】
次に、図７を用いて、図６中ステップＳ１０４に示したマルコフ連鎖モンテカルロ処理（ＭＣＭＣ処理）の流れについて説明する。図７は、ＭＣＭＣ処理の流れを説明するためのフローチャートである。なお、図７に示す例では、粒子ｉについてＭＣＭＣ処理を実行する例について記載した。【００７９】
まず、情報変換装置１０は、メトロポリス・ヘイスティングス法を用いて、提案分布から粒子ｉの候補位置を抽出する（ステップＳ２０１）。次に、情報変換装置１０は、現在の粒子ｉの位置での評価関数の値を計算し（ステップＳ２０２）、ステップＳ２０２の計算結果を「Ａ」とする（ステップＳ２０３）。次に、情報変換装置１０は、粒子ｉの候補位置での評価関数の値を計算し（ステップＳ２０４）、ステップＳ２０４の計算結果を「Ｂ」とする（ステップＳ２０５）。また、情報変換装置１０は、「０」以上「１」以下の値を取る乱数Ｃを抽出し（ステップＳ２０６）、「Ｂ」を「Ａ」で除算した値が「Ｃ」よりも大きいか否かを判定する（ステップＳ２０７）。【００８０】
そして、情報変換装置１０は、「Ｂ」を「Ａ」で除算した値が「Ｃ」よりも大きい場合は（ステップＳ２０７肯定）、粒子ｉの位置を候補位置に変更し（ステップＳ２０８）、処理を終了する。すなわち、情報変換装置１０は、粒子ｉの移動についてのランダム性を考慮しつつ、候補位置での評価関数の値が現在の評価関数の値よりも大きいか否かを判定する。そして、情報変換装置１０は、候補位置での評価関数の値が現在の評価関数の値よりも大きい場合は、粒子ｉの移動についてのランダム性を考慮しつつ、候補位置に粒子ｉを移動させる。一方、情報変換装置１０は、情報変換装置１０は、「Ｂ」を「Ａ」で除算した値が「Ｃ」以下となる場合は（ステップＳ２０７否定）、そのまま処理を終了する。【００８１】
次に、図８〜図１１を用いて、情報変換装置１０が図７中ステップＳ２０２、ステップＳ２０４に示す評価関数の値の計算を行う処理の流れについて説明する。まず、図８を用いて、情報変換装置１０が式（１）を用いて、評価関数の値の計算を行う処理の流れについて説明する。【００８２】
図８は、評価関数の値の計算を行う処理の流れを説明する第１のフローチャートである。例えば、情報変換装置１０は、粒子の位置ベクトルを法線ベクトルとする。そして、情報変換装置１０は、法線ベクトルと正例ペアに含まれる各特徴量ベクトルの角度θ１（ｐ）、θ２（ｐ）について、ｃｏｓ（θ１（ｐ））×ｃｏｓ（θ２（ｐ））が正の値となる正例ペアの数を「＃ＰＰ＋」とする（ステップＳ３０１）。また、情報変換装置１０は、法線ベクトルと負例ペアに含まれる各特徴量ベクトルの角度θ１（ｐ）、θ２（ｐ）について、ｃｏｓ（θ１（ｐ））×ｃｏｓ（θ２（ｐ））が負の値となる負例ペアの数を「＃ＮＰ−」とする（ステップＳ３０２）。そして、情報変換装置１０は、「＃ＰＰ＋」と「＃ＮＰ−」との和を用いて評価関数の値を算出し（ステップＳ３０３）、処理を終了する。【００８３】
次に、図９を用いて、情報変換装置１０が式（２）を用いて、評価関数の値の計算を行う処理の流れについて説明する。図９は、評価関数の値の計算を行う処理の流れを説明する第２のフローチャートである。なお、図９中ステップＳ４０１は、図８中ステップＳ３０１と同じ処理であり、図９中ステップＳ４０２は、図８中ステップＳ３０２と同じ処理であるため、説明を省略する。【００８４】
例えば、情報変換装置１０は、データペア生成部１２から受信した正例ペアの数を「＃ＰＰ」とし、データペア生成部１２から受信した負例ペアの数を「＃ＮＰ」とする（ステップＳ４０３）。そして、情報変換装置は、「＃ＰＰ＋」を「＃ＰＰ」で除算した値と、「＃ＮＰ−」を「＃ＮＰ」で除算した値との合計を用いて評価関数の値を算出し（ステップＳ４０４）、処理を終了する。【００８５】
次に、図１０を用いて、情報変換装置１０が式（３）を用いて、評価関数の値の計算を行う処理の流れについて説明する。図１０は、評価関数の値の計算を行う処理の流れを説明する第３のフローチャートである。【００８６】
例えば、情報変換装置１０は、法線ベクトルと正例ペアの各特徴量ベクトルの角度θ１（ｐ）、θ２（ｐ）についてｃｏｓ（θ１（ｐ））＋ｃｏｓ（θ２（ｐ））の絶対値を全ての正例ペアについて算出し、算出した絶対値の合計をＤとする（ステップＳ５０１）。また、情報変換装置１０は、法線ベクトルと負例ペアの各特徴量ベクトルの角度θ１（ｐ）、θ２（ｐ）についてｃｏｓ（θ１（ｐ））−ｃｏｓ（θ２（ｐ））の絶対値を全ての負例ペアについて算出し、算出した絶対値の合計をＥとする（ステップＳ５０２）。そして、情報変換装置１０は、算出したＤとＥとの合計を用いて、評価関数の値を算出し（ステップＳ５０３）、処理を終了する。【００８７】
次に、図１１を用いて、情報変換装置１０が式（４）を用いて、評価関数の値の計算を行う処理の流れについて説明する。図１１は、評価関数の値の計算を行う処理の流れを説明する第４のフローチャートである。なお、図１１中のステップＳ６０１は、図１０中のステップＳ５０１と同じ処理であり、図１１中のステップＳ６０２は、図１０中のステップＳ５０２と同じ処理であるため、説明を省略する。【００８８】
例えば、情報変換装置１０は、データペア生成部１２から受信した正例ペアの数を「＃ＰＰ」とし、データペア生成部１２から受信した負例ペアの数を「＃ＮＰ」とする（ステップＳ６０３）。そして、情報変換装置は、「Ｄ」を「＃ＰＰ」で除算した値と、「Ｅ」を「＃ＮＰ」で除算した値との和から評価関数の値を算出し（ステップＳ６０４）、処理を終了する。【００８９】
［実施例１の効果］
上述したように、情報変換装置１０は、多次元空間内における単位球面上に存在する粒子の位置ベクトルを特徴量ベクトル空間を分割する超平面の法線ベクトルとし、評価関数を単位球面上に粒子が存在する確率を示す確率密度関数とみなす。そして、情報変換装置１０は、単位球面上における複数の粒子の位置をランダムウォークにより評価関数が極大値を取る位置に移動させる。その後、情報変換装置１０は、各粒子の位置ベクトルを超平面の法線ベクトルとみなす。このため、情報変換装置１０は、設定する超平面の数を増加させた場合にも、各超平面が個別の最適解を束ねたものではない超平面の組を容易に最適化することができる。【００９０】
また、情報変換装置１０は、粒子を移動させる候補位置における位置ベクトルを法線ベクトルとみなした際の評価関数の値を、現在の位置における位置ベクトルを法線ベクトルとみなした際の評価関数の値で除算した価とを算出する。そして、情報変換装置１０は、算出した値が、０以上１以下の乱数よりも大きい場合は、粒子の位置を候補位置へ移動させる。このため、情報変換装置１０は、評価関数の値が極大値となる位置へ粒子を移動させることができる。また、情報変換装置１０は、粒子の移動についてランダム性を保持するので、評価関数の値が局所的な極大値に収束してしまうのを防ぐことができる。【００９１】
また、情報変換装置１０は、粒子を単位球面上でランダムウォークさせる処理を所定の回数だけ繰り返し実行する。このため、情報変換装置１０は、各法線ベクトルがより極大値に近い超平面、すなわちより最適化された超平面の組を求めることができる。【００９２】
また、情報変換装置１０は、正例ペアと負例ペアとを選択する。そして、情報変換装置１０は、正例ペアが異なる領域に分割される場合は、値が減少し、負例ペアが異なる領域に分割される場合は、値が増加する評価関数を確率密度関数とみなす。このため、情報変換装置１０は、ラベルごとに各特徴量ベクトルを分類する超平面の組を算出することができる。【００９３】
また、情報変換装置１０は、超平面によって分割された一方の領域に両方の特徴量ベクトルが含まれている正例ペアの数「＃ＰＰ＋」と、超平面によって２つの特徴量ベクトルが異なる領域に分割されている負例ペアの数「＃ＮＰ−」とを計数する。そして、情報変換装置１０は、「＃ＰＰ＋」と「＃ＮＰ−」との和を指数とし、ネイピア数を底とする評価関数を用いる。このため、情報変換装置１０は、ラベルごとに各特徴量ベクトルを分類する超平面の組を算出することができる。【００９４】
また、情報変換装置１０は、「＃ＰＰ＋」を正例ペアの数「＃ＰＰ」で除算した値と「＃ＮＰ−」を負例ペアの数「＃ＮＰ」で除算した値との和を指数とし、ネイピア数を底とする評価関数を用いる。このため、情報変換装置１０は、超平面が適切に分類するデータと超平面が適切に分類できなかったデータとの割合に応じて、超平面の組を最適化することができる。【００９５】
また、情報変換装置１０は、正例ペアに含まれる各特徴量ベクトルと法線ベクトルとの間の角度のコサイン値の和の絶対値を取った値を全ての正例ペアについて加算する。また、情報変換装置１０は、負例ペアに含まれる各特徴量ベクトルと法線ベクトルとの間の角度のコサイン値の差分の絶対値を取った値を全ての負例ペアについて加算する。そして、情報変換装置は、正例ペアについて加算した値と、負例ペアについて加算した値との和を指数とし、ネイピア数を底とする評価関数を用いる。このため、情報変換装置１０は、正例ペア全体と負例ペア全体とをどれだけ適切に分割できるか等、大局的な分類を行う超平面の組を算出することができる。【００９６】
また、情報変換装置は、正例ペアについて加算した値を正例ペアの数で除算した値と、負例ペアについて加算した値を負例ペアの数で除算した値との和を指数とし、ネイピア数を底とする評価関数を用いる。このため、情報変換装置１０は、正しい分類が行われた正例ペア、および負例ペアの割合を考慮しつつ、大局的な分類を行う超平面の組を算出することができる。
【実施例２】
【００９７】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【００９８】
（１）特徴量ベクトルの選択について
上述した情報変換装置１０は、同一のラベルが付与された２つの特徴量ベクトルを正例ペアとして選択し、異なるラベルが付与された２つの特徴量ベクトルを負例ベクトルとして選択する。しかしながら、実施例はこれに限定されるものではない。例えば、情報変換装置１０は、任意の数の特徴量ベクトルを含む正例ペア、および負例ペアを選択することができる。【００９９】
また、情報変換装置１０は、３以上の特徴量ベクトルを含むデータセットを学習データ記憶部１１から取得する。そして、情報変換装置１０は、取得したデータセットから正例ペアおよび負例ペアを生成し、生成した正例ペアおよび負例ペアを用いて評価関数の値を算出してもよい。【０１００】
また、上述した情報変換装置１０は、全粒子に対してＭＣＭＣ処理を実行するたびに、正例ペアと負例ペアとを選択しなおした。しかし、実施例はこれに限定されるものではなく、例えば、情報変換装置１０は、１つの粒子に対してＭＣＭＣ処理を実行するたびに、正例ペアと負例ペアとを選択しなおしてもよい。【０１０１】
（２）実施形態について
上述した情報変換装置１０は、情報検索装置２０とは独立した装置である。しかし、実施例はこれに限定されるものではなく、例えば、情報検索装置２０に情報変換装置１０の機能を含めることとしてもよい。また、情報変換装置１０は、情報検索装置２０のバイナリ変換部２３が実行する機能を有し、稼働中の情報検索装置が記憶する特徴量ベクトルについて、変換行列を生成し、生成した変換行列を用いてバイナリ列を生成する処理を実行してもよい。また、情報変換装置１０が発揮する機能は、いわゆるクラウドシステムによって発揮されてもいい。【０１０２】
（３）数式について
情報変換装置１０が重要度を算出するために使用した数式は、あくまで一例であり、情報変換装置１０は、任意の形式の数式を用いることができる。すなわち、情報変換装置１０は、特徴量ベクトルの距離関係や、特徴量ベクトルが付与されたラベルに応じて、特徴量ベクトルをバイナリ列に投影できる変換行列を求めることができるのであれば、任意の数式を用いることとしてもよい。また、情報変換装置１０は、変換行列を求める際のパラメータ等をさらに設定してもよく、他の評価関数を用いてもよい。【０１０３】
（４）プログラム
ところで、実施例１に係る情報変換装置１０は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを情報変換装置１０が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１２を用いて、実施例１に示した情報変換装置１０と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１２は、情報変換プログラムを実行するコンピュータの一例を説明するための図である。【０１０４】
図１２に例示されたコンピュータ１００は、ＲＯＭ（Read  Only  Memory）１１０、ＨＤＤ（Hard  Disk  Drive）１２０、ＲＡＭ（Random  Access  Memory）１３０、ＣＰＵ（Central  Processing  Unit）１４０がバス１６０で接続される。また、図１２に例示されたコンピュータ１００は、パケットを送受信するためのＩ／Ｏ（Input  Output）１５０を有する。【０１０５】
ＨＤＤ１２０は、学習データ記憶部１１と同様のデータが格納された特徴量ベクトルテーブル１２１を記憶する。また、ＲＡＭ１３０には、情報変換プログラム１３１があらかじめ保持される。ＣＰＵ１４０が情報変換プログラム１３１をＲＡＭ１３０から読み出して実行することによって、図１２に示す例では、情報変換プログラム１３１は、情報変換プロセス１４１として機能するようになる。なお、情報変換プロセス１４１は、図１に示したデータペア生成部１２、粒子位置算出部１３、変換行列生成部１４と同様の機能を発揮する。【０１０６】
なお、本実施例で説明した情報変換プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１０７】
１  検索システム
２  クライアント装置
１０  情報変換装置
１１  学習データ記憶部
１２  データペア生成部
１３  粒子位置算出部
１４  変換行列生成部
２０  情報検索装置
２１  検索対象データベース記憶部
２２  バイナリデータベース記憶部
２３  バイナリ変換部
２４  検索処理部
【図１】
0006004016.tif 000006
【図２】
0006004016.tif 000007
【図３】
0006004016.tif 000008
【図４】
0006004016.tif 000009
【図５】
0006004016.tif 000010
【図６】
0006004016.tif 000011
【図７】
0006004016.tif 000012
【図８】
0006004016.tif 000013
【図９】
0006004016.tif 000014
【図１０】
0006004016.tif 000015
【図１１】
0006004016.tif 000016
【図１２】
0006004016.tif 000017