(57)【要約】【課題】ユーザの認証用データを保護しつつ、ユーザ端末からサーバに向けてのユーザ認証を安全に行うことができる認証システムを提供する。【解決手段】認証システムは、ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムであって、端末装置は、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付け、当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換して、当該非線形変換された認証用データを前記サーバに送信し、サーバは、事前学習により生成された第２の機械学習モデルに基づいて上記非線形変換された認証用データを認証処理し、本人か否かを判定する。【選択図】図１
2019139270.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムであって、
前記端末装置は、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付け、当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換して、当該非線形変換された認証用データを前記サーバに送信し、
前記サーバは、事前学習により生成された第２の機械学習モデルに基づいて前記非線形変換された認証用データを認証処理し、本人か否かを判定することを特徴とする認証システム。
【請求項２】
前記第１の機械学習モデルは、多層パーセプトロンであって、層間の重みパラメータはランダムに決定されることを特徴とする請求項１に記載の認証システム。
【請求項３】
前記第２の機械学習モデルは、学習フェーズにおいて、前記重みパラメータで初期化された前記第１の機械学習モデルにより生成された前記非線形変換された認証用データを用いて学習することを特徴とする請求項２に記載の認証システム。
【請求項４】
前記第１の機械学習モデルはユーザ毎に異なり、複数のユーザそれぞれが使用する各端末装置には、各端末装置を使用するユーザに対応する前記第１の機械学習モデルが実装されることを特徴とする請求項１乃至３のいずれかに記載の認証システム。
【請求項５】
前記第２の機械学習モデルはユーザ毎に異なり、複数のユーザそれぞれに対応する前記第２の機械学習モデルが前記サーバに実装されることを特徴とする請求項１乃至４のいずれかに記載の認証システム。
【請求項６】
前記第２の機械学習モデルは、１クラス分類モデル又は２クラス分類モデルであることを特徴とする請求項１乃至５のいずれかに記載の認証システム。
【請求項７】
前記第２の機械学習モデルは、１クラス分類モデル及び２クラス分類モデルであり、当該モデルの両方で本人であると判定された場合に、本人と判定するか否かを判定することを特徴とする請求項１乃至５のいずれかに記載の認証システム。
【請求項８】
前記入力された認証用データは、前記複数種類の認証用データのうち選択された少なくとも２種類の認証用データの組み合わせであることを特徴とする請求項１乃至７のいずれかに記載の認証システム。
【請求項９】
前記入力された認証用データは、前記複数種類の認証用データの各特徴ベクトルの分散値が同一となるように正規化処理されることを特徴とする請求項１乃至８のいずれかに記載の認証システム。
【請求項１０】
前記入力された認証用データは、前記複数種類の認証用データの各特徴ベクトルの次元数が同一となるように次元単一化処理されることを特徴とする請求項１乃至９のいずれかに記載の認証システム。
【請求項１１】
ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムにおける認証方法であって、
前記端末装置が、
複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付けるステップと、
当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換するステップと、
当該非線形変換された認証用データを前記サーバに送信するステップとを実行し、
前記サーバが、
事前学習により生成された第２の機械学習モデルに基づいて前記非線形変換された認証用データを認証処理し、本人か否かを判定するステップを実行することを特徴とする認証方法。
【請求項１２】
ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムにおける認証方法を実行するためのコンピュータプログラムであって、
前記コンピュータプログラムは、
前記端末装置に、
複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付けるステップと、
当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換するステップと、
当該非線形変換された認証用データを前記サーバに送信するステップとを実行させ、
前記サーバに、
事前学習により生成された第２の機械学習モデルに基づいて前記非線形変換された認証用データを認証処理し、本人か否かを判定するステップを実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが使用する端末装置と通信ネットワークを介したサーバとの間でユーザの認証を行う認証システム、認証方法及び当該認証方法をコンピュータに実行させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
インターネットなどの通信ネットワークを介した通信において、ユーザが使用する端末装置と通信ネットワークを介して通信接続するサーバとの間で行われるユーザ認証は、ユーザ識別ＩＤや、ユーザの生体情報などによる認証など既知の手法によって実施されている。そして、なりすまし防止を含むより高いセキュリティを確保し且つより高精度な認証を実現することができるさまざまなユーザ認証技術が多くの研究者によって提案されている（一例として、特許文献１−３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０３８８４５号公報
【特許文献２】特開２０１５−１４８９４０号公報
【特許文献３】特開２０１５−０９５８７７号公報
【非特許文献】
【０００４】
【非特許文献１】B. Schoelkopf, J. C. Platt, J. Shawe-Taylor, A. J. Smola, and R. C. Williamson, “Estimating the support of a high-dimensional distribution,” Neural computation, vol. 13, no. 7, pp. 1443-1471, 2001.
【非特許文献２】G.-B. Huang, Q.-Y. Zhu, and C.-K. Siew, “Extreme learning machine: Theory and applications,”Neurocomputing, vol. 70, no. 1, pp. 489-501, 2006.
【非特許文献３】R. Hanyu, Q. Zhao, and Y. Kaneda, “A new protocol for on-line user identification based on hand-writing characters,”in Computational intelligence (ssci), 2016 ieee symposium series on,2016, pp. 1-7.
【非特許文献４】S. Van Der Walt, S. C. Colbert, and G. Varoquaux, “The numpy array: A structure for efficient numerical computation,” Computing in Science & Engineering, vol. 13, no. 2, pp.22-30, 2011.
【非特許文献５】F. Pedregosa et al., “Scikit-learn: Machine learning in Python,” Journal of Machine Learning Research, vol. 12, pp. 2825-2830, 2011.
【非特許文献６】M. Lichman, “UCI machine learning repository.”University of California, Irvine, School of Information; Computer Sciences, 2013 [Online]. Available: http://archive.ics.uci.edu/ml
【非特許文献７】Mldata.org.” [Online]. Available: http://mldata.org/
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者は、高いセキュリティを確保しつつ高精度な認証処理を実現しうる新規な認証技術の研究を鋭意進め、本願発明に至った。
【０００６】
本発明の目的は、ユーザの認証用データを保護しつつ、ユーザ端末からサーバに向けてのユーザ認証を安全に行うことができる認証システム、認証方法及びそれをコンピュータに実行させるためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明の認証システムは、ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムであって、端末装置は、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付け、当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換して、当該非線形変換された認証用データを前記サーバに送信し、サーバは、事前学習に
より生成された第２の機械学習モデルに基づいて上記非線形変換された認証用データを認証処理し、本人か否かを判定することを特徴とする。
【０００８】
本発明の認証方法は、ユーザが使用する端末装置と該端末装置と通信ネットワークを介して接続するサーバとを有する認証システムにおける認証方法であって、端末装置が、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付けるステップと、当該入力された認証用データを第１の機械学習モデルに基づいて非線形変換するステップと、当該非線形変換された認証用データを前記サーバに送信するステップとを実行し、サーバが、事前学習により生成された第２の機械学習モデルに基づいて前記非線形変換された認証用データを認証処理し、本人か否かを判定するステップを実行することを特徴とする。
【発明の効果】
【０００９】
本発明の認証システム及び認証方法によれば、ユーザ端末からサーバに向けてのユーザ認証を安全に且つ高精度に行うことができる。特に、複数種類の認証用データからユーザが任意に選択した少なくとも一つの認証用データを入力することで、認証用データが第三者に盗まれた場合であっても、元の認証用データの種類を特定することができず、どのような種類の認証用データが入力されたか判断することができない。入力された認証用データを乱数を用いた第１の機械学習モデルにより非線形変換処理してサーバに送信することにより、送信経路で認証用データが第三者に盗まれた場合であっても、元の認証用データを復元して得ることはできず、安全にサーバに送信することができる。第１の機械学習モデルは乱数を用いているので、第１の機械学習モデルが盗まれた場合でも、入力された認証用データ（元の認証用データ）を解読することはできない。さらに、サーバ上に保持される第２の機械学習モデルが盗まれた場合でも、第２の機械学習モデルだけでは、元の認証用データを得ることはできず、安全な認証が担保される。
【図面の簡単な説明】
【００１０】
【図１】本発明の認証システムの概念図である。
【図２】本発明の認証システムを構成する端末装置とサーバのブロック構成図である。
【図３】本発明の認証システムにより実行される登録フェーズにおける処理シーケンス図である。
【図４】本発明の認証システムにより実行される認証フェーズにおける処理シーケンス図である。
【図５】本発明の認証システムの処理をニューラルネットワークで実施する場合の概念図である。
【図６】２段階認証を採用した認証システムにおける認証処理の全体構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【００１２】
図１は、本発明の認証システムの概念図である。図１に示されるユーザ認証処理において、端末装置１０は、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付け、ユーザは、複数種類の認証用データの中から少なくとも１種類の認証用データを選択し、端末装置１０に選択された種類に対応する認証用データx(0)を入力する。複数の認証用データは、一例として、ユーザの音声データ、ユーザの顔画像データ、ユーザの指紋データ、ユーザの手書き文字データなどである。端末装置１０は、入力された認証用データx(0)にゼロ埋め処理などの前処理(次元単一化処理)を行い、前処理後の認証用データx(1)に対して、変換モデルM1により非線形変換処理を行い、その非線形変換された認証用データx(2)をサーバ２０に送信する。サーバ２０は、通信ネットワークを介して受信した非線形変換された認証用データ（変換データと称する場合がある）x(2)を、機械学習により作成された機械学習モデルM2に基づいて認証処理し、本人か否かを判定し、判定結果Yを出力する。
【００１３】
図２は、本発明の認証システムを構成する端末装置とサーバのブロック構成図である。
端末装置１０とサーバ２０は、情報処理装置として基本的に同じ機能を有するコンピュータ装置であって、互いにインターネットなどの通信ネットワークを介して接続される。端末装置１０は、例えば、スマートフォンと呼ばれる携帯電話機、携帯型又は据置型パーソナルコンピュータなど消費者が日常的に使用するコンピュータ装置である。
【００１４】
端末装置１０は、バス１１に接続される構成要素として、演算処理を有する演算処理素子であるCPU１２、本発明の認証処理を実行するためのコンピュータプログラム及び必要なデータを格納する固定記憶素子であるROM１３、演算処理中にデータを保存する一時記憶素子であるRAM１４、キーボード、マイク、タッチパネルなど外部から情報を入力するための入力素子１５、通信ネットワークを含む外部と情報をやりとりするための通信機能を有する通信素子１６を有して構成される。
【００１５】
サーバ２０は、端末装置１０と同様の構成であって、CPU２２、ROM２３、RAM２４、入力素子２５及び通信素子２６などがバス２１に接続されて構成されている。
【００１６】
図３は、本発明の認証システムにより実行される登録フェーズにおける処理シーケンス図であり、図４は、本発明の認証システムにより実行される認証システムにより実行される認証フェーズにおける処理シーケンス図である。認証システムの処理は、ニューラルネットワークを含む機械学習モデルで実装することが可能であり、図５は、本発明の認証システムの処理をニューラルネットワークで実施する場合の概念図である。図５に示す認証処理は、４層のELM（Extreme Learning Machine）（非特許文献２）と捉えることができ、データの非線形変換処理を実行するランダム層である第１層及び第２層は端末装置１０で実行され、認証処理を実行する分類層である第３層及び第４層はサーバ２０で実行される。
【００１７】
図３に示す登録フェーズにおける処理シーケンスについて説明する。端末装置では、以下の処理が行われる。
【００１８】
ユーザが端末装置１０に表示される登録用GUI(Graphic User Interface)の指示に従って登録開始の操作(Ｓ１０２)を行うことにより登録フェーズの処理シーケンスが開始する。ユーザの操作（Ｓ１０２）により、端末装置１０は、サーバ２０に対して登録開始を通知する（Ｓ１０４）。サーバ２０は、これに対して、登録要求を端末装置１０に通知する（Ｓ１０６）。
【００１９】
端末装置１０は、サーバ２０からの登録要求に応じて、変換モデルM1を生成する（Ｓ１０８）。変換モデルM1は、非線形変換のための機械学習モデルであって、例えば、多層パーセプトロン（MLP：Multi Layer Perceptron）であり、n次元データをm次元データに変換する。変換モデルM1に対応する関数f(x)はサーバ２０より事前に端末装置１０に提供される。端末装置１０は、変換モデルM1に対応する関数f(x)をランダムに初期化する。変換モデルM1に対応する関数f(x)が、
f(x)=W2・h(W1・x＋b1)＋b2
で表されるとすると、W1、b1、W2、b2を乱数で初期化する。ここで、h(x)はsigmoid関数などの活性化関数である。W1はNh×Nfの行列、b1はNh次元のベクトル、W2はNo×Nhの行列、b2はNo次元のベクトルである。Nfは入力の特徴ベクトルxの次元数(または、変換モデルM1の入力ニューロン数)、Nhは変換モデルM1の隠れニューロン数、Noは変換モデルM1の出力ニューロン数である。なお、図１との対応においては、Nf=n, No=mとなる。
【００２０】
端末装置１０は、ユーザに対して認証用データの入力を要求し（Ｓ１１０）、複数種類の認証用データの入力を受け付ける（Ｓ１１１）。認証用データの登録は、複数種類の認証用データのうち少なくとも１種類の認証用データが登録されるが、以下の説明では、複数種類の認証データが登録される例について説明する。ユーザは、認証用データの入力要求に対して、複数種類の認証用データを入力する（Ｓ１１２）。認証用データは、例えば、ユーザの手書き文字情報などの非生体情報、ユーザの音声データ、ユーザの顔画像データ、ユーザの指紋データなどの生体情報を含むユーザを識別できるデータであり、ユーザはあらかじめ決められた１種類又は複数種類の認証用データを順次入力する（Ｓ１１２）。
【００２１】
端末装置１０は、複数種類(1,2,…,σ)のユーザの認証用データを収集し、学習データ
2019139270.tif 000003
をつくる。さらに、学習データΩ0のそれぞれのデータセットの特徴ベクトルの次元数を揃えるため、前処理(例:ゼロ埋め)を行い、前処理後の学習データΩ1を生成する。
2019139270.tif 000004
【００２２】
端末装置１０は、学習データΩ1を変換モデルM1を使って変換し、さらに分散が1になるように正規化処理(Regularizerと呼ぶ。この正規化処理は任意である)を行い、
2019139270.tif 000005
を生成する（Ｓ１１４）。変換データΩ2はサーバ２０に送信される（Ｓ１１６）。
【００２３】
サーバ２０は、変換データΩ2を受信すると、変換データΩ2を用いて認証モデルM2を学習させる。すなわち、認証モデルM2を生成し（Ｓ１１８）、サーバ２０に保存する。
【００２４】
認証モデルM2は、パターン識別のための機械学習モデルであって、１クラス分類モデルを採用する場合は、例えば１クラスSVM（Support Vector Machine）（非特許文献１）など、２クラス分類モデルを採用する場合は、例えば、SVM（Support Vector Machine）、多層パーセプトロン（MLP）などを利用することができる。もしくは、１クラス分類モデルと２クラス分類モデルの両方を併用することも可能である。
【００２５】
つづいて、図４に示す認証フェーズにおける処理シーケンスについて説明する。端末装置では、以下の処理が行われる。
【００２６】
ユーザが端末装置１０に表示される認証用GUIの指示に従って認証開始の操作(Ｓ２０２)を行うことにより認証フェーズの処理シーケンスが開始する。ユーザの操作（Ｓ２０２）により、端末装置１０は、サーバ２０に対して認証開始を通知する（Ｓ２０４）。サーバ２０は、これに対して、認証要求を端末装置１０に通知する（Ｓ２０６）。
【００２７】
端末装置１０は、ユーザに対して認証用データの入力を要求し（Ｓ２０８）、複数種類の認証用データのうち選択された種類に対応する認証用データの入力を受け付ける（Ｓ２０９）。ユーザは、認証用データの入力要求に対して、あらかじめ登録されている複数種類の認証用データのうち、ユーザが任意に選択した少なくとも１つのデータ種類（i）の認証用データx(0)を入力する（Ｓ２１０）。
【００２８】
端末装置１０は、入力された認証用データx(0)を変換モデルM1を用いて変換データx(2)に変換する（Ｓ２１２）。具体的には、入力された認証用データx(0)に対して前処理(例：ゼロ埋め)を行い、前処理後の認証用データx(1)を生成する。すなわち、
x(1)=padding(x(0))
である。
【００２９】
端末装置１０は、認証用データx(1)を変換モデルM1を用いて変換を行う。さらに、端
末装置１０は、x(1)のデータ種類iに対応したRegularizer rを用いて、正規化処理を行い(登録フェーズの学習時に正規化処理を行った場合のみ)、変換データx(2)を生成する。すなわち、
x(2)=r(f(x(1)), i)
である。
【００３０】
端末装置１０は、変換データx(2)をサーバ２０に送信する（Ｓ２１４）。端末装置１０とサーバ２０間の通信は、登録フェーズと認証フェーズともに、例えばＨＴＴＰＳなどのセキュアな通信手段を用いることが好ましい。サーバ２０は、変換データx(2)を受信すると、変換データx(2)に対して認証モデルM2を用いて認証処理y=g(x(2))を行い（Ｓ２１６）、認証結果を得る。サーバ２０は認証結果yを、端末装置１０に通知し（Ｓ２１８）、その後の処理を行う。
【００３１】
また、認証モデルM2による認証は、好ましくは、２段階認証を行うことができる。具体的には、登録フェーズにおいて、認証対象ユーザの認証用データのみを用いて学習させることによって生成されたユーザ毎の１クラス分類モデルの認証モデルM2（１クラス）と、認証ユーザと他のユーザの認証用データとを用いて学習させることによって生成された全ユーザ対象の２クラス分類モデルの認証モデルM2(２クラス)を用意し、認証フェーズにおいて、この２つの認証モデルM2（１クラス）、M2（２クラス）ともに真の結果の場合に、ユーザを本人と認証する。これにより、より高精度な認証が実現される。
【００３２】
図６は、２段階認証を採用した認証システムにおける認証処理の全体構成を示すブロック図である。ユーザA〜Zそれぞれについて、ユーザ毎の端末装置１０にそれぞれ異なる変換モデルM1_A〜Zが実装され、選択された認証用データに対応する変換データXi_AA〜ZZに対して、ユーザ毎の１クラス分類モデルの認証モデルM2_A〜Zと、ユーザ全員の２クラス分類モデルの認証モデルM2_ALLとにより認証処理を行い、両方の認証結果y1、y2がともに真であるかどうか判定し、その判定結果を端末装置１０に通知する。
【００３３】
上述した本発明の認証システムの認証処理は、以下の特徴及び利点を有する。
・複数種類の認証用データからユーザが任意に選択した少なくとも一つの認証用データを入力することで、第三者は、入力された元の認証用データの種類を特定することができず、どのような種類の認証用データが入力されたかわからない。
・端末装置１０が保持する変換モデルM1が第三者に盗まれたとしても変換モデルM1は乱数を利用しているため、認証用データを変換した変換データを第三者が取得することはできず、プライバシーの問題は発生しない。
・サーバ２０上の認証モデルM2が第三者に盗まれたとしても、認証モデルM2のみでは、ユーザの認証用データを取得することはできない。
・また、サーバ２０上の認証モデルM2が盗まれたことが発覚した場合は、端末装置１０の変換モデルM1を変更し、学習フェーズをやり直せばよい。
・つまり、変換モデルM1と認証モデルM2が組み合わさって初めて機能するので、どちらか片方だけ流出しただけでは、ユーザのプライバシー問題は起きない。
・認証フェーズにおいて、端末装置１０から送信される変換データx(2)は変換モデルM1を用いて非線形変換されたものなので、第三者、またはサーバ２０もユーザの元の認証用データxを得ることはできない。
・ユーザ端末が保持する変換モデルM1はxのデータの種類i(顔画像、音声、手書き文字…)などに依存しない。したがって、複数種類の認証用データに対して変換モデルM1を共有して使うことができる。
・つまり、１ユーザが複数種類の認証用データを用いて認証処理を行うことができる。複数種類の情報に基づいて認証することにより、認証の信頼性が向上する。
・共有された変換モデルM1によって変換データx(2)が計算されるので、第三者はx(2)のデータの種類iを特定することも困難である。
【００３４】
次に、認証用データの例について説明する。ユーザは、以下に例示する認証用データを一種類または複数種類登録する。
【００３５】
・音声データ
ユーザは、マイクを有する端末装置にユーザの声を入力する。その音声データを用いて認証処理を行う。例として、MFCC特徴量を利用することができる。MFCC（Mel-Frequency Coefficients）は、音声認識で使用される特徴量であり、「どのように声道が変化したか」を数値化したものである。MFCC特徴量の計算手順として、（１）音声信号に時間窓をかけ、離散フーリエ変換を行う、（２）メルフィルタバンクをかけ、対数をとる、（３）離散コサイン変換し、ケプストラムを得る、（４）ケプストラムの低次成分をとる、という手順によりMFCC特徴量を求めることができる。
【００３６】
・手書き文字（文字筆跡）データ
ユーザは、タッチパネルを有する端末装置１０に、漢字やひらがななどの文字を書く。その文字データを用いて認証処理を行うSPPDF特徴量（非特許文献３）を使用することができる。具体的には、文字におけるストロークを方向のデータとしてデータ化する。例えば、文字を構成するストロークを１６方向に分類し、さらに連続する３点の方向の組み合わせの確率分布を特徴とする。この手法によって、２５６次元の特徴をそれぞれの文字から得られる。
【００３７】
・ジェスチャーデータ
ユーザは、加速度センサを有する端末装置１０を持ちながら、ジェスチャー動作を行う。そのジェスチャーデータを用いて認証処理を行う。例として、ユーザは、端末装置１０であるスマートフォンを振り、「３」などの文字を描く。端末装置１０は、その動き（ジェスチャー）を加速度センサで測定し、その特徴量を抽出することでデータ化する。加速度センサの測定グラフを次式
f(x)=a1x0+a2x1+…+anxn-1
のような多項式で近似することで、特徴量はこの多項式の係数として定義することができる。
【００３８】
・顔画像データ
ユーザは、カメラを有する端末装置１０により、自己の顔写真を撮影する。その顔画像データを用いて認証処理を行う。例えば、Haar-like特徴分類器により、顔画像データから顔領域を抽出し、リサイズし、その抽出データをfisherface手法を用いて顔認識させ、特徴量データを得る。
【００３９】
認証用データは上述のものに限られず、上述に加えて、指紋データ、虹彩データなどの他の生体データや英数字・記号によるパスワードなど他の非生体データなど、さまざまな種類の認証用データを採用することができる。
【実施例】
【００４０】
複数の認証用データを使用する本発明の認証システムの認証精度を確認するために、以下の各種実験を行った。実験プログラムはPython3、Numpy（非特許文献４）、Scikit-learn0.19（非特許文献５）で実装した。
【００４１】
（データセット）
本発明は「任意の」情報を認証に使用できるので、認証用データとして、実験ではUCI Machine Learning repository（非特許文献６）、mldata.org（非特許文献７）で公開されている表１に示す２クラス分類データを用いた。
【００４２】
【表１】
2019139270.tif 000006
【００４３】
比較用実験：あらかじめ特定された１種類の認証用データに基づく認証の精度の確認
比較用実験として、あらかじめ特定された１種類の認証用データを使用する場合の認証精度を確認する実験を行った。認証モデルM2はSVMで、scikit-learnで実装されているsklearn.svm.SVCを用いた。カーネル関数にはrbfカーネル、その他のパラメータはデフォルト値を用いた。データセットは、分散が1になるように正規化を行った。
【００４４】
下記の表２は各データごとの５分割交差検定による認証精度の１０回の平均と標準偏差を示している。
【００４５】
【表２】
2019139270.tif 000007
【００４６】
この結果からわかるように、Data3は認証用データとして最もふさわしいものである。本発明の目的は、複数種類の認証用データから任意に選択された少なくとも一つの認証用データを使用する場合に認証精度が保持できるかどうかを確認するものであるので、以下の実験１−６では、３つのデータData1、Data2、Data3の全部を使用することとした。
【００４７】
実験１：変換モデルM1により変換してから認証する
認証用データとしてのデータセットについて、１種類ずつ変換モデルM1で変換し、さらに認証モデルM2で認証する。
・変換モデルM1にランダム３層MLP、M2に１クラスSVMを用いた。１クラスSVMはscikit-learnで実装されているsklearn.svm.OneClassSVMを用いた。
・変換モデルM1の重みパラメータW1、b1、W2、b2は(-1,1)の範囲でランダムに初期化した。
【００４８】
（手順）
各データセット毎に以下のような手順で各データセット毎に識別精度を求めた。
1. データセットを各特徴ベクトルの大きさが1になるように正規化する。
2. データセットをpositiveデータとnegativeデータに分ける。
3. positiveデータを学習用とテスト用に分ける（positiveデータの３割をテストデータに、残りを学習用positiveデータとした）。
4. 学習用positiveデータで学習を行う。
5. negativeデータとテスト用positiveデータを合わせて、テストデータとする。テストデータで識別処理を行い、[正答率]＝[正解データ数]／[テストデータ数]を求める。
6. 以上の処理を１０回行い、１０回の平均の正答率を求める。
7. 以上の処理を各パラメータ(nu, gamma)で行い、最適なパラメータを求める。
・nuは学習データの外れ値の割合を調整するパラメータである。[0.001, 0.005, 0.01,
0.05, 0.1]のそれぞれで試した。
・gammaはrbfカーネルのパラメータである。[2-20, 2-18, 2-16, ...., 20, 22, 24, ....220]のそれぞれで試した。
8.最も高い精度のモデルを用いて、全データの識別テストを行いconfusion matrix(混同行列)を求める。
【００４９】
データセットごとにモデル(M1、M2)を設計し実験を行った。そのため、本実験ではゼロ埋めは行っていない。また、変換モデルM1において、入力層のニューロン数は特徴ベクトルの次元数Nf、隠れ層のニューロン数Nhは100、出力層のニューロン数NoはNfで行った。
【００５０】
（結果）
各パラメータの組み合わせのうち最も精度が高いものを以下の表３に示す。
【００５１】
【表３】
2019139270.tif 000008
【００５２】
各データセットのConfusion matrixを表４に示す。
【００５３】
【表４】
2019139270.tif 000009
【００５４】
なお、Confusion matirxの定義は以下の表５とおりである。
【００５５】
【表５】
2019139270.tif 000010
【００５６】
以上の結果から、１種類のデータセットであっても、少なくともData3は高い認証精度を有することが判明し、適切に認証用データを選べば、本認証システムを用いて高い精度で認証用データを識別できることを確認できた。
【００５７】
実験２：複数の認証用データを同時に使用する
１対の変換モデルM1と認証モデルM2に対し、複数種類のデータセットを組み合わせて用いた場合で実験を行った。
・変換モデルM1にランダム３層MLP、認証モデルM2に１クラスSVMを用いた。１クラスSVMはscikit-learnで実装されているsklearn.svm.OneClassSVMを用いた。
・変換モデルM1の重みパラメータW1、b1、W2、b2は(-1,1)の範囲でランダムに初期化した。
【００５８】
（手順）
データセットの種類がΩ1, Ω2... Ωσとある場合。
1. データセットΩ1, Ω2... Ωσを各特徴ベクトルの大きさが1になるように正規化する。
2. データセットΩ1, Ω2... Ωσをそれぞれpositiveデータとnegativeデータに分ける。
3. Ω1, Ω2... Ωσのpositiveデータをそれぞれ学習用とテスト用に分ける（positiveデータの３割をテストデータに、残りを学習用positiveデータとした）。
4. Ω1, Ω2... Ωσ学習用positiveデータをひとまとめにして学習を行う。
5. Ω1, Ω2... Ωσのそれぞれのnegativeデータと、Ω1, Ω2... Ωσのそれぞれテスト用positiveデータを合わせて、テストデータとする。テストデータで識別処理を行い、[正答率]＝[正解データ数]／[テストデータ数]を求める。
6. 以上の処理を１０回行い、１０回の平均の正答率を求める。
7. 以上の処理を各パラメータ(nu, gamma)で行い、最適なパラメータを求める。
・nuは学習データの外れ値の割合を調整するパラメータである。[0.001, 0.005, 0.01,
0.05, 0.1]のそれぞれで試した。
・gammaはrbfカーネルのパラメータである。[2-20, 2-18, 2-16, ...., 20, 22, 24, ...., 220]のそれぞれで試した。
8. 最も高い精度のモデルを用いて、全データの識別テストを行いconfusion matrix(混同行列)を求める。
【００５９】
なお、本実験ではゼロ埋めは行った。また、モデルM1のニューロン数は入力層、隠れ層、出力層でそれぞれ150, 300, 150で行った。
【００６０】
（結果）
複数種類のデータセットの組み合わせにおいて、各パラメータの組み合わせのうち最も精度が高いものを以下の表６に示す。
【００６１】
【表６】
2019139270.tif 000011
【００６２】
データセットの組み合わせのConfusion matrixを表７に示す。
【００６３】
【表７】
2019139270.tif 000012
【００６４】
以上の結果から、複数種類のデータセットを用いて、１対のM1, M2を用いても高い精度で識別できることが判明し、認証用データとしてのデータセットを適切に選べば、複数種類のデータセットを組み合わせて使用しても、高い精度で識別できることが確認できた。
【００６５】
実験３：FFTを用いた前処理、Regularize（正規化）をする/しない場合
実験２では前処理として、ゼロ埋め（zero-padding）を行ったが、ゼロ埋めは前処理段階で行う場合に限らない。特徴ベクトルの次元数が揃えることが目的なため、フーリエ変換(FFT)を行った上でゼロ埋めを行い、その後に逆フーリエ変換(IFFT)を行い、特徴ベクトルの次元数を揃えることもできる。(zero-padding with FFT)本実験３では、前処理としてゼロ埋めを行う場合（zero-padding）とFFTを行った上でゼロ埋めを行う場合（zero-
padding with FFT）、更に正規化(regularize)をする場合としない場合について、それぞれ組み合わせて性能比較を行った。
【００６６】
（手順）
・変換モデルM1にランダム３層MLP、認証モデルM2に１クラスSVMを用いた。１クラスSVMはscikit-learnで実装されているsklearn.svm.OneClassSVMを用いた。
・M1のW1、b1、W2、b2は(-1, 1)の範囲でランダムに初期化した。
データセットの種類がΩ1, Ω2... Ωσとある場合、
1. データセットΩ1, Ω2... Ωσを各特徴ベクトルの大きさが1になるように正規化する。
2. データセットΩ1, Ω2... Ωσをそれぞれpositiveデータとnegativeデータに分ける。
3. Ω1, Ω2... Ωσのpositiveデータをそれぞれ学習用とテスト用に分ける(３割をテストデータ、７割を学習データにした)。
4. Ω1, Ω2... Ωσ学習用positiveデータをひとまとめにして学習を行う。
5. Ω1, Ω2... Ωσのそれぞれのnegativeデータと、それぞれテスト用positiveデータを合わせて、テストデータとする。テストデータで識別処理を行い、[正答率]＝[正解データ数]／[テストデータ数]を求める。
6. 以上の処理を１０回行い、１０回の平均の正答率を求める。
7. 以上の処理を各パラメータ(nu, gamma)で行い、最適なパラメータを求める。
・nu=[0.001, 0.005, 0.01]
・gamma=[2-20, 2-18, 2-16, …, 20, …, 218, 220]
【００６７】
（結果）
各パラメータの組み合わせのうち、最も高い精度を表８に示す。
・ A: one-class SVM (zero-padding + regularize)
・ B: one-class SVM (zero-padding with FFT + regularize)
・ C: one-class SVM (zero-padding)
・ D: one-class SVM (zero-padding with FFT)
【００６８】
【表８】
2019139270.tif 000013
【００６９】
Data1&Data2の場合はAが最も性能が良く、その他の場合はDが最も性能が良かった。データの組み合わせによって最適なものがあることが推測される。また、正規化(Regularize)が必ずしも必要とは限らないことが判明した。
【００７０】
実験４：他ユーザのデータも学習データに入れる
実験３までは、ユーザのデータをpositive dataとして、そのデータのみで、学習を行ってきた。そのため、認証モデルM2に１クラス分類モデルである１クラスSVMを用いていた。実験４はユーザのデータに加えて他のユーザのデータ(変換モデルM1によって変換され、サーバに送信された他のユーザの変換データ)もnegative dataとして学習に使用する。すなわち、変換モデルM2として２クラス分類モデルであるSVMを用いる。変換モデルM1は、ランダム３層MLPを用い、変換モデルM1の重みパラメータW1、b1、W2、b2は(-1, 1)の範囲でランダムに初期化した。
【００７１】
（手順）
1. データセットを各特徴ベクトルが1になるように正規化する
2. ユーザAのものとして変換モデルM1a、ユーザBのものとして変換モデルM1bを用意する。
3. データセットをゼロ埋めをする。その後、positive data(PD)を変換モデルM1aで、negative data(ND)を変換モデルM1bで写像（変換）し、PD′とND′をつくる。
4. それぞれregularlizer A(Ra), regularlizer B(Rb)を用意して、PD′をRaで正規化し、ND′をRbで正規化してPD″、ND″を生成する(分散を1にする)。
5. PD″とND″を合わせて学習データとして、SVMを学習させる。
6. この手順によって、５分割検定１０回の平均のAccuracyを求めた。
【００７２】
なお、SVMはsklearn.svm.SVCを使用した。kernel関数はrbfカーネル、他パラメータは
デフォルト値である。また、M1a, M1bの入力ニューロン数、隠れニューロン数、出力ニューロン数はそれぞれ150, 200, 150に設定した。
【００７３】
（結果）
各データセットの精度を表９に示す。
・ E: SVM (zero-padding + regularize)
・ F: SVM (zero-padding with FFT + regularize)
・ G: SVM (zero-padding)
・ H: SVM (zero-padding with FFT)
【００７４】
【表９】
2019139270.tif 000014
【００７５】
同じデータでもM1a, M1bによってクラス毎に異なる場所に写像（変換）されるため、非常に高い精度で分類できることが判明した。
【００７６】
実験５：複数種類のデータ
本実験は実験４の場合において、複数種類のデータで変換モデルM1, 認証モデルM2を共有して使ったとしても正しく処理できるかを確認するものである。データセットがΩ1, Ω2... Ωσとあった場合、それぞれのpositive data, negative dataに分割する。各データセットのpositive data を合わせてPD、negative dataを合わせてNDとする。(このとき合わせるためにゼロ埋めを行う)PDをM1aで写像(変換)し、NDをM1bで写像（変換）し、PD′、ND′をつくる。PD′をRaで正規化してPD″、ND′をRbで正規化してND″を生成する。その後PD″、ND″を合わせてSVMに学習させる。
【００７７】
（結果）
各データセットの精度を表１０に示す。
・I: SVM (zero-padding + regularize)
・J: SVM (zero-padding)
【００７８】
【表１０】
2019139270.tif 000015
【００７９】
実験５においても、同じデータでもM1a, M1bによってクラス毎に異なる場所に写像されるため、非常に高い精度で分類できることが明らかとなった。
【００８０】
実験６：Multi class
実験６は、他クラス分類のデータのうち異なるクラスのデータを、異なるユーザの入力と見立てたものである。つまり、異なる複数のユーザが同じ種類のデータを入力して認証を行った際に、それらを正しく処理できるかを確認するための実験である。μクラス分類のデータΩをクラス毎に分割し、D1, D2...Dμとする(つまり、μはユーザの数とも考えられる)。
【００８１】
（手順）
1. M11, M12, …. M1μをランダムに初期化する。
2. D1, D2...Dμにあるデータを大きさ（例えば、ユークリッドノルム）が1になるように正規化する。
3. DiをM1iで変換(RandomizeとReguralize(var=1))を行い、D′iをつくる。(i=1, 2, …μ)。つまり、D′1, D′2 , .. D′μが生成される。
4. D′jをpositive data、それ以外{D′k|k∈{1, 2, ..., μ}∧k≠j} をひとまとめにしてnegative dataとする。
5. positive data, negative dataを用いて５分割交差検定を行いAccuracy求める。
6. 以上の処理を１０回行い、平均のAccuracyを求める。
7. 以上の処理をj=1, 2, ....μ において行う。
【００８２】
なお、変換モデルM1の入力ニューロン数、隠れニューロン数、出力ニューロン数はそれぞれ、1000、15000、1000で行った。
【００８３】
また、上記に加えて、Satimage、Vowelデータセットについては、変換モデルM1を使わない場合との比較も行った。
【００８４】
（M1を使わない場合の手順）
1. D1, D2...Dμにあるデータを大きさが1になるように正規化する。
2. Djをpositive data、それ以外{Dk|k∈{1, 2, ...μ}∧k≠j}をひとまとめにし
てnegative dataとする。
3. positive data, negative dataを用いて５分割交差検定を行いAccuracyを求める。
4. 以上の処理を１０回行い、平均のAccuracyを求める。
5. 以上の処理をj=1, 2, ....μにおいて行う。
【００８５】
Dataset
表１１に他クラス分類のデータセットを示す。これらのデータもUCI Machine Learning
repository（非特許文献６）、mldata.org（非特許文献７）で公開されている。
【００８６】
【表１１】
2019139270.tif 000016
【００８７】
（結果）
各データセットの精度を以下に示す。左の数字はその時のpositive dataの番号である。
【００８８】
Satimage
・Proposed method
0: Accuracy: 1.000
1: Accuracy: 0.999
2: Accuracy: 1.000
3: Accuracy: 1.000
4: Accuracy: 1.000
5: Accuracy: 1.000
・Without M1
0: Accuracy: 0.983
1: Accuracy: 0.986
2: Accuracy: 0.951
3: Accuracy: 0.904
4: Accuracy: 0.892
5: Accuracy: 0.903
Vowel
・Proposed method
0: Accuracy: 1.000
1: Accuracy: 1.000
2: Accuracy: 1.000
3: Accuracy: 1.000
4: Accuracy: 1.000
5: Accuracy: 1.000
6: Accuracy: 1.000
7: Accuracy: 1.000
8: Accuracy: 1.000
9: Accuracy: 1.000
・Without M1
start
0: Accuracy: 0.905
1: Accuracy: 0.900
2: Accuracy: 0.902
3: Accuracy: 0.900
4: Accuracy: 0.900
5: Accuracy: 0.900
6: Accuracy: 0.900
7: Accuracy: 0.900
8: Accuracy: 0.902
9: Accuracy: 0.900
MNIST
0: Accuracy: 1.000
1: Accuracy: 1.000
2: Accuracy: 1.000
3: Accuracy: 1.000
4: Accuracy: 1.000
5: Accuracy: 1.000
6: Accuracy: 1.000
7: Accuracy: 1.000
8: Accuracy: 1.000
9: Accuracy: 1.000
Letter
0: Accuracy: 1.000
1: Accuracy: 1.000
2: Accuracy: 1.000
3: Accuracy: 1.000
4: Accuracy: 1.000
5: Accuracy: 1.000
6: Accuracy: 1.000
7: Accuracy: 1.000
8: Accuracy: 1.000
9: Accuracy: 1.000
10: Accuracy: 1.000
11: Accuracy: 1.000
12: Accuracy: 1.000
13: Accuracy: 1.000
14: Accuracy: 1.000
15: Accuracy: 1.000
16: Accuracy: 1.000
17: Accuracy: 1.000
18: Accuracy: 1.000
19: Accuracy: 1.000
20: Accuracy: 1.000
21: Accuracy: 1.000
22: Accuracy: 1.000
23: Accuracy: 1.000
24: Accuracy: 1.000
25: Accuracy: 1.000
【００８９】
実験６においては、変換モデルM1による変換を行う場合は、ほぼ完全な精度で分類することが明らかとなった。また、変換モデルM1を使った場合の方が精度が高いことが確認された。同じデータセットでもクラス毎に異なる変換モデルM1によって、特徴空間の別の場所に写像（変換）されるため、非常に高い精度で分類できる。
【００９０】
本実施例の実験により、以下の点について確認することができた。
・実験１によって、乱数を用いた非線形写像M1で入力データを変換させたとしても、１クラスSVM(M2)で９割前後の精度で認証処理ができることが確認できた。
・ 実験２によって、１ユーザからの複数の認証用データに対して変換モデルM1,認証モデルM2を共有して処理を行った場合でも、９割以上の精度で認証処理ができることが確認できた。
・実験３によって、実験２と同じ条件でゼロ埋めにフーリエ変換を用いた場合でも、高い精度で動作することがわかった。また、変換モデルM1による変換後の正規化処理については、データの種類によっては行わなくとも精度に大きな差が生じない場合があることが確認できた。データの組み合わせによって、最適なものがあることが確認できた。
・ 実験４によって、他のユーザのデータ(変換モデルM1によって変換され、サーバに送信されたデータ)を用いてSVM(M2)学習させることにより、非常に高い精度で認証処理ができることが確認できた。
・実験５によって、実験４を１ユーザからの複数の認証用データに対して変換モデルM1、認証モデルM2を共有して処理を行った場合でも、非常に高い精度で認証処理ができることが確認できた。
・ 実験６によって、異なる複数のユーザが同じ種類のデータを入力して認証を行った場合(ユーザそれぞれに変換モデルM1がある)も、非常に高い精度で認証処理ができることが確認できた。
【００９１】
以上の実験結果から、本発明の手法は安全に高精度な認証処理を行うことができるものと考えられる。
【符号の説明】
【００９２】
１０：端末装置、１１：バス、１２：ＣＰＵ、１３：ＲＯＭ、１４：ＲＡＭ、１５：入力素子、１６：通信素子、２０：サーバ、２１：バス、２２：ＣＰＵ、２３：ＲＯＭ、２４：ＲＡＭ、２５：入力素子、２６：通信素子
【図１】
2019139270.tif 000017
【図２】
2019139270.tif 000018
【図３】
2019139270.tif 000019
【図４】
2019139270.tif 000020
【図５】
2019139270.tif 000021
【図６】
2019139270.tif 000022