(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-22
(45)【発行日】2022-03-03
(54)【発明の名称】学習装置、学習方法及び学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220224BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2018237211
(22)【出願日】2018-12-19
【審査請求日】2020-12-21
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】披田野 清良
(72)【発明者】
【氏名】清本 晋作
【審査官】多賀 実
(56)【参考文献】
【文献】特開2008-059080(JP,A)
【文献】米国特許出願公開第2018/0005136(US,A1)
【文献】松井 孝太 外2名,「ストリーム学習のための効率的なデータフィルタリング法」,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2015年02月26日,第114巻, 第502号,pp.65-71
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 21/00-21/88
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
教師あり学習により関数のパラメータ値を決定する学習装置であって、
訓練データの集合からランダムに一つを抽出する抽出部と、
前記抽出部により抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算部と、
前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新部と、を備え、
前記抽出部、前記計算部及び前記更新部による処理を、前記パラメータ値が収束するまで繰り返し実行する学習装置。
【請求項2】
前記更新部は、前記繰り返しが所定回数に満たない場合、非ゼロの勾配のうち小さい方から、前記繰り返しの回数に応じた所定割合の数の勾配を抽出する請求項1に記載の学習装置。
【請求項3】
前記更新部は、抽出した前記非ゼロの勾配が所定数に満たない場合、不足する数の勾配をゼロとして前記平均値を算出する請求項2に記載の学習装置。
【請求項4】
教師あり学習により関数のパラメータ値を決定する学習方法であって、
訓練データの集合からランダムに一つを抽出する抽出ステップと、
前記抽出ステップにおいて抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算ステップと、
前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新ステップと、
を前記パラメータ値が収束するまでコンピュータが繰り返し実行する学習方法。
【請求項5】
教師あり学習により関数のパラメータ値を決定するための学習プログラムであって、
訓練データの集合からランダムに一つを抽出する抽出ステップと、
前記抽出ステップにおいて抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算ステップと、
前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新ステップと、
を前記パラメータ値が収束するまでコンピュータに繰り返し実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データポイゾニングに耐性のある学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
教師あり学習に対する脅威の一つとして、訓練データに悪性データを混入するデータポイゾニング攻撃がある。本攻撃への対策としては、TRIMと呼ばれる学習アルゴリズムがある(例えば、非特許文献1参照)。
一般的な教師あり学習では、訓練データから入力と出力との対応関係を表すモデルを学習する際に、最適化問題を解くことで損失関数を最小化するモデルのパラメータを決定する。一方、TRIMでは、データポイゾニングの影響を最小限に抑えるために、悪性データが混入したN個の訓練データのうち正常な訓練データの数をn(<N)として最適化問題を解くことで、モデルのパラメータを決定する。具体的には、TRIMでは、交互最小化法により、訓練データとモデルのパラメータとを交互に最適化することで、N個の訓練データから損失関数を最小化するn個の訓練データを抽出しつつ、同時に損失関数を最小化するモデルのパラメータを決定する。
【先行技術文献】
【非特許文献】
【0003】
【文献】M. Jagielski et al., “Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning,” IEEE S&P 2018.
【発明の概要】
【発明が解決しようとする課題】
【0004】
損失関数は、一般的に、訓練データそれぞれに対する損失度の平均で表される。このため、TRIMにおいて、現在のモデルのパラメータを用いて損失関数を最小化するn個の訓練データを選ぶ際は、N個の訓練データに対して損失度を計算し、損失度が小さい方からn個の訓練データを選択する。したがって、少なくともオーダNの計算が必要となる。
また、現在のn個の訓練データを用いて損失関数を最小化するモデルのパラメータを選択する際も、n個の訓練データに対して損失度を計算する必要がある。このため、オーダnの計算が必要となる。
したがって、N及びnが大きい場合、TRIMの計算コストは膨大となっていた。
【0005】
本発明は、教師あり学習において、データポイゾニングの影響を最小限に抑えつつ、大規模な訓練データであっても高速に学習できる学習装置、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る学習装置は、教師あり学習により関数のパラメータ値を決定する学習装置であって、訓練データの集合からランダムに一つを抽出する抽出部と、前記抽出部により抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算部と、前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新部と、を備え、前記抽出部、前記計算部及び前記更新部による処理を、前記パラメータ値が収束するまで繰り返し実行する。
【0007】
前記更新部は、前記繰り返しが所定回数に満たない場合、非ゼロの勾配のうち小さい方から、前記繰り返しの回数に応じた所定割合の数の勾配を抽出してもよい。
【0008】
前記更新部は、抽出した前記非ゼロの勾配が所定数に満たない場合、不足する数の勾配をゼロとして前記平均値を算出してもよい。
【0009】
本発明に係る学習方法は、教師あり学習により関数のパラメータ値を決定する学習方法であって、訓練データの集合からランダムに一つを抽出する抽出ステップと、前記抽出ステップにおいて抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算ステップと、前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新ステップと、を前記パラメータ値が収束するまでコンピュータが繰り返し実行する。
【0010】
本発明に係る学習プログラムは、教師あり学習により関数のパラメータ値を決定するための学習プログラムであって、訓練データの集合からランダムに一つを抽出する抽出ステップと、前記抽出ステップにおいて抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、前記訓練データそれぞれに対応する勾配を格納した勾配記録データを更新する計算ステップと、前記勾配記録データのうち、小さい方から所定数の勾配を抽出し、当該所定数の勾配の平均値に基づいて前記パラメータ値を更新する更新ステップと、を前記パラメータ値が収束するまでコンピュータに繰り返し実行させるためのものである。
【発明の効果】
【0011】
本発明によれば、教師あり学習において、データポイゾニングの影響を最小限に抑えつつ、大規模な訓練データであっても高速に学習できる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係る学習装置の機能構成を示すブロック図である。
【
図2】実施形態に係る学習装置の処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態の一例について説明する。
本実施形態に係る学習方法では、悪性データが混入された訓練データを用いた教師あり学習において、悪性データの影響を抑制する。
なお、悪性データは、例えば全体の20%等、所定の割合で混入されているものと仮定して、この所定の割合の訓練データが全体から除去される。
【0014】
教師あり学習では、訓練データの集合から、入力xと出力yとの対応関係を示す関数fwのパラメータwが導出される。
ここで、D1を、n個のデータからなる訓練データの集合とする。また、li(w)を、wを入力としてi番目の訓練データについての損失度を出力する関数とする。教師あり学習では、次の最適化問題を解くことで、損失関数Lを最小化する関数fwのパラメータwが導出される。
minw L(D1,w)=minw (1/n)・Σi∈[n]li(w)
【0015】
データポイゾニング攻撃では、攻撃者は、悪性データの集合を訓練データの集合に混入することで、関数fwを意図的に操作する。
ここで、D2を訓練データの集合D1と悪性データの集合D1’との和集合とし、D2はN個の要素からなるものとする。また、Rを効用関数とする。効用関数Rは、パラメータw及び攻撃者が用意したテストデータの集合D3を入力として攻撃の効用度を出力する。攻撃者は、例えば次の最適化問題を解くことで、効用関数Rを最大化する悪性データの集合D1’を導出する。
maxD1’ R(D3, w’)
s.t. w’∈argminw L(D2,w)
【0016】
本実施形態の学習方法では、D1”をn(<N)個の要素からなるD2の部分集合とし、次の最適化問題を解くことで、悪性データの集合の影響を最小限にするパラメータwを導出する。
minw,D1” L(D1”,w)
【0017】
図1は、本実施形態に係る学習装置1の機能構成を示すブロック図である。
学習装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0018】
制御部10は、学習装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0019】
記憶部20は、ハードウェア群を学習装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(学習プログラム)、学習モデルである関数のパラメータ群、及び後述の勾配記録データ等のデータを記憶する。
【0020】
制御部10は、抽出部11と、計算部12と、更新部13とを備える。制御部10は、これらの機能部を繰り返し動作させることにより、教師あり学習により関数のパラメータ値を決定する。
【0021】
抽出部11は、教師あり学習に用いる訓練データの集合から、ランダムに一つの訓練データを抽出する。
【0022】
計算部12は、抽出部11により抽出された訓練データに対して、現在のパラメータ値による損失関数の勾配を計算し、勾配記録データを更新する。
勾配記録データは、訓練データそれぞれに対応する損失関数の勾配を格納したベクトルデータである。抽出部11により同一の訓練データが抽出された場合には、勾配記録データにおける同一のインデックスの値が上書き更新される。
【0023】
更新部13は、勾配記録データのうち、小さい方から所定数の勾配を抽出し、これら所定数の勾配の平均値に基づいてパラメータ値を更新する。
更新部13は、学習の繰り返し回数が訓練データの数に満たないような初期の段階では、非ゼロの勾配のうち小さい方から、学習の繰り返し回数に応じた所定割合の数の勾配を抽出する。そして、更新部13は、非ゼロの勾配が所定数に満たない場合、不足する数の勾配をゼロとして平均値を算出する。
【0024】
制御部10は、抽出部11、計算部12及び更新部13による処理を、パラメータ値が収束するまで繰り返す。
【0025】
図2は、本実施形態に係る学習装置1の処理を示すフローチャートである。
学習装置1は、確率的勾配降下法を応用して前述の最適化問題を解くことで、悪性データを除去しながら関数f
wのパラメータwを学習する。
【0026】
ステップS1において、制御部10は、後続の繰り返し処理における勾配を記録するためのN次元のベクトル(勾配記録データ)Z(0)=(z1
(0),…,zN
(0))を用意する。ただし、全てのiについてzi
(0)=0とする。
また、制御部10は、パラメータwの学習前の初期値w(0)、及び学習の繰り返し回数tの初期値0を設定する。
【0027】
ステップS2において、制御部10(抽出部11)は、学習の繰り返し回数tをカウントアップし、t回目の学習のために、正常データと悪性データとが混在したN個の訓練データの集合D2から1個の訓練データ(xc,yc)をランダムに抽出する。
【0028】
ステップS3において、制御部10(計算部12)は、ステップS2で抽出された訓練データ(xc,yc)に対応する損失関数lc(w(t-1))の勾配∇lc(w(t-1))を計算し、ベクトルZのc番目の要素のみを次のように上書き更新する。
zc(t)←∇lc(w(t-1))
【0029】
ステップS4において、制御部10(更新部13)は、学習の繰り返し回数tがN未満か否かを判定する。この判定がYES(t<N)の場合、処理はステップS5に移り、判定がNO(t≧N)の場合、処理はステップS6に移る。
【0030】
ステップS5において、制御部10(更新部13)は、ベクトルZの非ゼロの要素のうち値が小さい要素からnt/N個を抽出し、これらの要素のインデックス集合I(t)を作成する。
【0031】
ステップS6において、制御部10(更新部13)は、ベクトルZの中で値が小さい要素からn個を抽出し、これらの要素のインデックス集合I(t)を作成する。
【0032】
ステップS7において、制御部10(更新部13)は、次の更新式を用いて、パラメータwを更新する。ここで、λは、ステップサイズである。
w(t)←w(t-1)-(λ/n)・Σi∈Izi
(t)
【0033】
ステップS8において、制御部10は、パラメータwの値が収束したか否かを判定する。この判定がYESの場合、処理は終了し、判定がNOの場合、処理はステップS2に戻り、制御部10は、ステップS2からステップS7までの処理をパラメータwの値が収束するまで繰り返す。
パラメータwの値が収束すると、インデックス集合Iも特定の集合に収束する。この特定の集合は、悪性データと推定される所定の割合の集合が除外された良性の訓練データとなる。
【0034】
以上のように、本実施形態によれば、学習装置1は、毎回の繰り返し処理おいて、一つの訓練データをランダムに抽出してモデル(関数fw)のパラメータwに対する損失関数の勾配を計算し、過去の勾配の平均を用いてパラメータwを更新する。これにより、繰り返し処理におけるパラメータwの更新に関わる計算がTRIMの場合のオーダnからオーダ1まで減少する。
また、学習装置1は、過去の勾配の平均を算出する際に、全ての勾配の平均ではなく、値の小さい一部(n個)の勾配を選択して平均値を算出する。これにより、勾配が大きくなる外れ値、すなわち悪性データの可能性が高い訓練データが除外されるので、訓練データの最適化が同時に実現される。この場合、訓練データの最適化に関する計算量がTRIMの場合のオーダNからオーダ1に減少する。
このように、学習装置1は、教師あり学習において、データポイゾニングの影響を最小限に抑えつつ、大規模な訓練データであっても高速に学習できる。
【0035】
学習装置1は、繰り返しの回数が所定回数、例えば訓練データの数に満たない場合、記録された非ゼロの勾配のうち小さい方から、繰り返しの回数に応じた所定割合(nt/N)の勾配を抽出する。これにより、学習装置1は、学習の初期の段階においても、適切に悪性データを除外しつつ、パラメータwを学習できる。
【0036】
学習装置1は、抽出した非ゼロの勾配が所定数nに満たない場合、不足する数の勾配をゼロとして平均値を算出する。これにより、学習装置1は、学習の初期の段階においても、各訓練データによる学習への影響度を均一にできる。
【0037】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0038】
前述の実施形態では、学習装置1は、パラメータwを更新する際に用いる非ゼロの勾配の数がnに満たない場合、不足する数の勾配をゼロとするため固定値のnで除して平均値を算出したが、これには限られない。例えば、nに代えて、抽出された勾配の数nt/Nが用いられてもよい。
【0039】
前述の実施形態では、学習装置1は、繰り返しの回数tが訓練データの数Nに満たない学習の初期において、繰り返しの回数tに応じて、勾配記録データからnt/N個の要素を抽出したが、これには限られない。例えば、勾配記録データに存在する非ゼロの要素の個数に対して所定割合(n/N)を乗じた数が抽出されてもよい。
【0040】
前述の実施形態において、訓練データはランダムに選択されることとしたが、これには限られない。例えば、インデックスの順番等、全ての訓練データが均一に選択されてもよい。
【0041】
学習装置1による学習方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0042】
1 学習装置
10 制御部
11 抽出部
12 計算部
13 更新部
20 記憶部