JP2012181566A - 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム - Google Patents

特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2012181566A
JP2012181566A JP2011042031A JP2011042031A JP2012181566A JP 2012181566 A JP2012181566 A JP 2012181566A JP 2011042031 A JP2011042031 A JP 2011042031A JP 2011042031 A JP2011042031 A JP 2011042031A JP 2012181566 A JP2012181566 A JP 2012181566A
Authority
JP
Japan
Prior art keywords
conversion
unit
bit code
learning
feature
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.)
Granted
Application number
JP2011042031A
Other languages
English (en)
Other versions
JP5258915B2 (ja
Inventor
Mitsuru Abe
満 安倍
Yuichi Yoshida
悠一 吉田
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.)
Denso IT Laboratory Inc
Original Assignee
Denso IT Laboratory 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 Denso IT Laboratory Inc filed Critical Denso IT Laboratory Inc
Priority to JP2011042031A priority Critical patent/JP5258915B2/ja
Priority to EP12157185A priority patent/EP2498191A1/en
Priority to US13/405,716 priority patent/US8630482B2/en
Priority to CN201210048128.6A priority patent/CN102693268B/zh
Publication of JP2012181566A publication Critical patent/JP2012181566A/ja
Application granted granted Critical
Publication of JP5258915B2 publication Critical patent/JP5258915B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】 特徴ベクトルのビットコード化が高速で、かつ短いビットコードを生成できる特徴変換装置を提供する。
【解決手段】 ビットコード変換部20は、変換行列更新部16で更新された変換行列を用いて、学習用特徴ベクトルtを変換した上で、当該変換された学習用ベクトルをビットコードに変換し、コスト関数計算部17は、変換行列更新部16によって変換行列の要素が置換候補で置換されたときに、コスト関数を最小にする置換候補でもってその要素を確定する。変換行列更新部16が選択する要素を順に変えて、そのつどコスト関数計算部17が、選択された要素を確定することで、最終的な最適変換行列を確定する。置換候補は、置換候補特定部15が、拘束条件格納部14に格納された拘束条件に基づいて、ビットコード変換部20による変換行列を用いた変換処理が高速になるように特定する。
【選択図】 図1

Description

本発明は、類似情報探索のために変換行列を用いて特徴ベクトルをビットコードに変換する特徴変換装置及びそれを含む類似情報探索装置に関する。
画像検索、音声認識、文章検索、パターン認識などの類似情報探索技術では、ある情報を他の情報と類似度を評価する処理に特徴ベクトルが用いられている。特徴ベクトルとは、画像、音声、文章などの情報を、計算機で扱いやすいように変換したものである。特徴ベクトルはD次元のベクトルで表される。例えば、画像Aの特徴ベクトルと、画像Bの特徴ベクトルの距離が小さければ、それらの画像は類似しているとみなすことができる。同様に、音声波形Cの特徴ベクトルと、音声波形Dの特徴ベクトルの距離が小さければ、それらの音声波形は類似しているとみなすことができる。画像検索、音声認識、文章検索、パターン認識等の類似情報探索技術では、このように特徴ベクトルを比較することで、情報同士の類似度を評価している。
特徴ベクトル間の距離の尺度としては、L1ノルム、L2ノルム、ベクトル間角度などが用いられる。これらの尺度は、特徴ベクトル
について、次式(1)〜(3)によって計算できる。
L1ノルム
L2ノルム
ベクトル間角度
類似情報探索技術では、大量の情報(用途によっては数億になることもある)の中から特定の情報(入力情報)に類似する情報が探索される。そこで、入力情報の特徴ベクトルに対して、大量の情報の特徴ベクトルの中から最も似ているk個の特徴ベクトルを高速に検索する最近傍探索技術と呼ばれる技術が研究されている。最近傍探索技術としては、k−近傍探索や、近似k−近傍探索が知られている。
k−近傍探索は、大量の特徴ベクトルの中から、最も距離が近いk個の特徴ベクトルを高速に検索する技術である。k−近傍探索の代表的な手法としてk−dtreeが挙げられる(例えば、非特許文献1を参照)。近似k−近傍探索も大量の特徴ベクトルの中から、最も距離が近いk個の特徴ベクトルを高速に検索する技術であるが、誤りを許すことで、k−近傍探索よりもはるかに高速な(数百〜数千倍程度)処理を実現できる。近似k−近傍探索の代表的な手法として、LSHが挙げられる(例えば、非特許文献2を参照)。
近年では、計算機が扱う情報の大規模化が進んでおり、類似情報探索技術においても大量かつ高次元の特徴ベクトルを扱うことが多くなった。そこで、次の二点が深刻な問題となっている。
第一の問題は、2つの特徴ベクトル
の距離の計算が非常に遅いということである。例えば、L2ノルムの二乗を距離の尺度として用いる場合、
であるから、D回の引き算、D回の乗算、D−1回の加算が必要である。多くの場合、特徴ベクトルは単精度実数(浮動小数)で表現されるため、この計算負荷は非常に高くなる。特徴ベクトルが高次元になれば、この計算負荷はさらに高くなる。また、扱う特徴ベクトルの数が大量になれば、この距離計算を大量に行わなければならないため、計算負荷はさらに高くなる。そのため、k−近傍探索アルゴリズムを適用しても、十分な速度が得られないことが多くなっている。
第二の問題は、大量のメモリを消費するということである。特徴ベクトルを4バイトの単精度実数で表現する場合、D次元の特徴ベクトルは4Dバイトのメモリを消費する。特徴ベクトルが高次元になるほど、このメモリ消費量は高くなる。特徴ベクトルの数が多くなれば、その分メモリを消費することになる。特徴ベクトルがメインメモリに入りきらない場合は、ハードディスクなどの二次領域に特徴ベクトルを格納しなければならなくなるが、二次領域を用いた場合、処理速度は劇的に低下してしまう。
そこで近年、特徴ベクトルをバイナリビットコード化することにより、これら2つの問題を解決する手法が提案されている。代表的な手法として、ランダム・プロジェクション(Random Projection、例えば非特許文献3を参照)、ベリー・スパース・ランダム・プロジェクション(Very Sparse Random Projection、例えば非特許文献4を参照)、及びスペクトラル・ハッシング(Spectral Hashing、例えば非特許文献5を参照)がある。
これらの手法では、D次元の特徴ベクトルを、dビットのバイナリビットコードに変換する。この変換は、もともとの空間における距離が、変換後の空間におけるハミング距離と強く相関するように行われる(例えば、非特許文献3を参照。特に、1121ページのLemma3.2には、もともとの空間における距離と、変換後の空間におけるハミング距離とが強く相関する根拠について記載されている。)。ハミング距離とは、2つのビットコードのうち、異なるビットの数を数えたものである。この計算は、2つのコードのxorをとった後に1が立っているビット数を数えるだけなので、非常に高速に行うことができる。多くの場合、数十〜数百倍程度の高速化が可能である。また、もともと4Dバイト必要であったメモリを、d/8バイトまで削減できる。これにより、メモリを数十〜数百分の一に節約できる。
多くのビットコード化アルゴリズムは次式(4)のように一般的な形で記述できる。
ここで、xは特徴ベクトル(D次元)であり、Wは変換行列(D行d列)であり、bはバイアス(d次元)であり、yはビットコード(d次元)であり、f(z)は非線形関数であり、sgn(z)は符号関数(値が負なら−1、正なら1を返す関数)である。式(4)より、yの要素は+1か−1のどちらかになる。そこで、+1を「1」、−1を「0」として並べたものをビットコードとする。
ランダム・プロジェクションの場合は、Wの要素として、平均がゼロで分散が1の正規分布からサンプリングしたものを用いる。バイアスbは、ゼロベクトル、事前に集めておいた特徴ベクトルの平均値、又は中央値とする。また、非線形関数をf(z)=zと定義する。
ベリー・スパース・ランダム・プロジェクションの場合は、Wの要素を{−1,0, 1}から{1/2*sqrt(D),1−1/sqrt(D),1/2*sqrt(D)}の確率で選ぶ。ここで、Dは特徴ベクトルの次元数である。また、バイアスbは、ゼロベクトル、事前に集めておいた特徴ベクトルの平均値、又は中央値とする。また、非線形関数をf(z)=zと定義する。Wが非常に疎(スパース)(例えば、128次元の特徴ベクトルの場合は、9割程度が0)になるので、高速に計算が可能である。
スペクトラル・ハッシングの場合は、事前に集めておいた特徴ベクトル(訓練集合)に主成分分析を適用し、求めた主成分軸をWの列ベクトルとする。また、訓練集合の平均をbとする。非線形関数f(z)には、三角関数を用いる。スペクトラル・ハッシングの場合は、学習に基づいているため、より短いビットコードが生成可能である。
J. L. Bentley. Multidimensional binary search trees used for associative searching. Communications of the ACM, 18(9):509-517, 1975. Indyk, Piotr.; Motwani, Rajeev. (1998). , "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality.". Proceedings of 30th Symposium on Theory of Computing. Michel X. Goemans, avid P. Williamson, "Improved approximation algorithms for maximum cut and satisfiability problems using semidefinite programming", Journal of the ACM Volume 42 , Issue 6 (November 1995) Pages: 1115 - 1145 Ping Li, Trevor J. Hastie, Kenneth W. Church, "very sparse random projections", KDD '06 Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining (2006) Y. Weiss, A. Torralba, R. Fergus., "Spectral Hashing",Advances in Neural Information Processing Systems, 2008.
しかしながら、上記の従来のバイナリビットコード化手法には、以下の問題がある。第一の問題は、従来手法はビットコード化が遅いという問題である。即ち、D次元のベクトルをdビットのコードに変換する場合には、式(4)のWxの計算にはD×d回の乗算と、D×(d−1)回の加算が必要である。従って、従来手法では距離計算を高速化することはできるものの、その前段の処理であるビットコード化がボトルネックとなってしまう。これは、特徴ベクトルの次元数Dが増えるほど深刻となる。特に、リアルタイムにビットコード化が必要な場合、例えばリアルタイム画像検索やリアルタイム音声認識に適用する場合には非常に不便である。
第二の問題は、ビットコードが長くなるという問題である。即ち、乱数に基づいてWを構成する場合、特徴ベクトルの分布を考慮していないため、十分な性能を得るためには長いビットコードが必要になる。
上記の従来のバイナリビットコード化手法のうち、ランダム・プロジェクションには第一及び第二の問題があり、ベリー・スパース・ランダム・プロジェクションには第二の問題があり、スペクトラル・ハッシングには、第一の問題がある。
本発明は、上記の問題点に鑑みてなされたものであり、特徴ベクトルのビットコード化が高速で、かつ短いビットコードを生成できる特徴変換装置を提供することを目的とする。
上記従来の課題を解決するために、本発明の特徴変換装置は、複数の学習用特徴ベクトルを入力し、その中から複数のペアを選択する学習ペア選択部と、変換行列を用いて前記学習用特徴ベクトルを変換した上で、当該変換された学習用ベクトルをビットコードに変換するビットコード変換部と、前記複数のペアについての、前記学習ペア選択部に入力された前記学習用特徴ベクトルの距離と前記ビットコード変換部で変換された前記ビットコードの距離との相違の、全ての前記ペアについての和を示すコスト関数を計算するコスト関数計算部と、前記ビットコード変換部にて用いる前記変換行列の要素を選択して、選択した要素を置換候補で置換することで、前記変換行列を更新する変換行列更新部とを備えた構成を有している。そして、前記ビットコード変換部は、変換行列更新部で更新された変換行列を用いて、前記学習用特徴ベクトルを変換した上で、当該変換された学習用ベクトルをビットコードに変換し、前記コスト関数計算部は、前記変換行列更新部によって前記変換行列の要素が前記置換候補で置換されたときに、前記置換候補及びもとの前記要素の中から、所定の方法に基づいてひとつを選択することで、前記要素を確定する。前記変換行列更新部が前記要素を順に変えて選択し、そのつど前記コスト関数計算部が選択された前記要素を確定することで、前記最終的に最適な前記変換行列が確定される。前記置換候補は、前記ビットコード変換部による前記変換行列を用いた変換処理が高速になるように特定される。
この構成により、変換行列が学習に基づいて最適化されるため、生成されるビットコードは短くなる。更に、最終的に確定される最適変換行列の要素は、ビットコード変換部によるビットコード変換処理が高速になるように確定されているので、この最適変換行列を用いることで高速にビットコード変換を行うことができる。また、変換行列更新部が要素を順に変えて選択し、そのつどコスト関数計算部が当該選択された要素を確定するという手法により最適変換行列を求めるので、コスト関数が非線形であって微分不可能であっても、効果的にコスト関数を減少させることができる。これにより、ビットコード変換部で変換されたビットコードの距離によって、学習ペア選択部に入力された学習用特徴ベクトルの距離を十分な精度で近似できるようになる。よって、短いビットコードでも、最近傍探索において十分な性能を発揮できるようになる。
上記の特徴変換装置において、前記コスト関数計算部は、前記要素を前記置換候補の各々で置換したときの前記コスト関数の変化量を計算し、前記変化量に応じて採用確率を決定し、前記採用確率に応じて、前記置換候補及びもとの前記要素の中からひとつを選択してよい。
この構成により、コスト関数の変化量に基づいて要素が確定されるので、好適に要素を確定することができる。例えば、コスト関数計算部は、コスト関数を最小にする置換候補でもって要素を確定してよい。なお、コスト関数の変化量とは、選択された要素をある置換候補で置換する前のコスト関数と置換した後のコスト関数との差分値である。
上記の特徴変換装置において、前記ペアについての、前記学習ペア選択部に入力された前記学習用特徴ベクトルの距離は、L1ノルム、L2ノルム、又はベクトル間角度のいずれかに基づく距離であってよい。
また、上記の特徴変換装置において、前記ペアについての、前記ビットコード変換部で変換された前記ビットコードの距離は、ハミング距離に基づく距離であってよい。
また、上記の特徴変換装置において、前記変換行列の要素は整数に限定されており、前記置換候補も整数に限定されていてよい。
この構成により、ビットコード変換部によるビットコード変換処理をより高速化できる。
また、上記の特徴変換装置において、前記変換行列の要素は、−1、0、1のいずれかに限定されており、前記置換候補も−1、0、1のいずれかに限定されていてよい。
この構成により、ビットコード変換部での変換行列を用いた変換において掛け算が不要となるので、ビットコード変換処理をより高速化できる。
また、上記の特徴変換装置において、前記変換行列は、非0の要素の数が所定の範囲内に限定されており、前記置換候補は、前記変換行列の非0の要素の数を前記所定の範囲内に保つよう特定されていてよい。
この構成により、変換行列を疎(スパース)にできるので、ビットコード変換部での変換行列を用いた処理をさらに高速化できる。なお、上記の所定の範囲の大きさは、幅1の範囲であってもよい。即ち、非0の要素の数が具体的な数に固定されていてもよい。
また、上記の特徴変換装置において、前記変換行列の要素は、2のべき乗に限定されており、前記置換候補も2のべき乗に限定されていてよい。
この構成により、ビットコード変換部での変換行列を用いた変換においてビットシフトの手法を用いることが可能になり、ビットコード変換処理をより高速化できる。
また、上記の特徴量変換装置において、前記学習ペア選択部は、入力された前記複数の学習用特徴ベクトルの中から任意にペアを選択してよい。
この構成により、高い精度で近似が可能なビットコードに変換するための変換行列を好適に求めることができる。
また、上記の特徴変換装置において、前記学習ペア選択部は、前記学習用特徴ベクトルの距離に基づいて、入力された前記複数の学習用特徴ベクトルの中からペアを選択してよい。
この構成により、ビットコード変換部で変換されたビットコードの距離によって、学習ペア選択部に入力された学習用特徴ベクトルの距離をより十分な精度で近似できるようになる。よって、より短いビットコードでも、最近傍探索において十分な性能を発揮できるようになる。
また、上記の特徴変換装置において、前記学習ペア選択部は、所定の距離以下のペアと前記所定の距離以上のペアの組数が所定の割合になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択してよい。
また、上記の特徴変換装置において、前記学習ペア選択部は、距離の頻度が一様又は特定の分布になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択してよい。
また、上記の特徴変換装置において、前記学習ペア選択部は、最も遠い距離関係にあるペアと最も近い距離関係にあるペアの組数が所定の割合になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択してよい。
また、上記の特徴変換装置において、前記コスト関数計算部は、前記変換行列更新部によって前記変換行列の要素が置換候補で置換される前の変換行列を用いてされた前記コスト関数の計算の結果を、前記変換行列更新部によって前記変換行列の要素が置換候補で置換された後の変換行列のコスト関数の計算に流用してよい。
この構成により、最適変換行列を求める演算を高速化できる。
本発明の類似情報探索装置は、上記のいずれかの特徴変換装置と、類似ベクトル検索部とを備えた類似情報探索装置であって、前記ビットコード変換部は、前記確定された最適な変換行列を用いて前記複数の学習用特徴ベクトルを複数のビットコードに変換し、前記ビットコード変換部は、入力特徴ベクトルが与えられたときに、前記確定された最適な変換行列を用いて当該入力特徴ベクトルをビットコードに変換し、前記類似ベクトル検索部は、前記ビットコード変換部にて前記複数の学習ベクトルから変換された前記複数のビットコードを保管するビットコード保管部と、前記ビットコード変換部にて前記入力特徴ベクトルから変換された前記ビットコードを入力して、近傍探索によって、前記ビットコード保管部に保管された前記複数のビットコードの中から、前記入力特徴ベクトルから変換されたビットコードに類似するビットコードを探索する近傍探索部とを備えた構成を有している。
本発明のコード化パラメータ生成方法は、特徴ベクトルをビットコードに変換するためのコード化パラメータとして変換行列を出力するコード化パラメータ生成方法であって、複数の学習用特徴ベクトルの中から複数のペアを選択する第1ステップと、所定の拘束条件の下で、変換行列を初期化する第2ステップと、前記複数のペアについての、前記学習用特徴ベクトルの距離と前記学習用特徴ベクトルから前記初期化された変換行列を用いて変換されたビットコードの距離との相違の和を示すコスト関数を計算する第3ステップと、前記変換行列の要素の中から置換対象とする要素を選択する第4ステップと、前記第4ステップで選択された要素を特定の置換候補で置換する第5ステップと、前記第5ステップで前記選択された要素が前記置換候補で置換された前記変換行列を用いて、前記コスト関数を計算する第6ステップと、前記選択された要素をそれに対応する前記置換候補のすべてで置換したか否かを判断して、前記選択された要素をそれに対応する前記置換候補のすべてで置換していない場合には前記第5ステップに戻る第7ステップと、前記第7ステップにおいて、前記選択された要素をそれに対応する前記置換候補のすべてで置換したと判断された場合に、前記置換候補のうち、計算されたコスト関数が最も小さかった置換候補で、選択されている要素を確定することで、最適変換行列を暫定的に確定する第8ステップと、前記第8ステップにて暫定的に確定された前記最適変換行列が収束しているか否かを判断し、収束していないと判断した場合には前記第4ステップに戻る第9ステップと、前記第8ステップにて暫定的に確定された前記最適変換行列が収束していると判断した場合に、暫定的に確定された前記最適変換行列を最終的に確定された最適変換行列として出力する第10ステップとを含んでいる。
本発明のコンピュータ・プログラムは、上記のコード化パラメータ生成方法をコンピュータに実行させるためのコンピュータ・プログラムである。
本発明によれば、ビットコード変換を高速化でき、かつ短いビットコードを生成できる変換行列を生成することができる。
本発明の実施の形態におけるエンコーダ部の構成を示すブロック図 本発明の実施の形態における類似情報探索装置の構成を示すブロック図 本発明の実施の形態のおける学習ベクトルとそのペアを概念的に示す図 本発明の実施の形態における最適変換行列の決定方法の概要を示すフロー図 本発明の実施の形態における最適変換行列の決定方法の具体例1において置換候補特定部で特定される置換候補を示す図 本発明の実施の形態における最適変換行列の決定方法の具体例2において置換候補特定部で特定される置換候補を示す図 本発明の実施の形態における最適変換行列の決定方法の具体例1において置換候補特定部で特定される置換候補を示す図 本発明の実施の形態における特徴ベクトルをビットコードに変換する処理を示す図 本発明の実施の形態におけるビットコードに変換する前の特徴ベクトルXAと特徴ベクトルXBの間の距離を求める処理を示す図 本発明の実施の形態における特徴ベクトルXA及びXBをビットコードに変換して、ビットコードYA及びYBとした上で、それらのハミング距離を求める処理を示す図 本発明の実施の形態における変換行列において選択された要素とコスト関数との関係を示す図 本発明の実施の形態における変換行列W中の選択された要素を第n番目の置換候補に置換したときの、ビットコードYを求める処理を示す図 本発明の実施の形態における図12の状態から、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときのビットコードYを求める処理を示す図 本発明の実施の形態における選択された要素w1,1が第(n+1)番目の置換候補で置換されたときの、ハミング距離を求める処理を示す図
以下、本発明を実施するための形態について説明する。なお、本明細書において、「ビットコード化」と「ビットコード変換」とは同じ意味として用いる。
図2は、本発明の実施の形態の類似情報探索装置の構成を示すブロック図である。図2に示すように、類似情報探索装置100は、エンコーダ部101と類似特徴ベクトル検索部102とを備えている。エンコーダ部101は、単精度実数の特徴ベクトルをビットコードに変換する。エンコーダ部101は、本発明の特徴変換装置に相当する。類似特徴ベクトル検索部102は、k−最近傍探索によって、入力特徴ベクトルに対するk個の類似ベクトルを探索する。
図1は、エンコーダ部101の構成を示すブロック図である。エンコーダ部101は、コード化パラメータ生成部10と、ビットコード変換部20を備えている。コード化パラメータ生成部10は、学習用の特徴ベクトルtを用いて、単精度実数の特徴ベクトルをビットコードに変換する際に必要なパラメータを生成して、ビットコード変換部20に出力する。具体的には、コード化パラメータ生成部10は、コード化パラメータとして、ビットコード変換に用いる変換行列Wを求める。ビットコード変換部20は、コード化パラメータ生成部10で生成されたパラメータを用いて、特徴ベクトルをビットコード化する。
類似特徴ベクトル検索部102は、ビットコード保管部30と、k−最近傍検索部40と、距離計算部50とを備えている。ビットコード保管部30には、ビットコード化された複数の特徴ベクトル(以下、ビットコード化された特徴ベクトルを単に「ビットコード」という。)が保存されている。類似特徴ベクトル検索部102は、入力情報と類似する情報を探す際には、入力情報の特徴ベクトルから変換されたビットコードと類似するビットコードをビットコード保管部30に保管された複数のビットコードの中から検索する。このビットコード保管部30には、エンコーダ部101のビットコード変換部20で変換されたビットコードが保管される。また、入力情報の特徴ベクトルもビットコード変換部20でビットコードに変換される。
入力情報のビットコードは、k−最近傍探索部40に入力される。k−最近傍探索部40は、この入力情報のビットコードと類似するビットコードをビットコード保管部30に保管されている複数のビットコードの中から探索して、類似ベクトルとして出力する。距離計算部50は、k−最近傍探索部40において類似するビットコードを探索する際のビットコード同士の距離を計算して、k−最近傍探索部40に提供する。
本発明は、エンコーダ部101に特徴を有し、特に、ビットコード変換部20にて特徴ベクトルをビットコードに変換する際に用いるコード化パラメータ(変換行列W)を生成するコード化パラメータ生成部10に特徴を有する。コード化パラメータ生成部10について説明をする前に、以下の定義をする。
まず、変換前の特徴ベクトルを次式(5)のように定義する。
式(5)において、Dは特徴ベクトルの次元数である。
変換後のビットコードを次式(6)のように定義する。
式(6)において、dはビットコードのビット長である。これは、yがd次元のベクトルであり、yの各要素は0もしくは1の値のみを取るという意味である。すなわち、yはビットコードであると解釈できる。
変換行列を次式(7)のように定義する。
ビットコード化を次式(8)のように定義する。
変換前の特徴空間における類似度(正規化コサイン距離)を次式(9)のように定義する。
なお、変換前の特徴空間における類似度の尺度として、L1ノルムやL2ノルムなど、他の尺度を用いてもよい。例えば、上式(3)の角度θを円周率πで正規化したものを用いてもよい。
変換後の特徴空間における類似度(正規化ハミング距離)を次式(10)のように定義する。
なお、式(10)において、h()はハミング距離を求める関数である。
式(9)及び式(10)から明らかなように、正規化コサイン距離及び正規化ハミング距離は、0から1の範囲の値を取るように正規化されている。距離の値が小さいほど特徴が類似しており、大きいほど特徴が類似していないことを表している。
以下、エンコーダ部101、特にコード化パラメータ生成部10の構成について説明する。コード化パラメータ生成部10は、学習ペア選択部11と、学習ペア保持部12と、変換行列初期化部13と、拘束条件格納部14と、置換候補特定部15と、変換行列更新部16と、コスト関数計算部17と、判定収束部18とを備えている。
学習ペア選択部11には、複数の学習用の特徴ベクトル(以下、単に「学習ベクトル」という。)が入力される。学習ベクトルは、次式(11)のように定義される。
式(11)においてN、即ち学習ベクトルの数は、例えば1万とすることができる。
学習用ペア選択部11は、入力された複数の学習ベクトルの中から、ペアを選択する。図3は、学習ベクトルとそのペアを概念的に示す図である。学習用ペア選択部11で選択するペアの数は多いほうがよい。学習用ペア選択部11は、例えば次の選び方でペアを選択する。まず、学習用ペア選択部11は、入力された複数の学習ベクトルの全ての組合せをペアとして選択することができる。また、学習用ペア選択部11は、入力された複数の学習ベクトルの中から所定数のペアをランダムに選択することもできる。
さらに、学習用ペア選択部11は、距離に依存するようにペアを選択することもできる。例えば、学習用ペア選択部11は、距離が最も遠いペアと距離が最も近いペアを均等に選ぶことができる。また、学習用ペア選択部11は、距離の頻度が一様になるようにペアを選んでもよい。さらに、学習用ペア選択部11は、一定の距離d_th以下のペアと、d_th以上のペアの数が均等になるように選んでもよい。
学習ペア選択部11にて選択された学習ベクトルのペアは学習ペア保持部12に保持される。学習ペア保持部12に保持されている学習ベクトルの各ペアは、コスト関数計算部17に出力され、コスト関数計算部17でコスト関数を計算するのに用いられる。
コスト関数計算部17で計算されるコスト関数は、次式(12)のように定義される。
ここで、集合Pは学習ペア保持部12から入力された学習ベクトルのペアの集合である。
コスト関数計算部17は、f(W)を最小化するようなWを求める。即ち、コスト関数計算部17は、変換前の空間におけるコサイン距離と、変換後の空間におけるハミング距離がなるべく一致するようなWを求める。このときに必要なビットコード変換は、ビットコード変換部20が行う。
一般的には、関数y(x)を最小にするxを求める場合には、関数y(x)を微分することで変曲点のxを求める等の手法が用いられるが、式(12)に示すように、本実施の形態のコスト関数f(W)は微分不可能であり、従って、一般的な最適化手法を適用することができない。そこで、本実施の形態のコード化パラメータ生成部10は、後述する方法でf(W)を最小化し、そのときの変換行列Wを最適変換行列として、ビットコード変換部20に出力する。
最適変換行列を求めるための構成を説明する。変換行列初期化部13は、拘束条件格納部14に格納されている拘束条件の下で、変換行列Wを初期化して、変換行列更新部16に出力する。拘束条件格納部14には、変換行列初期化部13にて変換行列を初期化する際、及び置換候補特定部15にて変換行列の要素を置換するための置換候補を特定する際の、変換行列の要素に課される拘束条件を格納している。
置換候補特定部15は、変換行列中の選択された要素に対する置換候補を特定して、変換行列更新部16に出力する。変換行列更新部16は、変換行列初期化部14から入力された初期化された変換行列をコスト関数計算部17に出力する。変換行列更新部16は、また、初期化された変換行列Wの要素の中から置換対象とする要素を選択して、選択した要素を置換候補特定部15で特定された置換候補で置換して、コスト関数計算部17に出力する。変換行列更新部16は、さらに、収束判定部18から未収束である旨の報告を受けると、その暫定的に確定された変換行列Wについて、新たな置換対象要素を選択して、置換候補特定部15で特定された置換候補で置換する。
コスト関数計算部17は、変換行列更新部16から入力された変換行列を用いて、式(12)によってコストを計算する。また、コスト関数計算分17は、選択された要素が複数の置換候補でそれぞれ置換されてなる複数の変換行列によってそれぞれ計算されたコストを比較して、最も低いコストが計算された際に用いた変換行列を、暫定的に最適変換行列として確定し、これを変換行列更新部16に戻す。
収束判定部18は、暫定的に確定された最適変換行列で計算されたコストに基づいて、最適変換行列が収束しているか否かを判断する。収束判定部18は、例えば暫定的に確定された最適変換行列で計算されたコストが所定の閾値を下回っている場合に、収束していると判断してもよいし、暫定的に確定された最適変換行列で計算されたコストの変化量が所定の閾値を下回った場合に、収束していると判断してもよい。
収束判定部18は、最適変換行列が収束していると判断する場合には、暫定的に確定された最適変換行列を最終的に確定された最適変換行列として、ビットコード変換部20に出力する。収束判定部18は、最適変換行列が収束していないと判断する場合には、変換行列行進部16に対して、暫定的に確定された最適変換行列に対して、再度、そのうちの要素を選択して、選択した要素を置換候補に従って置換するよう指示する。
図4は、最適変換行列の決定方法の概要を示すフロー図である。図4を参照して、最適変換行列の決定方法の概要を説明する。まず、変換行列初期化部13が、拘束条件格納部14に格納されている拘束条件の下で、変換行列Wを初期化して、変換行列更新部16に出力する(ステップS41)。変換行列更新部16は、まず、変換行列初期化部14から入力された初期化された変換行列をコスト関数計算部17に出力し、コスト関数計算部17は、この初期化された変換行列を用いて、式(12)によってコストを計算する(ステップS42)。
次に、変換行列更新部16は、変換行列Wの要素の中から置換対象とする要素を選択する(ステップS43)。変換行列更新部16は、選択した要素を置換候補特定部15で特定された置換候補で置換して、コスト関数計算部17に出力する(ステップS44)。コスト関数計算部17は、選択された要素が置換された変換行列Wを用いて、コストを計算する(ステップS45)。
次に、置換候補行列更新部16は、置換候補特定部15で特定された置換候補のうち、まだコスト計算を行っていない置換候補があるか否かを判断する(ステップS46)。まだコスト計算を行っていない置換候補がある場合には(ステップS46でYES)、ステップS44に戻って、選択されている要素を他の置換候補で置換して、ステップS45にてコスト計算を行なう。
こうして置換候補特定部15にて特定されたすべての置換候補についてコスト計算をすると(ステップS46でNO)、コスト関数計算部17は、それらの置換候補のうち計算されたコストが最も小さかった置換候補で、選択されている要素を確定する(ステップS47)。これによって最適変換行列が暫定的に確定される。収束判定部18は、変換行列が暫定的に確定された後に、その確定された変換行列で計算されたコストの値に基づいて、変換行列が収束したか否かを判断する(ステップS48)。収束していない場合には(ステップS48でNO)、収束判定部18は、暫定的に確定された変換行列を変換行列更新部16に出力するとともに、変換行列更新部16に再度の置換対象候補の選択をするよう指示する。即ち、このとき処理はステップS43に戻って、ステップS43からステップS48の処理を繰り返す。
ステップS43からステップS48の処理を繰り返して、ステップS48で収束したと判断されたときは、収束判定部18は、最後にステップS47で確定された変換行列Wを最終的に確定された最適変換行列として出力する(ステップS49)。
以下、上記で概要を説明した最適変換行列の決定方法の具体例を説明する。以下では、図4を引用して、具体例の処理が対応する図4中のステップを明示する。
(最適変換行列の決定方法の具体例1)
具体例1のコード化パラメータ生成部10では、拘束条件格納部14には、拘束条件として、次式(13)が格納されている。ここで、wi,jは、変換行列Wのi行j列の要素である。
変換行列初期化部13は、変換行列Wをランダムに初期化する(ステップS41)。変換行列更新部16は、変換行列Wの要素wi,jをランダムに1つ選択し、この選んだ要素をwu,vとする(ステップS43)。
図5は、具体例1において置換候補特定部15で特定される置換候補を示す図である。図5に示すように、wu,vが1である場合には、置換候補は−1及び0となり、wu,vが0である場合には、置換候補は1及び−1となり、wu,vが−1である場合には、置換候補は0及び1となる。変換行列更新部16は、選択された要素をこれらの各置換候補で置換して、選択された要素が変換された変換行列をコスト関数計算部17に出力する(ステップS44)。コスト関数計算部17は、それぞれの変換行列についてコストを計算する(ステップS45)。コスト関数計算部17は、もともとのコストと選択された要素が置換候補によってそれぞれ置換された変換行列で計算されたコストとを比較して、最もコストが低かった変換行列を暫定的に最適変換行列として確定する(ステップS47)。そして、コストが十分に小さくなるまで、上記の処理を繰り返す。
具体例1によれば、式(13)の条件を維持しつつ、コストを効率的に最小化できる。そして、変換行列Wの要素wi,jが−1,0,1しか持たないため、ビットコード変換部20が式(8)によってビットコード変換をする際のWxの計算において、掛け算が不要になり、高速にビットコード化を行なうことができる。
(最適変換行列の決定方法の具体例2)
具体例2は、上記の具体例1において、拘束条件に次式(14)を追加したものである。
ここで、式(14)は、変換行列Wの要素のうち、非0の要素の数がC個であるという条件である。Cはユーザが任意に指定できる定数である。即ち、具体例2では、要素数がC個になるという条件下の下で、f(W)を最小化する。
変換行列初期化部13は、変換行列Wの要素を−1と1でランダムに埋めて、変換行列Wの要素からランダムにC個を選択し、それら以外をすべて0で埋めることにより、変換行列Wを初期化する(ステップS41)。変換行列更新部16は、変換行列Wの要素wi,jをランダムに1つ選択する(ステップS43)(この選んだ要素をwu,vとする)。
図6は、具体例2において置換候補特定部15で特定される置換候補を示す図である。図6に示すように、置換候補特定部15では、式(14)の条件を満たすように置換候補が特定される。即ち、式(14)の拘束条件によって、非0の数を変動させるような変換はできないので、非0の数が変動しないような置換候補のみが特定されている。具体的には、図6に示すように、wu,v=1である場合は、1は非0であるので、非0である−1にしか変換できない。また、wu,v=0である場合は、これを1又は−1、即ち非0に変換すると、非0の数が変動してしまうので、0には置換候補はないことになる。wu,v=−1である場合は、−1は非0であるので、非0である1にしか変換できない。
変換行列更新部16は、選択された要素をこれらの各置換候補で置換して、選択された要素が置換された変換行列をコスト関数計算部17に出力する(ステップS44)。その他の処理は具体例1と同様である。
具体例2によれば、式(13)及び式(14)の条件を維持しつつ、コストを効率的に最小化できる。そして、変換行列Wの要素wi,jが−1と1しか持たないため、ビットコード変換部20が式(8)によってビットコード変換をする際のWxの計算において、掛け算が不要になり、高速にビットコード化を行なうことができる。具体例2ではさらに、Cの値を小さくすることで、変換行列Wを非常に疎(スパース)な行列にすることができる。変換行列Wを疎にすることで、Wxの計算を更に高速化できる。
(最適変換行列の決定方法の具体例3)
具体例3のコード化パラメータ生成部10では、具体例2と同様に、拘束条件格納部14には、拘束条件として、式(13)及び次式(14)が格納されている。
変換行列初期化部13は、具体例2と同様にして変換行列Wを初期化する(ステップS41)。具体例3では、変換行列更新部16は、変換行列Wの要素wi,jをランダムに2つ選択する(ステップS43)(この選んだ要素をwu,v、wp,qとする)。
図7は、具体例3において置換候補特定部15で特定される置換候補を示す図である。図7に示すように、置換候補特定部15は、式(14)の条件を満たすように、置換候補を特定する。即ち、式(14)の拘束条件によって、非0の数を変動させるような変換はできないので、非0の数が変動しないような置換候補のみが特定されている。例えば、(wu,v,wp,q)=(1,1)である場合は、非0の数は2個であるので、置換候補は、非0が2個になる条件を保って、(−1,−1)、(1,−1)、(−1,1)となる。他も同様であり、(wu,v,wp,q)に非0が1個ある場合には、非0が1個という条件を保って置換候補が特定される。なお、(wu,v,wp,q)=(0,0)である場合は、式(14)によって、非0が0個である状態を維持する必要があるので、置換候補はないことになる。この場合は、wu,v、wp,qを新たに選択し直す。
変換行列更新部16は、選択された要素をこれらの各置換候補で置換して、選択された要素が変換された変換行列をコスト関数計算部17に出力する(ステップS44)。その他の処理は具体例1と同様である。
具体例3によれば、具体例2と同様に変換行列Wを疎にすることで、Wxの計算を更に高速化できる。さらに、具体例2では、初期化された変換行列Wにおいて0の要素は固定されていたが、具体例3では、0の要素の数を固定したままその場所が最適化されるので、変換行列Wをより好適に最適化できる。
以上説明したとおり、最適変換行列を求める過程では、wu,vを更新するたびに、ビットコード変換部20がビットコード変換を行い、コスト関数計算部17がコスト関数f(W)を計算する。以下では、その計算を大幅に簡略化して、効率的にコスト関数を計算する方法を説明する。
図8は、特徴ベクトルをビットコードに変換する処理を示す図である。図8は、式(8)を図式化したものである。なお、図8において、行列Xの各列は、1つの特徴ベクトルxであり、行列Zの各列は、Wxであり、行列Yの各列は、式(8)で表されるyである。
図9は、ビットコードに変換する前の特徴ベクトルXAと特徴ベクトルXBの間の距離を求める処理を示す図である。なお、図9及び以下の図10、図11、図14において、説明の便宜上、特徴ベクトル(もしくはビットコード)間の距離演算を模式化する記号としてマイナスを用いた。図9におけるDoの各列は、特徴ベクトルXA及びXBの対応する列同士の正規化された距離を表している。
図10は、図9の特徴ベクトルXA及びXBをビットコードに変換して、ビットコードYA及びYBとした上で、それらのハミング距離を求める処理を示す図である。図10においても、Dhの各列は、ビットコードYA及びYBの対応する列同士の正規化された距離を表している。
図11は、変換行列において選択された要素とコスト関数との関係を示す図である。図11に示すように、いま、選択された要素がWの第1行にあるとすると、この選択された要素w1,∞(右下添え字の「1,∞」は、第1行の任意の列を表している)が置換候補によって置換されることで、ビットコードYA及びYBにおいて影響を受けるのは、その第1行の要素のみである。よって、要素w1,∞を各置換候補で置換しながらビットコードYA及びYBのハミング距離を求めると、その各ハミング距離の各列の値は、実際には、ビットコードYA及びYBにて第1行の要素のみが変更されて求められた値である。即ち、図11のビットコードYA及びYBにおいて、斜線で示した第1行以外の部分については、要素w1,∞を各置換候補で置換するたびに、重複して計算していることになる。従って、この重複計算を回避することで、計算速度を早くすることができる。
図12は、変換行列W中の選択された要素を第n番目の置換候補に置換したときの、ビットコードYを求める処理を示す図である。図12において、ビットコードY及び変換行列(の転地行列)Wの右上添え字の(n)は、選択された要素が第n番目の置換候補で置換されていることを示している。図12の例では、Wの1行1列の要素w1,1が選択されている。
図13は、図12の状態から、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときのビットコードYを求める処理を示す図である。図13のビットコードY(n+1)において、図12のビットコードY(n)から変更されているのは、斜線で示した第1行のみである。
ここで、下式(15)、(16)のように定義をする。
ここで、wの右下添え字「1,∞」は、上述のように、選択された要素wが第1行(列は任意)であることを表しており、Yの右下添え字「1,∞」は、ビットコードYの第1行を表している。
上記のように定義すると、X、及び変換行列Wのうちの選択された要素w以外の要素は、選択された要素wが置換候補で置換されたとしても不変であるので、次式(17)が成り立つ。
式(17)から、次式(18)が成り立つ。
図14は、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときの、ハミング距離を求める処理を示す図である。ハミング距離Dhの右上添え字の(n+1)は、選択された要素w1,1が第(n+1)番目の置換候補で置換されていることを示している。ハミング距離Dh(n+1)はハミング距離Dh(n)とは異なるものになるが、この相違は、実際には、ビットコードYAとビットコードYBのそれぞれの第1行の相違のみに起因するものである。
従って、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときのハミング距離Dh(n+1)は、次式(19)によって求めることができる。
ここで、ΔY1,∞は、次式(20)で定義される。
このように、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときのビットコードY(n+1)の第1行は、式(15)から式(19)で示したように、選択された要素w1,1が第(n)番目の置換候補にであったときの計算結果を利用して求めることができ、更に、選択された要素w1,1が第(n+1)番目の置換候補で置換されたときのハミング距離Dh(n+1)は、選択された要素w1,1が第n番目の置換候補であったときのハミング距離Dh(n)とビットコードYA(n)及びYB(n)の第1行を用いて求めることができる。
上記の説明は、選択された要素wが第1行第1列のw1,1であったが、上記の式(18)及び(19)を一般化すると、それぞれ次式(21)及び(22)となる。
なお、ΔYj,∞は、次式(23)で定義される。
コスト関数計算部17は、選択された要素が置換候補で置換されると、上記式(21)及び式(22)を用いてコスト関数f(W)を計算する。
以上、本発明の実施の形態を説明したが、本発明は上記の実施の形態に限らず、種々の形態で実施される。例えば、拘束条件格納部14に格納される拘束条件は、変換行列の要素がすべて整数であるという条件であってもよく、変換行列の要素がすべて2のべき乗であるという条件であってもよい。
以上のように、本発明は、特徴ベクトルを高速にビットコード変換でき、かつ短いビットコードを生成できるという効果を有し、類似情報探索のために変換行列を用いて特徴ベクトルをビットコードに変換する特徴変換装置等として有用である。
10 コード化パラメータ生成部
11 学習ペア選択部
12 学習ペア保持部
13 変換行列初期化部
14 拘束条件格納部
15 置換候補特定部
16 変換行列更新部
17 コスト関数計算部
18 収束判定部
20 ビットコード変換部
30 ビットコード保管部
40 k−最近傍探索部
50 距離計算部
100 類似情報探索装置
101 エンコーダ部
102 類似特徴ベクトル検索部

Claims (17)

  1. 複数の学習用特徴ベクトルを入力し、その中から複数のペアを選択する学習ペア選択部と、
    変換行列を用いて前記学習用特徴ベクトルを変換した上で、当該変換された学習用ベクトルをビットコードに変換するビットコード変換部と、
    前記複数のペアについての、前記学習ペア選択部に入力された前記学習用特徴ベクトルの距離と前記ビットコード変換部で変換された前記ビットコードの距離との相違の、全ての前記ペアについての和を示すコスト関数を計算するコスト関数計算部と、
    前記ビットコード変換部にて用いる前記変換行列の要素を選択して、選択した要素を置換候補で置換することで、前記変換行列を更新する変換行列更新部と、
    を備え、
    前記ビットコード変換部は、変換行列更新部で更新された変換行列を用いて、前記学習用特徴ベクトルを変換した上で、当該変換された学習用ベクトルをビットコードに変換し、
    前記コスト関数計算部は、前記変換行列更新部によって前記変換行列の要素が前記置換候補で置換されたときに、前記コスト関数に基づいて、前記置換候補及びもとの前記要素の中から、ひとつを選択することで、前記要素を確定し、
    前記変換行列更新部が前記要素を順に変えて選択し、そのつど前記コスト関数計算部が選択された前記要素を確定することで、前記最終的に最適な前記変換行列を確定し、
    前記置換候補は、前記ビットコード変換部による前記変換行列を用いた変換処理が高速になるように特定される
    ことを特徴とする特徴変換装置。
  2. 前記コスト関数計算部は、前記要素を前記置換候補の各々で置換したときの前記コスト関数の変化量を計算し、前記変化量に応じて採用確率を決定し、前記採用確率に応じて、前記置換候補及びもとの前記要素の中からひとつを選択することを特徴とする請求項1に記載の特徴変換装置。
  3. 前記ペアについての、前記学習ペア選択部に入力された前記学習用特徴ベクトルの距離は、L1ノルム、L2ノルム、又はベクトル間角度のいずれかに基づく距離であることを特徴とする請求項1又は2に記載の特徴変換装置。
  4. 前記ペアについての、前記ビットコード変換部で変換された前記ビットコードの距離は、ハミング距離に基づく距離であることを特徴とする請求項1ないし3のいずれか一項に記載の特徴変換装置。
  5. 前記変換行列の要素は整数に限定されており、前記置換候補も整数に限定されていることを特徴とする請求項1ないし4のいずれか一項に記載の特徴変換装置。
  6. 前記変換行列の要素は、−1、0、1のいずれかに限定されており、前記置換候補も−1、0、1のいずれかに限定されていることを特徴とする請求項5に記載の特徴変換装置。
  7. 前記変換行列は、非0の要素の数が所定の範囲内に限定されており、前記置換候補は、前記変換行列の非0の要素の数を前記所定の範囲内に保つよう特定されていることを特徴とする請求項1ないし6のいずれか一項に記載の特徴変換装置。
  8. 前記変換行列の要素は、2のべき乗に限定されており、前記置換候補も2のべき乗に限定されていることを特徴とする請求項5に記載の特徴変換装置。
  9. 前記学習ペア選択部は、入力された前記複数の学習用特徴ベクトルの中から任意にペアを選択することを特徴とする請求項1ないし8のいずれか一項に記載の特徴変換装置。
  10. 前記学習ペア選択部は、前記学習用特徴ベクトルの距離に基づいて、入力された前記複数の学習用特徴ベクトルの中からペアを選択することを特徴とする請求項1ないし8のいずれか一項に記載の特徴変換装置。
  11. 前記学習ペア選択部は、所定の距離以下のペアと前記所定の距離以上のペアの組数が所定の割合になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択することを特徴とする請求項10に記載の特徴変換装置。
  12. 前記学習ペア選択部は、距離の頻度が一様又は特定の分布になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択することを特徴とする請求項10に記載の特徴変換装置。
  13. 前記学習ペア選択部は、最も遠い距離関係にあるペアと最も近い距離関係にあるペアの組数が所定の割合になるように、入力された前記複数の学習用特徴ベクトルの中からペアを選択することを特徴とする請求項10に記載の特徴変換装置。
  14. 前記コスト関数計算部は、前記変換行列更新部によって前記変換行列の要素が置換候補で置換される前の変換行列を用いてされた前記コスト関数の計算の結果を、前記変換行列更新部によって前記変換行列の要素が置換候補で置換された後の変換行列のコスト関数の計算に流用することを特徴とする請求項1ないし13のいずれか一項に記載の特徴変換装置。
  15. 請求項1ないし14のいずれか一項に記載の特徴変換装置と、類似ベクトル検索部とを備えた類似情報探索装置であって、
    前記ビットコード変換部は、前記確定された最適な変換行列を用いて前記複数の学習用特徴ベクトルを複数のビットコードに変換し、
    前記ビットコード変換部は、入力特徴ベクトルが与えられたときに、前記確定された最適な変換行列を用いて当該入力特徴ベクトルをビットコードに変換し、
    前記類似ベクトル検索部は、
    前記ビットコード変換部にて前記複数の学習ベクトルから変換された前記複数のビットコードを保管するビットコード保管部と、
    前記ビットコード変換部にて前記入力特徴ベクトルから変換された前記ビットコードを入力して、近傍探索によって、前記ビットコード保管部に保管された前記複数のビットコードの中から、前記入力特徴ベクトルから変換されたビットコードに類似するビットコードを探索する近傍探索部と、
    を備えたことを特徴とする類似情報探索装置。
  16. 特徴ベクトルをビットコードに変換するためのコード化パラメータとして変換行列を出力するコード化パラメータ生成方法であって、
    複数の学習用特徴ベクトルの中から複数のペアを選択する第1ステップと、
    所定の拘束条件の下で、変換行列を初期化する第2ステップと、
    前記複数のペアについての、前記学習用特徴ベクトルの距離と前記学習用特徴ベクトルから前記初期化された変換行列を用いて変換されたビットコードの距離との相違の和を示すコスト関数を計算する第3ステップと、
    前記変換行列の要素の中から置換対象とする要素を選択する第4ステップと、
    前記第4ステップで選択された要素を特定の置換候補で置換する第5ステップと、
    前記第5ステップで前記選択された要素が前記置換候補で置換された前記変換行列を用いて、前記コスト関数を計算する第6ステップと、
    前記選択された要素をそれに対応する前記置換候補のすべてで置換したか否かを判断して、前記選択された要素をそれに対応する前記置換候補のすべてで置換していない場合には前記第5ステップに戻る第7ステップと、
    前記第7ステップにおいて、前記選択された要素をそれに対応する前記置換候補のすべてで置換したと判断された場合に、前記置換候補のうち、計算されたコスト関数が最も小さかった置換候補で、選択されている要素を確定することで、最適変換行列を暫定的に確定する第8ステップと、
    前記第8ステップにて暫定的に確定された前記最適変換行列が収束しているか否かを判断し、収束していないと判断した場合には前記第4ステップに戻る第9ステップと、
    前記第8ステップにて暫定的に確定された前記最適変換行列が収束していると判断した場合に、暫定的に確定された前記最適変換行列を最終的に確定された最適変換行列として出力する第10ステップと、
    を含むことを特徴とするコード化パラメータ生成方法。
  17. 請求項16に記載のコード化パラメータ生成方法をコンピュータに実行させるためのコンピュータ・プログラム。

JP2011042031A 2011-02-28 2011-02-28 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム Active JP5258915B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011042031A JP5258915B2 (ja) 2011-02-28 2011-02-28 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
EP12157185A EP2498191A1 (en) 2011-02-28 2012-02-27 Feature conversion device, similar information search apparatus provided therewith, coding parameter generation method, and computer program
US13/405,716 US8630482B2 (en) 2011-02-28 2012-02-27 Feature conversion device, similar information search apparatus provided therewith, coding parameter generation method, and computer program
CN201210048128.6A CN102693268B (zh) 2011-02-28 2012-02-28 相似信息搜索装置及相似信息搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011042031A JP5258915B2 (ja) 2011-02-28 2011-02-28 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2012181566A true JP2012181566A (ja) 2012-09-20
JP5258915B2 JP5258915B2 (ja) 2013-08-07

Family

ID=45688384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011042031A Active JP5258915B2 (ja) 2011-02-28 2011-02-28 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US8630482B2 (ja)
EP (1) EP2498191A1 (ja)
JP (1) JP5258915B2 (ja)
CN (1) CN102693268B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014074964A (ja) * 2012-10-02 2014-04-24 Fujitsu Ltd 認証プログラム、認証方法及び認証装置
JP2014149808A (ja) * 2013-01-08 2014-08-21 Denso It Laboratory Inc 特徴変換装置及び特徴変換方法
WO2015025472A1 (ja) * 2013-08-22 2015-02-26 日本電気株式会社 特徴変換学習装置、特徴変換学習方法およびプログラム記憶媒体
JP2015118639A (ja) * 2013-12-19 2015-06-25 富士通株式会社 検索方法、検索プログラムおよび検索装置
JP2015138462A (ja) * 2014-01-23 2015-07-30 株式会社デンソーアイティーラボラトリ 関連性判定装置、関連性判定プログラム、及び関連性判定方法
US9794068B2 (en) 2014-12-16 2017-10-17 Fujitsu Limited Cryptographic processing device and cryptographic processing method
JP2017215984A (ja) * 2017-07-18 2017-12-07 株式会社デンソーアイティーラボラトリ 関連性判定装置、及び関連性判定プログラム
JP2018524660A (ja) * 2015-09-24 2018-08-30 グーグル エルエルシー 高速直交射影
US10394777B2 (en) 2015-09-24 2019-08-27 Google Llc Fast orthogonal projection

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5930056B2 (ja) 2012-09-27 2016-06-08 日本電気株式会社 バイナリデータ変換方法と装置及びプログラム
JP6193779B2 (ja) * 2013-06-03 2017-09-06 株式会社デンソーアイティーラボラトリ 特徴量変換装置、学習装置、認識装置、及び特徴量変換プログラム
US10643354B2 (en) * 2015-03-20 2020-05-05 Rensselaer Polytechnic Institute Automatic system calibration method of X-ray CT
US10721475B2 (en) * 2017-09-01 2020-07-21 Ittiam Systems (P) Ltd. K-nearest neighbor model-based content adaptive encoding parameters determination
CN109600625B (zh) * 2018-12-20 2021-06-01 深圳创维-Rgb电子有限公司 一种节目搜索方法、装置、设备及介质
CN110781327B (zh) * 2019-10-25 2021-07-02 深圳追一科技有限公司 图像搜索方法、装置、终端设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246354A1 (en) * 2003-08-29 2005-11-03 Pablo Tamayo Non-negative matrix factorization in a relational database management system
WO2011018823A1 (ja) * 2009-08-12 2011-02-17 株式会社 東芝 パターン認識装置、その方法、及びそのプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995034884A1 (fr) * 1994-06-13 1995-12-21 Matsushita Electric Industrial Co., Ltd. Analyseur de signaux
DE19623033C1 (de) * 1996-06-08 1997-10-16 Aeg Electrocom Gmbh Verfahren und Anordnung zur Mustererkennung auf statistischer Basis
US6907427B2 (en) * 2001-05-22 2005-06-14 International Business Machines Corporation Information retrieval with non-negative matrix factorization
CN1906855B (zh) * 2004-01-30 2014-04-02 法国电信 空间矢量和可变分辨率量化
JP5144123B2 (ja) * 2007-05-16 2013-02-13 キヤノン株式会社 情報処理方法、情報処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246354A1 (en) * 2003-08-29 2005-11-03 Pablo Tamayo Non-negative matrix factorization in a relational database management system
WO2011018823A1 (ja) * 2009-08-12 2011-02-17 株式会社 東芝 パターン認識装置、その方法、及びそのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200100360004; 佐々木 稔 Minoru Sasaki: 'ランダム・プロジェクションによるベクトル空間モデルの次元削減 Dimensional-Space Reduction of Vector' 情報処理学会研究報告 Vol.2000 No.11 IPSJ SIG Notes 第2000巻, 20000128, pp.25-32, 社団法人情報処理学会 Information Processing Socie *
JPN6013000580; 佐々木 稔 Minoru Sasaki: 'ランダム・プロジェクションによるベクトル空間モデルの次元削減 Dimensional-Space Reduction of Vector' 情報処理学会研究報告 Vol.2000 No.11 IPSJ SIG Notes 第2000巻, 20000128, pp.25-32, 社団法人情報処理学会 Information Processing Socie *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014074964A (ja) * 2012-10-02 2014-04-24 Fujitsu Ltd 認証プログラム、認証方法及び認証装置
JP2014149808A (ja) * 2013-01-08 2014-08-21 Denso It Laboratory Inc 特徴変換装置及び特徴変換方法
WO2015025472A1 (ja) * 2013-08-22 2015-02-26 日本電気株式会社 特徴変換学習装置、特徴変換学習方法およびプログラム記憶媒体
JPWO2015025472A1 (ja) * 2013-08-22 2017-03-02 日本電気株式会社 特徴変換学習装置、特徴変換学習方法およびコンピュータプログラム
JP2015118639A (ja) * 2013-12-19 2015-06-25 富士通株式会社 検索方法、検索プログラムおよび検索装置
JP2015138462A (ja) * 2014-01-23 2015-07-30 株式会社デンソーアイティーラボラトリ 関連性判定装置、関連性判定プログラム、及び関連性判定方法
US9794068B2 (en) 2014-12-16 2017-10-17 Fujitsu Limited Cryptographic processing device and cryptographic processing method
JP2018524660A (ja) * 2015-09-24 2018-08-30 グーグル エルエルシー 高速直交射影
US10394777B2 (en) 2015-09-24 2019-08-27 Google Llc Fast orthogonal projection
JP2017215984A (ja) * 2017-07-18 2017-12-07 株式会社デンソーアイティーラボラトリ 関連性判定装置、及び関連性判定プログラム

Also Published As

Publication number Publication date
US20120219212A1 (en) 2012-08-30
US8630482B2 (en) 2014-01-14
CN102693268B (zh) 2015-06-24
CN102693268A (zh) 2012-09-26
JP5258915B2 (ja) 2013-08-07
EP2498191A1 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
JP5258915B2 (ja) 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
US11797822B2 (en) Neural network having input and hidden layers of equal units
CN109669962B (zh) 精确指数和准确softmax计算
Slaney et al. Optimal parameters for locality-sensitive hashing
Liu et al. Discretely coding semantic rank orders for supervised image hashing
JP6055391B2 (ja) 関連性判定装置、関連性判定プログラム、及び関連性判定方法
Wan et al. Effect of segmentation on financial time series pattern matching
JP5193518B2 (ja) パターン探索装置及びその方法
US11416552B2 (en) Graph updating apparatus, graph updating method and program
CN111177438B (zh) 图像特征值的搜索方法、装置、电子设备及存储介质
Xu et al. A general framework for feature selection under orthogonal regression with global redundancy minimization
JP5862413B2 (ja) 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法
Somervuo Online algorithm for the self-organizing map of symbol strings
Zhang et al. Code consistent hashing based on information-theoretic criterion
Ma et al. Partial hash update via hamming subspace learning
Qiu et al. Efficient document retrieval by end-to-end refining and quantizing BERT embedding with contrastive product quantization
KR102615073B1 (ko) 유사도 검색을 위한 신경 해싱
Huang et al. Binary multidimensional scaling for hashing
CN114399027A (zh) 利用神经网络进行序列处理的方法及序列处理的装置
Zhao et al. Constrained Approximate Similarity Search on Proximity Graph
JP6195365B2 (ja) ベクトル符号化プログラム、装置及び方法
JP5962405B2 (ja) 認証プログラム、認証方法及び認証装置
Park et al. Support vector machine parameter tuning using dynamic encoding algorithm for handwritten digit recognition
Argerich et al. Generic LSH Families for the Angular Distance Based on Johnson-Lindenstrauss Projections and Feature Hashing LSH
Tomoda University of Electro-Communications, Tokyo 182-8585, Japan {tomoda, koga}@ sd. is. uec. ac. jp

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130423

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5258915

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250