(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)
【非特許文献３】Ran  Gilad-Bachrachy,  Amir  Navotz  Naftali  Tishbyy:  Margin  Based  Feature  Selection  -  Theory  and  Algorithms  (ICML  2004)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した超平面を学習する技術では、データの集合が有する統計的性質にかかわらず、所定の手法を用いて学習用のデータペアを選択するので、超平面が各データを分類する精度が劣化するという問題がある。【０００９】
すなわち、分類対象となるデータ集合は、データの数、データの分布、付与されるラベルの数等に応じて、それぞれ異なる統計的性質を有する。このため、分類対象となるデータ集合の統計的性質によって、適切な学習用のデータペアを選択する方法が異なる。しかしながら、データ集合の統計的性質によらず所定の方法で学習用のデータペアを選択する技術では、適切ではないデータペアを選択する場合がある。このように、適切ではないデータペアを用いて、超平面を学習した場合には、超平面が各データを分類する精度が劣化してしまう。【００１０】
１つの側面では、精度良くデータを分類する超平面を学習するためのデータペアを選択することを目的とする。
【課題を解決するための手段】
【００１１】
１つの側面では、情報処理装置は、学習用のデータセットに含まれる各特徴量ベクトルに付与されたラベルの数、ラベルの種類の数、同一ラベルが付与された特徴量ベクトルの数、超平面を学習する際に用いるデータペアの数のいずれか１つ又は複数を計数する。そして、情報処理装置は、計数結果に応じて、超平面を学習するためのデータペアを生成する１以上の生成方法を選択する。また、情報処理装置は、選択した生成方法を用いて、学習用のデータセットに含まれる特徴量ベクトルからデータペアを生成する。そして、情報処理装置は、生成したデータペアを用いて、特徴量ベクトル空間を分割する超平面を学習する。
【発明の効果】
【００１２】
１つの側面では、精度良くデータを分類する超平面を学習するためのデータペアを選択することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る検索システムを説明するための図である。
【図２】図２は、生体認証の一例を説明するための図である。
【図３】図３は、特徴量ベクトルの統計的性質と最適な生成方法との関係を説明するための図である。
【図４】図４は、情報変換装置が用いる割合の算出方法を説明するための図である。
【図５】図５は、学習データ記憶部が記憶するデータの一例を説明するための図である。
【図６】図６は、情報変換装置が実行する処理の流れを説明するためのフローチャートである。
【図７】図７は、乱数によるデータペアの選択処理の流れを説明するためのフローチャートである。
【図８】図８は、特徴量ベクトルが唯一のラベルを持つ場合のデータペア選択処理の流れを説明するためのフローチャートである。
【図９】図９は、特徴量ベクトルが複数のラベルを持ちうる場合のデータペア選択処理の流れを説明するためのフローチャートである。
【図１０】図１０は、情報変換装置が実行する処理のバリエーションを説明するためのフローチャートである。
【図１１】図１１は、データペアの選択処理の流れを説明するためのフローチャートである。
【図１２】図１２は、特徴量ベクトルが唯一のラベルを持つ場合のデータペア選択処理のバリエーションを説明するためのフローチャートである。
【図１３】図１３は、特徴量ベクトルが複数のラベルを持ちうる場合のデータペア選択処理のバリエーションを説明するためのフローチャートである。
【図１４】図１４は、学習プログラムを実行するコンピュータの一例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して本願に係る学習方法、情報変換装置および学習プログラムについて説明する。
【実施例１】
【００１５】
以下の実施例１では、図１を用いて、情報変換装置を有する検索システムの一例を説明する。図１は、実施例１に係る検索システムを説明するための図である。図１に示すように、検索システム１は、クライアント装置２、情報変換装置１０、情報検索装置２０を有する。【００１６】
また、情報変換装置１０は、複数の生成部１２ａ〜１２ｃ、データ対選択部１３、超平面学習部１４を有する。また、情報検索装置２０は、検索対象データベース記憶部２１、バイナリ変換部２３、バイナリデータベース記憶部２２、検索処理部２４を有する。【００１７】
図１に示す検索システム１は、クライアント装置２からクエリデータを受信すると、検索対象データベース記憶部２１から、クエリデータの近傍データを検索する。そして、検索システム１は、クエリデータの近傍に類似するデータが登録されているか否かをクライアント装置２へ通知するシステムである。具体的には、検索システム１は、情報変換装置１０が生成した変換行列を用いて、情報検索装置２０が検索対象となるデータをバイナリ列に変換し、変換後のバイナリ列を用いて、クエリデータの近傍データを検索する。【００１８】
ここで、検索システム１が検索対象とするデータは、例えば、画像や音声などのデータであり、指紋のパターンや静脈のパターンを用いた生体認証における生体データである。すなわち、検索システム１は、クライアント装置２に入力された利用者の生体データをクエリデータとして受信すると、利用者の生体データが登録されているか否かを判別するシステムである。【００１９】
なお、画像や音声の特徴量は様々なものが提案されているが、検索システム１は、特定の特徴量に依存するものではないため、任意の特徴量を用いることができる。例えば、画像の特徴量として一般的に用いられているＳＩＦＴ特徴量やＳＵＲＦ特徴量などを用いることもできる。これらの特徴量は画像中の局所的な情報を特徴量ベクトルとして用いることで、隠れや変動に対してロバストな特徴量であることが知られているが、このような特徴量を示す任意の形式の特徴量ベクトルを用いてよい。【００２０】
図２は、生体認証の一例を説明するための図である。なお、図２に示す例では、利用者のＩＤ（Identification）等の情報が入力されず、利用者のＩＤを用いた生体データの絞込みを行わないＩＤレスの１：Ｎ認証における処理を示す。図２に示すように、検索システム１は、複数の利用者が登録した登録生体データを複数記憶する。【００２１】
そして、検索システム１は、クライアント装置２からクエリデータとして、生体データを受信すると、入力された生体データの特徴量を示す特徴量ベクトルを抽出し、抽出した特徴量ベクトルと類似する特徴量ベクトルを有する登録生体データを検索する。すなわち、検索システム１は、クエリデータを入力した利用者の登録生体データが登録されているか否かを判別する。【００２２】
また、検索システム１は、特徴量ベクトルを所定のビット長のバイナリ列に変換する変換行列を生成し、生成した変換行列を用いて、登録生体データの特徴量ベクトルをバイナリ列に変換する。また、検索システム１は、クエリデータとして入力された生体データにおける特徴量ベクトルを所定のビット長のバイナリ列に変換し、登録生体データの特徴量ベクトルを変換したバイナリ列とのハミング距離を算出する。【００２３】
そして、検索システム１は、ハミング距離が所定の閾値以下となる登録生体データを検索対象の候補として抽出する。その後、情報検索装置１は、検索した登録生体データとクエリデータとして入力された生体データとの厳密なマッチング処理を実行し、実行結果をクライアント装置２に出力する。【００２４】
なお、入力された生体データや登録生体データが画像である場合には、特徴量ベクトルは、例えば、画像中の特定領域における隆線の方向や長さ、勾配、隆線の終端や分岐などの特徴的な点の密度や座標の数値をベクトル化したものとなる。また、入力された生体データや登録生体データが音声である場合には、特徴量ベクトルは、例えば、周波数成分の分布、強度、ピーク値などの数値をベクトル化したものとなる。【００２５】
以下、情報変換装置１０が実行する処理、および情報検索装置２０が実行する処理について説明する。図１に戻り、情報変換装置１０は、学習データ記憶部１１が記憶する学習データを用いて、特徴量ベクトルを所定のビット長のバイナリ列に変換する変換行列を生成し、生成した変換行列を情報検索装置２０に通知する。【００２６】
ここで、変換行列とは、特徴量ベクトル空間を複数の領域に分割する超平面の法線ベクトルを行成分として有する行列であり、情報検索装置２０が特徴量ベクトルをバイナリ列に変換する際に用いる行列である。例えば、情報検索装置２０は、変換行列と特徴量ベクトルとの積を算出する。そして、情報検索装置２０は、算出した積の各成分について、値が正であるか負であるかを判別し、正の値である場合は「１」、負の値である場合は「０」としたバイナリ列を生成する。つまり、情報検索装置２０は、変換行列を用いて、各特徴量ベクトルが、超平面によって複数の領域に分割された特徴量ベクトル空間のうち、どの領域に属しているかを示すバイナリ列に特徴量ベクトルを変換する。【００２７】
ここで、新たに登録されるデータの分類を容易にするため、各データをラベルごとに分類する超平面を設定するのが望ましい。このため、情報変換装置１０は、学習データ記憶部１１が記憶する特徴量ベクトルから、同じラベルが付与された特徴量ベクトルの組である正例ペアと、異なるラベルが付与された特徴量ベクトルの組である負例ペアとを生成する。そして、情報変換装置１０は、生成した正例ペアと負例ペアとを用いて、設定した複数の超平面を同時に評価することで、超平面を最適化する。【００２８】
ここで、超平面を最適化する正例ペアと負例ペアとを選択する手法としては、様々な技術が知られている。以下、正例ペアと負例ペアとを選択する方法として、Ｒａｎｄｏｍｈｉｔ−Ｒａｎｄｏｍｍｉｓｓ（ＲＲ）法、Ｆａｒｈｉｔ−Ｎｅａｒｍｉｓｓ（ＦＮ）法、Ｒａｎｄｏｍｈｉｔ−Ｎｅａｒｍｉｓｓ（ＲＮ）法について説明する。また、正例ペアと負例ペアとを選択する方法として、Ｒａｎｄｏｍｈｉｔ−Ｂｏｕｎｄａｒｙｍｉｓｓ（ＲＢ）法、Ｎｅａｒｈｉｔ−Ｎｅａｒｍｉｓｓ（ＮＮ）法を説明する。【００２９】
Ｒａｎｄｏｍｈｉｔ−Ｒａｎｄｏｍｍｉｓｓ法とは、同じラベルが付与された特徴量ベクトルをランダムに２つ選択して正例ペアとし、異なるラベルが付与された特徴量ベクトルをランダムに２つ選択して選択した負例ペアとする生成方法である。【００３０】
また、Ｆａｒｈｉｔ−Ｎｅａｒｍｉｓｓ法では、基準となる特徴量ベクトルを選択し、基準となる特徴量ベクトルと同じラベルの特徴量ベクトルのうち距離関係が最も遠い特徴量ベクトルと基準となる特徴量ベクトルとのペアを正例ペアとする。そして、基準となる特徴量ベクトルと異なるラベルの特徴量ベクトルのうち距離関係が最も近い特徴量ベクトルと基準となる特徴量ベクトルとのペアを負例ペアとする生成方法である。【００３１】
また、Ｒａｎｄｏｍｈｉｔ−Ｎｅａｒｍｉｓｓ法では、同じラベルが付与された特徴量ベクトルをランダムに選択したペアを正例ペアとする。そして、基準となる特徴量ベクトルを選択し、基準となる特徴量ベクトルと異なるラベルの特徴量ベクトルのうち距離関係が最も近い特徴量ベクトルと基準となる特徴量ベクトルとのペアを負例ペアとする生成方法である。【００３２】
また、Ｒａｎｄｏｍｈｉｔ−Ｂｏｕｎｄａｒｙｍｉｓｓ法とは、同じラベルが付与された特徴量ベクトルをランダムに選択したペアを正例ペアとする。また、１つの特徴量ベクトルをサンプルとしてランダムに選択する。続いて、サンプルの特徴量ベクトルに付与されたラベルが付与されていない特徴量ベクトルのうち、サンプルの各特徴量ベクトルとの距離が最小となる特徴量ベクトルを基準ベクトルとして選択する。そして、基準ベクトルとは異なるラベルが付与された特徴量ベクトルのうち、基準ベクトルに最も近い特徴量ベクトルと、基準ベクトルとのペアを負例ペアとして選択する生成方法である。【００３３】
また、Ｎｅａｒｈｉｔ−Ｎｅａｒｍｉｓｓ法とは、基準となる特徴量ベクトルを選択し、基準となる特徴量ベクトルと同じラベルの特徴量ベクトルのうち距離関係が最も近い特徴量ベクトルと基準となる特徴量ベクトルとを正例ペアとする。そして、基準となる特徴量ベクトルと異なるラベルの特徴量ベクトルのうち距離関係が最も近い特徴量ベクトルと基準となる特徴量ベクトルとのペアを負例ペアとする生成方法である。【００３４】
ここで、超平面が分類する特徴量ベクトルは、その種類によりそれぞれ異なる統計的性質を有する。例えば、音声や画像、生体情報等、特徴量ベクトルの元となるデータの種類によって、特徴量ベクトルの統計的性質は異なる。詳細な例を挙げると、１つの特徴量ベクトルに付与されるラベルの数、全特徴量ベクトルに付与されたラベルの種類の数、同一のラベルが付与された特徴量ベクトルの数、超平面を学習する際に用いるデータペアの数等がデータの種類によって異なる。【００３５】
また、生成方法により超平面を学習する際に用いるデータペアは、異なるデータペアとなる。このため、超平面が特徴量ベクトルを分類する精度や、超平面の法線ベクトルを用いて生成したバイナリ列による近傍検索の性能は、特徴量ベクトルの統計的性質と、超平面を学習する際に用いるデータペアの生成方法によって変化する。そこで、情報変換装置１０は、特徴量ベクトルの統計的性質に応じて、あらかじめ記憶する複数の生成方法の中から１つ以上の生成方法を選択し、選択した生成方法によって生成したデータペアを用いて超平面の学習を行う。【００３６】
また、例えば、統計的性質に閾値を設定し、閾値よりも多いか否かに応じて、１つの生成方法を選択する手法では、特徴量ベクトルの性質を正確に切り分ける閾値を設定しなければならず、実現が困難となる。また、学習時に用いた特徴量ベクトルとは別に追加された特徴量ベクトルが、学習時に用いた特徴量ベクトルとは異なる性質を有する場合は、超平面が特徴量ベクトルを分類する精度を劣化させてしまう。そこで、情報変換装置１０は、閾値を設けず、計数した統計的性質の数に応じた割合で、各生成方法により選択したデータペアを選択し、選択したデータペアを用いて、超平面を学習する。【００３７】
以下、図３を用いて情報変換装置１０が特徴量ベクトルの統計的性質に応じて選択するデータペアの生成方法について説明する。図３は、特徴量ベクトルの統計的性質と最適な生成方法との関係を説明するための図である。例えば、情報変換装置１０は、各特徴量ベクトルに付与されたラベルの数、全特徴量ベクトルに付与されたラベルの種類の数、同一のラベルが付与された特徴量ベクトルの個数、超平面を学習する際に用いるデータペアの数を計数する。そして、情報変換装置１０は、全ラベルの種類の数に応じた割合と、同一ラベルが付与されたデータの個数に応じた割合と、学習データペアの数に応じた割合とに応じて、データペアを生成する生成方法をあらかじめ記憶した生成方法から選択する。【００３８】
詳細には、情報変換装置１０は、各特徴量ベクトルに１つのラベルが付与されており、全ラベルの種類の数が少なく、同一ラベルが付与されたデータの個数が多いほど、ＲＲ法、またはＦＮ法により生成したデータペアの数を増やす。また、情報変換装置１０は、各特徴量ベクトルに１つのラベルが付与されており、全ラベルの種類の数が多く、同一ラベルが付与されたデータの個数が少ないほど、ＲＮ法により生成したデータペアの数を増やす。【００３９】
また、情報変換装置１０は、各特徴量ベクトルに複数のラベルが付与されており、全ラベルの種類の数が多く、同一ラベルが付与されたデータの個数が少なく、学習時に使用するデータペアの数が多いほど、ＲＢ法により生成したデータペアの数を増やす。また、情報変換装置１０は、ＲＲ法またはＦＮ法、ＲＮ法、ＲＭ法によって生成したデータペアの数の割合を１から減算した割合で、ＮＮ法により生成したデータペアを使用する。【００４０】
次に、図４を用いて、情報変換装置１０が各生成方法により生成したデータペアを使用する割合の算出方法について説明する。図４は、情報変換装置が用いる割合の算出方法を説明するための図である。なお、図４に示す例では、情報変換装置１０が用いる関数ｆ（ｘ）の値を縦軸にとり、引数ｘの値を横軸にとって関数ｆ（ｘ）の値をプロットした。【００４１】
例えば、情報変換装置１０は、第１引数と第２引数により値が定まる所定の関数を用いて割合を算出する。ここで情報変換装置１０が用いる関数は、第１引数に対する値が単調非減少であり、第１引数が負の無限大で値が零となり、第１引数が正の無限大で値が１となる関数である。また、情報変換装置１０が用いる関数は、値が２分の１以上となる第１引数の下限が第２引数となる関数である。つまり、図４に示す例では、ｆ（ｘ）の値が１／２となる第１引数の値ｘｊを第２引数とする関数である。このような条件を満たす関数の一例としては、ｆ（ｘ）＝１／（１＋ｅ−ａｘ）であらわされるシグモイド関数であり、引数ｘが第１引数と第２引数の差となるものである。なお、ａはゲインと呼ばれる値であり、パラメータの１つとして設定される値である。【００４２】
以下、図４を用いて、情報変換装置１０がラベルの種類の数に応じた割合を算出する例について説明する。なお、以下の説明で算出する割合は、各生成方法によって生成したデータペアを使用する割合のうち、ラベルの種類の数に応じて算出される割合であり、実際に使用するデータペアの数の割合とは異なる。すなわち、情報変換装置１０は、同様の手法により算出した他の統計的性質に基づく割合のそれぞれを考慮して、超平面を学習するためのデータペアを選択する割合を算出する。【００４３】
例えば、情報変換装置１０は、ラベルの種類の数がＸａとなる際、図４中（Ａ）で示す割合をＲＮ法でデータペアを選択する割合とし、図４中（Ｂ）で示す割合をＲＲ法、またはＦＮ法でデータペアを選択する割合とする。また、他の第２引数により定まる関数において、図４中（Ａ）で示す割合をＮＮ法でデータペアを選択する割合とし、図４中（Ｂ）で示す割合をＲＢ法でデータペアを選択する割合とする。同様に、情報変換装置１０は、計数した各統計的性質の数値ごとに算出される割合に応じて、各生成方法により生成されたデータペアを選択する。【００４４】
その後、情報変換装置１０は、各生成方法で生成したデータペアを用いて、超平面を学習し、学習した超平面の法線ベクトルからなる変換行列を情報検索装置２０に通知する。なお、情報変換装置１０は、例えばヘヴィサイドの階段関数を用いることにより、閾値による生成方法の選択を行っても良い。【００４５】
次に、図１に戻って、情報変換装置１０が有する学習データ記憶部１１、各生成部１２ａ〜１２ｃ、データ対選択部１３、超平面学習部１４が実行する処理について説明する。学習データ記憶部１１は、情報変換装置１０が超平面を学習するための学習データを記憶する。【００４６】
具体的には、学習データ記憶部１１は、学習データとして、利用者ごとに、複数の特徴量ベクトルを記憶する。ここで、学習データ記憶部１１が記憶する特徴量ベクトルは、後述する検索対象データベース記憶部２１が記憶する特徴量ベクトルの一部であり、クライアント装置２から登録された特徴量ベクトルである。すなわち、学習データ記憶部１１は、検索システム１に登録された登録生体データの特徴量ベクトルの一部を記憶する。【００４７】
ここで、図５は、学習データ記憶部が記憶するデータの一例を説明するための図である。図５に示すように、学習データ記憶部１１は、データＩＤ（Identification）と特徴量ベクトルとラベルとを対応付けて記憶する。ここで、データＩＤとは、各データに付与されるデータの識別子である。また、ラベルとは、各特徴量ベクトルの類似性を示す情報であり、例えば、各特徴量ベクトルの元となる生体データ等を登録した利用者を示す情報である。【００４８】
例えば、図５に示す例では、学習データ記憶部１１は、データＩＤ「１」で示される特徴量ベクトルであって、ラベル「Ａ」が付与された４０００次元の浮動小数点データ「ａ、ｂ、ｃ…」を記憶する。また、学習データ記憶部１１は、データＩＤ「２」で示される特徴量ベクトルであって、ラベル「Ｂ」が付与された４０００次元の浮動小数点データ「ｄ、ｅ、ｆ…」を記憶する。【００４９】
図１に戻り、各生成部１２ａ〜１２ｃは、それぞれ異なる生成方法で、学習データ記憶部１１が記憶する特徴量ベクトルから学習用のデータペアを生成する。例えば、生成部１２ａは、学習データ記憶部１１からＲＲ法を用いてデータペアを生成し、生成したデータペアを超平面学習部１４に出力する。【００５０】
また、生成部１２ｂは、ＦＮ法を用いて生成したデータペアを超平面学習部１４に出力する。また、生成部１２ｃは、学習データ記憶部１１からＲＮ法を用いて生成したデータペアを超平面学習部１４に出力する。【００５１】
なお、図１では記載を省略したが、情報変換装置１０は、生成部１２ａ〜１２ｃの他にも、ＲＢ法を用いてデータペアを生成する生成部やＮＮ法を用いてデータペアを生成する生成部を有するものとする。また、各生成部１２ａ〜１２ｃは、データ対選択部１３からデータペアを生成するよう指示されると、正例ペアと負例ペアとを１つずつ含むデータペアの組を生成し、生成したデータペアの組を超平面学習部１４に出力するものとする。【００５２】
データ対選択部１３は、学習データ記憶部１１を分析し、各統計的性質を計数する。そして、データ対選択部１３は、計数した統計的性質に基づいて、各生成部１２ａ〜１２ｃが生成するデータペアの数を算出する。以下、データ対選択部１３が実行する処理の詳細を説明する。【００５３】
まず、データ対選択部１３は、学習データ記憶部１１が記憶する特徴量ベクトルに付与されたラベルの種類の個数「Ｌ」を計数する。また、データ対選択部１３は、各ラベルが付与された特徴量ベクトルの個数「Ｎ１」〜「ＮＬ」をラベルごとに計数する。また、データ対選択部１３は、学習データ記憶部１１が記憶する特徴量ベクトルの総数Ｎａｌｌを計数する。次に、データ対選択部１３は、クライアント装置２から、３つのパラメータ「ＴＨ１」、「ＴＨ２」、「ＴＨ３」および３つのゲイン「ｇａｉｎ１」、「ｇａｉｎ２」、「ｇａｉｎ３」、および超平面を学習する際に用いるデータペアの数Ｎｐａｉｒの値を取得する。【００５４】
そして、データ対選択部１３は、３つのシグモイド関数「ｆ＿１」、「ｆ＿２」、「ｆ＿３」を準備し、取得した「ｇａｉｎ１」、「ｇａｉｎ２」、「ｇａｉｎ３」の値を各シグモイド関数「ｆ＿１」、「ｆ＿２」、「ｆ＿３」のゲインの値とする。なお、各パラメータの値、および各ゲインの値から、各生成方法によって生成されたデータペアを使用する割合を算出する際の第２引数が定まる。また、以下の説明では、各シグモイド関数「ｆ＿１」、「ｆ＿２」、「ｆ＿３」の第１引数をｘと記載する。【００５５】
また、データ対選択部１３は、計数した「Ｎ１」〜「ＮＬ」の標準偏差ｓｔｄ（Ｎｉ）を算出する。また、データ対選択部１３は、シグモイド関数「ｆ＿１」の値が０．１以上となる第１引数ｘの下限を「ｙ＿ｉ」とし、シグモイド関数「ｆ＿１」の値が０．９以上となる第１引数ｘの下限を「ｚ＿ｉ」と仮定する。そして、データ対選択部１３は、シグモイド関数「ｆ＿１」が「ｚ＿ｉ−ｙ＿１＝ｓｔｄ（Ｎｉ）／Ｎａｌｌ」を満たすように、シグモイド関数「ｆ＿１」のゲインを変更する。【００５６】
次に、データ対選択部１３は、［０，１］上一様分布から３つの値「ａ１」、「ａ２」、「ａ３」をサンプリングする。そして、データ対選択部１３は、学習データ記憶部１１が記憶する各特徴量ベクトルに１つのラベルのみが付与されているか否かを判定する。そして、データ対選択部１３は、各特徴量ベクトルに１つのラベルのみが付与されている場合は、以下の処理を実行する。【００５７】
まず、データ対選択部１３は、「Ｌ／Ｎａｌｌ」を第１引数とし、「ＴＨ１」を第２引数とするシグモイド関数「ｆ＿１」の値と、「Ｌ」を第１引数とし、「ＴＨ２」を第２引数とするシグモイド関数「ｆ＿２」の値とを算出する。そして、データ対選択部１３は、シグモイド関数「ｆ＿１」が「ａ１」より大きく、かつ、「ａ２」の値が「ｆ＿２」の値以上であるか否かを判定する。【００５８】
また、データ対選択部１３は、シグモイド関数「ｆ＿１」が「ａ１」より大きく、かつ、「ａ２」の値が「ｆ＿２」の値以上である場合は、ＲＲ法により生成したデータペアを採用する。詳細には、データ対選択部１３は、ＲＲ法よりデータペアを生成する生成部１２ａにデータペアの組を１つ生成させ、生成させたデータペアを超平面学習部１４に出力させる。【００５９】
また、データ対選択部１３は、シグモイド関数「ｆ＿１」が「ａ１」より大きく、かつ、「ａ２」の値が「ｆ＿２」の値以上ではない場合、「ａ１」がシグモイド関数「ｆ＿１」の値以上であり、かつ、「ａ２」の値が「ｆ＿２」の値より小さいか判定する。そして、データ対選択部１３は、「ａ１」がシグモイド関数「ｆ＿１」の値以上であり、かつ、「ａ２」の値が「ｆ＿２」の値より小さい場合は、ＲＮ法により生成したデータペアを採用する。詳細には、データ対選択部１３は、ＲＮ法によりデータペアを生成する生成部１２ｃにデータペアの組を１つ生成させ、生成させたデータペアを超平面学習部１４に出力させる。【００６０】
また、データ対選択部１３は、「ａ１」がシグモイド関数「ｆ＿１」の値以上であり、かつ、「ａ２」の値が「ｆ＿２」の値より小さいという条件を満たさない場合は、ＦＮ法により生成したデータペアを採用する。詳細には、データ対選択部１３は、ＦＮ法によりデータペアを生成する生成部１２ｂにデータペアの組を１つ生成させ、生成させたデータペアを超平面学習部１４に出力させる。【００６１】
一方、データ対選択部１３は、各特徴量ベクトルに複数のラベルが付与されている場合は、以下の処理を実行する。【００６２】
まず、データ対選択部１３は、「Ｌ／Ｎａｌｌ」を第１引数とし、「ＴＨ１」を第２引数とするシグモイド関数「ｆ＿１」の値と、「Ｌ」を第１引数とし、「ＴＨ２」を第２引数とするシグモイド関数「ｆ＿２」の値とを算出する。また、データ対選択部１３は、「Ｎｐａｉｒ／Ｎａｌｌ」を第１引数とし、「ＴＨ３」を第２引数とするシグモイド関数「ｆ＿３」の値を算出する。そして、データ対選択部１３は、「ａ１」の値がシグモイド関数「ｆ＿１」の値以上であり、かつ、「ａ２」の値が「ｆ＿２」の値よりも小さく、かつ「ａ３」の値がシグモイド関数「ｆ＿３」の値以下であるか否かを判定する。【００６３】
そして、データ対選択部１３は、「ａ１」の値がシグモイド関数「ｆ＿１」の値以上であり、かつ、「ａ２」の値が「ｆ＿２」の値よりも小さく、かつ「ａ３」の値がシグモイド関数「ｆ＿３」の値以下である場合は、ＲＢ法により生成したデータペアを採用する。つまり、データ対選択部１３は、ＲＢ法によりデータペアを生成する生成部にデータペアの組を１つ生成させ、生成させたデータペアの組を超平面学習部１４に出力させる。【００６４】
また、データ対選択部１３は、「ａ１」の値がシグモイド関数「ｆ＿１」より少なく、または「ａ２」の値が「ｆ＿２」の値以上であり、または「ａ３」の値がシグモイド関数「ｆ＿３」の値より大きい場合は、ＮＮ法により生成したデータペアを採用する。つまり、データ対選択部１３は、ＮＮ法によりデータペアを生成する生成部にデータペアの組を１つ生成させ、生成させたデータペアの組を超平面学習部１４に出力させる。【００６５】
また、データ対選択部１３は、上述した処理をＮｐａｉｒの数だけ繰り返し実行する。この結果、データ対選択部１３は、学習データ記憶部１１が記憶する各種統計的性質の数に応じた割合で、各生成方法により生成したデータペアを選択し、選択したデータペアを超平面学習部１４に出力できる。【００６６】
超平面学習部１４は、各生成部１２ａ〜１２ｃから受信したデータペアを用いて、最適化された超平面を学習する。例えば、超平面学習部１４は、各生成部１２ａ〜１２ｃから正例ペア、および負例ペアの組を受信する。また、超平面学習部１４は、受信したデータペアの数が所定の数、すなわち「Ｎａｐｉｒ」となった場合は、受信したデータペアを用いて、最適化された超平面を学習する。【００６７】
例えば、超平面学習部１４は、ランダムに設定した超平面によって異なる領域に分割されなかった正例ペアの数と、超平面によって異なる領域に分割された負例ペアの数との和を評価値とする。そして、超平面学習部１４は、所定のアルゴリズム、たとえば超平面の位置をランダムに変更して評価値の値を再度算出する。【００６８】
このような処理を所定の回数だけ繰り返し実行した後、超平面学習部１４は、最も評価値の値が高かった超平面を最適化された超平面とする。その後、超平面学習部１４は、最適化された超平面の法線ベクトルを各行ベクトルとする行列、すなわち変換行列を生成し、生成した変換行列をバイナリ変換部２３に通知する。【００６９】
次に、情報検索装置２０が実行する処理について説明する。検索対象データベース記憶部２１は、検索対象となるデータ、すなわち、登録生体データの特徴量ベクトルを記憶する。具体的には、検索対象データベース記憶部２１は、学習データ記憶部１１と同様のデータを記憶する。なお、検索対象データベース記憶部２１は、学習データ記憶部１１が記憶するデータを含む、より多くのデータを記憶しても良い。【００７０】
また、バイナリデータベース記憶部２２は、所定の変換行列を用いて特徴量ベクトルを変換したバイナリ記号と、変換前のデータＩＤとを対応付けて記憶する。【００７１】
バイナリ変換部２３は、情報変換装置１０の超平面学習部１４から変換行列を受信した場合は、受信した変換行列を用いて、検索対象データベース記憶部２１が記憶する特徴量ベクトルをバイナリ列に変換する。そして、バイナリ変換部２３は、変換後のバイナリ列を、変換元の特徴量ベクトルと対応付けられたデータＩＤと対応付けて、バイナリデータベース記憶部２２に格納する。【００７２】
検索処理部２４は、クライアント装置２からクエリデータを受信すると、受信したクエリデータの特徴量を示す特徴量ベクトルを抽出し、抽出した特徴量ベクトルを所定の変換行列でバイナリ列に変換する。そして、検索処理部２４は、バイナリデータベース記憶部２２が記憶するバイナリ列のうち、ハミング距離が所定の値以下となるバイナリ列、すなわち、クエリデータの近傍候補となる特徴量ベクトルのバイナリ列を検索する。【００７３】
その後、検索処理部２４は、検索したバイナリ列の変換元である特徴量ベクトルを検索対象データベース記憶部２１から取得する。そして、検索処理部２４は、取得した特徴量ベクトルに、クエリデータから抽出した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在する場合は、以下の処理を実行する。すなわち、検索処理部２４は、クエリデータが登録生体データに一致する旨をクライアント装置２へ送信する。【００７４】
一方、検索処理部２４は、取得した特徴量ベクトルに、クエリデータから抽出した特徴量ベクトルと一致する特徴量ベクトルや、ユークリッド距離が所定の閾値以下となる特徴量ベクトルが存在しない場合は、以下の処理を実行する。すなわち、検索処理部２４は、クエリデータが登録生体データに一致しない旨をクライアント装置２へ送信する。この結果、クライアント装置２は、クエリデータを入力した利用者の生体認証を行うことができる。【００７５】
例えば、各生成部１２ａ〜１２ｃ、データ対選択部１３、超平面学習部１４、バイナリ変換部２３、検索処理部２４は、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（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）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１２６】
１  検索システム
２  クライアント装置
１０  情報変換装置
１１  学習データ記憶部
１２ａ〜１２ｃ  生成部
１３  データ対選択部
１４  超平面学習部
２０  情報検索装置
２１  検索対象データベース記憶部
２２  バイナリデータベース記憶部
２３  バイナリ変換部
２４  検索処理部
【図１】
0006004014.tif 000002
【図２】
0006004014.tif 000003
【図３】
0006004014.tif 000004
【図４】
0006004014.tif 000005
【図５】
0006004014.tif 000006
【図６】
0006004014.tif 000007
【図７】
0006004014.tif 000008
【図８】
0006004014.tif 000009
【図９】
0006004014.tif 000010
【図１０】
0006004014.tif 000011
【図１１】
0006004014.tif 000012
【図１２】
0006004014.tif 000013
【図１３】
0006004014.tif 000014
【図１４】
0006004014.tif 000015