JP5930056B2 - バイナリデータ変換方法と装置及びプログラム - Google Patents
バイナリデータ変換方法と装置及びプログラム Download PDFInfo
- Publication number
- JP5930056B2 JP5930056B2 JP2014538582A JP2014538582A JP5930056B2 JP 5930056 B2 JP5930056 B2 JP 5930056B2 JP 2014538582 A JP2014538582 A JP 2014538582A JP 2014538582 A JP2014538582 A JP 2014538582A JP 5930056 B2 JP5930056 B2 JP 5930056B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- hash function
- distance
- parameter
- data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
[関連出願についての記載]
本発明は、日本国特許出願:特願2012−213419号(2012年 9月27日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、バイナリデータ変換方法と装置及びプログラムに関する。
本発明は、日本国特許出願:特願2012−213419号(2012年 9月27日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、バイナリデータ変換方法と装置及びプログラムに関する。
Webサイトに公開されているような数百万〜数億といった巨大なデータを高速に検索するための技術として、データの特徴を短い2値テンプレートへ変換・検索する、“バイナリハッシング”で総称される技術の開発が盛んに行われている。検索対象データは、固定長2値データ(2値テンプレート)に変換されるとともに、固定長2値データ(2値テンプレート)間の距離にはXOR(排他的論理和)等のビット論理演算が用いられる。XOR等のビット論理演算は高速である。このため、固定長2値データ(2値テンプレート)のデータ長を十分短くすることができれば、大規模データベースでの検索等においても、計算機の物理メモリ上に載せて、高速の検索を実現することができる。しかし、二つの2値テンプレート間の距離の算出として、XORの演算結果におけるビットのフリップ(ビット反転)数を数える方法は、元のデータ間における距離とは大きく異なってしまう可能性がある。
なお、バイナリハッシングとは、D次元(Dは所定の正整数)空間上のポイントで表現される複数(n個)のデータ集合(data set)
において、元の空間での近傍点(near or nearest neighbors)が同様に近傍となるようなバイナリコード(2値符号)になるハミング(Hamming)空間に写像するものである。すなわち、元のデータ集合の空間RD×nでのユークリッド(Euclid)距離による近傍関係を保ったまま、Kビット長(Kは所定の正整数)のn個のバイナリコード(2値化データ)
に変換する。記号→はベクトルを表している。→xi(i=1,・・・n)はD次元ベクトル、→yi (i=1,・・・n)はK次元ベクトルである。なお、式(1)において、Rは実数全体の集合を表し、式(2)において、Bはバイナリコード(2値符号)を表している。
において、元の空間での近傍点(near or nearest neighbors)が同様に近傍となるようなバイナリコード(2値符号)になるハミング(Hamming)空間に写像するものである。すなわち、元のデータ集合の空間RD×nでのユークリッド(Euclid)距離による近傍関係を保ったまま、Kビット長(Kは所定の正整数)のn個のバイナリコード(2値化データ)
に変換する。記号→はベクトルを表している。→xi(i=1,・・・n)はD次元ベクトル、→yi (i=1,・・・n)はK次元ベクトルである。なお、式(1)において、Rは実数全体の集合を表し、式(2)において、Bはバイナリコード(2値符号)を表している。
Kビットのバイナリコードの生成に、K個のハッシュ(Hash)関数が用いられる。ハッシュ関数は、D次元ベクトルを入力とし、例えばバイナリ値-1または1を出力とする。
ハッシュ関数には様々な方式があるが、ここでは線形射影(linear-projection)に基づくハッシングを想定し、k番目(k=1,・・・,K)のハッシュ関数hk(→x)は、次式(3)で定義する。
ここで、sgn()は引数の符号を返す符号関数(式(3)では引数f()が負のとき-1、非負(0又は正)のとき、+1)、f()は変換関数、→wkは射影ベクトル、Tは転置、→xはデータポイント、bkは閾値(オフセット)である。
すなわち、バイナリコードのkビット目(k=1、・・・、K)は、k番目のハッシュ関数hk(→x)が+1、−1のとき、それぞれ、1、0となる。
バイナリハッシングの手法として、Locality Sensitive Hashing(「LSH」と略記される)と呼ばれる一連の手法がある(非特許文献1等参照)。
LHSは、上式(1)の変換関数f()に恒等関数を用い、→wをp-stable分布(p安定分布)からランダムに選び、→bを一様分布からランダムに選ぶ。LHSでは、パラメータの選択、学習データに依らない。このため、パラメータ決定に要する時間は非常に短い。
LHSでは、射影するビット長Kを128、512等と大きくしていくことで、近傍関係の近似度を上げることができる(すなわち、Hamming距離がEuclid距離を良く近似することができる)ことが証明されている。一方で、LHSは、ビット長Kが大きくない場合に近似が良くなく、十分な精度が達成できないことが指摘されている。
LHSと同様に、ハッシュ関数のパラメータの選択が学習データに依らない手法が、非特許文献2等に開示されている。この手法は、→wをLHSと同様に選択するが、変換関数f()として、三角関数を用いており、ビット長Kが大きくないときの精度が改善されている、と言われている。
近年、学習データに依存する手法が開発されている。非特許文献3に開示されているSpectral Hashingは、ハッシュ関数の変換関数f()として三角関数を用い、学習データをその重心が原点になるよう移動した後、オフセットbを0とし、射影ベクトル→wkとして、学習データ{→xi}を主成分分析(Principle Component Analysis:PCAと略記される)して得られた主軸を選択する手法である。すなわち、Spectral Hashingアルゴリズムは次のように規定される。
・平均値が0になるようデータを平行移動した後、PCAを用いてデータの主成分を求める。
・各PCA方向に、矩形近似で、Lp(例えば1次元ラプラシアン)の固有関数(LpΦ=λΦ)(k個の最小の単一次元解析的固有関数(analytical eigenfunction))を計算し、各方向に対して、k個の最小の固有値を計算し、d×k個の固有値のリストを作成し、k個の最小の固有値を求める。
・各データを入力したときの解析的固有関数の出力を、0を閾値としてバイナリコードを得る。
LHSでは、射影ベクトル→wをランダムに生成しているが、Spectral Hashingでは、データの主成分分析(PCA)に基づき、求めている。このため、Spectral Hashingの方がLHSよりも精度がよいと言われている。しかしながら、Spectral Hashingでは、主成分分析を行う必要がある。このため、例えば数値計算として安定な特異値分解(singular value decomposition)を用いた場合、Spectral Hashingの計算量は、行列の次数(特徴量次元数)Nに対して、O(N2)〜O(N3)のオーダーを要する。なお、O(N2)〜O(N3)は、計算量が入力データセットのサイズ(N)の2乗、3乗のオーダに比例するアルゴリズムであることを表している。
一般に認識対象となるパターンは、特徴量空間で、比較的コンパクトかつ複雑な多様体を形成することが知られている。このような場合、少数の主成分ベクトルで張られる部分空間にパターン分布が集中してしまう傾向にあり、精度が十分でない、ことが指摘されている。
この問題を解決するとした非特許文献4に開示されたアルゴリズム(Unsupervised sequential projection learning for hashing(USPLHと略記される))では、f()は恒等関数、学習データ重心が原点になるよう移動した後、固有ベクトルを求め、データを射影して0で閾値化する。0に近いr+の点とr−の点(図1参照)は、距離が近いのに異なるハッシュ値が割当てられる。符号が同一で0に近いr+の点、0から遠いR+の点は同一のハッシュ値が割当てられ、また0に近いr−、0から遠いR−の点は同一のハッシュ値が割当てられるように学習する(図1参照)。USPLHでは、次のアルゴリズムでパラメータ→wkの学習が行なわれる(非特許文献4のAlgorithm 2参照)。
1.学習データXとバイナリコード長(ハッシングコード長)Kを入力する。
2.初期化:X0 MC=φ,S0 MC=0
3.k=1からKまで以下の4〜7を繰り返す:
4.補正された共分散行列を計算する:
Mk=Σk−1 i=0λk−iXi MCSi MCXi MC T+ηXXT
Mk=Σk−1 i=0λk−iXi MCSi MCXi MC T+ηXXT
5.Mkの第1主成分ベクトル(固有ベクトル)→eを抽出して→wkにセットする:
→wk=→e
→wk=→e
6.射影→wkから擬似ラベルを生成する:
Xk MCをサンプルし、Sk MCを構築する。
Xk MCをサンプルし、Sk MCを構築する。
7.残差を計算する:
X=X−→wk →wk TX
X=X−→wk →wk TX
データポイントを1次元軸上に射影した場合について説明する。→wk T→x=0(一次元軸分割の境界)に関して、境界左側の点をhk(→x)=-1、境界右側の点をhk(→x)=+1とすると、境界を間に挟んで境界に近接した左右の領域r−、r+の2点(→xi,→xj)(→xi∈r−,→xj∈r+)は、一次元軸上での射影が極めて近接しているにもかかわらず、異なったハッシュビットが割当てられる。→xi、→xjの射影ベクトル→wkによる射影の距離|→wk(→xi−→xj)|がε(εは予め定められた正数)以下であるのに対して、ハッシュ値h(→xi)=−1、h(→xj)=1とされる。なお、図1は、非特許文献4のFigure2に基づく図である。
また、境界を間に挟んで境界から遠く離れた左右の領域R−、R+に関して、→xi∈r−且つ→xj∈R−、あるいは、→xi∈r+、且つ、→xj∈R+の2点(→xi,→xj)は、射影は互いに遠く離れているにもかかわらず(|→wk(→xi−→xj)|≧ζ:ζは予め定められた正数)、同一のハッシュビットが割当てられる。すなわち、ハッシュ値h(→xi)、h(→xj)の積が1となる。
このような境界誤差を修正するため、USPLHでは、隣接ペア集合Mと、非隣接ペア集合Cが導入される。集合Mに含まれるデータポイント対(→xi,→xj)は、例えばr-内のデータポイントとr+内のデータポイントであり、同一のハッシュビットが割当てられるべきである。集合Cに含まれるデータポイント対(→xi,→xj)は、R-内のデータポイントとr-内のデータポイント、又は、R+内のデータポイントとr+内のデータポイントであり、互いに異なるハッシュビットが割当てられるべきである。以下の近傍対集合(neighbor-pair set Mと非近傍対集合(non-neighbor-pair set)Cを導入する。
M={(→xi,→xj)}:h(→xi)・h(→xj)=-1,|→wk T(→xi - →xj)|≦ε
C={(→xi,→xj)}:h(→xi)・h(→xj)=1,|→wk T(→xi -xj)|≧ζ
ただし、ε<ζである。
C={(→xi,→xj)}:h(→xi)・h(→xj)=1,|→wk T(→xi -xj)|≧ζ
ただし、ε<ζである。
近傍対集合Mと非近傍対集合Cから所望数ペアをサンプルする。XMCは少なくとも1つの標本ペア分離れた全ての点を含む。ラベル化されたペアとXMCを用いて(m個サンプリング)、ペア単位のラベル行列SMCを求める。
S∈Rm×m
Si,j=1 ((→xi,→xj)∈M)
Si,j=-1 ((→xi,→xj)∈C)
Si,j=0 (上記以外の場合)
Si,j=1 ((→xi,→xj)∈M)
Si,j=-1 ((→xi,→xj)∈C)
Si,j=0 (上記以外の場合)
すなわち、
(→xi,→xj)∈Mのペアに対して、Sk MC=1、
(→xi,→xj)∈Cのペアに対して、Sk MC=−1
が割当てられる。
(→xi,→xj)∈Mのペアに対して、Sk MC=1、
(→xi,→xj)∈Cのペアに対して、Sk MC=−1
が割当てられる。
次の繰り返しで、擬似ラベルは、集合Mのデータポイント対を同一ハッシュ値に割り当てられるようにし、集合Cのデータポイント対を異なるハッシュ値に割り当てられるようにし、前回のハッシュ関数での誤差を修正する。
各ハッシュ関数hk()は、擬似ラベルXk MCと対応するラベル行列Sk MCを生成する。新たなラベル情報がシーケンシャル学習の各反復において、データ共分散行列の調整に用いられる。新たな射影ベクトル→wを学習する場合、開始からの全てのペアワイズのラベル行列が用いられるが、その寄与は、各反復において、パラメータλによって指数関数的に減少する。
残差誤差(residual error)により修正した主成分方向を求めるが、開始時点で擬似ラベルは存在しないため、第1のベクトル→w1がデータの主方向となる。各ハッシュ関数は、データ共分散行列を調整することで、反復的に擬似ラベルを満足するように学習が行われる。上記したUSPLHアルゴリズムは、残差誤差により修正した主成分方向を求める手法となっていることがわかる。
なお、特許文献1には、ハッシュ関数を用いた近似最近傍探索法において、高速化、誤差比で最近接パターンを探索する手法として、学習パターン集合を正規分布(ガウス分布)であると過程し、学習パターンの任意の軸上における累積確率分布をシグモイド関数(Psd=1/{1-exp(-(x-μ)/a)}、μは平均、aは標準偏差)で最小二乗近似等により近似し、累積確率分布を基に確率値を一定間隔で分割するハッシュ関数を複数個定義し、未知のパターンを入力する各ハッシュ関数の出力値によりハッシュ関数により分割された空間領域(パケット)中の部分集合の和集合を求め、その集合中から最近傍パターンを探索する手法が開示されている。
非特許文献5には、バイオメトリクス認証において、データベース上に置く認証用テンプレートをランダムなBCH(Bose-Chaudhuri-Hocquenghem)符号語(code word)Cでマスクする(ビットワイズなXOR(排他的論理和)をとる)ことによって、生体情報を保護する方式が開示されている(後述する実施例で参照される)。この方式では、認証用テンプレートは固定長二値データであることが必要であるため、前記のバイナリハッシング技術を応用することが可能である。
Mayur Datar, Nicole Immorlica, Piotr Indyk and Vahab S. Mirrokni, "Locality-Sensitive Hashing Scheme Based on p-Stable Distributions", Proc. Symposium on Computational Geometry, pp.253-262, 2004.
Maxim Raginsky and Svetlana Lazebnik, "Locality-Sensitive Binary Codes from Shift-Invariant Kernels", NIPS Vol.22, 2010.
Yair Weiss, Antonio Torralba and Rob Fergus, "Spectral Hashing", NIPS 2008.
Jun Wang, Sanjiv Kumar and Shih-Fu Chang, "Sequential Projection Learning for Hashing with Compact Codes", Proc. of the 27th ICML 2010.
Pim Tuyls, Anton H. M. Akkermans, Tom A. M. Kevenaar, Geert-Jan Schrijen, Asker M. Bazen and Raymond N. J. Veldhuis, "Practical Biometric Authentication with Template Protection", Proceedings of AVBPA 2005, Lecture Notes in Computer Science, Vol. 3546, Springer Verlag, pp. 436-446, (2005)
以下関連技術の分析を与える。以下では、特に、特徴量空間中でのバイナリ表現について検討する。
上記したLSH等、学習データによらない手法は、ビット長を十分長くしておかないと、十分な近似精度が得られない。このため、必要とされる記憶容量、演算器(ビット長)等の点で、非効率である。
学習型について検討する。ここで、数値のビット表現を考察する。図2には、char(文字型)の数値179を8ビット表現した例が示されている。他の数値(ビット列)とXOR(排他的論理和)演算後の“1”となったビット数を距離としたとき、たとえ1ビットしか異なっていなくても、MSB(Most Significant Bit)側とLSB(Least Significant Bit)側とでは、重みが異なっている。8ビット(1バイト)中、1ビットの相違がMSBの場合、その重みは128、1ビットの相違がLSBの場合、重みは1であり、1ビットの相違であるにもかかわらず、ビット位置の重みの相違で値が大幅に異なる。従って、各ビットの重みはできるだけ、同じになるようにすることが望まれる。
上記したSpectral Hashingは、主成分方向に対して複数の三角関数を適用する手法である。図3は、Spectral Hashingを模式的に説明する図であり、0番目から3番目の固有ベクトル(Eigenvector)が示されている。Spectral Hashingでは、
・PCAの主成分方向で正負の領域を設定すること、
・領域の大きさが段階的に変わること、
が特徴である。これは、図2に示した数値ビット表現と本質的に同じであることがわる。
・PCAの主成分方向で正負の領域を設定すること、
・領域の大きさが段階的に変わること、
が特徴である。これは、図2に示した数値ビット表現と本質的に同じであることがわる。
Spectral Hashingでは、パターンが低次元空間に集中しているときに、所望の近似精度がでない。これは、Spectral Hashingが、図2の通常の数値のビット表現と同じ問題を解決していないことによるものである、ことは明らかである。
また、上記したUSPLHのアルゴリズムでは、残差により修正するとはいえ、USPLHは、直交座標系の抽出方法であることから、その近似精度には限界があるものと思料される。図4に、USPLHアルゴリズムでの固有ベクトルを示す。図4に示すように、ステップ関数により、数値を表現(符号化)することで、各ビットの重みを同等とすることができ、排他的論理和(XOR)による距離と、特徴量空間上での距離とが比例することがわかる。
すなわち、USPLHでは、特徴量の投影軸(射影ベクトル)方向だけを最適化しても、近似精度の向上には限界があり、オフセット分も同時に修正する必要があることがわかる。
このように、学習型は、有効ではあるが、線形部分空間での原点閾値による2値化であるため、精度等には、限界がある。
したがって本発明は、上記問題点に鑑みて創案されたものであって、その目的は、計算量の増大を抑えながら精度の向上を図る、バイナリデータ変換方法と装置、システム、プログラムを提供することにある。
本発明の1つの側面によれば、ハッシュ関数のパラメータを最適化するハッシュ関数パラメータ最適化部を備え、
記憶部からD次元(Dは予め定められた所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換し、
前記ハッシュ関数パラメータ最適化部は、前記ハッシュ関数として、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いてハッシュ値を求め、連続値のバイナリ変換学習データとして、記憶部に出力するハッシュ関数演算部を備え、データポイント間の距離として、予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する装置(バイナリデータ変換装置)が提供される。
記憶部からD次元(Dは予め定められた所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換し、
前記ハッシュ関数パラメータ最適化部は、前記ハッシュ関数として、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いてハッシュ値を求め、連続値のバイナリ変換学習データとして、記憶部に出力するハッシュ関数演算部を備え、データポイント間の距離として、予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する装置(バイナリデータ変換装置)が提供される。
本発明の別の側面によれば、ハッシュ関数のパラメータを最適化するパラメータ最適化工程と、
記憶部からD次元(Dは所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化手段で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換する工程と、
を含み、
前記パラメータ最適化工程では、
変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして記憶部に出力し、
データポイント間の距離として、予め定められた所定の距離パラメータ以内では、前記データポイント間の距離を保存した値をとり、前記距離パラメータを超えると、値が小さくなる特性の距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する方法(バイナリデータ変換方法)が提供される。
記憶部からD次元(Dは所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化手段で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換する工程と、
を含み、
前記パラメータ最適化工程では、
変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして記憶部に出力し、
データポイント間の距離として、予め定められた所定の距離パラメータ以内では、前記データポイント間の距離を保存した値をとり、前記距離パラメータを超えると、値が小さくなる特性の距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する方法(バイナリデータ変換方法)が提供される。
本発明のさらに別の側面によれば、ハッシュ関数のパラメータを最適化するパラメータ最適化処理と、
記憶部からD次元(Dは予め定められた所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化手段で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換する処理を、コンピュータに実行させるプログラムであって、
前記パラメータ最適化処理は、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして記憶部に出力するハッシュ関数演算処理と、
データポイント間の距離として予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する処理を含むプログラムが提供される。
記憶部からD次元(Dは予め定められた所定の正整数)空間上のポイントで表される複数のデータの集合を入力し、データポイントを射影ベクトルに射影させた値に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化手段で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換する処理を、コンピュータに実行させるプログラムであって、
前記パラメータ最適化処理は、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして記憶部に出力するハッシュ関数演算処理と、
データポイント間の距離として予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する処理を含むプログラムが提供される。
本発明のさらに別の側面によれば、登録フェーズにおいて、生体情報から特徴量抽出したデータ集合に対して、前記バイナリデータ変換装置で変換されたバイナリデータZに対して、乱数Sを生成し、
前記乱数Sをエンコーダで誤り訂正符号化した符号語Cと前記バイナリデータZの排他的論理和(Z (+) C)、及び、前記乱数Sを入力とするハッシュ関数の出力H(S)を、データベースへ登録する生体認証システムが提供される。
前記乱数Sをエンコーダで誤り訂正符号化した符号語Cと前記バイナリデータZの排他的論理和(Z (+) C)、及び、前記乱数Sを入力とするハッシュ関数の出力H(S)を、データベースへ登録する生体認証システムが提供される。
本発明のさらに別の側面によれば、認証フェーズにおいて、前記バイナリデータ変換装置で変換された認証対象のバイナリデータZ’と、前記データベースから読み出した前記(Z (+) C)との排他的論理和をとった値C’をデコーダに入力して誤り訂正復号し、
前記デコーダの出力S'をハッシュ関数に入力し、
前記ハッシュ関数の出力H(S')と、前記データベースに登録されているH(S)とが等しいか否か判定する生体認証システムが提供される。
前記デコーダの出力S'をハッシュ関数に入力し、
前記ハッシュ関数の出力H(S')と、前記データベースに登録されているH(S)とが等しいか否か判定する生体認証システムが提供される。
本発明のさらに別の側面によれば、前記登録フェーズにおいて、前記エンコーダは誤り訂正符号として線形符号を用い、前記ハッシュ関数は準同型性を有する。また、認証フェーズでは、認証を行う毎に第2の乱数S'を生成し、前記第2の乱数S'を、第2のエンコーダで誤り訂正符号化した符号語C’と、前記バイナリデータ変換装置から出力される認証対象のバイナリデータZ’との排他的論理和(C' (+) Z')と、前記データベースから読み出した(Z (+) C)との排他的論理和((Z'i (+) Z'i) (+) (Ci (+) C'i))を第2のデコーダに入力して誤り訂正復号し、前記第2のデコーダからの出力S"をハッシュ関数に入力して求めたハッシュ値H(S”)と、前記第2の乱数S'をハッシュ関数に入力して求めたハッシュ値H(S')との排他的論理和(値H(S') (+) H(S”))が、前記データベースに登録されたH(S)と等しいか否か判定し、前記第2のエンコーダ、第2のデコーダは、誤り訂正符号として線形符号を用い、前記ハッシュ関数は準同型性を有する生体認証システムが提供される。
本発明によれば、計算量の増大を抑えながら精度の向上を図る、全く新規なハッシュ関数の学習に基づくバイナリデータ変換方法と装置、システム、プログラムが提供される。
本発明の実施形態を以下に説明する。以下では、まず、ハッシュ関数のパラメータの学習を説明する。D次元空間中にn個のデータから構成されるデータ集合(data set)
をハッシュ関数h()によって、Kビット長のバイナリコードYへと変換する。
をハッシュ関数h()によって、Kビット長のバイナリコードYへと変換する。
本実施形態では、ハッシュ関数hk(→x)として、連続関数であるシグモイド関数(sigmoid function)を用いて次式(5)のように拡張定義する(k=1,・・・K)。
式(5)において、β(t)は制御パラメータ、→wkは射影ベクトル(絶対値|→wk|=1、k=1,・・・K)、Tは転置(→wk T は →wkの転置べクトル)、→xはD次元データポイント、αkは閾値(オフセット)、→wk T→xは、データポイント→xと射影ベクトル→wkとの内積であり、データポイント→xの→wkへの射影(projection)である。なお、シグモイド関数は、変数xについてσ(x)=1/(1+exp(-ax))(aをゲインという)の形式で表される。
式(5)において、β(t)は正値であり、定数、又は、学習が進むにしたがい(後述される最適化時の反復回数が大となるに従い)、β(t)は大きくなるように制御する。
図5に、式(5)のシグモイド関数を用いたハッシュ関数hash(x)を示す。図5において、横軸のxは、式(5)の→wk T→x−αk,縦軸はシグモイド関数の値である。
また、図5のハッシュ関数hash(x)(シグモイド関数)は、β→∞の極限で−1又は+1となり、式(6)と一致する。ハッシュ関数のパラメータの学習が完了し、最適なパラメータ→wk、αkが得られると、この式(6)のハッシ関数(2値化関数)を用いて、バイナリハッシュ値を得る。
また、D次元特徴量空間でのデータポイント間の距離を表すn×nの距離行列Dのi行j列の要素di,jを次式(7)で定義する。
式(7)において、εは正の定数であり、特徴量空間中での近傍を予め定義する値(距離パラメータ)である。図6に、上式(7)の距離行列の要素di,jのグラフを示す。図6において、横軸xは、式(7)におけるデータポイント対の距離|→xi−→xj|であり、縦軸は、di,jである。図6に示すように、|→xi−→xj|=0のとき、di,j=1、|→xi−→xj|=εのとき、横軸のxは1となり、di,j=1/e=1/2.71828・・・となる。さらに、|→xi−→xj|>εで、di,jは急激に(指数関数的に)小さくなる。
図7(A)、図7(B)は、特徴量空間(RD×n)における近傍の概念を説明する図である。ある点を中心とし、半径ε以内の近傍内では、距離を保存し、半径ε外、すなわち近傍以外では、距離を保存しない。すなわち、バイナリハッシング等の2値化において、どのような大きさの距離であっても近似できるようなビット表現は、必ずしも望まれるわけではない。言い換えると、近傍での距離は、例えば本人−他人の弁別等に重要であるが、ある程度離れた位置との間の距離は、閾値に対して十分大きければ、近似誤差が大きくても構わない、ということができる。|→xi−→xj|>εで、di,jは急激に(指数関数的に)小さくなる、ということは、離れているデータ点間距離は、学習時に考慮しない、ことと等価である。また、di,jが十分小さいときには、その値を0とすることで、計算を省略することができ学習時間を短縮することが可能である。
バイナリデータYは、元のデータ集合(2値化される前のデータ集合)X間の距離を表す行列Dを近似すべきであることから、式(5)のシグモイド関数で定義されるハッシュ関数
中のパラメータ→wk、αkを、次式(8)で与えられるコスト関数(目的関数)S(W,→α)の値を最小化するハッシュ関数の係数(パラメータ)として学習する(最適化問題)。
中のパラメータ→wk、αkを、次式(8)で与えられるコスト関数(目的関数)S(W,→α)の値を最小化するハッシュ関数の係数(パラメータ)として学習する(最適化問題)。
式(8)において、
は、距離の近似に関わる項である。di,jは距離行例Dの要素(i,j)(i番目のデータポイントとj番目にあたるデータポイント間の距離)である。|→yi- →yj|は、ハッシュ値から得られるバイナリ変換学習データの距離である。元のデータセットからハッシュ関数により変換されたバイナリコードyi、yj間は、XOR(排他的論理和)により比較することになるが、本実施形態では、数式上、取り扱いが容易でバイナリ符号の場合にはXORと同値となる二次式で表している。
は、距離の近似に関わる項である。di,jは距離行例Dの要素(i,j)(i番目のデータポイントとj番目にあたるデータポイント間の距離)である。|→yi- →yj|は、ハッシュ値から得られるバイナリ変換学習データの距離である。元のデータセットからハッシュ関数により変換されたバイナリコードyi、yj間は、XOR(排他的論理和)により比較することになるが、本実施形態では、数式上、取り扱いが容易でバイナリ符号の場合にはXORと同値となる二次式で表している。
ハッシュ関数の係数(パラメータ)の学習は、コスト関数Sの最小値を求めるにあたり、特に制限されないが、最急降下法(Most Steepest Descent)を用いる。コスト関数Sを、最急勾配法により最小化することで、ハッシュ関数(シグモイド関数)のパラメータ→wkとαkの最適値
を求める。^は最適値を表している。
を求める。^は最適値を表している。
すなわち、ハッシュ関数のパラメータ学習時(パラメータの最適化時)に、バイナリ表現(2値化関数)を、連続値をとるシグモイド関数(式(5))で置き換え、例えば最急降下法等の最適化法の適用を可能とし、パラメータ学習を行う。なお、特に制限されないが、本実施形態では、β(t)の値を、学習回数tに依存して大きくすることで、シグモイド関数は、2値化関数に近づくようにしている。
(t+1)回目の更新における各パラメータ
(k=1、2、・・・n)は、t回目の反復でのパラメータ値
と、コスト関数Sの勾配(Sの→w(t) k、α(t) kによる偏微分係数)
により、それぞれ次式(11)、(12)により、更新する。
(k=1、2、・・・n)は、t回目の反復でのパラメータ値
と、コスト関数Sの勾配(Sの→w(t) k、α(t) kによる偏微分係数)
により、それぞれ次式(11)、(12)により、更新する。
ここで、γ(t)は所定の正定数とするか、あるいは、繰り返し(iteration)毎にその値を小さくする(γ(t+1)<γ(t))ように制御する。
式(12)の偏微分項は以下の式で表される。
(t+1)回目の反復(iteration)で求めた式(8)のコスト関数S(t+1)(W,→α)と、t回目の反復で求めた式(8)のコスト関数S(t)(W,→α)の差S(t+1)(W,→α)-S(t)(W,→α)の絶対値が収束判定パラメータδ以下の場合、
|S(t+1)(W,→α)-S(t)(W,→α)|<δ
コスト関数S(W,→α)は収束したものと判定され(最小値)、このときのパラメータW(t+1)、→α(t+1)が、係数出力部112から、ハッシュ関数(式(5)のシグモイド関数)のパラメータ(最適パラメータ)
として出力される。
|S(t+1)(W,→α)-S(t)(W,→α)|<δ
コスト関数S(W,→α)は収束したものと判定され(最小値)、このときのパラメータW(t+1)、→α(t+1)が、係数出力部112から、ハッシュ関数(式(5)のシグモイド関数)のパラメータ(最適パラメータ)
として出力される。
n個のD次元データポイントを含む学習データ(データ集合)に対して、ハッシュ関数の最適パラメータ^W(t+1)、^→α(t+1)と、^β(t+1)を、式(5)のシグモイド関数のパラメータに用いて、図5の横軸x=0で2値化して得られた、Kビット長のn個のバイナリハッシュコードY∈BK×nが求めるバイナリコードである。なお、式(5)においてβ(t+1)→∞とした式(6)のハッシュ関数hk(→x;→W,αk)の→wk、αkに、導出された最適化パラメータ^W(t+1)、^→α(t+1を代入することで、2値化(バイナリハッシング)してもよい。このバイナリコードは、例えば近接近傍探索処理等に用いられる。
上記の通り、ハッシュ関数として、連続値表現のシグモイド関数を用い、元のデータ集合(Euclid空間)の距離dとして、近傍では距離を保存するが、近傍以外では距離を保存しない(予め定められた所定値以上離れた距離はほぼ同一の一定値に設定される)特性の距離関数を用いて求めた距離行列di,jと、連続関数であるシグモイド関数をハッシュ関数として用いて求めたバイナリ学習データyi,yjの距離と、に基づき規定されるコスト関数の最小化により、ハッシュ関数の最適パラメータを求める、という新規な学習方法を実装したことで、計算量等の増大を抑止しながら、精度の向上(例えば、元の空間での近傍点(near or nearest neighbors)が類似したバイナリコードを持つこと)を可能としている。
なお、式(8)において、→yiと→yjが同一の場合に、||内が0となる。このため、学習の途中で、→yiと→yjが同じ値となる方が、コスト関数S(W,→α)は小さくなる。つまり、→yi、及び→yjが同一になるように誤った学習をしてしまう事態が発生し得る。この事態を防ぐために、式(8)において、ペナルティ項を付与する、ようにしてもよい。例えばλを正定数として、→yiがばらつく方が好ましいペナルティ項をとりいれたコスト関数として、次式(17)を用いるようにしてもよい。
式(17)をコスト関数として用いた場合でも、コスト関数を最小化するハッシュ関数の係数の学習は、式(8)をコスト関数として用いた場合と同様にして行われる。
図8は、本発明の実施形態の構成を説明する図である。図8には、本実施形態の装置(バイナリコード変換装置)100において、ハッシュ関数のパラメータ最適化を行う部分(ハッシュ関数パラメータ最適化部(手段))が模式的に示されている。複数(n個)のD次元(Dは所定の整数値)データポイントを含むデータ集合を入力し、前記データポイントを射影ベクトルに射影させた値に基づき2値化するK個(Kは所定の整数値)のハッシュ関数によってKビット長の複数(n個)のバイナリデータに変換する装置であって、距離行列計算部102、ハッシュ関数演算部104、コスト計算部106、コスト比較部108、更新操作部109、ハッシュ関数係数更新部110、係数出力部112、距離パラメータεを記憶する記憶部114、学習データの記憶部116、距離行列を記憶する記憶部118、バイナリ変換学習データの記憶部120、コスト値を記憶する記憶部122、収束判定パラメータδの記憶部124、ハッシュ関数係数W、αを記憶する記憶部126、パラメータβを記憶する記憶部128を備えている。ストレージ装置として図示される114、116、118、120、122、124、126、128は、磁気/光/半導体ストレージのいずれであってもよい。また、各ストレージ装置は同一のストレージ装置の別の記憶領域であってもよい。また、パラメータε、δ、βを格納するストレージ装置114、124、128は、ラッチ回路、レジスタであってもよい。記憶部116に記憶される学習データは、バイナリコード(2値化データ)に変換対象のデータ集合(data set)からなり、例えば生体情報等から特徴抽出(Feature Extraction)により取得された特徴量からなる。
距離行列計算部102、ハッシュ関数演算部104、コスト計算部106、コスト比較部108、更新操作部109、ハッシュ関数係数更新部110、係数出力部112は、コンピュータで実行されるプログラムでその処理・機能を実現するようにしてもよい。また実施形態によれば、該プログラムを記録したコンピュータで読み出し可能な媒体(半導体メモリ、磁気/光ディスク媒体・装置)が提供される。
図9は、本発明の実施形態の処理手順を説明する図である。図8及び図9を参照して、本実施形態におけるハッシュ関数のパラメータ最適化の処理手順を説明する。
ステップ1(図9のS101):
距離行列計算部102は、記憶部116からD次元空間のn個の学習データ
を入力し、記憶部114から距離パラメータεを入力し、式(7)に従って2つのデータポイント間の距離di,jを計算し、n×nの距離行列Dを記憶部118に出力する。
距離行列計算部102は、記憶部116からD次元空間のn個の学習データ
を入力し、記憶部114から距離パラメータεを入力し、式(7)に従って2つのデータポイント間の距離di,jを計算し、n×nの距離行列Dを記憶部118に出力する。
ステップ2(図9のS102):
ハッシュ関数演算部104は、記憶部116からD次元空間のn個のデータポイント
を入力し、
記憶部126から式(5)のシグモイド関数の係数(パラメータ)
を入力し、
記憶部128からシグモイド関数の制御パラメータβ(t)を入力し、
上式(5)に従い、シグモイド関数を用いたハッシュ関数
(ただし、k=1,・・・K)
の値を計算する。ハッシュ関数演算部104は、K個のハッシュ関数hkのハッシュ値からバイナリ変換学習データを求め、
を記憶部120に出力する。
ハッシュ関数演算部104は、記憶部116からD次元空間のn個のデータポイント
を入力し、
記憶部126から式(5)のシグモイド関数の係数(パラメータ)
を入力し、
記憶部128からシグモイド関数の制御パラメータβ(t)を入力し、
上式(5)に従い、シグモイド関数を用いたハッシュ関数
(ただし、k=1,・・・K)
の値を計算する。ハッシュ関数演算部104は、K個のハッシュ関数hkのハッシュ値からバイナリ変換学習データを求め、
を記憶部120に出力する。
ステップ3(図9のS103):
コスト計算部106は、記憶部118から、距離行列Dを読み出し、記憶部120からバイナリ変換学習データY∈BK×nを読出し、式(8)又は式(17)のコスト関数(目的関数)
を計算し、記憶部122と、コスト比較部108に出力する。
コスト計算部106は、記憶部118から、距離行列Dを読み出し、記憶部120からバイナリ変換学習データY∈BK×nを読出し、式(8)又は式(17)のコスト関数(目的関数)
を計算し、記憶部122と、コスト比較部108に出力する。
ステップ4(図9のS104):
コスト比較部108は、前回のコスト値S(t-1)を記憶部122から読み出し、収束判定パラメータδを記憶部124から読み出し、コスト計算部106からのコスト値S(t)と比較する。すなわち、コスト比較部108は、コスト値S(t)と前回のコスト値S(t-1)に関して収束条件:
が成立するか否か判定する。判定の結果、(18)の収束条件が成立であれば、収束であり、収束条件が不成立であれば、非収束である。
コスト比較部108は、前回のコスト値S(t-1)を記憶部122から読み出し、収束判定パラメータδを記憶部124から読み出し、コスト計算部106からのコスト値S(t)と比較する。すなわち、コスト比較部108は、コスト値S(t)と前回のコスト値S(t-1)に関して収束条件:
が成立するか否か判定する。判定の結果、(18)の収束条件が成立であれば、収束であり、収束条件が不成立であれば、非収束である。
ステップ5(図9のS105):
収束した場合(S104の判定Yes)、係数出力部112はW(t)、α(t)を出力する(コスト関数の最小化終了)。コスト関数の最小化によるハッシュ関数のパラメータの最適値を発見した段階で、ハッシュ関数演算部104は、最適化完了後のパラメータを用いて2値表現のハッシュ値(式(5)の−1と+1の間の連続値の代わりに、式(6)の{−1、+1}の2値表現のハッシュ値)を求め、これが、求めるバイナリデータとなる。
収束した場合(S104の判定Yes)、係数出力部112はW(t)、α(t)を出力する(コスト関数の最小化終了)。コスト関数の最小化によるハッシュ関数のパラメータの最適値を発見した段階で、ハッシュ関数演算部104は、最適化完了後のパラメータを用いて2値表現のハッシュ値(式(5)の−1と+1の間の連続値の代わりに、式(6)の{−1、+1}の2値表現のハッシュ値)を求め、これが、求めるバイナリデータとなる。
ステップ6(図9のS106):
一方、収束条件を満たさない場合(S104の判定No)、更新操作部109は、パラメータβ(t)をβ(t+1)に更新し、ハッシュ関数係数更新部110に、係数(パラメータW、→α)の更新を指示する。ハッシュ関数係数更新部110は、上記した最急降下法等にしたがって、ハッシュ関数のパラメータW(t+1)、α(t+1)を、それぞれ上式(11)、(12)にしたがって計算する。
一方、収束条件を満たさない場合(S104の判定No)、更新操作部109は、パラメータβ(t)をβ(t+1)に更新し、ハッシュ関数係数更新部110に、係数(パラメータW、→α)の更新を指示する。ハッシュ関数係数更新部110は、上記した最急降下法等にしたがって、ハッシュ関数のパラメータW(t+1)、α(t+1)を、それぞれ上式(11)、(12)にしたがって計算する。
ステップ2(図9のS102)に戻り、ハッシュ関数演算部104は、ハッシュ関数係数更新部110で計算したW(t+1)、α(t+1)、更新操作部109により更新されたβ(t+1)を入力し、ハッシュ値を求め、バイナリ変換学習データを、記憶部120に格納する。
上記の通り、本実施形態は、ハッシュ関数のパラメータの学習(最適化)を数式アルゴリズムを用いた明確な手続き(exactな解)として規定している。
本実施形態によれば、ハッシュ関数に非線形のシグモイド関数を用い、さらに元のデータの距離(距離行列)として近傍領域のみ距離を保存する関数型を採択し、距離行列の要素と対応するバイナリ変換データの距離との演算で求められる目的関数(コスト関数)の最適化(最小化)を行うことで、ハッシュ関数のパラメータ(射影ベクトル、閾値(オフセット))の最適化を行い、バイナリ変換データを取得している。
このため、本実施形態によれば、線形部分空間での原点閾値による2値化を行う関連技術の問題点を解消して、精度を向上し、計算量の増大を抑制している。本実施形態によれば、学習型の近似最近傍探索等の任意応用に適用可能である。例えばWebサイトのデータ比較や類似データの抽出、Bigデータに対する大規模データマイニング等にも適用可能であるが、以下では、一実施例として生体認証への適用例を説明する。
このため、本実施形態によれば、線形部分空間での原点閾値による2値化を行う関連技術の問題点を解消して、精度を向上し、計算量の増大を抑制している。本実施形態によれば、学習型の近似最近傍探索等の任意応用に適用可能である。例えばWebサイトのデータ比較や類似データの抽出、Bigデータに対する大規模データマイニング等にも適用可能であるが、以下では、一実施例として生体認証への適用例を説明する。
<実施例1>
図10は、非特許文献5のFigure.2に基づく図である。なお、図10において、生体情報を取得するセンサ(例えば指紋情報を取得するセンサ)、非特許文献5のFigure.2の特徴量の抽出(Feature Extraction)、統計処理(Statistical Analysis)、量子化(Quantization)、選択(select)等は省略されている。テンプレートの登録(enrollment)は、以下のようにして行われる。非特許文献5では、生体情報Zと秘匿情報Sを用いて、生体認証用テンプレートを生成している。図9において、生体情報Zは、特徴量の抽出の結果得られたn個のD次元データポイントを含むデータ集合(X∈RD×n)を、本実施形態により2値化したバイナリコード集合Y∈BK×n)からなる。
図10は、非特許文献5のFigure.2に基づく図である。なお、図10において、生体情報を取得するセンサ(例えば指紋情報を取得するセンサ)、非特許文献5のFigure.2の特徴量の抽出(Feature Extraction)、統計処理(Statistical Analysis)、量子化(Quantization)、選択(select)等は省略されている。テンプレートの登録(enrollment)は、以下のようにして行われる。非特許文献5では、生体情報Zと秘匿情報Sを用いて、生体認証用テンプレートを生成している。図9において、生体情報Zは、特徴量の抽出の結果得られたn個のD次元データポイントを含むデータ集合(X∈RD×n)を、本実施形態により2値化したバイナリコード集合Y∈BK×n)からなる。
(1)ユーザ毎にランダムに生成された秘匿情報Siをエンコーダ(ENC)202に入力して誤り訂正符号化し(Error Correcting Coding:ECC)、符号語Ciを生成する。ECCはパラメータ(K, s, d)の2元BCH符号が用いられる。Kは符号語(code word)の長さ、sは情報シンボル(information symbol)数、dは訂正可能な誤り数である。
(2)符号語Ciと生体情報Ziを排他的論理和206に入力し、
W2i = Ci (+) Zi
を計算する(ただし、(+)はビット毎の排他的論理和演算(bitwise XOR)を表す)。
W2i = Ci (+) Zi
を計算する(ただし、(+)はビット毎の排他的論理和演算(bitwise XOR)を表す)。
(3)秘匿情報Siを、SHA(Secure Hash Algorithm)−1等の暗号学的ハッシュ関数(cryptographic (one-way) hash function)204に入力して、ハッシュ値H(Si)を得る。
(4)W2i及びH(Si)をテンプレート情報としてデータベース(DB)208に格納する。
生体情報Ziは、乱数性(ランダムネス)の高い符号語Ci でマスクされているため、W2iから生体情報は漏洩しない。
上記(1)から(4)によって生成されたテンプレートと、別の生体情報Z'iが同じ人物から採取したものであるか否かの認証(Verification)フェーズは、次のようにして行われる。
(1)Z'iとW2iとを排他的論理和210に入力し、
C'i = W2i (+) Z'i = Ci (+) (Zi (+) Z'i)
を計算する。登録フェーズと認証フェーズの生体情報(例えば指紋等)が同一人物のものであれば、(Zi (+) Z'i)のHamming重みは小さいので、誤り訂正可能である。
C'i = W2i (+) Z'i = Ci (+) (Zi (+) Z'i)
を計算する。登録フェーズと認証フェーズの生体情報(例えば指紋等)が同一人物のものであれば、(Zi (+) Z'i)のHamming重みは小さいので、誤り訂正可能である。
(2)C'iをデコーダ(DEC)212に入力してBCH符号の誤り訂正復号を行い、S'iを計算する。
(3)S'iを、SHA-1等の暗号学的ハッシュ関数214に入力してハッシュ値H(Si')を計算する。
(4)データベース(DB)208からH(Si)を読み出し、判定器216でH(Si) = H(S'i)が成立するかチェックする。H(Si) = H(S'i)が成立する場合には、テンプレートと生体情報Z'iが同じ人物から採取されたものと判断する。H(Si) = H(S'i)が成立しない場合は、異なる人物から採取されたものと判断する。
図10では、生体情報Zの秘匿に用いた乱数(秘匿情報Si)のハッシュ値H(Si)をデータベースに格納することで秘匿している。生体情報Zを、乱数性の高いデータCi(Siを誤り訂正符号化)と排他的論理和をとることで秘匿している。図10の手法は、秘匿(暗号化)されたデータを復号することなく、暗号文が、提示されたデータと一定のハミング距離以内のデータを暗号化したものであるか否かの照合を行う方式と解釈することが可能である。
しかしながら、認証フェーズにおいて、生体情報Z'iそのものが認証を行うサーバに送信される。認証成功時(すなわち、H(Si) = H(S'i)が成立する場合)に、生体情報S'iも(デコーダ212の出力)も漏洩するため、データべースに登録された生体情報Ziが認証サーバに知られてしまう可能性がある。このような問題点を解決する手法を実施例2として説明する。
<実施例2>
図11は、実施例2の構成を説明する図である。登録フェーズでは、秘匿情報Siを誤り訂正符号化するエンコーダ302は、誤り訂正符号として線形符号を用い、ハッシュ関数304は、準同型性を有するハッシュ関数を用いる点が、図10の構成と相違している。これ以外は、図10と同一である。なお、準同型性とは、写像f:G→G’が、∀a,b∈Gに対してf(a・b)=f(a)・f(b)を満たすことをいう。
図11は、実施例2の構成を説明する図である。登録フェーズでは、秘匿情報Siを誤り訂正符号化するエンコーダ302は、誤り訂正符号として線形符号を用い、ハッシュ関数304は、準同型性を有するハッシュ関数を用いる点が、図10の構成と相違している。これ以外は、図10と同一である。なお、準同型性とは、写像f:G→G’が、∀a,b∈Gに対してf(a・b)=f(a)・f(b)を満たすことをいう。
線形符号は、Siを誤り訂正符号化した符号語Ci、S'iを誤り訂正符号化した符号語C'iに関して Ci (+) C'iが、Si (+) S'iを誤り訂正符号化した符号語となるという性質を持った誤り訂正符号を用いる。
また準同型のハッシュ関数は、
Siのハッシュ値H(Si)
S'iのハッシュ値H(S'i)
について、
H(Si)(+) H(S'i)=H(Si (+) S'i)
が成り立つ、すなわち、H(Si)(+) H(S'i)が、Si(+)S'iのハッシュ値となるハッシュ関数である。
Siのハッシュ値H(Si)
S'iのハッシュ値H(S'i)
について、
H(Si)(+) H(S'i)=H(Si (+) S'i)
が成り立つ、すなわち、H(Si)(+) H(S'i)が、Si(+)S'iのハッシュ値となるハッシュ関数である。
図11を参照すると、認証フェーズでは、認証を行う毎に乱数(秘匿情報S'i)を生成し、エンコーダ320で誤り訂正符号化した符号語C'iを、認証対象の生体情報Z'iを排他的論理和318に入力し、
Z'i (+) C'i
を計算する。排他的論理和318の出力(Z'i (+) C'i)とデータベース(DB)308から読み出したW2iを排他的論理和310に入力し、
W2i (+) (Z'i (+) C'i)
=(Z'i (+) Z'i) (+) (Ci (+) C'i)
を計算する。
Z'i (+) C'i
を計算する。排他的論理和318の出力(Z'i (+) C'i)とデータベース(DB)308から読み出したW2iを排他的論理和310に入力し、
W2i (+) (Z'i (+) C'i)
=(Z'i (+) Z'i) (+) (Ci (+) C'i)
を計算する。
排他的論理和310の出力(Z'i (+) Z'i) (+) (Ci (+) C'i)をデコーダ(DEC)312に入力し、誤り訂正復号を行い、S"iを出力する。
秘匿情報S'iを入力する準同型性のハッシュ関数322の出力H(S'i)、デコーダ(DEC)312の出力を入力する準同型性のハッシュ関数314の出力H(S"i)、データベース(DB)308から読み出したH(Si)を判定器316に入力し、
H(Si)=H(S'i) (+) H(S"i)
が成り立つか否か判定する。成り立つ場合、受理、成り立たない場合、拒否する。
H(Si)=H(S'i) (+) H(S"i)
が成り立つか否か判定する。成り立つ場合、受理、成り立たない場合、拒否する。
すなわち、認証が受理される場合、
Si= S'i (+) S"i
となるため、ハッシュ関数の準同型性より、
H(Si)= H(S'i (+) S"i)=H(S'i) (+) H(S"i)
が成り立つ。
Si= S'i (+) S"i
となるため、ハッシュ関数の準同型性より、
H(Si)= H(S'i (+) S"i)=H(S'i) (+) H(S"i)
が成り立つ。
図11の構成の場合、認証フェーズにおいてデータベース308から送出される情報から生体情報を計算することはできず、生体情報Z'iを乱数でマスクした情報が認証サーバに与えられるため、安全性を担保することができる。
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
100 2値化装置
102 距離行列計算部
104 ハッシュ関数演算部
106 コスト計算部
108 コスト比較部
109 更新操作部
110 ハッシュ関数係数更新部
112 係数出力部
114 記憶部(距離パラメータεの記憶部)
116 記憶部(学習データの記憶部)
118 記憶部(距離行列の記憶部)
120 記憶部(バイナリ変換学習データの記憶部)
122 記憶部(コスト値の記憶部)
124 記憶部(収束判定パラメータδの記憶部)
126 記憶部(ハッシュ関数係数W、αの記憶部)
128 記憶部(パラメータβの記憶部)
202、302、320 エンコーダ(ENC)
204、214、304、314、322 ハッシュ関数
206、210、306、310、318 排他的論理和(XOR)
208、308 データベース(DB)
212、312 デコーダ(DEC)
216、316 判定器
102 距離行列計算部
104 ハッシュ関数演算部
106 コスト計算部
108 コスト比較部
109 更新操作部
110 ハッシュ関数係数更新部
112 係数出力部
114 記憶部(距離パラメータεの記憶部)
116 記憶部(学習データの記憶部)
118 記憶部(距離行列の記憶部)
120 記憶部(バイナリ変換学習データの記憶部)
122 記憶部(コスト値の記憶部)
124 記憶部(収束判定パラメータδの記憶部)
126 記憶部(ハッシュ関数係数W、αの記憶部)
128 記憶部(パラメータβの記憶部)
202、302、320 エンコーダ(ENC)
204、214、304、314、322 ハッシュ関数
206、210、306、310、318 排他的論理和(XOR)
208、308 データベース(DB)
212、312 デコーダ(DEC)
216、316 判定器
Claims (25)
- ハッシュ関数のパラメータを最適化するハッシュ関数パラメータ最適化部を備え、
記憶部から予め定められた所定の次元数の空間上のポイントで表される複数のデータの集合を入力し、データポイントの射影ベクトルへの射影に基づき2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換し、
前記ハッシュ関数パラメータ最適化部は、
前記ハッシュ関数として、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして、記憶部に出力するハッシュ関数演算部を備え、
データポイント間の距離として、予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する、ことを特徴とするバイナリデータ変換装置。 - 前記ハッシュ関数演算部では、k番目(k=1、・・・K)の前記連続値関数のハッシュ関数として、シグモイド(sigmoid)関数
(ただし、β(t)は正値の制御パラメータ(tは前記ハッシュ関数パラメータ最適化部でのパラメータ導出の反復回数であり、β(t)は、反復回数が多くなると大となる)、
→wkは射影ベクトル(k=1、・・・K)、
Tは転置、
→xはデータポイント(D次元、ただしDは所定の正整数)、
→wk T→xは前記データポイントの射影ベクトルへの射影、
αkはオフセット)
を用い、前記ハッシュ関数のパラメータ→wkとαkの最適化を行う、ことを特徴とする請求項1記載のバイナリデータ変換装置。 - 前記ハッシュ関数パラメータ最適化部が、
前記データポイント間の距離として、予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が指数関数的に小さくなる距離関数を用いて距離行列を計算する距離行列計算部と、
前記コスト関数を用いてコスト値を計算するコスト計算部と、
前記コスト計算部で今回求めたコスト値と、前記コスト計算部で前回求めたコスト値とを比較し、予め定められた収束条件を満たしているか否か判定するコスト比較部と、
前記収束条件を満たしている場合には、前記ハッシュ関数のパラメータを最適値として出力するパラメータ出力部と、
前記収束条件を満たしていない場合には、前記ハッシュ関数のパラメータを更新して記憶装置に記憶する更新部と、
を備え、
前記収束条件を満たしていない場合、前記ハッシュ関数演算部は、前記更新部で更新された前記ハッシュ関数のパラメータを用いて、前記バイナリ変換学習データを出力し、
前記コスト計算部によるコスト値を計算し、
前記コスト比較部による収束判定が行われる、ことを特徴とする請求項2記載のバイナリデータ変換装置。 - 前記コスト関数の最小値を最急勾配法で求め、前記コスト関数のコスト値が収束条件を満たしていない場合、前記更新部は、前記ハッシュ関数の現在の前記射影ベクトルと、前記オフセットと、前記コスト関数の前記射影ベクトルと前記オフセットによる偏微分パラメータを用いて、前記ハッシュ関数の射影ベクトルとオフセットを更新し、さらに、
前記制御パラメータを更新する、ことを特徴とする請求項3乃至6のいずれか1項に記載のバイナリデータ変換装置。 - 登録フェーズにおいて、生体情報から特徴量抽出したデータ集合に対して、請求項1乃至7のいずれか1項に記載のバイナリデータ変換装置から出力されるバイナリデータ(2値化データ)Zに対して、乱数Sを生成し、
前記乱数Sをエンコーダで誤り訂正符号化した符号語Cと前記バイナリデータZの排他的論理和(Z (+) C)、及び、前記乱数Sを入力とするハッシュ関数の出力H(S)を、データベースへ登録する、生体認証システム。 - 認証フェーズにおいて、前記バイナリデータ変換装置から出力される認証対象のバイナリデータZ’と、前記データベースから読み出した前記(Z (+) C)との排他的論理和をとった値C’をデコーダに入力して誤り訂正復号し、
前記デコーダの出力S'をハッシュ関数に入力し、
前記ハッシュ関数の出力H(S')と、前記データベースに登録されているH(S)とが等しいか否か判定する、請求項8記載の生体認証システム。 - 登録フェーズにおいて、前記エンコーダは誤り訂正符号として線形符号を用い、
前記ハッシュ関数は準同型性を有する、請求項8記載の生体認証システム。 - 認証フェーズでは、認証を行う毎に第2の乱数S'を生成し、
前記第2の乱数S’を、第2のエンコーダで誤り訂正符号化した符号語C’と、前記バイナリデータ変換装置から出力される認証対象のバイナリデータZ’との排他的論理和(C' (+) Z')と、前記データベースから読み出した(Z (+) C)との排他的論理和(Z'i (+) Z'i) (+) (Ci (+) C'i))を第2のデコーダに入力して誤り訂正復号し、
前記第2のデコーダからの出力S”をハッシュ関数に入力して求めたハッシュ値H(S”)と、前記第2の乱数S'をハッシュ関数に入力して求めたハッシュ値H(S')との排他的論理和(値H(S') (+) H(S”))が、前記データベースに登録されたH(S)と等しいか否か判定し、
前記第2のエンコーダ、第2のデコーダは、誤り訂正符号として線形符号を用い、前記ハッシュ関数は準同型性を有する、請求項10記載の生体認証システム。 - ハッシュ関数のパラメータを最適化するパラメータ最適化部と、2値データ変換部と、記憶部と、を備えたコンピュータによるバイナリデータ変換方法であって、
前記2値データ変換部では、前記記憶部から予め定められた所定の次元数の空間上のポイントで表される複数のデータの集合を入力し、データポイントの射影ベクトルへの射影に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化部で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換し、
前記パラメータ最適化部では、
前記ハッシュ関数として、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いて、ハッシュ値を求め、連続値のバイナリ変換学習データとして前記記憶部に出力し、
データポイント間の距離として、予め定められた所定の距離パラメータ以内では、前記データポイント間の距離を保存した値をとり、前記距離パラメータを超えると、値が小さくなる特性の距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離と、に少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の最適化されたパラメータとして導出する、ことを特徴とするバイナリデータ変換方法。 - 前記パラメータ最適化部は、
前記コスト関数の最小化の過程において、
今回求めた前記コスト関数のコスト値と、前回求めた前記コスト関数のコスト値とを比較し、予め定められた収束条件を満たしているか否か判定し、
前記収束条件を満たしている場合、前記ハッシュ関数のパラメータを最適値として出力し、
前記収束条件を満たしていない場合、前記ハッシュ関数のパラメータを更新して前記記憶部に記憶し、前記収束条件を満たしていない場合、前記ハッシュ関数の演算にあたり、前記更新されたハッシュ関数のパラメータにより前記ハッシュ値を求めバイナリデータを出力し、
前記コスト関数のコスト値を計算し、
前記コスト値と、前回求めた前記コスト関数のコスト値とを比較し、これらが予め定められた収束条件を満たしているか否かの収束判定を行う、ことを特徴とする請求項13記載のバイナリデータ変換方法。 - 前記パラメータ最適化部は、
前記コスト関数の最小値を最急勾配法で求め、前記コスト関数のコスト値が収束条件を満たしていない場合、前記ハッシュ関数の現在の前記射影ベクトルと前記オフセットと、前記コスト関数の前記射影ベクトルと前記オフセットによる偏微分パラメータを用いて、前記ハッシュ関数の射影ベクトルとオフセットを更新し、さらに、
前記制御パラメータを更新する、ことを特徴とする請求項13乃至17のいずれか1項に記載のバイナリデータ変換方法。 - ハッシュ関数のパラメータを最適化するパラメータ最適化処理と、
記憶部から予め定められた所定の次元数の空間上のポイントで表される複数のデータの集合を入力し、データポイントの射影ベクトルへの射影に基づき、2値表現に変換するK個(Kは所定の正整数)の各ハッシュ関数として、前記パラメータ最適化処理で最適化されたパラメータのハッシュ関数を用いて、Kビット長の複数個の2値化データに変換する処理を、コンピュータに実行させるプログラムであって、
前記パラメータ最適化処理は、
前記ハッシュ関数として、変数が、前記データポイントの射影ベクトルへの射影を含む連続値関数のハッシュ関数を用いてハッシュ値を求め、連続値のバイナリ変換学習データとして、記憶部に出力する処理と、
データポイント間の距離として、予め定められた所定の距離パラメータ以内では距離を保存するが、前記距離パラメータを超えると、値が小さくなる距離関数を用いて計算される距離と、前記連続値のバイナリ変換学習データの距離とに少なくとも基づき規定されるコスト関数を最小化する前記ハッシュ関数のパラメータを、前記ハッシュ関数の前記最適化されたパラメータとして導出する処理を含む、ことを特徴とするプログラム。 - 前記パラメータ最適化処理が、
今回求めた前記コスト関数のコスト値と、前回求めたコスト関数のコスト値とを比較し、予め定められた収束条件を満たしているか否か判定する処理と、
前記収束条件を満たしている場合、前記ハッシュ関数のパラメータを最適値として出力する処理と、
前記収束条件を満たしていない場合、前記ハッシュ関数のパラメータを更新して記憶装置に記憶する処理と、
を含み、
前記収束条件を満たしていない場合、前記ハッシュ関数の演算にあたり、前記更新されたハッシュ関数のパラメータにより前記ハッシュ値を求めてバイナリデータを出力し、前記コスト値の計算と前記収束判定が行われる、ことを特徴とする請求項20記載のプログラム。 - 前記コスト関数の最小値を最急勾配法で求め、前記コスト関数のコスト値が収束条件を満たしていない場合、
前記ハッシュ関数のパラメータの更新にあたり、前記ハッシュ関数の現在の前記射影ベクトルと前記オフセットと、前記コスト関数の前記射影ベクトルと前記オフセットによる偏微分パラメータを用いて、前記ハッシュ関数の射影ベクトルとオフセットを更新し、
さらに前記制御パラメータを更新する、ことを特徴とする請求項21乃至24のいずれか1項に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012213419 | 2012-09-27 | ||
JP2012213419 | 2012-09-27 | ||
PCT/JP2013/076021 WO2014050952A1 (ja) | 2012-09-27 | 2013-09-26 | バイナリデータ変換方法と装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5930056B2 true JP5930056B2 (ja) | 2016-06-08 |
JPWO2014050952A1 JPWO2014050952A1 (ja) | 2016-08-22 |
Family
ID=50388347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014538582A Active JP5930056B2 (ja) | 2012-09-27 | 2013-09-26 | バイナリデータ変換方法と装置及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9898505B2 (ja) |
EP (1) | EP2902921B1 (ja) |
JP (1) | JP5930056B2 (ja) |
WO (1) | WO2014050952A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150169682A1 (en) * | 2013-10-18 | 2015-06-18 | Google Inc. | Hash Learning |
US9565114B1 (en) * | 2014-03-08 | 2017-02-07 | Google Inc. | Weighted load balancing using scaled parallel hashing |
US9438590B2 (en) * | 2014-05-23 | 2016-09-06 | Fujitsu Limited | Privacy preserving biometric authentication based on error correcting codes |
US9503266B2 (en) * | 2014-05-25 | 2016-11-22 | Fujitsu Limited | Relational encryption |
JP6457648B2 (ja) * | 2015-01-27 | 2019-01-23 | ノキア テクノロジーズ オサケユイチア | 位置特定およびマッピングの方法 |
JP6772737B2 (ja) * | 2016-10-04 | 2020-10-21 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US10873568B2 (en) | 2017-01-20 | 2020-12-22 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US11290252B2 (en) | 2017-01-20 | 2022-03-29 | Enveil, Inc. | Compression and homomorphic encryption in secure query and analytics |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US10771237B2 (en) | 2017-01-20 | 2020-09-08 | Enveil, Inc. | Secure analytics using an encrypted analytics matrix |
US10872087B2 (en) * | 2017-10-13 | 2020-12-22 | Google Llc | Systems and methods for stochastic generative hashing |
CN110390011B (zh) * | 2018-04-12 | 2024-05-24 | 北京京东尚科信息技术有限公司 | 数据分类的方法和装置 |
JP7184078B2 (ja) * | 2018-04-19 | 2022-12-06 | 日本電気株式会社 | ログ分析システム、ログ分析方法及びプログラム |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
US12086223B2 (en) | 2019-02-25 | 2024-09-10 | Nec Corporation | Linear sketch system, apparatus, authentication method, program, and recording medium |
US11797843B2 (en) | 2019-03-06 | 2023-10-24 | Samsung Electronics Co., Ltd. | Hashing-based effective user modeling |
CN111143625B (zh) * | 2019-09-03 | 2023-04-25 | 西北工业大学 | 一种基于半监督多模态哈希编码的跨模态检索方法 |
US11394529B2 (en) * | 2020-01-17 | 2022-07-19 | SK Hynix Inc. | Encoder and decoder using physically unclonable functions |
US10984075B1 (en) * | 2020-07-01 | 2021-04-20 | Sas Institute Inc. | High dimensional to low dimensional data transformation and visualization system |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
CN112241475B (zh) * | 2020-10-16 | 2022-04-26 | 中国海洋大学 | 基于维度分析量化器哈希学习的数据检索方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011109251A2 (en) * | 2010-03-01 | 2011-09-09 | Microsoft Corporation | Semantic object characterization and search |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433920B2 (en) * | 2004-12-07 | 2013-04-30 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for authenticating reliable biometric data |
EP1999565A4 (en) * | 2006-03-03 | 2012-01-11 | Perfect Search Corp | HYPER SPACE INDEX |
JP5193518B2 (ja) | 2007-07-13 | 2013-05-08 | 株式会社東芝 | パターン探索装置及びその方法 |
EP2237183B1 (en) * | 2009-03-31 | 2013-05-15 | Technische Universität München | Method for security purposes |
JP5971722B2 (ja) | 2010-12-10 | 2016-08-17 | 国立大学法人豊橋技術科学大学 | ハッシュ関数の変換行列を定める方法、該ハッシュ関数を利用するハッシュ型近似最近傍探索方法、その装置及びそのコンピュータプログラム |
JP5258915B2 (ja) | 2011-02-28 | 2013-08-07 | 株式会社デンソーアイティーラボラトリ | 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム |
US20150169644A1 (en) * | 2013-01-03 | 2015-06-18 | Google Inc. | Shape-Gain Sketches for Fast Image Similarity Search |
US20150169682A1 (en) * | 2013-10-18 | 2015-06-18 | Google Inc. | Hash Learning |
US10691878B2 (en) * | 2014-02-28 | 2020-06-23 | Ricoh Co., Ltd. | Presenting associations of strokes with content |
-
2013
- 2013-09-26 EP EP13840759.8A patent/EP2902921B1/en active Active
- 2013-09-26 JP JP2014538582A patent/JP5930056B2/ja active Active
- 2013-09-26 US US14/431,824 patent/US9898505B2/en active Active
- 2013-09-26 WO PCT/JP2013/076021 patent/WO2014050952A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011109251A2 (en) * | 2010-03-01 | 2011-09-09 | Microsoft Corporation | Semantic object characterization and search |
Non-Patent Citations (4)
Title |
---|
JPN6013054404; Wei Liu、外4名: 'Supervised Hashing with Kernels' Computer Vision and pattern Recognition(CVPR), 2012 IEEE Conference on [ONLINE] , 20120621, p.2074-2081 * |
JPN6013054406; Brian Kulis、外1名: 'Learning to Hash with Binary Reconstructive Embeddings' Adcances in Neural Information Processing Systems 22 [ONLINE] , 2009, p.1-9 * |
JPN6013054407; Mohammad norouzi、外1名: 'Minimal Loss Hashing for Compact Binary Codes' Proceedings of the 28th International Conference on Machine Learning [ONLINE] , 2011, p.1-8 * |
JPN6013054409; Ruslan Salakhutdinov、外1名: 'Semantic hashing' International Journal of Approximate Reasoning [ONLINE] 第50巻,第7号, 200907, p.969-978 * |
Also Published As
Publication number | Publication date |
---|---|
US9898505B2 (en) | 2018-02-20 |
EP2902921A1 (en) | 2015-08-05 |
WO2014050952A1 (ja) | 2014-04-03 |
EP2902921B1 (en) | 2019-07-24 |
JPWO2014050952A1 (ja) | 2016-08-22 |
US20150248458A1 (en) | 2015-09-03 |
EP2902921A4 (en) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5930056B2 (ja) | バイナリデータ変換方法と装置及びプログラム | |
Wang et al. | A partial Hadamard transform approach to the design of cancelable fingerprint templates containing binary biometric representations | |
Lin et al. | Supervised online hashing via hadamard codebook learning | |
Yang et al. | A Delaunay quadrangle-based fingerprint authentication system with template protection using topology code for local registration and security enhancement | |
Sandhya et al. | Securing fingerprint templates using fused structures | |
Wang et al. | Correntropy matching pursuit with application to robust digit and face recognition | |
Lim et al. | Biometric feature-type transformation: Making templates compatible for secret protection | |
WO2016036995A1 (en) | Encrypting and decrypting information | |
JP5862413B2 (ja) | 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法 | |
WO2014068990A1 (ja) | 関連性判定装置、同上用持続的有形コンピュータ読み取り媒体、及び関連性判定方法 | |
US20190065819A1 (en) | Biological-image processing unit and method and program for processing biological image | |
Schleif et al. | Data analysis of (non-) metric proximities at linear costs | |
Chen et al. | Efficient sparse representation for learning with high-dimensional data | |
Xiao et al. | Dauntless: Data augmentation and uniform transformation for learning with scalability and security | |
JP6259671B2 (ja) | 関連性判定装置、関連性判定プログラム、及び関連性判定方法 | |
US11763136B2 (en) | Neural hashing for similarity search | |
Voloshynovskiy et al. | On accuracy, robustness, and security of bag-of-word search systems | |
Takeuchi et al. | Ensemble Malware Classifier Considering PE Section Information | |
JP5962405B2 (ja) | 認証プログラム、認証方法及び認証装置 | |
Aghazadeh et al. | Rhash: Robust hashing via l∞-norm distortion | |
Tran et al. | Security and privacy enhanced smartphone-based gait authentication with random representation learning and digital lockers | |
Assanovich et al. | Authentication System Based on Biometric Data of Smiling Face from Stacked Autoencoder and Concatenated Reed-Solomon Codes | |
CN112926422B (zh) | 一种基于oph的可撤销二值特征的模板保护方法 | |
Ma et al. | General Constructions of Fuzzy Extractors for Continuous Sources | |
Rafailidis | Supervised hashing based on the dimensions’ value cardinalities of image descriptors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160307 |
|
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: 20160405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5930056 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |