IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7559953学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム
<>
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図1
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図2
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図3A
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図3B
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図4
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図5
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図6
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図7
  • 特許-学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】学習装置、学習済みモデルの生成方法、演算装置、演算方法およびプログラム
(51)【国際特許分類】
   G06N 3/082 20230101AFI20240925BHJP
   G06N 3/0495 20230101ALI20240925BHJP
【FI】
G06N3/082
G06N3/0495
【請求項の数】 10
(21)【出願番号】P 2023534535
(86)(22)【出願日】2021-07-15
(86)【国際出願番号】 JP2021026584
(87)【国際公開番号】W WO2023286232
(87)【国際公開日】2023-01-19
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】柿崎 和也
(72)【発明者】
【氏名】古川 潤
【審査官】大倉 崚吾
(56)【参考文献】
【文献】米国特許出願公開第2018/0046915(US,A1)
【文献】米国特許出願公開第2018/0300629(US,A1)
【文献】中国特許出願公開第111222629(CN,A)
【文献】中国特許出願公開第112488070(CN,A)
【文献】中国特許出願公開第112671746(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定する刈り取り位置決定部であって、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記複数のパターンを決定する刈り取り位置決定部
を備える学習装置。
【請求項2】
前記学習用データに基づいて、前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記ニューラルネットワークモデルのパラメータを更新する更新部
を備え、
前記刈り取り位置決定部は、前記パラメータが更新された前記ニューラルネットワークモデルに基づいて前記複数のパターンを決定する
請求項1に記載の学習装置。
【請求項3】
前記刈り取り位置決定部は、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力され、かつ、前記パターン別の計算結果の差異が大きくなるように、前記複数のパターンを決定する
請求項1または請求項2に記載の学習装置。
【請求項4】
コンピュータに、
ニューラルネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定するステップであって、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記複数のパターンを決定するステップ
を実行させるためのプログラム。
【請求項5】
コンピュータが、ニューラルネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定するステップであって、前記コンピュータが、入力サンプルと出力サンプルの組である学習用データに基づいて、前記ニューラルネットワークモデルのエッジのうち前記刈り取り位置に係るエッジの重みをゼロとしたものに前記入力サンプルを入力したときに前記出力サンプルが出力されるように、前記複数のパターンを決定するステップ
を備える枝刈り位置決定方法。
【請求項6】
学習済みニューラネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定する刈り取り位置決定部と、
前記複数のパターンごとに、前記学習済みニューラネットワークモデルのエッジのうち前記パターンが示す刈り取り位置に係るエッジの重みをゼロとした部分モデルに入力データを入力して得られた各出力データの代表値を演算する演算部と
を備える演算装置。
【請求項7】
前記刈り取り位置決定部は、請求項5に記載の枝刈り位置決定方法によって決定された前記複数のパターンを取得する
請求項6に記載の演算装置。
【請求項8】
前記演算部は、前記学習済みニューラネットワークモデルの後段の層を除去した部分モデルに前記入力データを入力することで、前記出力データとして前記入力データの特徴量を得る
請求項6または請求項7に記載の演算装置。
【請求項9】
コンピュータが、学習済みニューラネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定するステップと、
前記コンピュータが、前記複数のパターンごとに、前記学習済みニューラネットワークモデルのエッジのうち前記パターンが示す刈り取り位置に係るエッジの重みをゼロとした部分モデルに入力データを入力して得られた各出力データの代表値を演算するステップと
を備える演算方法。
【請求項10】
コンピュータに、
学習済みニューラネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定するステップと、
前記複数のパターンごとに、前記学習済みニューラネットワークモデルのエッジのうち前記パターンが示す刈り取り位置に係るエッジの重みをゼロとした部分モデルに入力データを入力して得られた各出力データの代表値を演算するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【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の実施形態に係る学習装置によって学習される分類モデルの構成図である。
図3A】第1の実施形態に係る学習装置による特徴量モデルの学習方法を示すフローチャート(パート1)である。
図3B】第1の実施形態に係る学習装置による特徴量モデルの学習方法を示すフローチャート(パート2)である。
図4】第1の実施形態に係る認証装置による認証方法を示すフローチャートである。
図5】第2の実施形態に係る学習装置による特徴量モデルの学習方法を示すフローチャートである。
図6】学習装置の基本構成を示す概略ブロック図である。
図7】演算装置の基本構成を示す概略ブロック図である。
図8】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
〈第1の実施形態〉
《認証システムの構成》
以下、図面を参照しながら実施形態について詳しく説明する。
図1は、第1の実施形態に係る認証システム1の構成を示す概略ブロック図である。
認証システム1は、学習装置10と認証装置20とを備える。
学習装置10は、生体データが入力されると当該生体データの特徴量を出力するように、特徴量抽出モデルのパラメータを学習させる。生体データの例としては、顔画像、静脈画像、指紋データ、音声データなどが挙げられる。特徴量抽出モデルは、ニューラルネットワークなどの機械学習モデルによって表される。
認証装置20は、学習装置10によって学習されたパラメータを有する特徴量抽出モデル(学習済みモデル)を用いて、生体データに基づくユーザの認証を行う。
なお、第1の実施形態に係る認証システム1は、学習装置10と認証装置20とを別個の装置として備えるが、これに限られない。例えば、他の実施形態に係る認証システム1は、認証装置20が学習装置10の機能を有していてもよい。
【0014】
《学習装置10の構成》
第1の実施形態に係る認証システム1は、分類モデルM0のエッジを異なるパターンで切り取ることで、アンサンブル学習のためのK個の弱学習器を構成する。すなわち、第1の実施形態に係る認証システム1は、分類モデルM0の部分モデルを弱学習器とする。
【0015】
学習装置10は、分類モデル記憶部11、データセット取得部12、刈り取り位置決定部13、演算部14、摂動生成部15、更新部16、モデル抽出部17、出力部18を備える。
【0016】
分類モデル記憶部11は、ニューラルネットワークによって構成された分類モデルM0を記憶する。図2は、第1の実施形態に係る学習装置10によって学習される分類モデルM0の構成図である。分類モデルM0は、図2に示すように、入力層M01、中間層M02、出力層M03を備える。入力層M01は、入力された生体データをベクトルとして中間層M02に出力する。中間層M02は、2層以上のニューラルネットワークによって構成され、全結合層を1つ以上有する。中間層M02は、CNN(Convolutional Neural Network)によって構成されてもよい。中間層M02は、入力層M01から入力されたベクトルを、低次元の特徴ベクトルに変換し、出力層M03に出力する。特徴ベクトルは特徴量の一例である。出力層M03は、中間層M02から入力された特徴ベクトルから、当該特徴ベクトルが表す人物の事後確率を示すP次元のベクトルに変換する。
また、分類モデル記憶部11は、分類モデルM0の各エッジについて、刈り取り位置の決定に用いるスコアを記憶する。スコアの初期値は乱数によって決定される。分類モデル記憶部11は、各エッジについて、アンサンブル数Kだけスコアを記憶する。
【0017】
データセット取得部12は、入力サンプルである生体データと、出力サンプルである人物ラベルとを関連付けた学習用データセットを取得する。人物ラベルは、データセットにおける人物の数をPとした場合に、P次元のワンホットベクトルによって表される。
【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】
刈り取り位置決定部13は、分類モデル記憶部11が記憶する各エッジのスコアに基づいて中間層M02のうち全結合層に係るエッジの刈り取り位置のパターンを決定する。具体的には、刈り取り位置決定部13は、予め定められた刈り取り率に基づいて、分類モデルM0のエッジをマスクするK個のマスクベクトルを生成する。マスクベクトルは、分類モデルM0のエッジに対応する要素を有するベクトルである。マスクベクトルの全要素のうち刈り取り率相当の要素の値が0であり、他の要素の値が1である。
【0021】
更新部16は、データセット取得部12が取得した学習用データセットを用いて、生体データを分類モデルM0に入力したときに、当該生体データに該当する人物の事後確率を示すP次元のベクトルを出力するように、分類モデルM0のパラメータを学習させる。また、更新部16は、分類モデル記憶部11が記憶する各エッジのスコアを更新する。
【0022】
モデル抽出部17は、更新部16によって学習された分類モデルM0のうち入力層M01および中間層M02からなる部分モデルを、特徴量抽出モデルとして抽出する。
出力部18は、モデル抽出部17によって抽出された特徴量抽出モデルと、刈り取り位置決定部13が決定した複数のマスクベクトルとを認証装置20に出力する。出力は、ネットワーク等を介した通信によってなされてもよいし、可搬性の記憶装置を介してなされてもよい。
【0023】
《学習方法》
図3A及び図3Bは、第1の実施形態に係る学習装置10による特徴量モデルの学習方法を示すフローチャートである。
学習装置10のデータセット取得部12は、図示しないデータベースから予め用意されたデータセットを取得する(ステップS1)。刈り取り位置決定部13は、乱数に基づいてエッジの刈り取り位置を決定するためのスコアsijの初期値を生成し、分類モデル記憶部11に記録する(ステップS2)。ここで、スコアの添え字であるiは弱学習器の番号を示し、jはエッジの番号を示す。つまり、iはアンサンブル数K以下の自然数であり、jはエッジの総数N以下の自然数である。
【0024】
演算部14は、ステップS1で取得したデータセットに含まれる入力サンプルと出力サンプルの組を1つずつ選択し(ステップS3)、選択した組ごとに以下のステップS4の処理を実行する。
【0025】
演算部14は、分類モデルM0にステップS3で選択した入力サンプルを入力し、出力ベクトルを計算する(ステップS4)。
【0026】
更新部16は、複数の入力サンプルおよび複数の弱学習器について計算された出力ベクトルを用いて、以下の式(1)に基づいて第1損失関数Lを算出する(ステップS5)。
【0027】
【数1】
【0028】
式(1)において、Dはデータセットの集合を示す。θは分類モデルM0を示す。xは入力サンプルを示す。yは出力サンプルを示す。f(θ,x)は、モデルθにデータxを入力して得られる出力ベクトルを示す。つまり、第1の実施形態において第1損失関数Lは、クロスエントロピー誤差である。
【0029】
更新部16は、算出した第1損失関数Lが小さくなるように、分類モデル記憶部11が記憶する分類モデルM0のパラメータを更新する(ステップS6)。これにより、更新部16は、生体データを分類モデルM0に入力したときに、当該生体データに該当する人物の事後確率を示すP次元のベクトルを出力するように、分類モデルM0のパラメータを学習させることができる。
【0030】
更新部16は、分類モデルM0のパラメータの更新処理を所定の第1エポック数だけ実行したか否かを判定する(ステップS7)。分類モデルM0のパラメータの更新処理の実行回数が第1エポック数未満である場合(ステップS7:NO)、学習装置10は処理をステップS3に戻し、パラメータの更新処理を繰り返す。
【0031】
他方、分類モデルM0のパラメータの更新処理の実行回数が第1エポック数に至った場合(ステップS7:YES)、刈り取り位置決定部13は、スコアの上位k%の要素を1とし、残りの要素を0とするK個のマスクベクトルを生成する(ステップS8)。すなわち、刈り取り位置決定部13は、各エッジのi番目のスコアsi0-siNの値を抽出し、そのうち上位k%の要素を1とし、残りの要素を0とするマスクベクトルを、i番目の弱学習器を生成するためのマスクベクトルとして生成する。
【0032】
学習装置10は、生成されたマスクベクトルを1つずつ選択し(ステップS9)、選択したマスクベクトルごとに以下のステップS10からステップS13の処理を実行する。演算部14は、ステップS3からステップS7の処理によって学習された分類モデルM0にステップS9で選択したマスクベクトルを適用し、中間層M02の一部のエッジの伝達関数をゼロに置き換えた弱学習器を生成する(ステップS10)。すなわち、演算部14は、中間層M02のエッジの刈り取りを行う。
【0033】
演算部14は、取得したデータセットに含まれる入力サンプルと出力サンプルの組を1つずつ選択し(ステップS11)、選択した組ごとに以下のステップS12からステップS13の処理を実行する。なお、ステップS11からステップS13の処理はバッチ処理として実行されてよい。
【0034】
演算部14は、ステップS10で生成した弱学習器にステップS11で選択した入力サンプルを入力し、出力ベクトルを計算する(ステップS12)。摂動生成部15は、ステップS12で生成した弱学習器とステップS11で選択した入力サンプルとに基づいて、摂動ベクトルを生成する(ステップS13)。
【0035】
更新部16は、複数の入力サンプルおよび複数の弱学習器について計算された出力ベクトルおよび摂動ベクトルを用いて、以下の式(2)に基づいて第2損失関数Lを算出する(ステップS14)。
【0036】
【数2】
【0037】
式(2)において、Mは刈り取り割合kのマスクベクトルの集合を示す。Lは、以下の式(2)で表される誤差基準関数を示す。Lは、以下の式(3)で表されるダイバーシティ基準関数を示す。
【0038】
【数3】
【0039】
【数4】
【0040】
式(4)においてθ,…θは、弱学習器を示す。∇f(θ,x)は、モデルθとデータxの組み合わせに対する摂動ベクトルを示す。つまり、第1の実施形態においてダイバーシティ基準関数Lは、弱学習器どうしの摂動ベクトルのコサイン距離の平均値を表す。ダイバーシティ基準関数Lは、刈り取り位置のパターン別の計算結果の差異が大きくなるように各エッジのスコアを更新するための評価基準である。計算結果の差異の大きさを表す方法の一例として、計算結果の距離が挙げられる。
【0041】
更新部16は、各弱学習器について、第2損失関数Lの傾きが負の傾きとなるエッジに係るスコアを加算し、第2損失関数Lの傾きが正の傾きとなるエッジに係るスコアを減算することで、スコアを更新する(ステップS15)。これにより、第2損失関数Lを小さくするエッジに係るスコアが高くなる。スコアの更新は、例えば参考文献2(Vivek Ramanujan, Mitchell Wortsman, Aniruddha Kembhavi, Ali Farhadi, Mohammad Rastegari, “What’s Hidden in a Randomly Weighted Neural Network?”, CVPR 2020)に記載のedge-popupアルゴリズムに基づいて行うことができる。
【0042】
更新部16は、スコアの更新処理を所定の第2エポック数だけ実行したか否かを判定する(ステップS16)。スコアの更新処理の実行回数が第2エポック数未満である場合(ステップS16:NO)、学習装置10は処理をステップS8に戻し、マスクベクトルの生成およびスコアの更新処理を繰り返す。
【0043】
他方、スコアの更新処理の実行回数が第2エポック数に至った場合(ステップS16:YES)、モデル抽出部17は、分類モデル記憶部11が記憶する分類モデルM0のうち入力層M01および中間層M02からなる部分モデルを、特徴量抽出モデルとして抽出する(ステップS17)。刈り取り位置決定部13は、分類モデル記憶部11が記憶するスコアの上位k%の要素を1とし、残りの要素を0とするK個のマスクベクトルを生成する(ステップS18)。出力部18は、ステップS17で抽出された特徴量抽出モデルとステップS18で生成されたマスクベクトルとを認証装置20に出力する(ステップS19)。なお、弱学習器は、学習処理が終了するとともに破棄される。
【0044】
《認証装置20の構成》
図1を参照すると、認証装置20は、ユーザデータ記憶部21、モデル取得部22、抽出モデル記憶部23、生体データ取得部24、弱学習器生成部25、特徴量抽出部26、類似度算出部27、および認証部28を備える。
【0045】
ユーザデータ記憶部21は、ユーザのアカウントデータと、当該ユーザの生体データとを関連付けて記憶する。
モデル取得部22は、学習装置10から学習済みの特徴量抽出モデルおよびK個のマスクベクトルを取得する。
抽出モデル記憶部23は、モデル取得部22が取得した学習済みの特徴量抽出モデルおよびK個のマスクベクトルを記憶する。
【0046】
生体データ取得部24は、認証装置20に設けられたセンサ等から認証対象となる生体データを取得する。
弱学習器生成部25は、抽出モデル記憶部23が記憶するマスクベクトルによって特徴量抽出モデルのエッジをマスクしたK個の弱学習器を生成する。つまり、弱学習器生成部25は、特徴量抽出モデルのエッジのうち刈り取り位置を決定する刈り取り位置決定部の一例である。
【0047】
特徴量抽出部26は、生成した各弱学習器を用いてユーザデータ記憶部21が記憶する生体データおよび生体データ取得部24が取得した生体データからサブ特徴ベクトルを抽出する。特徴量抽出部26は、各弱学習器から得られたサブ特徴ベクトルの要素平均を求めることで特徴ベクトルを得る。
【0048】
類似度算出部27は、2つの特徴ベクトルどうしの類似度を算出する。類似度の尺度の例としては、L2距離、コサイン類似度、PLDA(Probabilistic Linear Discriminant Analysis)などが挙げられる。
【0049】
認証部28は、類似度算出部27が算出した類似度に基づいて、ユーザデータ記憶部21に記憶されたユーザであるか否かの認証を行う。認証部28は、ユーザデータ記憶部21に記憶されたユーザであると判定した場合、当該ユーザのアカウントデータを返す。
【0050】
《認証方法》
図4は、第1の実施形態に係る認証装置20による認証方法を示すフローチャートである。なお、認証方法の実行に先立ってモデル取得部22は、学習装置10から学習済みの特徴量抽出モデルおよびK個のマスクベクトルを取得し、抽出モデル記憶部23に記録しているものとする。
【0051】
認証装置20の生体データ取得部24は、認証装置20に接続されたセンサ等から生体データを取得する(ステップS21)。弱学習器生成部25は、抽出モデル記憶部23が記憶する特徴量抽出モデルにK個のマスクベクトルをそれぞれ適用し、一部のエッジの伝達関数をゼロに置き換えたK個の弱学習器を生成する(ステップS22)。
【0052】
特徴量抽出部26は、ステップS21で取得した生体データを、ステップS22で生成したK個の弱学習器に入力することで、K個のサブ特徴ベクトルを算出する(ステップS23)。特徴量抽出部26は、K個のサブ特徴ベクトルの要素平均を求めることで、特徴ベクトルを算出する(ステップS24)。
【0053】
次に、認証装置20は、ユーザデータ記憶部21が記憶するユーザを1つずつ選択し(ステップS25)、以下に示すステップS26からステップS28を実行する。
【0054】
まず、特徴量抽出部26は、ステップS25で選択されたユーザに関連付けられた生体データを、ステップS23で生成したK個の弱学習器に入力することで、K個のサブ特徴ベクトルを算出する(ステップS26)。特徴量抽出部26は、K個のサブ特徴ベクトルの要素平均を求めることで、特徴ベクトルを算出すfる(ステップS27)。次に、類似度算出部27は、ステップS24で算出した特徴ベクトルとステップS27で算出した特徴ベクトルとの類似度を算出する(ステップS28)。
【0055】
認証部28は、ユーザデータ記憶部21が記憶する各ユーザについて、取得された生体データとの類似度を算出すると、算出された類似度のうち、所定の認証閾値を超えるものがあるか否かを判定する(ステップS29)。すべての類似度が認証閾値以下である場合(ステップS29:NO)、認証部28は、ステップS21で取得した生体データによる認証に失敗したと判定し(ステップS30)、処理を終了する。
【0056】
他方、少なくとも1つの類似度が認証閾値を超える場合(ステップS29:YES)、認証部28は、最も高い類似度に係るユーザを特定し(ステップS31)、当該ユーザのアカウントデータを出力する(ステップS32)。なお、弱学習器は、認証処理が終了するとともに破棄される。
【0057】
《作用・効果》
このように、第1の実施形態に係る認証システム1によれば、1つの特徴量抽出モデルを異なる位置でマスクすることで、特徴量抽出モデルと同様に特徴量を抽出可能な複数の弱学習器を生成することができる。これは、学習装置10が分類モデルM0の一部のエッジを刈り取った弱学習器に入力サンプルを入力したときに出力サンプルが出力されるように、分類モデルM0のパラメータを更新したことによる。K個の弱学習器のアンサンブル演算によって特徴量を抽出することができることから、第1の実施形態に係る認証システム1は敵対的サンプルに対するロバスト性が高いといえる。また、第1の実施形態におけるK個の弱学習器は、1つの特徴量抽出モデルから生成されることから、認証システム1が保持しておくべきモデルは、1つの特徴量抽出モデルだけであるため、第1の実施形態に係る認証システム1はK個の弱学習器を用いたアンサンブル演算が可能であるにもかかわらず、記憶容量の増大を抑えることができる。
【0058】
なお、アンサンブル学習によって敵対的サンプルに対するロバスト性を高める非特許文献1に記載の手法で得られるモデルのデータサイズは32×P×Kである。これに対し、第1の実施形態に係る分類モデルM0のデータサイズは32×Pである。Pは1つのモデルのパラメータ数を示し、Kはモデル数を示す。これは、1つのパラメータが32 bit floatで表されるためである。つまり、第1の実施形態に係る分類モデルM0は、非特許文献1に記載の手法と比較してデータサイズをK分の1に抑えられる。
【0059】
〈第2の実施形態〉
第1の実施形態に係る認証システム1は、予め分類モデルM0のパラメータを学習し、その後スコアを学習することで、マスクベクトルを生成する。これに対し、第2の実施形態に係る認証システムは、分類モデルM0のパラメータとスコアとを並行して学習する。
【0060】
《学習方法》
図5は、第2の実施形態に係る学習装置10による特徴量モデルの学習方法を示すフローチャートである。
学習装置10のデータセット取得部12は、図示しないデータベースから予め用意されたデータセットを取得する(ステップS41)。刈り取り位置決定部13は、乱数に基づいてエッジの刈り取り位置を決定するためのスコアsijの初期値を生成し、分類モデル記憶部11に記録する(ステップS42)。次に、刈り取り位置決定部13は、スコアの上位k%の要素を1とし、残りの要素を0とするK個のマスクベクトルを生成する(ステップS43)。
【0061】
学習装置10は、生成されたマスクベクトルを1つずつ選択し(ステップS44)、選択したマスクベクトルごとに以下のステップS45からステップS48の処理を実行する。演算部14は、分類モデル記憶部11が記憶する分類モデルM0にステップS44で選択したマスクベクトルを適用し、中間層M02の一部のエッジの伝達関数をゼロに置き換えた弱学習器を生成する(ステップS45)。
【0062】
演算部14は、取得したデータセットに含まれる入力サンプルと出力サンプルの組を1つずつ選択し(ステップS46)、選択した組ごとに以下のステップS47からステップS48の処理を実行する。なお、ステップS46からステップS48の処理はバッチ処理として実行されてよい。
【0063】
演算部14は、ステップS45で生成した弱学習器にステップS46で選択した入力サンプルを入力し、出力ベクトルを計算する(ステップS47)。摂動生成部15は、ステップS45で生成した弱学習器とステップS46で選択した入力サンプルとに基づいて、摂動ベクトルを生成する(ステップS48)。
【0064】
更新部16は、複数の入力サンプルおよび複数の弱学習器について計算された出力ベクトルおよび摂動ベクトルを用いて、以下の式(5)に基づいて第3損失関数Lを算出する(ステップS49)。なお、式(5)におけるLは、第1の実施形態の式(3)で表される誤差基準関数を示す。Lは、第1の実施形態の式(4)で表されるダイバーシティ基準関数を示す。
【0065】
【数5】
【0066】
更新部16は、算出した損失関数Lが小さくなるように、分類モデル記憶部11が記憶する分類モデルM0のパラメータを更新する(ステップS50)。このとき更新部16は、弱学習器ではなく分類モデルM0を更新する。これにより、更新部16は、生体データを、弱学習器に入力したときに、当該生体データに該当する人物の事後確率を示すP次元のベクトルを出力するように、分類モデルM0のパラメータを学習させることができる。
【0067】
また、更新部16は、各弱学習器について、損失関数の傾きが負の傾きとなるエッジに係るスコアを加算し、損失関数の傾きが正の傾きとなるエッジに係るスコアを減算することで、スコアを更新する(ステップS51)。これにより、損失関数を小さくするエッジに係るスコアが高くなる。
【0068】
更新部16は、分類モデルM0のパラメータの更新処理を所定のエポック数だけ実行したか否かを判定する(ステップS52)。分類モデルM0のパラメータの更新処理の実行回数が所定のエポック数未満である場合(ステップS52:NO)、学習装置10は処理をステップS43に戻し、マスクベクトルの生成およびパラメータの更新処理を繰り返す。
【0069】
他方、分類モデルM0のパラメータの更新処理の実行回数が所定のエポック数に至った場合(ステップS52:YES)、モデル抽出部17は、分類モデル記憶部11が記憶する分類モデルM0のうち入力層M01および中間層M02からなる部分モデルを、特徴量抽出モデルとして抽出する(ステップS53)。刈り取り位置決定部13は、分類モデル記憶部11が記憶するスコアの上位k%の要素を1とし、残りの要素を0とするK個のマスクベクトルを生成する(ステップS54)。出力部18は、ステップS53で抽出された特徴量抽出モデルとステップS54で生成されたマスクベクトルとを認証装置20に出力する(ステップS55)。なお、弱学習器は、学習処理が終了するとともに破棄される。
【0070】
《認証方法》
第2の実施形態に係る認証装置20による認証方法は、第1の実施形態と同様である。
【0071】
《作用・効果》
このように、第2の実施形態に係る認証システム1によれば、第1の実施形態と同様に、1つの特徴量抽出モデルを異なる位置でマスクすることで、特徴量抽出モデルと同様に特徴量を抽出可能な複数の弱学習器を生成することができる。
【0072】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
【0073】
上述した実施形態に係る学習装置10および認証装置20は、それぞれ別個のコンピュータによって構成されるが、他の実施形態においては1つのコンピュータで実現されてもよい。
【0074】
上述した実施形態に係る認証装置20は、特徴量抽出モデルによって抽出された特徴量の類似度によって認証処理を行うが、これに限られない。例えば、他の実施形態に係る認証装置20は、分類モデルM0の出力に基づいて認証処理を行ってもよい。また上述した実施形態においては、学習済みモデルを用いた演算装置を生体認証を行う認証装置20に適用したが、これに限られない。例えば、他の実施形態に係る演算装置は、生体データでないデータ、例えば製品の画像などを入力し、正規品であるか否かの判定を行う装置など、生体認証以外の処理を行う者であってもよい。
【0075】
上述した実施形態に係る学習装置10は、分類モデルM0のパラメータの更新と、刈り取り位置の決定とを行うが、これに限られない。例えば、他の実施形態に係る学習装置10は、分類モデルM0の学習処理を行わず、既存の学習済みの分類モデルM0について刈り取り位置を決定してもよい。
【0076】
また、上述した実施形態に係る学習装置10は、スコアに基づいて刈り取り位置を決定するが、これに限られない。例えば、他の実施形態に係る学習装置10は、刈り取り率k%のマスクベクトルの集合からランダムにマスクベクトルを選択し、式(2)に示す誤差関数が小さくなる組み合わせを探索することで、K個のマスクベクトルを決定してもよい。
【0077】
上述した実施形態に係る学習装置10は、式(4)に示すダイバーシティ基準関数を用いることで、刈り取り位置のパターン別の計算結果の差異が大きくなるように分類モデルM0のパラメータを更新するが、これに限られない。例えば、他の実施形態に係る学習装置10は、例えば弱学習器による計算結果のうち、正解ラベルをマスクしたベクトル同士の距離が大きくなるような損失関数を用いてもよい。すなわち学習装置10は、摂動ベクトルを計算せずに分類モデルM0のパラメータを更新してもよい。
【0078】
上述した実施形態に係る認証装置20は、学習装置10が生成したK個のマスクベクトルを用いてアンサンブル演算を行うが、これに限られない。例えば、他の実施形態に係る認証装置20は、任意に決定したK個のマスクベクトルを用いてアンサンブル演算を行ってもよい。
【0079】
〈基本構成〉
図6は、学習装置010の基本構成を示す概略ブロック図である。
上述した実施形態では、学習装置010の一実施形態として図1に示す学習装置10について説明したが、学習装置010の基本構成は、図6に示すとおりである。
すなわち、学習装置010は、刈り取り位置決定部011を基本構成とする。
【0080】
刈り取り位置決定部011は、ニューラルネットワークモデルのエッジの刈り取り位置に係る複数のパターンを決定する。刈り取り位置決定部011は、入力サンプルと出力サンプルの組である学習用データに基づいて、ニューラルネットワークモデルのエッジのうち刈り取り位置に係るエッジの重みをゼロとしたものに入力サンプルを入力したときに出力サンプルが出力されるように、複数のパターンを決定する。刈り取り位置決定部011は、刈り取り位置決定部13に相当する。
【0081】
これにより、学習装置010は、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができることができる。
【0082】
図7は、演算装置020の基本構成を示す概略ブロック図である。
上述した実施形態では、演算装置020の一実施形態として図1に示す認証装置20について説明したが、演算装置020の基本構成は、図7に示すとおりである。
すなわち、演算装置020は、刈り取り位置決定部021および演算部022を基本構成とする。
【0083】
刈り取り位置決定部021は、学習済みモデルのエッジの刈り取り位置の複数のパターンを決定する。刈り取り位置決定部021は、弱学習器生成部25に相当する。
演算部022は、複数のパターンごとに、学習済みニューラネットワークモデルのエッジのうち各パターンが示す刈り取り位置に係るエッジの重みをゼロとした部分モデルに入力データを入力して得られた各出力データの代表値を演算する。演算部022は、特徴量抽出部26に相当する。
【0084】
これにより、演算装置020は、敵対的サンプルに対するロバスト性を高め、かつ記憶容量の増大を抑えることができることができる。
【0085】
〈コンピュータ構成〉
図8は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ90は、プロセッサ91、メインメモリ93、ストレージ95、インタフェース97を備える。
上述の学習装置10および認証装置20は、コンピュータ90に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ95に記憶されている。プロセッサ91は、プログラムをストレージ95から読み出してメインメモリ93に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ91は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ93に確保する。プロセッサ91の例としては、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサなどが挙げられる。
【0086】
プログラムは、コンピュータ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によって実現される機能の一部または全部が当該集積回路によって実現されてよい。このような集積回路も、プロセッサの一例に含まれる。
【0087】
ストレージ95の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等が挙げられる。ストレージ95は、コンピュータ90のバスに直接接続された内部メディアであってもよいし、インタフェース97または通信回線を介してコンピュータ90に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ90に配信される場合、配信を受けたコンピュータ90が当該プログラムをメインメモリ93に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ95は、一時的でない有形の記憶媒体である。
【0088】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ95に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0089】
1…認証システム 10…学習装置 11…分類モデル記憶部 12…データセット取得部 13…刈り取り位置決定部 14…演算部 15…摂動生成部 16…更新部 17…モデル抽出部 18…出力部 20…認証装置 21…ユーザデータ記憶部 22…モデル取得部 23…抽出モデル記憶部 24…生体データ取得部 25…弱学習器生成部 26…特徴量抽出部 27…類似度算出部 28…認証部 90…コンピュータ 91…プロセッサ 93…メインメモリ 95…ストレージ 97…インタフェース
図1
図2
図3A
図3B
図4
図5
図6
図7
図8