(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024070157
(43)【公開日】2024-05-22
(54)【発明の名称】学習装置、学習方法およびプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20240515BHJP
G06N 3/04 20230101ALI20240515BHJP
【FI】
G06N3/08
G06N3/04
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022180596
(22)【出願日】2022-11-10
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】荒木 俊則
(72)【発明者】
【氏名】柿崎 和也
(72)【発明者】
【氏名】シング インダージート
(57)【要約】
【課題】ニューラルネットワークの学習に敵対的サンプルが用いられる場合に、敵対的サンプルの精度を考慮できるようにする。
【解決手段】ニューラルネットワークは、部分ネットワークと、第1正規化層と、第2正規化層とを含み、第1正規化層は、第1正規化層自らに入力されるデータに対して正規化を行い、第2正規化層は、第2正規化層自らに入力されるデータに対して正規化を行う。学習装置は、複数のデータを含むグループである基データグループを用いて、部分ネットワークのパラメータ値と、第2正規化層のパラメータ値とを更新し、基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループに含まれる敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、部分ネットワークのパラメータ値と、第1正規化層のパラメータ値とを更新する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のデータを含むグループである基データグループを取得するデータ取得手段と、
前記データ取得手段が取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する敵対的サンプル取得手段と、
部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定する誤り誘発判定手段と、
前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新するパラメータ更新手段と、
を備える学習装置。
【請求項2】
前記ニューラルネットワークは、データの入力を受けて、そのデータのクラス分類を行い、
前記誤り誘発判定手段は、前記ニューラルネットワークが、入力された敵対的サンプルを、その敵対的サンプルの正解クラスとされているクラスと異なるクラスに分類した場合に、その敵対的サンプルが、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定する、
請求項1に記載の学習装置。
【請求項3】
前記ニューラルネットワークは、データの入力を受けて、そのデータのクラス分類を行い、
前記誤り誘発判定手段は、前記ニューラルネットワークが、入力された敵対的サンプルを、その敵対的サンプルのターゲットクラスとされているクラスに分類した場合に、その敵対的サンプルが、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定する、
請求項1に記載の学習装置。
【請求項4】
前記ニューラルネットワークは、データの入力を受けて、そのデータの特徴量を抽出し、
前記誤り誘発判定手段は、前記ニューラルネットワークが、入力された敵対的サンプルについて抽出した特徴量と、その敵対的サンプルのターゲットクラスに紐付けられている特徴量との類似度を算出し、算出した類似度が、所定の閾値以上に類似していることを示す場合に、その敵対的サンプルが、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定する、
請求項1に記載の学習装置。
【請求項5】
前記敵対的サンプル取得手段は、前記基データグループに含まれるデータである基データの特徴量と、その基データの正解クラス以外のクラスに紐付けられる特徴量との類似度に基づいて、その基データの正解クラス以外のクラスの何れかをターゲットクラスとする敵対的サンプルを生成する、
請求項1から4の何れか一項に記載の学習装置。
【請求項6】
コンピュータが、
複数のデータを含むグループである基データグループを取得し、
取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得し、
部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定し、
前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新する、
ことを含む学習方法。
【請求項7】
コンピュータに、
複数のデータを含むグループである基データグループを取得することと、
取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得することと、
部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定することと、
前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法およびプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの学習に敵対的サンプル(Adversarial Example;AX)が用いられる場合がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワークの学習に敵対的サンプルが用いられる場合、敵対的サンプルの精度が考慮されることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできる学習装置、学習方法、およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、学習装置は、複数のデータを含むグループである基データグループを取得するデータ取得手段と、前記データ取得手段が取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する敵対的サンプル取得手段と、部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定する誤り誘発判定手段と、前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新するパラメータ更新手段と、を備える。
【0007】
本発明の第2の態様によれば、学習方法は、コンピュータが、複数のデータを含むグループである基データグループを取得し、取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得し、部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定し、前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新する、ことを含む。
【0008】
本発明の第3の態様によれば、プログラムは、コンピュータに、複数のデータを含むグループである基データグループを取得することと、取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得することと、部分ネットワークと、第1正規化層と、第2正規化層とを含み、前記第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、前記第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、前記ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定することと、前記基データグループを用いて、前記部分ネットワークのパラメータ値と、前記第2正規化層のパラメータ値とを更新し、前記敵対的データグループに含まれる敵対的サンプルのうち、前記ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、前記部分ネットワークのパラメータ値と、前記第1正規化層のパラメータ値とを更新することと、を実行させるためのプログラムである。
【発明の効果】
【0009】
本発明によれば、ニューラルネットワークの学習に敵対的サンプルが用いられる場合に、敵対的サンプルの精度を考慮することができる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態に係る学習装置の構成の例を示す図である。
【
図2】第1実施形態に係るモデル記憶部が記憶するニューラルネットワークの例を示す図である。
【
図3】第1実施形態に係る処理部がニューラルネットワークの学習を行う処理の手順の例を示す図である。
【
図4】第1実施形態に係る処理部が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。
【
図5】第1実施形態に係るニューラルネットワークが分類型AIとして構成されている場合に、学習装置が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。
【
図6】第1実施形態に係るニューラルネットワークが特徴量抽出型AIとして構成されている場合に、学習装置が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。
【
図7】第2実施形態に係る学習装置の構成の例を示す図である。
【
図8】第2実施形態に係る処理部がニューラルネットワークの学習を行う処理の手順の例を示す図である。
【
図9】第2実施形態に係る処理部が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。
【
図10】第3実施形態に係る推定装置の構成の例を示す図である。
【
図11】第3実施形態に係るモデル記憶部が記憶するニューラルネットワークの例を示す図である。
【
図12】第4実施形態に係る学習装置の構成の例を示す図である。
【
図13】第5実施形態に係る学習方法における処理の手順の例を示す図である。
【
図14】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
<第1実施形態>
図1は、第1実施形態に係る学習装置の構成の例を示す図である。
図1に示す構成で、学習装置100は、通信部110と、表示部120と、操作入力部130と、記憶部180と、処理部190とを備える。記憶部180は、モデル記憶部181を備える。モデル記憶部181は、共通パラメータ記憶部182と、第1正規化層パラメータ記憶部183-1と、第2正規化層パラメータ記憶部183-2とを備える。処理部190は、データ取得部191と、敵対的サンプル取得部192と、モデル実行部193と、誤り誘発判定部194と、パラメータ更新部195とを備える。
【0013】
学習装置100は、ニューラルネットワークの学習を行う。学習装置100は、例えばパソコン(Personal Computer;PC)またはワークステーション(Workstation;WS)などのコンピュータを用いて構成されていてもよい。
【0014】
通信部110は、他の装置と通信を行う。例えば、通信部110が、ニューラルネットワークの学習のためのデータを他の装置から受信するようにしてもよい。さらに例えば、通信部110が、ニューラルネットワークへの入力の対象となるデータと、そのデータが分類されるクラスとが紐付けられたデータを、他の装置から受信するようにしてもよい。
【0015】
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネルなどの表示画面を有し、各種画像を表示する。例えば、表示部120が、ニューラルネットワークの学習の進み具合など、ニューラルネットワークの学習に関する情報を表示するようにしてもよい。
【0016】
操作入力部130は、例えば、キーボードおよびマウスなどの入力デバイスを含んで構成され、ユーザ操作を受け付ける。例えば、操作入力部130が、ニューラルネットワークの学習の終了条件の入力操作など、ニューラルネットワークの学習に関するユーザ操作を受け付けるようにしてもよい。
【0017】
記憶部180は、各種データを記憶する。記憶部180は、学習装置100が備える記憶デバイスを用いて構成される。
モデル記憶部181は、機械学習モデルとしてニューラルネットワークを記憶する。
図2は、モデル記憶部181が記憶するニューラルネットワークの例を示す図である。
図2に示すニューラルネットワーク201は、畳み込みニューラルネットワーク(Convolution Neural Network;CNN)の一種として構成されており、入力層210と、畳み込み層221と、活性化層222と、プーリング(Pooling)層223と、第1正規化層230-1と、第2正規化層230-2と、全結合層240と、出力層250とを含んでいる。
第1正規化層230-1と、第2正規化層230-2とを総称して、正規化層230とも表記する。
【0018】
図2の例で、データの流れにおける上流側から順に、入力層210の次に、畳み込み層221、活性化層222、および、プーリング層223の順による、これらの層の組み合わせが1つ以上配置されており、その下流側に、全結合層240と、出力層250とが設けられている。
また、畳み込み層221、活性化層222、および、プーリング層223の組み合わせそれぞれの、活性化層222とプーリング層223との間に、第1正規化層230-1と第2正規化層230-2とが並列に配置されている。
ニューラルネットワーク201におけるチャンネル数は特定の個数に限定されない。
【0019】
活性化層222からの全てのチャンネルのデータが、第1正規化層230-1および第2正規化層230-2の両方に入力される。あるいは、活性化層222が、第1正規化層230-1および第2正規化層230-2のうち何れか一方に選択的にデータを出力するようにしてもよい。
【0020】
第1正規化層230-1が出力するデータと、第2正規化層230-2が出力するデータとで、同じチャンネルのデータが合成されて、プーリング層223に入力される。例えば、第1正規化層230-1が出力するデータと、第2正規化層230-2が出力するデータとを合計したデータが、プーリング層223に入力されてもよい。あるいは、第1正規化層230-1が出力するデータと、第2正規化層230-2が出力するデータとの平均をとったデータが、プーリング層223に入力されてもよい。
あるいは、第1正規化層230-1および第2正規化層230-2のうち何れか一方のみが活性化層222からデータを取得する場合、データを取得した正規化層230のみがプーリング層223へデータを出力するようにしてもよい。
【0021】
ニューラルネットワーク201の各部のうち、第1正規化層230-1および第2正規化層230-2以外の部分を、共通部分、または、部分ネットワークとも称する。
図2の例の場合、入力層210と、畳み込み層221と、活性化層222と、プーリング層223と、全結合層240と、出力層250との組み合わせが、共通部分の例に該当する。
【0022】
入力層210は、ニューラルネットワーク201への入力データを受け付ける。
畳み込み層221は、畳み込み層221自らに入力されるデータに対して畳み込み演算を行う。畳み込み層221が、さらに、データサイズの調整のためにパディング(Padding)を行うようにしてもよい。
活性化層222は、活性化層222自らに入力されるデータに活性化関数を適用する。活性化層222が用いる活性化関数は、特定の関数に限定されない。例えば、活性化関数として正規化線形関数(Rectified Linear Function;ReLU)が用いられていてもよいが、これに限定されない。
プーリング層223は、プーリング層223自らに入力されるデータに対してプーリングを行う。
【0023】
第1正規化層230-1は、第1正規化層230-1自らに入力されるデータを正規化する。ここでいう正規化は、バッチ正規化(Batch Normalization)の場合と同様の正規化であり、第1正規化層230-1は、1つのグループに含まれるデータの平均値および分散値が所定の値になるように、データの変換を行う。
例えば、1つのグループのデータの平均値を0にし、分散値を1にする場合、第1正規化層230-1は、正規化の対象となっているグループのデータの平均値と分散値とを算出し、各データから平均値を減算し、減算後の値を分散値で除算する。
【0024】
第1正規化層230-1による正規化後の平均値は0に限定されず、分散値は1に限定されない。例えば、αを実数とし、βを正の実数として、第1正規化層230-1が、グループの平均値がαになり、分散値がβになるように正規化を行うようにしてもよい。また、これらαおよびβの値が学習の対象になっていてもよい。αおよびβの値は、第1正規化層230-1ごとに、学習によって設定されてもよい。
【0025】
第1正規化層230-1が目標とするグループの平均値を第1平均値とも称する。第1正規化層230-1が目標とするグループの分散値を第1分散値とも称する。第1平均値および第1分散値は、第1正規化層230-1のパラメータ値の例に該当する。第1平均値を示すパラメータを、第1平均とも称する。第1分散値を示すパラメータを、第1分散とも称する。
【0026】
第1正規化層230-1に複数チャンネル分のデータが入力される場合、第1正規化層230-1が、1つのグループに含まれる全データについて、かつ、複数のチャンネル全体について、データの正規化を行うようにしてもよい。あるいは、第1正規化層230-1が、チャンネルごとに、データの正規化を行うようにしてもよい。
【0027】
第2正規化層230-2は、第2正規化層230-2自らに入力されるデータを正規化する。第2正規化層230-2が行う正規化の処理は、上述した、第1正規化層230-1が行う正規化の処理と同様である。
第2正規化層230-2が目標とするグループの平均値を第2平均値とも称する。第2正規化層230-2が目標とするグループの分散値を第2分散値とも称する。第2平均値および第2分散値は、第2正規化層230-2のパラメータ値の例に該当する。第2平均値を示すパラメータを、第2平均とも称する。第2分散値を示すパラメータを、第2分散とも称する。
第1正規化層230-1と、第2正規化層230-2とでは、後述するように、パラメータ値の学習の対象となるデータが異なる。
【0028】
全結合層240は、全結合層240自らに入力されるデータを、ニューラルネットワーク201の出力データ数のデータに変換する。
出力層250は、ニューラルネットワーク201の出力データを出力する。例えば、出力層250が、全結合層240からのデータに、ソフトマックス関数などの活性化関数を適用して出力するようにしてもよい。
【0029】
あるいは、全結合層240が、ニューラルネットワーク201の出力データを生成し、出力層250が、全結合層240からのデータをそのまま出力するようにしてもよい。この場合、全結合層240が出力層250としても機能し、データをそのままニューラルネットワーク201の外部へ出力するようにしてもよい。
【0030】
ただし、モデル記憶部181が記憶する機械学習モデルの構成は、特定の構成に限定されない。
例えば、モデル記憶部181が機械学習モデルとして畳み込みニューラルネットワークを記憶する場合、畳み込みニューラルネットワークの層の構成および個数は、いろいろな構成および個数とすることができる。例えば、モデル記憶部181が記憶する機械学習モデルの構成は、
図2の例でニューラルネットワーク201に含まれている畳み込み層221と活性化層222とプーリング層223との組み合わせのうち、活性化層222が設けられていない構成となっていてもよい。
【0031】
また、第1正規化層230-1と、第2正規化層230-2との組み合わせが設けられる位置は、特定の位置に限定されない。例えば、畳み込み層221と、活性化層222と、プーリング層223との組み合わせのうち一部の組み合わせについてのみ、第1正規化層230-1と、第2正規化層230-2との組み合わせが設けられていてもよい。
モデル記憶部181が記憶する機械学習モデルの構成は、バッチ正規化層が設けられている畳み込みニューラルネットワークから、バッチ正規化層の個数を2つにして並列に配置した構成となっていてもよい。
ただし、モデル記憶部181が記憶する機械学習モデルは、畳み込みニューラルネットワークに限定されず、第1正規化層230-1および第2正規化層230-2による正規化を適用可能ないろいろなニューラルネットワークとすることができる。
【0032】
また、学習装置100による学習の対象となるニューラルネットワークの実装方法は、モデル記憶部181がニューラルネットワークを記憶しておく方法に限定されない。例えば、学習装置100による学習の対象となるニューラルネットワークが、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)を用いて構成されるなど、ハードウェア的に実装されていてもよい。
学習装置100による学習の対象となるニューラルネットワークが、学習装置100の一部として構成されていてもよいし、学習装置100の外部の構成となっていてもよい。
【0033】
共通パラメータ記憶部182は、共通部分のパラメータ値を記憶する。共通パラメータ記憶部182は、例えば、畳み込み層における畳み込み演算用のフィルタ、および、活性化層における活性化関数のパラメータなど、学習の対象となる各種パラメータの値を記憶する。
共通部分のパラメータ値を、共通パラメータ値とも称する。
【0034】
第1正規化層パラメータ記憶部183-1は、第1正規化層230-1ごとに、その第1正規化層230-1のパラメータ値を記憶する。第1正規化層パラメータ記憶部183-1は、例えば、第1平均および第1分散など、学習の対象となる各種パラメータの値を記憶する。
第2正規化層パラメータ記憶部183-2は、第2正規化層230-2ごとに、その第2正規化層230-2のパラメータ値を記憶する。第2正規化層パラメータ記憶部183-2は、例えば、第2平均および第2分散など、学習の対象となる各種パラメータの値を記憶する。
【0035】
処理部190は、学習装置100の各部を制御して各種処理を行う。処理部190の機能は、例えば、学習装置100が備えるCPU(Central Processing Unit、中央処理装置)が、記憶部180からプログラムを読み出して実行することで実行される。
【0036】
データ取得部191は、ニューラルネットワーク201への入力の対象となるデータに、クラス分類における正解のクラスを示す情報が紐付けられたデータを複数含むグループを取得する。データ取得部191は、データ取得手段の例に該当する。
データ取得部191が取得する、ニューラルネットワーク201への入力の対象となるデータを、基データとも称する。基データのグループを基データグループとも称する。データ取得部191が取得する基データグループの個数は1つ以上であればよく、特定の個数に限定されない。データ取得部191が複数の基データグループを取得する場合、各グループの基データの個数は同じであってもよいし、異なっていてもよい。
【0037】
データ取得部191が、通信部110を介して他の装置から基データを取得するようにしてもよい。
また、データ取得部191が、基データグループの形式で他の装置から基データを取得するようにしてもよい。あるいは、データ取得部191が、他の装置から基データを取得して、基データグループに纏めるようしてもよい。
【0038】
敵対的サンプル取得部192は、データ取得部191が取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する。ここでいう、あるデータに対する敵対的サンプルは、そのデータに敵対的摂動が付加された敵対的サンプルである。
敵対的サンプル取得部192は、敵対的サンプル取得手段の例に該当する。
敵対的サンプル取得部192が、データ取得部191が取得した基データに敵対的サンプル生成手法を適用して、敵対的サンプルを生成するようにしてもよい。あるいは、敵対的サンプル取得部192が、敵対的サンプルを生成する装置から、通信部110を介して敵対的サンプルを取得するようにしてもよい。
【0039】
敵対的データグループの敵対的サンプルの個数は、基データグループの基データの個数と同じであってもよいし、異なっていてもよい。
敵対的サンプル取得部192が基データから敵対的サンプルを生成する場合、1つの基データグループに含まれる全ての基データから敵対的サンプルを1つずつ生成して、1つの敵対的データグループに纏めるようにしてもよい。あるいは、敵対的サンプル取得部192が、1つの基データグループに含まれる基データのうち一部の基データから敵対的サンプルを1つずつ生成して、1つの敵対的データグループに纏めるようにしてもよい。あるいは、敵対的サンプル取得部192が、複数の基データグループのそれぞれに含まれる基データから敵対的サンプルを生成して、1つの敵対的データグループに纏めるようにしてもよい。
敵対的サンプル取得部192が、1つの基データから複数の敵対的サンプルを生成するようにしてもよい。
【0040】
モデル実行部193は、モデル記憶部181が記憶している機械学習モデルを実行する。具体的には、モデル実行部193は、ニューラルネットワーク201にデータを入力して、ニューラルネットワーク201の出力データを算出する。ニューラルネットワーク201による出力データの算出を、ニューラルネットワーク201を用いた推定、あるいは、単に推定とも称する。
【0041】
ニューラルネットワーク201が、入力データが分類されるクラスの推定結果を出力するようになっていてもよい。この場合のニューラルネットワークを、分類型AIとも称する。
あるいは、ニューラルネットワーク201が、入力データの特徴量を出力するようになっていてもよい。この場合のニューラルネットワークを、特徴量抽出型AIとも称する。
【0042】
誤り誘発判定部194は、ニューラルネットワーク201への入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発するか否かを判定する。誤り誘発判定部194は、誤り誘発判定手段の例に該当する。
ニューラルネットワーク201が分類型AIとして構成されている場合、誤り誘発判定部194が、ニューラルネットワーク201が出力するクラスの推定結果が、ニューラルネットワーク201への入力データに紐付けられている正解クラスと異なるときに、その入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発していると判定するようにしてもよい。
【0043】
あるいは、ニューラルネットワーク201が分類型AIとして構成されている場合、誤り誘発判定部194が、ニューラルネットワーク201が出力するクラスの推定結果が、入力データである敵対的サンプルのターゲットクラスを示すときに、その入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発していると判定するようにしてもよい。
【0044】
ここで、敵対的サンプルが、あるクラスに誤分類されるように意図されている場合、そのクラス(誤分類先のクラス)をターゲットクラスとも称する。敵対的サンプルに、正解クラスを示すデータだけでなく、ターゲットクラスを示すデータも紐付けられていてもよい。
【0045】
ニューラルネットワーク201が特徴量抽出型AIとして構成されている場合、誤り誘発判定部194が、ニューラルネットワーク201が出力する特徴量と、ニューラルネットワーク201への入力データである敵対的サンプルのターゲットクラスに紐付けられている特徴量との類似度を算出するようにしてもよい。そして、誤り誘発判定部194が、算出した類似度が、所定の閾値以上に類似していることを示す場合に、その入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発すると判定するようにしてもよい。
【0046】
誤り誘発判定部194が用いる類似度の指標は、特定のものに限定されない。誤り誘発判定部194が、2つの特徴量の類似度を示す指標として、コサイン類似度など、指標値が大きいほど2つの特徴量が類似していることを示す指標値を算出するようにしてもよい。あるいは、誤り誘発判定部194が、特徴量空間における2つの特徴量の距離など、指標値が小さいほど2つの特徴量が類似していることを示す指標値を算出するようにしてもよい。
【0047】
ターゲットクラスに紐付けられる特徴量は、そのターゲットクラスに属している1つのデータの特徴量であってもよい。あるいは、ターゲットクラスに紐付けられる特徴量は、そのターゲットクラスに属している複数のデータの特徴量の平均をとった特徴量であってもよい。
【0048】
パラメータ更新部195は、ニューラルネットワーク201の学習をおこなって、ニューラルネットワーク201のパラメータ値を更新する。パラメータ更新部195は、基データグループを用いて、部分ネットワークのパラメータ値と、第2正規化層230-2のパラメータ値とを更新する。また、パラメータ更新部195は、敵対的データグループに含まれる敵対的サンプルのうち、ニューラルネットワーク201を用いた推定の誤りを誘発すると誤り誘発判定部194が判定した敵対的サンプルを用いて、部分ネットワークのパラメータ値と、第1正規化層230-1のパラメータ値とを更新する。ミニバッチ学習におけるパラメータの更新と同様、パラメータ更新部195が、ニューラルネットワーク201の各部におけるデータの、複数の入力データについての平均値を用いてパラメータ値を更新するようにしてもよい。
パラメータ更新部195は、パラメータ更新手段の例に該当する。
【0049】
上述したように、第1正規化層230-1および第2正規化層230-2の両方にデータが入力されるようになっていてもよい。あるいは、第1正規化層230-1および第2正規化層230-2のうち何れか一方に選択的にデータが入力されるようになっていてもよい。
【0050】
ニューラルネットワーク201に基データグループの各データ(基データ)が入力される場合、第1正規化層230-1および第2正規化層230-2へデータを出力する活性化層222からの、全てのチャンネルのデータが、第1正規化層230-1および第2正規化層230-2の両方に入力されてもよいし、これら2つのうち第2正規化層230-2のみに入力されてもよい。
【0051】
ニューラルネットワーク201に敵対的データグループの各データ(敵対的サンプル)が入力される場合、第1正規化層230-1および第2正規化層230-2へデータを出力する活性化層222からの、全てのチャンネルのデータが、第1正規化層230-1および第2正規化層230-2の両方に入力されてもよいし、これら2つのうち第1正規化層230-1のみに入力されてもよい。
【0052】
パラメータ更新部195が、パラメータ値を更新する手法は、特定の手法に限定されない。パラメータ更新部195が、誤差逆伝播法(Backpropagation)など、ミニバッチ学習に適用可能な公知の手法を用いて、パラメータ値を更新するようにしてもよい。
【0053】
図3は、処理部190がニューラルネットワーク201の学習を行う処理の手順の例を示す図である。
図3の処理で、データ取得部191は、基データグループを取得する(ステップS101)。すなわち、データ取得部191は、グループに纏められている基データを取得する。データ取得部191が、予めグループに纏められている基データを取得するようにしてもよい。あるいは、データ取得部191が、基データを取得して、基データグループに纏めるようにしてもよい。
【0054】
次に、処理部190は、基データグループごとに処理を行うループL11を開始する(ステップS102)。ループL11で処理の対象となっている基データグループを、対象基データグループとも称する。
ループL11の処理で、パラメータ更新部195は、対象基データグループを用いて、共通部分のパラメータ値、および、第2正規化層230-2のパラメータ値を更新する(ステップS103)。
【0055】
次に、処理部190は、共通部分のパラメータ値と第1正規化層230-1のパラメータ値とを更新するためのデータを収集する(ステップS104)。共通部分のパラメータ値と第1正規化層230-1のパラメータ値とを更新するためのデータを、敵対的サンプルに基づくパラメータ値更新用データとも称する。
次に、パラメータ更新部195は、ステップS104で得られたデータを用いて、共通部分のパラメータ値、および、第1正規化層230-1のパラメータ値を更新する(ステップS105)。
【0056】
次に、処理部190は、ループL11の終端処理を行う(ステップS106)。
具体的には、処理部190は、ステップS101で得られた全ての基データグループについて、ループL11の処理をおこなったか否かを判定する。2回目以降のループL11の繰り返しでは、処理部190は、その繰り返しにおいて、ステップS101で得られた全ての基データグループについて、ループL11の処理をおこなったか否かを判定する。
【0057】
未だループL11の処理をおこなっていない基データグループがあると処理部190が判定した場合、処理がステップS102に戻る。この場合、処理部190は、引き続き、ループL11の処理をおこなっていない基データグループについて、ループL11の処理を行う。
一方、ステップS101で得られた全ての基データグループについて、ループL11の処理をおこなったと判定した場合、処理部190は、ループL11を終了する。
【0058】
ループL11を終了した場合、処理部190は、学習の終了条件が成立しているか否かを判定する(ステップS107)。ここでの学習の終了条件として、いろいろな条件を用いることができる。例えば、学習の終了条件が、ステップS102からS107までの処理を所定の回数繰り返した、という条件であってもよいが、これに限定されない。
【0059】
学習の終了条件が成立していないと処理部190が判定した場合(ステップS107:NO)、処理がステップS102へ戻る。この場合、処理部190は、ループL11の処理を繰り返すことにより、ニューラルネットワーク201のパラメータ値の更新を繰り返す。
一方、学習の終了条件が成立していると判定した場合(ステップS107:YES)、処理部190は、
図3の処理を終了する。
【0060】
図4は、処理部190が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。処理部190は、
図3のステップS104で、
図4の処理を行う。
図4の処理で、処理部190は、対象基データグループに含まれる基データごとに処理を行うループL21を開始する(ステップS201)。ループL21で処理の対象となっている基データを、対象基データとも称する。
【0061】
ループL21の処理で、敵対的サンプル取得部192は、対象基データに対する敵対的サンプルを生成する(ステップS202)。
次に、モデル実行部193は、ステップS202で得られた敵対的サンプルをニューラルネットワーク201に入力して、ニューラルネットワーク201を用いた推定を行う(ステップS203)。
【0062】
次に、誤り誘発判定部194は、対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発しているか否かを判定する(ステップS204)。
対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発していると誤り誘発判定部194が判定した場合(ステップS204:YES)、パラメータ更新部195は、敵対的サンプルに基づくパラメータ値更新用データを記憶部180に記憶させる(ステップS205)。
【0063】
例えば、誤差逆伝播法などニューラルネットワーク201の各部が算出するデータの誤差に基づく学習手法を用いる場合、パラメータ更新部195は、ニューラルネットワーク201の各部のうち、パラメータ値の更新対象となる部分における誤差を算出し、記憶部180に記憶させるようにしてもよい。この場合、パラメータ更新部195は、
図3のステップS105で、ニューラルネットワーク201の部分ごとに、記憶部180が記憶している誤差の平均値を算出し、算出した平均値に学習手法を適用して、パラメータ値を更新する。
【0064】
次に、処理部190は、ループL21の終端処理を行う(ステップS206)。
具体的には、処理部190は、対象基データグループに含まれる全ての基データについて、ループL21の処理をおこなったか否かを判定する。2回目以降のループL11(
図3)の繰り返しでは、処理部190は、その繰り返しにおいて、対象基データグループに含まれる全ての基データについて、ループL21の処理をおこなったか否かを判定する。
【0065】
未だループL21の処理をおこなっていない基データがあると処理部190が判定した場合、処理がステップS201に戻る。この場合、処理部190は、引き続き、ループL21の処理をおこなっていない基データについて、ループL21の処理を行う。
一方、対象基データグループに含まれる全ての基データについて、ループL21の処理をおこなったと判定した場合、処理部190は、ループL21を終了する。
ループL21を終了した場合、処理部190は、
図4の処理を終了する。
【0066】
一方、ステップS204で、対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発していないと誤り誘発判定部194が判定した場合(ステップS204:NO)、処理がステップS206へ進む。この場合、ステップS205でのデータの記録は行われない。したがって、この場合の対象基データに対する敵対的サンプルは、共通部分のパラメータ値、および、第1正規化層230-1のパラメータ値の更新の対象から除外される。
【0067】
図5は、ニューラルネットワーク201が分類型AIとして構成されている場合に、学習装置100が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。学習装置100は、
図3のステップS104で、
図5の処理を行う。
【0068】
図5に示す処理は、
図4に示す処理の例に該当する。
上記のように、ニューラルネットワーク201が分類型AIとして構成されている場合、誤り誘発判定部194が、ニューラルネットワーク201が出力するクラスの推定結果が、ニューラルネットワーク201への入力データに紐付けられている正解クラスと異なるときに、その入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発していると判定するようにしてもよい。
図5は、この場合の処理の例を示している。
【0069】
図5のステップS211からS212は、
図4のステップS201からS202と同様である。
図5のループL22の処理は、
図4のループL21の処理の例に該当する。
ステップS212の後、モデル実行部193は、対象基データに対する敵対的サンプルをニューラルネットワーク201に適用することで、敵対的サンプルのクラス分類を行う(ステップS213)。ステップS213の処理は、
図4のステップS203の処理の例に該当する。
図5の例では、ステップS212で得られた敵対的サンプルが、対象基データに対する敵対的サンプルに該当する。
【0070】
次に、誤り誘発判定部194は、対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いたクラス分類にて誤分類されているか否かを判定する(ステップS214)。ここでの誤分類は、ニューラルネットワーク201が、入力された敵対的サンプルを、その敵対的サンプルの正解クラスとされているクラスと異なるクラスに分類することである。あるいは、ここでの誤分類は、ニューラルネットワーク201が、入力された敵対的サンプルを、その敵対的サンプルのターゲットクラスとされているクラスに分類すること、と定義されていてもよい。
ステップS214の処理は、
図4のステップS204の処理の例に該当する。
【0071】
対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いたクラス分類にて誤分類されていると誤り誘発判定部194が判定した場合(ステップS214:YES)、処理がステップS215へ進む。一方、対象基データに対する敵対的サンプルが、ニューラルネットワーク201を用いたクラス分類にて誤分類されていないと誤り誘発判定部194が判定した場合(ステップS214:NO)、処理がステップS216へ進む。
【0072】
ステップS215からS216は、
図4のステップS205からS206と同様である。
ステップS216でループL22を終了した場合、処理部190は、
図5の処理を終了する。
【0073】
図6は、ニューラルネットワーク201が特徴量抽出型AIとして構成されている場合に、学習装置100が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。学習装置100は、
図3のステップS104で、
図6の処理を行う。
【0074】
図6に示す処理は、
図4に示す処理の例に該当する。
上記のように、ニューラルネットワーク201が特徴量抽出型AIとして構成されている場合、誤り誘発判定部194が、ニューラルネットワーク201が出力するクラスの推定結果が、入力データである敵対的サンプルのターゲットクラスを示すときに、その入力データが、ニューラルネットワーク201を用いた推定の誤りを誘発していると判定するようにしてもよい。
図6は、この場合の処理の例を示している。
【0075】
図6のステップS221からS222は、
図4のステップS201からS202と同様である。
図6のループL23の処理は、
図4のループL21の処理の例に該当する。
ステップS222の後、モデル実行部193は、対象基データに対する敵対的サンプルをニューラルネットワーク201に適用することで、敵対的サンプルの特徴量を計算する(ステップS223)。ステップS223の処理は、
図4のステップS203の処理の例に該当する。
図6の例では、ステップS222で得られた敵対的サンプルが、対象基データに対する敵対的サンプルに該当する。
【0076】
次に、誤り誘発判定部194は、対象基データに対する敵対的サンプルの特徴量と、その敵対的サンプルのターゲットクラスに紐付けられている特徴量との類似度を算出する(ステップS224)。
次に、誤り誘発判定部194は、ステップS224で算出した類似度が、所定の閾値以上に類似していることを示すか否かを判定する(ステップS225)。ステップS224からS225の処理は、
図4のステップS204の処理の例に該当する。
【0077】
ステップS224で算出した類似度が、所定の閾値以上に類似していることを示していると誤り誘発判定部194が判定した場合(ステップS225:YES)、処理がステップS226へ進む。一方、ステップS224で算出した類似度が、所定の閾値以上に類似していることを示してないと誤り誘発判定部194が判定した場合(ステップS225:NO)、処理がステップS227へ進む。
【0078】
ステップS226からS227は、
図4のステップS205からS206と同様である。
ステップS227でループL23を終了した場合、処理部190は、
図6の処理を終了する。
【0079】
以上のように、データ取得部191は、複数のデータを含むグループである基データグループを取得する。敵対的サンプル取得部192は、データ取得部191が取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する。誤り誘発判定部194は、ニューラルネットワーク201にデータが入力されたときに、そのデータが、ニューラルネットワーク201を用いた推定の誤りを誘発するか否かを判定する。ニューラルネットワーク201は、部分ネットワークと、第1正規化層230-1と、第2正規化層230-2とを含み、第1正規化層230-1は、第1正規化層230-1自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、第2正規化層230-2は、第2正規化層230-2自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行う。パラメータ更新部195は、基データグループを用いて、部分ネットワークのパラメータ値と、第2正規化層230-2のパラメータ値とを更新し、敵対的データグループに含まれる敵対的サンプルのうち、ニューラルネットワーク201を用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、部分ネットワークのパラメータ値と、第1正規化層230-1のパラメータ値とを更新する。
【0080】
学習装置100は、敵対的サンプルのうち、ニューラルネットワーク201を用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワーク201の学習に用いる。学習装置100によれば、この点で、ニューラルネットワークの学習に敵対的サンプルが用いられる場合に、敵対的サンプルの精度を考慮することができる。
【0081】
ここで、敵対的サンプルは微小な摂動によって作られるニューラルネットワークが誤り易い入力と捉えることができ、ニューラルネットワークの精度の向上を目的として、敵対的サンプルをニューラルネットワークの学習に用いることが考えられる。すなわち、ニューラルネットワークが誤りやすいデータに対して正しく推定を行うことができるように学習を行うことで、ニューラルネットワークの弱点を補うための訓練データとして、敵対的サンプルを用いることが考えられる。
【0082】
特に、ニューラルネットワーク201を用いた推定の誤りを誘発する敵対的サンプルは、ニューラルネットワーク201を用いた推定の精度が低い入力データと捉えることができる。この敵対的サンプルを用いてニューラルネットワーク201の学習を行うことで、学習を効率的に行えることが期待される。
【0083】
一方、ニューラルネットワーク201を用いた推定の誤りを誘発しない敵対的サンプルは、ニューラルネットワーク201を用いた推定の精度が比較的高い入力データと捉えることができる。ニューラルネットワーク201の学習に用いられる敵対的サンプルに、ニューラルネットワーク201を用いた推定の誤りを誘発しない敵対的サンプルが含まれていると、その分、ニューラルネットワーク201の学習に時間がかかる、あるいは、学習結果として得られるニューラルネットワーク201の精度が比較的低くなることが考えられる。
【0084】
訓練データとして用いられる敵対的サンプルが、訓練過程におけるニューラルネットワークを誤らせることができているかが判定されない場合、誤りを引き起こさないデータが訓練に用いられることになる。これにより、上述した、ニューラルネットの弱点を補う効果が小さくなる。
【0085】
これに対し、上記のように、学習装置100は、敵対的サンプルのうち、ニューラルネットワーク201を用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワーク201の学習に用いる。学習装置100によれば、この点で、ニューラルネットワーク201の学習にかかる時間が比較的短いこと、あるいは、学習結果として得られるニューラルネットワーク201の精度が比較的高いことが期待される。
【0086】
また、基データと敵対的サンプルとでは、ニューラルネットワーク201への入力の分布が異なる。ニューラルネットワーク201に、敵対的サンプルの入力と紐付けられる第1正規化層230-1と、基データの入力と紐付けられる第2正規化層230-2とが含まれることで、学習装置100が、これらの正規化層を用いてニューラルネットワーク201の学習を比較的効率的に行えると期待される。
【0087】
また、ニューラルネットワーク201は、データの入力を受けて、そのデータのクラス分類を行う、分類型AIとして構成されている。誤り誘発判定部194は、ニューラルネットワーク201が、入力された敵対的サンプルを、その敵対的サンプルの正解クラスとされているクラスと異なるクラスに分類した場合に、その敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発すると判定する。
【0088】
このように、学習装置100によれば、分類型AIとして構成されているニューラルネットワークの学習において、上述した、ニューラルネットワークの学習にかかる時間が比較的短い、あるいは、学習結果として得られるニューラルネットワークの精度が比較的高い、という効果が期待される。
【0089】
また、ニューラルネットワーク201は、データの入力を受けて、そのデータのクラス分類を行う、分類型AIとして構成されている。誤り誘発判定部194は、ニューラルネットワーク201が、入力された敵対的サンプルを、その敵対的サンプルのターゲットクラスとされているクラスに分類した場合に、その敵対的サンプルが、ニューラルネットワークを用いた推定の誤りを誘発すると判定する。
【0090】
このように、学習装置100によれば、分類型AIとして構成されているニューラルネットワークの学習において、上述した、ニューラルネットワークの学習にかかる時間が比較的短い、あるいは、学習結果として得られるニューラルネットワークの精度が比較的高い、という効果が期待される。
また、学習装置100によれば、敵対的サンプル取得部192が取得する敵対的サンプルのターゲットクラスが特定のクラスに指定されている場合、正解クラスとターゲットクラスとのクラス分類についての学習を効率的に行えると期待される。
【0091】
また、ニューラルネットワーク201は、データの入力を受けて、そのデータの特徴量を抽出する、特徴量抽出型AIとして構成されている。誤り誘発判定部194は、ニューラルネットワーク201が、入力された敵対的サンプルについて抽出した特徴量と、その敵対的サンプルのターゲットクラスに紐付けられている特徴量との類似度を算出し、算出した類似度が、所定の閾値以上に類似していることを示す場合に、その敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発すると判定する。
【0092】
このように、学習装置100によれば、特徴量抽出型AIとして構成されているニューラルネットワークの学習において、上述した、ニューラルネットワークの学習にかかる時間が比較的短い、あるいは、学習結果として得られるニューラルネットワークの精度が比較的高い、という効果が期待される。
【0093】
<第2実施形態>
学習装置が、特徴量の類似度を考慮して敵対的サンプルにおけるターゲットクラスを設定するようにしてもよい。第2実施形態では、この点について説明する。
【0094】
図7は、第2実施形態に係る学習装置の構成の例を示す図である。
図7に示す構成で、学習装置300は、通信部110と、表示部120と、操作入力部130と、記憶部180と、処理部390とを備える。記憶部180は、モデル記憶部181を備える。モデル記憶部181は、共通パラメータ記憶部182と、第1正規化層パラメータ記憶部183-1と、第2正規化層パラメータ記憶部183-2とを備える。処理部190は、データ取得部191と、敵対的サンプル取得部192と、モデル実行部193と、誤り誘発判定部194と、パラメータ更新部195と、類似度算出部391と、ターゲット選択部392とを備える。
【0095】
図7に示す学習装置300の各部のうち、
図1に示す学習装置100の各部に対応して同様の機能を有する部分には同一の符号(110、120、130、180、181、182、183-1、183-2、191、192、193、194、195)を付し、ここでは詳細な説明を省略する。
学習装置300では、処理部390が、学習装置100の処理部190が備える各部に加えてさらに、類似度算出部391と、ターゲット選択部392とを備える。それ以外の点では、学習装置300は、学習装置100と同様である。
【0096】
類似度算出部391は、2つの特徴量の類似度を示す指標値を算出する。特に、類似度算出部391は、基データの特徴量と、敵対的サンプル取得部192が、その基データに対する敵対的サンプルを生成する際のターゲットクラスの候補とされるクラスに紐付けられている特徴量との類似度を示す指標値を算出する。
【0097】
類似度算出部391が用いる指標は、特定のものに限定されない。類似度算出部391が、2つの特徴量の類似度を示す指標として、コサイン類似度など、指標値が大きいほど2つの特徴量が類似していることを示す指標値を算出するようにしてもよい。あるいは、類似度算出部391が、特徴量空間における2つの特徴量の距離など、指標値が小さいほど2つの特徴量が類似していることを示す指標値を算出するようにしてもよい。
【0098】
また、類似度算出部391が用いる指標は、ニューラルネットワーク201が特徴量抽出型AIとして構成されている場合に、誤り誘発判定部194が算出する特徴量の類似度を示す指標と同じであってもよいし、異なっていてもよい。類似度算出部391が、誤り誘発判定部194の一部として構成されていてもよい。
【0099】
ターゲット選択部392は、基データの特徴量と、その基データの正解クラス以外のクラスに紐付けられる特徴量との類似度に基づいて、その基データの正解クラス以外のクラスの何れかをターゲットクラスに設定する。
例えば、類似度算出部391が、基データの正解クラス以外の各クラスについて、基データの特徴量と、そのクラスに紐付けられている特徴量との類似度を示す指標を算出するようにしてもよい。そして、ターゲット選択部392が、基データの正解クラス以外のクラスのうち、ターゲット選択部392が算出した指標が、特徴量の類似度が最も高いことを示すクラスをターゲットクラスに設定するようにしてもよい。
敵対的サンプル取得部192は、ターゲット選択部392が設定したクラスをターゲットクラスとして、基データに対する敵対的サンプルを生成する。
【0100】
図8は、処理部390がニューラルネットワーク201の学習を行う処理の手順の例を示す図である。
図8のステップS301は、
図3のステップS101と同様である。
【0101】
ステップS301の後、モデル実行部193は、ステップS301で得られた各基データグループに含まれる各基データの特徴量を算出する(ステップS302)。
ニューラルネットワーク201が、特徴量抽出型AIとして構成されている場合、モデル実行部193が、各基データをニューラルネットワーク201に入力し、ニューラルネットワーク201が出力する特徴量を取得するようにしてもよい。
ニューラルネットワーク201が、分類型AIとして構成されている場合、モデル実行部193が、各基データをニューラルネットワーク201に入力し、ニューラルネットワーク201が基データのクラス分類のために算出する特徴量を取得するようにしてもよい。
【0102】
ステップS303からS308は、ステップS305における処理以外は、
図3のステップS102からS107と同様である。
図8のループL31の処理は、
図3のループL11の処理と同様である。ループL31で処理の対象となっている基データグループを、対象基データグループとも称する。
ステップS308で、学習の終了条件が成立していないと処理部390が判定した場合(ステップS308:NO)、処理がステップS302へ戻る。この場合、処理部390は、ステップS302で各基データの特徴量を更新し、ループL31の処理を繰り返すことにより、ニューラルネットワーク201のパラメータ値の更新を繰り返す。
一方、学習の終了条件が成立していると判定した場合(ステップS308:YES)、処理部390は、
図8の処理を終了する。
【0103】
図9は、処理部390が、敵対的サンプルに基づくパラメータ値更新用データを収集する処理の手順の例を示す図である。処理部390は、
図8のステップS305で、
図9の処理を行う。
図9のステップS401は、
図4のステップS201と同様である。処理部390がステップS401で開始するループをループL41と称する。ループL41で処理の対象となっている基データを、対象基データとも称する。
【0104】
ループL41の処理で、類似度算出部391は、対象基データの正解クラス以外の各クラスについて、対象基データの特徴量と、そのクラスに紐付けられている特徴量との類似度を示す指標値を算出する(ステップS402)。
次に、ターゲット選択部392は、類似度算出部391が算出した指標値に基づいて、対象基データの正解クラス以外のクラスの何れかをターゲットクラスに設定する(ステップS403)。
【0105】
ステップS404からステップS408は、
図4のステップS202からS206と同様である。
ステップS404では、敵対的サンプル取得部192は、ステップS403でターゲット選択部392が設定したターゲットクラスをターゲットクラスとする敵対的サンプルを生成する。
ステップS408でループL41を終了した場合、処理部390は、
図9の処理を終了する。
【0106】
以上のように、敵対的サンプル取得部192は、基データグループに含まれるデータである基データの特徴量と、その基データの正解クラス以外のクラスに紐付けられる特徴量との類似度に基づいて、その基データの正解クラス以外のクラスの何れかをターゲットクラスとする敵対的サンプルを生成する。
【0107】
これにより、敵対的サンプル取得部192は、基データの特徴量と、ターゲットクラスに紐付けられる特徴量との類似度が比較的高い敵対的サンプルを生成することができ、得られた敵対的サンプルが、ニューラルネットワーク201を用いた推定の誤りを誘発する可能性が比較的高いと期待される。
【0108】
ニューラルネットワーク201を用いた推定の誤りを誘発する可能性が比較的高い敵対的サンプルは、ニューラルネットワーク201を用いた推定の精度が比較的低い入力データと捉えることができる。この敵対的サンプルを用いてニューラルネットワーク201の学習を行うことで、学習を効率的に行えることが期待される。
【0109】
<第3実施形態>
第3実施形態では、学習済みのニューラルネットワークを用いた運用時における推定装置およびニューラルネットワークの構成の例について説明する。
【0110】
図10は、第3実施形態に係る推定装置の構成の例を示す図である。
図10に示す構成で、推定装置400は、通信部110と、表示部120と、操作入力部130と、記憶部480と、処理部490とを備える。記憶部480は、モデル記憶部481を備える。モデル記憶部481は、共通パラメータ記憶部182と、第2正規化層パラメータ記憶部183-2とを備える。処理部490は、データ取得部191と、モデル実行部193と、結果出力処理部491とを備える。
【0111】
図10に示す推定装置400の各部のうち、
図1に示す学習装置100の各部に対応して同様の機能を有する部分には同一の符号(110、120、130、182、183-2、191、193)を付し、ここでは詳細な説明を省略する。
推定装置400では、記憶部480が、学習装置100の記憶部180が備える各部のうち、第1正規化層パラメータ記憶部183-1を備えていない。また、推定装置400では、処理部490が、学習装置100の処理部190が備える各部のうち、敵対的サンプル取得部192と、誤り誘発判定部194と、パラメータ更新部195とを備えておらず、また、結果出力処理部491を備える。それ以外の点では、推定装置400は、学習装置100と同様である。
【0112】
図11は、モデル記憶部481が記憶するニューラルネットワークの例を示す図である。
図11に示すニューラルネットワーク202は、
図2に示すニューラルネットワーク201が備える各部のうち、第1正規化層230-1を備えていない。それ以外の点では、ニューラルネットワーク202は、ニューラルネットワーク201と同様である。
【0113】
図11に示すニューラルネットワーク202の各部のうち、
図2に示すニューラルネットワーク201の各部に対応して同様の機能を有する部分には同一の符号(210、221、222、223、230-2、240、250)を付し、ここでは詳細な説明を省略する。
【0114】
ニューラルネットワーク202では、学習は行われないことから、ニューラルネットワーク201で、入力データの分布の違いに対応して学習を行うために設けられていた第1正規化層230-1は設けられていない。
ニューラルネットワーク202は、データの入力を受けて、入力されたデータに対する推定の結果を出力する。
【0115】
ニューラルネットワーク202が、分類型AIとして構成されていてもよいし、特徴量抽出型AIとして構成されていてもよい。分類型AIとして構成されている場合、ニューラルネットワーク202は、データの入力を受けて、そのデータのクラスの推定結果を出力する。特徴量抽出型AIとして構成されている場合、ニューラルネットワーク202は、データの入力を受けて、そのデータの特徴量を出力する。
【0116】
ニューラルネットワーク202が第1正規化層230-1を備えていないことから、推定装置400のモデル記憶部481も、第1正規化層パラメータ記憶部183-1を備えていない。
また、推定装置400は、ニューラルネットワークの学習を行わないことから、学習装置100が備える各部のうち、学習用のデータとして用いられる敵対的サンプルを取得する敵対的サンプル取得部192と、パラメータ値更新の対象とする敵対的サンプルを選択する誤り誘発判定部194と、パラメータ値を更新するパラメータ更新部195とを備えていない。
【0117】
推定装置400では、データ取得部191は、ニューラルネットワーク202に対する入力データを取得する。
モデル実行部193は、データ取得部191が取得したデータをニューラルネットワーク202に入力して、ニューラルネットワーク202を用いた推定結果を取得する。
【0118】
結果出力処理部491は、得られた推定結果を出力する。結果出力処理部491が推定結果を出力する方法は、特定の方法に限定されない。例えば、結果出力処理部491が、表示部120に推定結果を表示させることで、推定結果を出力するようにしてもよい。あるいは、結果出力処理部491が、通信部110を介して、推定結果を他の装置へ送信するようにしてもよい。
【0119】
あるいは、運用時にも、
図2に示すニューラルネットワーク201が用いられてもよい。
【0120】
推定装置400は、いろいろな推定に用いることができる。例えば、推定装置400が顔認証、指紋認証、または、声紋認証などの生体認証を行うようにしてもよい。
この場合、推定装置400が、入力されたデータを、登録されている人物のクラスの何れに分類することを試みることで、入力されたデータが示す人物を、登録されている人物の何れかと認証するか、あるいは、認証に失敗するようにしてもよい。
あるいは、推定装置400が、入力されたデータの特徴量を抽出し、指定された人物のデータの特徴量との類似度を比較して、入力されたデータが示す人物と、指定された人物とが同一人物であるか否かを判定するようにしてもよい。
あるいは、推定装置400が、各種の予測を行う装置など、生体認証以外の用途の装置に用いられてもよい。
【0121】
<第4実施形態>
図12は、第4実施形態に係る学習装置の構成の例を示す図である。
図12に示す構成で、学習装置610は、データ取得部611と、敵対的サンプル取得部612と、誤り誘発判定部613と、パラメータ更新部614と、を備える。
かかる構成で、データ取得部611は、複数のデータを含むグループである基データグループを取得する。
敵対的サンプル取得部612は、データ取得部611が取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する。
【0122】
誤り誘発判定部613は、ニューラルネットワークに、データが入力されたときに、そのデータが、ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定する。ここでのニューラルネットワークは、部分ネットワークと、第1正規化層と、第2正規化層とを含む。第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行う。第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行う。
【0123】
パラメータ更新部614は、基データグループを用いて、部分ネットワークのパラメータ値と、第2正規化層のパラメータ値とを更新し、敵対的データグループに含まれる敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、部分ネットワークのパラメータ値と、第1正規化層のパラメータ値とを更新する。
【0124】
データ取得部611は、データ取得手段の例に該当する。敵対的サンプル取得部612は、敵対的サンプル取得手段の例に該当する。誤り誘発判定部613は、誤り誘発判定手段の例に該当する。パラメータ更新部614は、パラメータ更新手段の例に該当する。
【0125】
学習装置610は、敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワークの学習に用いる。学習装置610によれば、この点で、ニューラルネットワークの学習に敵対的サンプルが用いられる場合に、敵対的サンプルの精度を考慮することができる。
【0126】
ここで、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルは、そのニューラルネットワークを用いた推定の精度が低い入力データと捉えることができる。この敵対的サンプルを用いてニューラルネットワークの学習を行うことで、学習を効率的に行えることが期待される。
【0127】
一方、ニューラルネットワークを用いた推定の誤りを誘発しない敵対的サンプルは、そのニューラルネットワークを用いた推定の精度が比較的高い入力データと捉えることができる。ニューラルネットワークの学習に用いられる敵対的サンプルに、ニューラルネットワークを用いた推定の誤りを誘発しない敵対的サンプルが含まれていると、その分、ニューラルネットワークの学習に時間がかかる、あるいは、学習結果として得られるニューラルネットワークの精度が比較的低くなることが考えられる。
【0128】
これに対し、上記のように、学習装置610は、敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワークの学習に用いる。学習装置610によれば、この点で、ニューラルネットワークの学習にかかる時間が比較的短いこと、あるいは、学習結果として得られるニューラルネットワークの精度が比較的高いことが期待される。
【0129】
また、基データと敵対的サンプルとでは、ニューラルネットワークへの入力の分布が異なる。ニューラルネットワークに、敵対的サンプルの入力と紐付けられる第1正規化層と、基データの入力と紐付けられる第2正規化層とが含まれることで、学習装置610が、これらの正規化層を用いてニューラルネットワークの学習を比較的効率的に行えると期待される。
【0130】
データ取得部611は、例えば、
図1のデータ取得部191等の機能を用いて実現することができる。敵対的サンプル取得部612は、例えば、
図1の敵対的サンプル取得部192等の機能を用いて実現することができる。誤り誘発判定部613は、例えば、
図1の誤り誘発判定部194等の機能を用いて実現することができる。パラメータ更新部614は、例えば、
図1のパラメータ更新部195等の機能を用いて実現することができる。
【0131】
<第5実施形態>
図13は、第5実施形態に係る学習方法における処理の手順の例を示す図である。
図13に示す学習方法は、データを取得すること(ステップS611)と、敵対的サンプルを取得すること(ステップS612)と、誤り誘発の有無を判定すること(ステップS613)と、パラメータ値を更新すること(ステップS614)とを含む。
【0132】
データを取得すること(ステップS611)では、コンピュータが、複数のデータを含むグループである基データグループを取得する。
敵対的サンプルを取得すること(ステップS612)では、コンピュータが、取得した基データグループに含まれるデータに対する敵対的サンプルを複数含むグループである敵対的データグループを取得する。
【0133】
誤り誘発の有無を判定すること(ステップS613)では、コンピュータが、部分ネットワークと、第1正規化層と、第2正規化層とを含み、第1正規化層は、第1正規化層自らに入力されるデータに対して、第1平均値と第1分散値とを用いた正規化を行い、第2正規化層は、第2正規化層自らに入力されるデータに対して、第2平均値と第2分散値とを用いた正規化を行うニューラルネットワークに、データが入力されたときに、そのデータが、ニューラルネットワークを用いた推定の誤りを誘発するか否かを判定する。
【0134】
パラメータ値を更新すること(ステップS614)では、コンピュータが、基データグループを用いて、部分ネットワークのパラメータ値と、第2正規化層のパラメータ値とを更新し、敵対的データグループに含まれる敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発すると判定された敵対的サンプルを用いて、部分ネットワークのパラメータ値と、第1正規化層のパラメータ値とを更新する。
【0135】
図13に示す学習方法では、敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワークの学習に用いる。
図13に示す学習方法によれば、この点で、ニューラルネットワークの学習に敵対的サンプルが用いられる場合に、敵対的サンプルの精度を考慮することができる。
【0136】
ここで、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルは、そのニューラルネットワークを用いた推定の精度が低い入力データと捉えることができる。この敵対的サンプルを用いてニューラルネットワークの学習を行うことで、学習を効率的に行えることが期待される。
【0137】
一方、ニューラルネットワークを用いた推定の誤りを誘発しない敵対的サンプルは、そのニューラルネットワークを用いた推定の精度が比較的高い入力データと捉えることができる。ニューラルネットワークの学習に用いられる敵対的サンプルに、ニューラルネットワークを用いた推定の誤りを誘発しない敵対的サンプルが含まれていると、その分、ニューラルネットワークの学習に時間がかかる、あるいは、学習結果として得られるニューラルネットワークの精度が比較的低くなることが考えられる。
【0138】
これに対し、上記のように、
図13に示す学習方法では、敵対的サンプルのうち、ニューラルネットワークを用いた推定の誤りを誘発する敵対的サンプルを選択し、ニューラルネットワークの学習に用いる。
図13に示す学習方法によれば、この点で、ニューラルネットワークの学習にかかる時間が比較的短いこと、あるいは、学習結果として得られるニューラルネットワークの精度が比較的高いことが期待される。
【0139】
また、基データと敵対的サンプルとでは、ニューラルネットワークへの入力の分布が異なる。
図13に示す学習方法では、ニューラルネットワークに、敵対的サンプルの入力と紐付けられる第1正規化層と、基データの入力と紐付けられる第2正規化層とが含まれることで、これらの正規化層を用いてニューラルネットワークの学習を比較的効率的に行えると期待される。
【0140】
図14は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図14に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0141】
上記の学習装置100、学習装置300、推定装置400、および、学習装置610のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0142】
学習装置100がコンピュータ700に実装される場合、処理部190およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0143】
また、CPU710は、プログラムに従って、記憶部180およびその各部のための記憶領域を主記憶装置720に確保する。通信部110による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部120による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。操作入力部130によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0144】
学習装置300がコンピュータ700に実装される場合、処理部390およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0145】
また、CPU710は、プログラムに従って、記憶部180およびその各部のための記憶領域を主記憶装置720に確保する。通信部110による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部120による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。操作入力部130によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0146】
推定装置400がコンピュータ700に実装される場合、処理部490およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0147】
また、CPU710は、プログラムに従って、記憶部480およびその各部のための記憶領域を主記憶装置720に確保する。通信部110による他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部120による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。操作入力部130によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0148】
学習装置610がコンピュータ700に実装される場合、データ取得部611と、敵対的サンプル取得部612と、誤り誘発判定部613と、パラメータ更新部614との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0149】
また、CPU710は、プログラムに従って、学習装置610が処理を行うための記憶領域を主記憶装置720に確保する。学習装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。学習装置610とユーザとのインタラクションは、インタフェース740が入力デバイスおよび出力デバイスを有し、CPU710の制御に従って出力デバイスにて情報をユーザに提示し、入力デバイスにてユーザ操作を受け付けることで実行される。
【0150】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0151】
なお、学習装置100、学習装置300、推定装置400、および、学習装置610が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0152】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0153】
100、300、610 学習装置
110 通信部
120 表示部
130 操作入力部
180、480 記憶部
181 モデル記憶部
182 共通パラメータ記憶部
183-1 第1正規化層パラメータ記憶部
183-2 第2正規化層パラメータ記憶部
190、390、490 処理部
191、611 データ取得部
192、612 敵対的サンプル取得部
193 モデル実行部
194、613 誤り誘発判定部
195、614 パラメータ更新部
201、202 ニューラルネットワーク
210 入力層
221 畳み込み層
222 活性化層
223 プーリング層
230-1 第1正規化層
230-2 第2正規化層
240 全結合層
250 出力層
391 類似度算出部
392 ターゲット選択部
400 推定装置
491 結果出力処理部