(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム
(51)【国際特許分類】
G06N 3/094 20230101AFI20250121BHJP
G06N 3/082 20230101ALI20250121BHJP
【FI】
G06N3/094
G06N3/082
(21)【出願番号】P 2023523728
(86)(22)【出願日】2021-05-24
(86)【国際出願番号】 JP2021019638
(87)【国際公開番号】W WO2022249246
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】柿崎 和也
(72)【発明者】
【氏名】古川 潤
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2018/0300629(US,A1)
【文献】特開2020-160319(JP,A)
【文献】特開2020-126520(JP,A)
【文献】米国特許出願公開第2020/0234142(US,A1)
【文献】米国特許出願公開第2019/0156183(US,A1)
【文献】Li Wan ほか,"Regularization of Neural Networks using DropConnect",Proceedings of the 30th International Conference on Machine Learning [online],Volume 28,MLResearchPress,2013年,[検索日 2024.07.16], インターネット:<URL:http://proceedings.mlr.press/v28/wan13.pdf>
【文献】Tiange Luo ほか,"RANDOM MASK: Towards Robust Convolutional Neural Networks",arXiv.org [online],arXiv:2007.14249v1,米国,Cornell University,2020年,pp.1-11,[検索日 2024.07.16], インターネット:<URL:https://arxiv.org/abs/2007.14249v1>
【文献】Sahar Abdelnabi ほか,"'What's in the box?!': Deflecting Adversarial Attacks by Randomly Deploying Adversarially-Disjoint Models",arXiv.org [online],arXiv:2102.05104v2,米国,Cornell University,2021年03月,pp.1-13,[検索日 2024.07.16], インターネット:<URL:https://arxiv.org/abs/2102.05104v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークモデルのエッジの刈り取り位置の
複数のパターンを決定する刈り取り位置決定部と、
入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新する更新部と
を備え
、
前記更新部は、前記パターン別に、刈り取り位置に係るエッジの重みをゼロにした前記ニューラルネットワークモデルに対する摂動ベクトルを求め、前記パターン別の前記摂動ベクトルの差異が大きくなるように、前記ニューラルネットワークモデルのパラメータを更新する
学習装置。
【請求項2】
前記出力サンプルは、前記入力サンプルの正解ラベルを表すワンホットベクトルである 請求項1に記載の学習装置。
【請求項3】
前記更新部は、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力され、かつ、前記パターン別の
前記摂動ベクトルの差異が大きくなるように、前記ニューラルネットワークモデルのパラメータを更新する
請求項2に記載の学習装置。
【請求項4】
前記パラメータが更新された前記ニューラルネットワークモデルのうち後段の層を除去した部分モデルを、入力データの特徴量を抽出する特徴量抽出モデルとして出力する出力部
を備える請求項2または請求項3に記載の学習装置。
【請求項5】
コンピュータに、
ニューラルネットワークモデルのエッジの刈り取り位置の
複数のパターンを決定するステップと、
入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップと
を実行させ
、
前記パラメータを更新するステップは、前記パターン別に、刈り取り位置に係るエッジの重みをゼロにした前記ニューラルネットワークモデルに対する摂動ベクトルを求め、前記パターン別の前記摂動ベクトルの差異が大きくなるように、前記ニューラルネットワークモデルのパラメータを更新する
プログラム。
【請求項6】
ニューラルネットワークモデルのエッジの刈り取り位置の
複数のパターンを決定するステップと、
入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップと、
前記パラメータが更新された前記ニューラルネットワークモデルである学習済みモデルを出力するステップと
を備え
、
前記パラメータを更新するステップは、前記パターン別に、刈り取り位置に係るエッジの重みをゼロにした前記ニューラルネットワークモデルに対する摂動ベクトルを求め、前記パターン別の前記摂動ベクトルの差異が大きくなるように、前記ニューラルネットワークモデルのパラメータを更新する
学習済みモデルの生成方法。
【請求項7】
前記学習済みモデルを出力するステップは、前記パラメータが更新された前記ニューラルネットワークモデルのうち後段の層を除去した部分モデルを前記学習済みモデルとして出力する
請求項6に記載の学習済みモデルの生成方法。
【請求項8】
ニューラルネットワークモデルのエッジの刈り取り位置の複数のパターンを決定するステップと、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップと、前記パラメータが更新された前記ニューラルネットワークモデルである学習済みモデルを出力するステップと、を備える学習済みモデルの生成方法で生成された学習済みモデルを取得する学習済みモデル取得部と、
前記学習済みモデルのエッジの刈り取り位置のパターンを
無作為に決定する刈り取り位置決定部と、
前記学習済みモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得る演算部と
を備える演算装置。
【請求項9】
コンピュータに、
ニューラルネットワークモデルのエッジの刈り取り位置の複数のパターンを決定するステップと、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップと、前記パラメータが更新された前記ニューラルネットワークモデルである学習済みモデルを出力するステップと、を備える学習済みモデルの生成方法で生成された学習済みモデルを取得するステップと、
前記学習済みモデルのエッジの刈り取り位置のパターンを
無作為に決定するステップと、
前記学習済みモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得るステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラムに関する。
【背景技術】
【0002】
機械学習において、入力データに所定のノイズを加えることで誤判定を誘発させる敵対的サンプル(Adversarial Examples)という攻撃手法が知られている。この手法は、学習済みモデルの演算の傾向に基づいて、誤判定させる対象となるデータと特徴量が近くなるようにノイズが算出される。複数のニューラルネットワークモデルを用いて敵対的サンプルに対してロバストな予測を行うPEDM(Promoting Ensemble Diversity Method)と呼ばれる技術が知られている(例えば、非特許文献1を参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Tianyu Pang, Taufik Xu, Chao Du, Ning Chen, Jun Zhu. “Improving Adversarial Robustness via Promoting Ensemble Diversity” ICML, 2019
【発明の概要】
【発明が解決しようとする課題】
【0004】
PEDMは、複数のニューラルネットワークモデルを用いるため、使用するニューラルネットワークモデルの数に比例してパラメータ数が増大する。つまり、使用するニューラルネットワークモデルの数に比例して計算に必要な記憶容量が増大する。
本開示の目的の一例は、上述した課題を解決するために、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができる学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0005】
本発明の第1の態様によれば、学習装置は、ニューラルネットワークモデルのエッジの刈り取り位置のパターンを決定する刈り取り位置決定部と、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新する更新部とを備える。
【0006】
本発明の第2の態様によれば、プログラムは、コンピュータに、ニューラルネットワークモデルのエッジの刈り取り位置のパターンを決定するステップ、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップを実行させる。
【0007】
本発明の第3の態様によれば、学習済みモデルの生成方法は、ニューラルネットワークモデルのエッジの刈り取り位置のパターンを決定するステップと、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新するステップと、前記パラメータが更新された前記ニューラルネットワークモデルである学習済みモデルを出力するステップとを備える。
【0008】
本発明の第4の態様によれば、演算装置は、上記態様に係る学習済みモデルの出力方法で生成された学習済みモデルを取得する学習済みモデル取得部と、前記学習済みモデルのエッジの刈り取り位置のパターンを決定する刈り取り位置決定部と、前記学習済みモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得る演算部とを備える。
【0009】
本発明の第5の態様によれば、プログラムは、コンピュータに、上記態様に係る学習済みモデルの出力方法で生成された学習済みモデルを取得するステップと、前記学習済みモデルのエッジの刈り取り位置のパターンを決定するステップと、前記学習済みモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得るステップとを実行させるためのプログラムである。
【0010】
本発明の第6の態様によれば、演算方法は、上記態様に係る学習済みモデルの出力方法で生成された学習済みモデルを取得するステップと、前記学習済みモデルのエッジの刈り取り位置のパターンを決定するステップと、前記学習済みモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得るステップとを備える。
【発明の効果】
【0011】
上記態様のうち少なくとも1つの態様によれば、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施形態に係る認証システムの構成を示す概略ブロック図である。
【
図2】第1の実施形態に係る学習装置によって学習される分類モデルの構成図である。
【
図3】第1の実施形態に係る学習装置による特徴量モデルの学習方法を示すフローチャートである。
【
図4】第1の実施形態に係る認証装置による認証方法を示すフローチャートである。
【
図5】学習装置の基本構成を示す概略ブロック図である。
【
図6】演算装置の基本構成を示す概略ブロック図である。
【
図7】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
〈第1の実施形態〉
《認証システムの構成》
以下、図面を参照しながら実施形態について詳しく説明する。
図1は、第1の実施形態に係る認証システム1の構成を示す概略ブロック図である。
認証システム1は、学習装置10と認証装置20とを備える。
学習装置10は、生体データが入力されると当該生体データの特徴量を出力するように、特徴量抽出モデルのパラメータを学習させる。生体データの例としては、顔画像、静脈画像、指紋データ、音声データなどが挙げられる。特徴量抽出モデルは、ニューラルネットワークなどの機械学習モデルによって表される。
認証装置20は、学習装置10によって学習されたパラメータを有する特徴量抽出モデル(学習済みモデル)を用いて、生体データに基づくユーザの認証を行う。
なお、第1の実施形態に係る認証システム1は、学習装置10と認証装置20とを別個の装置として備えるが、これに限られない。例えば、他の実施形態に係る認証システム1は、認証装置20が学習装置10の機能を有していてもよい。
【0014】
《学習装置10の構成》
図2は、第1の実施形態に係る学習装置10によって学習される分類モデルM0の構成図である。
学習装置10は、分類モデル記憶部11、データセット取得部12、刈り取り位置決定部13、演算部14、摂動生成部15、更新部16、モデル抽出部17、出力部18を備える。
【0015】
分類モデル記憶部11は、ニューラルネットワークによって構成された分類モデルM0を記憶する。分類モデルM0は、
図2に示すように、入力層M01、中間層M02、出力層M03を備える。入力層M01は、入力された生体データをベクトルとして中間層M02に出力する。中間層M02は、2層以上のニューラルネットワークによって構成され、全結合層を1つ以上有する。中間層M02は、CNN(Convolutional Neural Network)によって構成されてもよい。中間層M02は、入力層M01から入力されたベクトルを、低次元の特徴ベクトルに変換し、出力層M03に出力する。特徴ベクトルは特徴量の一例である。出力層M03は、中間層M02から入力された特徴ベクトルから、当該特徴ベクトルが表す人物の事後確率を示すP次元のベクトルに変換する。
【0016】
データセット取得部12は、入力サンプルである生体データと、出力サンプルである人物ラベルとを関連付けた学習用データセットを取得する。人物ラベルは、データセットにおける人物の数をPとした場合に、P次元のワンホットベクトルによって表される。
【0017】
刈り取り位置決定部13は、中間層M02のうち全結合層に係るエッジの刈り取り位置のパターンをランダムに決定する。具体的には、刈り取り位置決定部13は、予め定められた刈り取り率に基づいて、分類モデルM0のエッジをマスクするマスクベクトルを生成する。マスクベクトルは、分類モデルM0のエッジに対応する要素を有するベクトルである。マスクベクトルの全要素のうち刈り取り率相当の要素の値が0であり、他の要素の値が1である。
【0018】
演算部14は、刈り取り位置決定部13が生成したマスクベクトルによって分類モデルM0のエッジをマスクしたテンポラリモデルに入力データを入力することで、出力ベクトルを計算する。
【0019】
摂動生成部15は、テンポラリモデルに基づいて、敵対的サンプルを生成するための摂動ベクトルを演算する。摂動ベクトルは、入力データに加算することでテンポラリモデルが出力するベクトルのうち最も大きい値を有する要素を異ならせるためのベクトルである。摂動ベクトルの生成方法は、例えば参考文献1(Aleksander Madry, Aleksandar Makelov, Ludwig Schmidt, Dimitris Tsipras, Adrian Vladu, “Towards Deep Learning Models Resistant to Adversarial Attacks”, ICLR 2018)に示されるPGD Attack法を用いることができる。
【0020】
更新部16は、データセット取得部12が取得した学習用データセットを用いて、生体データを、刈り取り位置決定部13が生成したマスクベクトルによってエッジをマスクした分類モデルM0に入力したときに、当該生体データに該当する人物の事後確率を示すP次元のベクトルを出力するように、分類モデルM0のパラメータを学習させる。
【0021】
モデル抽出部17は、更新部16によって学習された分類モデルM0のうち入力層M01および中間層M02からなる部分モデルを、特徴量抽出モデルとして抽出する。
出力部18は、モデル抽出部17によって抽出された特徴量抽出モデルを認証装置20に出力する。出力は、ネットワーク等を介した通信によってなされてもよいし、可搬性の記憶装置を介してなされてもよい。
【0022】
《学習方法》
図3は、第1の実施形態に係る学習装置10による特徴量モデルの学習方法を示すフローチャートである。
学習装置10のデータセット取得部12は、図示しないデータベースから予め用意されたデータセットを取得する(ステップS1)。刈り取り位置決定部13は、乱数に基づいてエッジの刈り取り位置を示す複数のマスクベクトルを生成する(ステップS2)。このとき刈り取り位置決定部13は、完全に一致するマスクベクトルの組が生じないように複数のマスクベクトルを生成する。
【0023】
学習装置10は、生成されたマスクベクトルを1つずつ選択し(ステップS3)、選択したマスクベクトルごとに以下のステップS4からステップS7の処理を実行する。演算部14は、分類モデル記憶部11が記憶する分類モデルM0にステップS3で選択したマスクベクトルを適用し、中間層M02の一部のエッジの伝達関数をゼロに置き換えたテンポラリモデルを生成する(ステップS4)。すなわち、演算部14は、中間層M02のエッジの刈り取りを行う。
【0024】
演算部14は、取得したデータセットに含まれる入力サンプルと出力サンプルの組を1つずつ選択し(ステップS5)、選択した組ごとに以下のステップS6からステップS7の処理を実行する。なお、ステップS5からステップS7の処理はバッチ処理として実行されてよい。
【0025】
演算部14は、ステップS4で生成したテンポラリモデルにステップS5で選択した入力サンプルを入力し、出力ベクトルを計算する(ステップS6)。摂動生成部15は、ステップS4で生成したテンポラリモデルとステップS5で選択した入力サンプルとに基づいて、摂動ベクトルを生成する(ステップS7)。
【0026】
更新部16は、複数の入力サンプルおよび複数のテンポラリモデルについて計算された出力ベクトルおよび摂動ベクトルを用いて、以下の式(1)に基づいて損失関数Lを算出する(ステップS8)。
【0027】
【0028】
式(1)において、Dはデータセットの集合を示す。Mkは刈り取り割合kのマスクベクトルの集合を示す。Kは、刈り取り位置決定部13が生成したマスクベクトルの数を示す。θは分類モデルM0を示す。xは入力サンプルを示す。yは出力サンプルを示す。Lnは、以下の式(2)で表される誤差基準関数を示す。Ldは、以下の式(3)で表されるダイバーシティ基準関数を示す。
【0029】
【0030】
式(2)において、f(θ,x)は、モデルθにデータxを入力して得られる出力ベクトルを示す。つまり、第1の実施形態において誤差基準関数Lnは、クロスエントロピー誤差である。
【0031】
【0032】
式(3)において∇f(θ,x)は、モデルθとデータxの組み合わせに対する摂動ベクトルを示す。つまり、第1の実施形態においてダイバーシティ基準関数Ldは、マスク位置を異ならせたテンポラリモデルどうしの摂動ベクトルのコサイン距離の平均値を表す。ダイバーシティ基準関数Ldは、刈り取り位置のパターン別の計算結果の差異が大きくなるように分類モデルM0のパラメータを更新するための評価基準である。計算結果の差異の大きさを表す方法の一例として、計算結果の距離が挙げられる。
【0033】
更新部16は、算出した損失関数Lが小さくなるように、分類モデル記憶部11が記憶する分類モデルM0のパラメータを更新する(ステップS9)。このとき更新部16は、テンポラリモデルではなく分類モデルM0を更新する。これにより、更新部16は、生体データを、テンポラリモデルに入力したときに、当該生体データに該当する人物の事後確率を示すP次元のベクトルを出力するように、分類モデルM0のパラメータを学習させることができる。
【0034】
更新部16は、分類モデルM0のパラメータの更新処理を所定のエポック数だけ実行したか否かを判定する(ステップS10)。分類モデルM0のパラメータの更新処理の実行回数が所定のエポック数未満である場合(ステップS10:NO)、学習装置10は処理をステップS2に戻し、パラメータの更新処理を繰り返す。
【0035】
他方、分類モデルM0のパラメータの更新処理の実行回数が所定のエポック数に至った場合(ステップS10:YES)、モデル抽出部17は、分類モデル記憶部11が記憶する分類モデルM0のうち入力層M01および中間層M02からなる部分モデルを、特徴量抽出モデルとして抽出する(ステップS11)。出力部18は、ステップS11で抽出された特徴量抽出モデルを認証装置20に出力する(ステップS12)。なお、テンポラリモデルは、学習処理が終了するとともに破棄される。
【0036】
《認証装置20の構成》
図1を参照すると、認証装置20は、ユーザデータ記憶部21、モデル取得部22、抽出モデル記憶部23、生体データ取得部24、刈り取り位置決定部25、特徴量抽出部26、類似度算出部27、および認証部28を備える。
【0037】
ユーザデータ記憶部21は、ユーザのアカウントデータと、当該ユーザの生体データとを関連付けて記憶する。
モデル取得部22は、学習装置10から学習済みの特徴量抽出モデルを取得する。
抽出モデル記憶部23は、モデル取得部22が取得した学習済みの特徴量抽出モデルを記憶する。
【0038】
生体データ取得部24は、認証装置20に設けられたセンサ等から認証対象となる生体データを取得する。
刈り取り位置決定部25は、特徴量抽出モデルに係るエッジの刈り取り位置のパターンをランダムに決定する。具体的には、刈り取り位置決定部25は、予め定められた刈り取り率に基づいて、特徴量抽出モデルのエッジをマスクするマスクベクトルを生成する。つまり、刈り取り位置決定部25は刈り取り位置決定部13と同様の処理を行う。なお、刈り取り位置決定部25が用いる刈り取り率は学習装置10の刈り取り位置決定部13が用いる刈り取り率と異なるものであってよい。例えば、刈り取り位置決定部25が用いる刈り取り率は0%であってもよい。
【0039】
特徴量抽出部26は、刈り取り位置決定部13が生成したマスクベクトルによって抽出モデル記憶部23が記憶する特徴量抽出モデルのエッジをマスクしたテンポラリモデルを生成する。特徴量抽出部26は、生成したテンポラリモデルを用いてユーザデータ記憶部21が記憶する生体データおよび生体データ取得部24が取得した生体データから特徴ベクトルを抽出する。
【0040】
類似度算出部27は、2つの特徴ベクトルどうしの類似度を算出する。類似度の尺度の例としては、L2距離、コサイン類似度、PLDA(Probabilistic Linear Discriminant Analysis)などが挙げられる。
【0041】
認証部28は、類似度算出部27が算出した類似度に基づいて、ユーザデータ記憶部21に記憶されたユーザであるか否かの認証を行う。認証部28は、ユーザデータ記憶部21に記憶されたユーザであると判定した場合、当該ユーザのアカウントデータを返す。
【0042】
《認証方法》
図4は、第1の実施形態に係る認証装置20による認証方法を示すフローチャートである。なお、認証方法の実行に先立ってモデル取得部22は、学習装置10から学習済みの特徴量抽出モデルを取得し、抽出モデル記憶部23に記録しているものとする。
【0043】
認証装置20の生体データ取得部24は、認証装置20に接続されたセンサ等から生体データを取得する(ステップS21)。刈り取り位置決定部13は、乱数に基づいてエッジの刈り取り位置を示す1つのマスクベクトルを生成する(ステップS22)。特徴量抽出部26は、抽出モデル記憶部23が記憶する特徴量抽出モデルにマスクベクトルを適用し、一部のエッジの伝達関数をゼロに置き換えたテンポラリモデルを生成する(ステップS23)。
【0044】
特徴量抽出部26は、ステップS21で取得した生体データを、ステップS23で生成したテンポラリモデルに入力することで、特徴ベクトルを算出する(ステップS24)。次に、認証装置20は、ユーザデータ記憶部21が記憶するユーザを1つずつ選択し(ステップS25)、以下に示すステップS26からステップS27を実行する。
【0045】
まず、特徴量抽出部26は、ステップS25で選択されたユーザに関連付けられた生体データを、ステップS23で生成したテンポラリモデルに入力することで、特徴ベクトルを算出する(ステップS26)。次に、類似度算出部27は、ステップS24で算出した特徴ベクトルとステップS26で算出した特徴ベクトルとの類似度を算出する(ステップS27)。
【0046】
認証部28は、ユーザデータ記憶部21が記憶する各ユーザについて、取得された生体データとの類似度を算出すると、算出された類似度のうち、所定の認証閾値を超えるものがあるか否かを判定する(ステップS28)。すべての類似度が認証閾値以下である場合(ステップS28:NO)、認証部28は、ステップS21で取得した生体データによる認証に失敗したと判定し(ステップS29)、処理を終了する。
【0047】
他方、少なくとも1つの類似度が認証閾値を超える場合(ステップS28:YES)、認証部28は、最も高い類似度に係るユーザを特定し(ステップS30)、当該ユーザのアカウントデータを出力する(ステップS31)。なお、テンポラリモデルは、認証処理が終了するとともに破棄される。
【0048】
《作用・効果》
このように、第1の実施形態に係る認証システム1によれば、1つの特徴量抽出モデルをランダムにマスクすることで、特徴量抽出モデルと同様に特徴量を抽出可能な無数のテンポラリモデルを生成することができる。これは、学習装置10が分類モデルM0のエッジのうちランダムに決定された刈り取り位置に係るものを刈り取ったテンポラリモデルに入力サンプルを入力したときに出力サンプルが出力されるように、分類モデルM0のパラメータを更新したことによる。無数に生成可能なテンポラリモデルに対する敵対的サンプルの生成が困難であることから、第1の実施形態に係る認証システム1は敵対的サンプルに対するロバスト性が高いといえる。また、第1の実施形態における無数のテンポラリモデルは、1つの特徴量抽出モデルから生成されることから、認証システム1が保持しておくべきモデルは、1つの特徴量抽出モデルだけであるため、第1の実施形態に係る認証システム1は無数のテンポラリモデルを用いた演算が可能であるにもかかわらず、記憶容量の増大を抑えることができる。
【0049】
《実験例》
発明者は、第1の実施形態に係る手法と、非特許文献1に記載の手法との比較実験を行った。比較実験において、学習用データセットとしてCIFAR10(https://www.cs.toronto.edu/~kriz/cifar.html[2021年5月14日検索])を用いた。また比較実験では、第1の実施形態に係る手法のモデルとしては、分類モデルM0を用いた。第1の実施形態および非特許文献1におけるアンサンブル数Kは3とした。敵対的摂動の生成は、参考文献1のPGD Attack法を用いた。摂動の大きさ(敵対的サンプルの生成元である画像と敵対的サンプルのL∞距離)は0.02とした。また、学習装置10における刈り取り率は20%とし、マスクベクトルの数Kは2とした。認証装置20における刈り取り率は0%とした。
【0050】
その結果、非特許文献1に記載の手法で得られたモデルを用いた場合、正常データ(摂動ベクトルを加算しないデータ)を正しく分類できた割合は95.4%であり、敵対的サンプル(摂動ベクトルを加算しないデータ)を正しく分類できた割合は36.5%であった。
これに対し、第1の実施形態に係る分類モデルM0を用いた場合、正常データを正しく分類できた割合は93.3%であり、敵対的サンプルを正しく分類できた割合は58.7%であった。
【0051】
なお、非特許文献1に記載の手法で得られたモデルのデータサイズは32×P×Kであるのに対し、第1の実施形態に係る分類モデルM0のデータサイズは32×Pである。Pは1つのモデルのパラメータ数を示し、Kはモデル数を示す。これは、1つのパラメータが32 bit floatで表されるためである。
つまり、第1の実施形態に係る分類モデルM0は、非特許文献1に記載の手法と比較してデータサイズをK分の1に抑えられるうえ、非特許文献1に記載の手法と同程度の精度を実現することができる。特に、敵対的サンプルを正しく分類できた割合は、非特許文献1に記載の手法より高かった。
【0052】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
【0053】
上述した実施形態に係る学習装置10および認証装置20は、それぞれ別個のコンピュータによって構成されるが、他の実施形態においては1つのコンピュータで実現されてもよい。
【0054】
上述した実施形態に係る認証装置20は、特徴量抽出モデルによって抽出された特徴量の類似度によって認証処理を行うが、これに限られない。例えば、他の実施形態に係る認証装置20は、分類モデルM0の出力に基づいて認証処理を行ってもよい。また上述した実施形態においては、学習済みモデルを用いた演算装置を生体認証を行う認証装置20に適用したが、これに限られない。例えば、他の実施形態に係る演算装置は、生体データでないデータ、例えば製品の画像などを入力し、正規品であるか否かの判定を行う装置など、生体認証以外の処理を行う者であってもよい。
【0055】
上述した実施形態に係る認証装置20は、特徴量抽出モデルの刈り取りを行った1つのテンポラリモデルに基づいて特徴量を抽出するが、これに限られない。例えば、他の実施形態に係る認証装置20は、1つの特徴量抽出モデルから複数のテンポラリモデルを生成し、複数のテンポラリモデルのアンサンブル処理によって特徴量を抽出してもよい。
【0056】
上述した実施形態に係る学習装置10は、式(3)に示すダイバーシティ基準関数を用いることで、刈り取り位置のパターン別の計算結果の差異が大きくなるように分類モデルM0のパラメータを更新するが、これに限られない。例えば、他の実施形態に係る学習装置10は、例えばテンポラリモデルによる計算結果のうち、正解ラベルをマスクしたベクトル同士の距離が大きくなるような損失関数を用いてもよい。すなわち学習装置10は、摂動ベクトルを計算せずに分類モデルM0のパラメータを更新してもよい。
【0057】
〈基本構成〉
図5は、学習装置010の基本構成を示す概略ブロック図である。
上述した実施形態では、学習装置010の一実施形態として
図1に示す学習装置10について説明したが、学習装置010の基本構成は、
図5に示すとおりである。
すなわち、学習装置010は、刈り取り位置決定部011、および更新部012を基本構成とする。
【0058】
刈り取り位置決定部011は、ニューラルネットワークモデルのエッジの刈り取り位置のパターンを決定する。刈り取り位置決定部011は、刈り取り位置決定部13に相当する。
更新部012は、入力サンプルと出力サンプルの組である学習用データに基づいてニューラルネットワークモデルのパラメータを更新する。具体的には、更新部012は、ニューラルネットワークモデルのエッジのうち刈り取り位置に係るエッジの重みをゼロとしたものに入力サンプルを入力したときに出力サンプルが出力されるように、パラメータを更新する。更新部012は、更新部16に相当する。
【0059】
これにより、学習装置010は、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができることができる。
【0060】
図6は、演算装置020の基本構成を示す概略ブロック図である。
上述した実施形態では、演算装置020の一実施形態として
図1に示す認証装置20について説明したが、演算装置020の基本構成は、
図6に示すとおりである。
すなわち、演算装置020は、学習済みモデル取得部021、刈り取り位置決定部022および演算部023を基本構成とする。
【0061】
学習済みモデル取得部021は、学習装置010によって生成された学習済みモデルを取得する。学習済みモデル取得部021は、モデル取得部22に相当する。
刈り取り位置決定部022は、学習済みモデルのエッジの刈り取り位置のパターンを決定する。刈り取り位置決定部022は、刈り取り位置決定部25に相当する。
演算部023は、学習済みモデルのエッジのうち刈り取り位置に係るエッジの重みをゼロとしたものに入力データを入力することで、出力データを得る。演算部023は、特徴量抽出部26に相当する。
【0062】
これにより、演算装置020は、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができることができる。
【0063】
〈コンピュータ構成〉
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ90は、プロセッサ91、メインメモリ93、ストレージ95、インタフェース97を備える。
上述の学習装置10および認証装置20は、コンピュータ90に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ95に記憶されている。プロセッサ91は、プログラムをストレージ95から読み出してメインメモリ93に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ91は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ93に確保する。プロセッサ91の例としては、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサなどが挙げられる。
【0064】
プログラムは、コンピュータ90に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージに既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータ90は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサ91によって実現される機能の一部または全部が当該集積回路によって実現されてよい。このような集積回路も、プロセッサの一例に含まれる。
【0065】
ストレージ95の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等が挙げられる。ストレージ95は、コンピュータ90のバスに直接接続された内部メディアであってもよいし、インタフェース97または通信回線を介してコンピュータ90に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ90に配信される場合、配信を受けたコンピュータ90が当該プログラムをメインメモリ93に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ95は、一時的でない有形の記憶媒体である。
【0066】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ95に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0067】
1…認証システム 10…学習装置 11…分類モデル記憶部 12…データセット取得部 13…刈り取り位置決定部 14…演算部 15…摂動生成部 16…更新部 17…モデル抽出部 18…出力部 20…認証装置 21…ユーザデータ記憶部 22…モデル取得部 23…抽出モデル記憶部 24…生体データ取得部 25…刈り取り位置決定部 26…特徴量抽出部 27…類似度算出部 28…認証部 90…コンピュータ 91…プロセッサ 93…メインメモリ 95…ストレージ 97…インタフェース