(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-05
(45)【発行日】2023-06-13
(54)【発明の名称】機械学習装置、機械学習方法及び機械学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20230606BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2020103878
(22)【出願日】2020-06-16
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】披田野 清良
(72)【発明者】
【氏名】清本 晋作
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2020-016935(JP,A)
【文献】特開2019-028839(JP,A)
【文献】国際公開第2019/073923(WO,A1)
【文献】特開2021-022316(JP,A)
【文献】中塚 俊介,優れた画像処理に触れる -ViEW2017より- 少数不良品サンプル下におけるAdversarial AutoEncoderによる正常モデルの生成と不良判別,映像情報インダストリアル,日本,産業開発機構(株),2018年03月01日,第50巻、第3号,pp.58-67,ISSN: 1346-1362
【文献】Aditya Krishna Menon et al.,A loss framework for calibrated anomaly detection,Advances in Neural Information Processing Systems 31 (NeurIPS 2018),2018年,ISBN: 9781510884472
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
2クラスの訓練データ集合のうち、多数クラスに分類された第1集合と、少数クラスに分類された第2集合とを用いて分類モデルを学習する機械学習装置であって、
入力データが前記多数クラス又は前記少数クラスである確率を出力する第1関数のパラメータ、及び前記第2集合のデータを変換する第2関数のパラメータを初期化する初期化部と、
前記第1集合からランダムに選択したデータ群、及び前記第2集合からランダムに選択し前記第2関数により変換したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記変換したデータが前記少数クラスである確率に基づく評価値を最大化するように前記第1関数のパラメータを更新する第1更新部と、
前記第1更新部と同一のデータ群により、前記評価値を最小化するように前記第2関数のパラメータを更新する第2更新部と、を備え、
前記第1更新部及び前記第2更新部を交互に繰り返し動作させた後、更新後の前記第1関数を前記分類モデルとして出力する機械学習装置。
【請求項2】
前記第1集合及び前記第2集合のそれぞれからランダムに選択したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記第2集合のデータが前記少数クラスである確率に基づく前記評価値を最大化するように前記第1関数のパラメータを学習する初期学習部を備え、
前記初期学習部を、前記第1更新部及び前記第2更新部の前に所定回数動作させる請求項1に記載の機械学習装置。
【請求項3】
前記評価値は、複数の確率それぞれの対数を総和したものである請求項1又は請求項2に記載の機械学習装置。
【請求項4】
前記第1更新部は、前記第1集合及び前記第2集合から、それぞれ同数のデータ群を選択する請求項1から請求項3のいずれかに記載の機械学習装置。
【請求項5】
コンピュータが2クラスの訓練データ集合のうち、多数クラスに分類された第1集合と、少数クラスに分類された第2集合とを用いて分類モデルを学習する機械学習方法であって、
入力データが前記多数クラス又は前記少数クラスである確率を出力する第1関数のパラメータ、及び前記第2集合のデータを変換する第2関数のパラメータを初期化する初期化ステップと、
前記第1集合からランダムに選択したデータ群、及び前記第2集合からランダムに選択し前記第2関数により変換したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記変換したデータが前記少数クラスである確率に基づく評価値を最大化するように前記第1関数のパラメータを更新する第1更新ステップと、
前記第1更新ステップと同一のデータ群により、前記評価値を最小化するように前記第2関数のパラメータを更新する第2更新ステップと、を実行し、
前記第1更新ステップ及び前記第2更新ステップを交互に繰り返し実行した後、更新後の前記第1関数を前記分類モデルとして出力する機械学習方法。
【請求項6】
請求項1から請求項4のいずれかに記載の機械学習装置としてコンピュータを機能させるための機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不均衡データ向けの敵対的学習を行うための装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来、機械学習によるクラス分類の自動化が図られている。機械学習を用いてマルウェア検知、ハードウェアトロイ検知、ネットワーク侵入検知等の異常検知を行う場合、一般的に異常データのサンプルは少ないため、正常クラスと比べて十分な量の訓練データを得られない場合がある。この場合、正常クラスと異常クラスとで、訓練データの数が不均衡となり、学習モデルが多数クラスの訓練データに大きく影響を受けるため、特に少数クラスである異常クラスの検知について十分な性能を達成できなかった。
【0003】
このため、クラス間で訓練データの数が不均衡であっても、異常クラスの検知性能を十分に保つためのロバストな学習方法が必要となる。このような学習方法としては、サンプリングベースのアプローチ(例えば、非特許文献1及び2参照)とコストセンシティブなアプローチ(例えば、非特許文献3参照)とがある。サンプリングベースのアプローチでは、オーバーサンプリング又はアンダーサンプリングにより訓練データの数をクラス間で均一化する。一方、コストセンシティブなアプローチでは、クラス毎に損失関数に重みを付けることで、少数クラスを重点的に学習する。
【先行技術文献】
【非特許文献】
【0004】
【文献】Chawla, N. V.; Bowyer, K.W.; Hall, L. O.; and Kegelmeyer, W. P. 2002. SMOTE: Synthetic Minority Over-sampling Technique. Journal of Artificial Intelligence Research 16:321-357.
【文献】Haibo He; Yang Bai; Garcia, E. A.; and Shutao Li. 2008. ADASYN: Adaptive synthetic sampling approach for imbalanced learning. In 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence), number 3, 1322-1328. IEEE.
【文献】Kukar, M., and Kononenko, I. 1998. Cost-sensitive learning with neural networks. In Proceedings of the 13th European Conference on Artificial Intelligence, 445-449.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、サンプリングベースのアプローチでは、クラス毎のデータ構造に依存して、クラス毎にそれぞれ独立にサンプリングを行うため、クラス間のデータの関係性は十分に考慮されず、不適切に(過大又は過少に)データをサンプリングしてしまう可能性があった。
また、コストセンシティブなアプローチでは、重み自体は実験的に手動で決めなければならないため、最適化することが難しかった。
【0006】
本発明は、クラス間のデータの関係性を考慮しつつ、学習モデルのパラメータを自動的に最適化できる機械学習装置、機械学習方法及び機械学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る機械学習装置は、2クラスの訓練データ集合のうち、多数クラスに分類された第1集合と、少数クラスに分類された第2集合とを用いて分類モデルを学習する機械学習装置であって、入力データが前記多数クラス又は前記少数クラスである確率を出力する第1関数のパラメータ、及び前記第2集合のデータを変換する第2関数のパラメータを初期化する初期化部と、前記第1集合からランダムに選択したデータ群、及び前記第2集合からランダムに選択し前記第2関数により変換したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記変換したデータが前記少数クラスである確率に基づく評価値を最大化するように前記第1関数のパラメータを更新する第1更新部と、前記第1更新部と同一のデータ群により、前記評価値を最小化するように前記第2関数のパラメータを更新する第2更新部と、を備え、前記第1更新部及び前記第2更新部を交互に繰り返し動作させた後、更新後の前記第1関数を前記分類モデルとして出力する。
【0008】
前記機械学習装置は、前記第1集合及び前記第2集合のそれぞれからランダムに選択したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記第2集合のデータが前記少数クラスである確率に基づく前記評価値を最大化するように前記第1関数のパラメータを学習する初期学習部を備え、前記初期学習部を、前記第1更新部及び前記第2更新部の前に所定回数動作させてもよい。
【0009】
前記評価値は、複数の確率それぞれの対数を総和したものであってもよい。
【0010】
前記第1更新部は、前記第1集合及び前記第2集合から、それぞれ同数のデータ群を選択してもよい。
【0011】
本発明に係る機械学習方法は、コンピュータが2クラスの訓練データ集合のうち、多数クラスに分類された第1集合と、少数クラスに分類された第2集合とを用いて分類モデルを学習する機械学習方法であって、入力データが前記多数クラス又は前記少数クラスである確率を出力する第1関数のパラメータ、及び前記第2集合のデータを変換する第2関数のパラメータを初期化する初期化ステップと、前記第1集合からランダムに選択したデータ群、及び前記第2集合からランダムに選択し前記第2関数により変換したデータ群により、前記第1集合のデータが前記多数クラスである確率及び前記変換したデータが前記少数クラスである確率に基づく評価値を最大化するように前記第1関数のパラメータを更新する第1更新ステップと、前記第1更新ステップと同一のデータ群により、前記評価値を最小化するように前記第2関数のパラメータを更新する第2更新ステップと、を実行し、前記第1更新ステップ及び前記第2更新ステップを交互に繰り返し実行した後、更新後の前記第1関数を前記分類モデルとして出力する機械学習方法。
【0012】
本発明に係る機械学習プログラムは、前記機械学習装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0013】
本発明によれば、クラス間のデータの関係性を考慮しつつ、学習モデルのパラメータを自動的に最適化できる。
【図面の簡単な説明】
【0014】
【
図1】実施形態における機械学習装置の機能構成を示す図である。
【
図2】実施形態における機械学習方法の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態の一例について説明する。
本実施形態では、機械学習を用いて異常検知モデルが生成される。
まず、機械学習に用いる訓練データの集合をDとし、正常クラスのデータ集合(第1集合)をD1、異常クラスのデータ集合(第2集合)をD2とする。
ここで、Lを、あるデータxが与えられたときに、xが異常である確率を出力する関数(第1関数)とする。機械学習を用いた異常検知では、訓練データ集合Dを用いて次の式(1)で表される最適化問題を満たす関数Lが異常検知モデルとして学習される。なお、xが正常である確率は、1-L(x)である。
maxL Σx2∈D2 log L(x2) + Σx1∈D1 log (1 - L(x1)) …(1)
【0016】
データ集合D1とデータ集合D2とで、それぞれに含まれている訓練データの数が大きく異なる場合、訓練データ集合Dが不均衡であるという。特に、データ集合D2のデータ数が少ない場合、式(1)の最適化問題のみでは、異常検知性能の低いモデルLが生成される。
そこで、本実施形態では、異常検知モデルと少数クラスの訓練データの変換モデルとを競い合わせながら交互に学習する手法を採用した。
【0017】
図1は、本実施形態における機械学習装置1の機能構成を示す図である。
機械学習装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0018】
制御部10は、機械学習装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0019】
記憶部20は、ハードウェア群を機械学習装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(機械学習プログラム)、及び機械学習モデル、訓練データ等を記憶する。
【0020】
制御部10は、初期化部11と、初期学習部12と、第1更新部13と、第2更新部14とを備える。機械学習装置1は、これらの機能部を動作させることにより、2クラスの訓練データ集合Dのうち、多数クラスに分類されたデータ集合D1と、少数クラスに分類されたデータ集合D2とを用いて分類モデルの関数Lを学習する。
【0021】
初期化部11は、入力データが多数クラス又は少数クラスである確率を出力する関数Lのパラメータ、及びデータ集合D2のデータを変換する関数G(第2関数)のパラメータを初期化する。
なお、関数Gの構成は限定されず、既存の各種変換手法を適用することができる。例えば、GAN(Generative Adversarial Networks)において用いられるデータ変換手法等が採用されてもよい。
【0022】
初期学習部12は、データ集合D1及びデータ集合D2のそれぞれからランダムに選択したデータ群により、データ集合D1のデータが多数クラスである確率及びデータ集合D2のデータが少数クラスである確率に基づく前述の式(1)で示される評価値を最大化するように関数Lのパラメータを学習する。
【0023】
第1更新部13は、データ集合D1からランダムに選択したデータ群、及びデータ集合D2からランダムに選択し関数Gにより変換したデータ群により、データ集合D1のデータが多数クラスである確率及び変換したデータが少数クラスである確率に基づく評価値を最大化するように関数Lのパラメータを更新する。
このとき、第1更新部13は、データ集合D1及びデータ集合D2から、それぞれ同数のデータ群を選択する。
【0024】
第2更新部14は、第1更新部13と同一のデータ群により、同一の評価値を最小化するように関数Gのパラメータを更新する。
なお、第1更新部13及び第2更新部14が用いる評価値は、複数の確率それぞれの対数を総和したものである。
【0025】
制御部10は、初期学習部12を所定回数動作させ、次に、第1更新部13及び第2更新部14を交互に繰り返し動作させた後、更新後の関数Gを分類モデルとして出力する。
【0026】
図2は、本実施形態における機械学習方法の処理手順を示すフローチャートである。
ここで、異常検知モデルを構成する関数Lは、パラメータθ
Lを用いて表されるものとする。また、データxを変換する関数Gは、パラメータθ
Gを用いて表されるものとする。
機械学習装置1は、次の最適化問題を以下の手順により解くことで、不均衡な訓練データ集合Dから異常検知性能の高い学習モデルを生成する。
min
G max
L Σ
x2∈D2 log L(G(x2)) + Σ
x1∈D1 log (1 - L(x1))
【0027】
ステップS1において、初期化部11は、関数LのパラメータθL、及び関数GのパラメータθGを初期化する。
【0028】
ステップS2において、初期学習部12は、データ集合D1及びデータ集合D2から、それぞれm個のデータをランダムに選択する。
ステップS3において、初期学習部12は、ステップS2で選択した2m個のデータを用いて式(1)を解き、パラメータθLを更新する。
【0029】
ステップS4において、制御部10は、ステップS3での更新回数がn1回に達したか否かを判定する。この判定がYESの場合、処理はステップS5に移り、判定がNOの場合、処理はステップS2に戻る。
【0030】
ステップS5において、第1更新部13は、データ集合D1及びデータ集合D2から、それぞれm個のデータをランダムに選択する。
ステップS6において、第1更新部13は、ステップS5で選択した2m個のデータを用いて、D2のデータを関数Gで変換した後、両クラスの検知性能を最大化するように、
maxL Σx2∈D2 log L(G(x2)) + Σx1∈D1 log (1 - L(x1))
を解き、パラメータθLを更新する。
【0031】
ステップS7において、第2更新部14は、ステップS5で選択した2m個のデータを用いて、D2のデータを関数Gで変換しつつ、少数クラスの検知性能を最小化するように、
minG Σx2∈D2 log L(G(x2)) + Σx1∈D1 log (1 - L(x1))
を解き、パラメータθGを更新する。
【0032】
ステップS8において、制御部10は、ステップS6及びS7での更新回数がn2回ずつになったか否かを判定する。この判定がYESの場合、処理はステップS9に移り、判定がNOの場合、処理はステップS5に戻る。
ステップS9において、制御部10は、更新されたパラメータθLを用いて表される関数Lを、最終的な異常検知モデルとして出力する。
【0033】
なお、ステップS5~S8の繰り返し処理において、最後(n2回目)にパラメータθGを更新するステップは省略されてもよい。
【0034】
本実施形態によれば、機械学習装置1は、少数クラスの訓練データの変換モデルGを設ける。この変換モデルGは、訓練データ全体を用いて異常検知モデルを生成した際に、少数クラスについての検知性能を最小化するデータを生成するようなものとする。
機械学習装置1は、正常クラス及び異常クラスの訓練データそれぞれから選択したデータを用いて、まず、両クラスの検知性能を最大化する異常検知モデルLを学習し、次いで少数クラスについての検知性能を最小化するデータ変換モデルGを学習する処理を、交互に一定回数繰り返す。そして、機械学習装置1は、最後の繰り返し処理で生成された異常検知モデルLを最終的な検知モデルとする。
【0035】
このようにして生成された異常検知モデルLは、訓練データ全体の傾向を反映したものであるため、この状態に基づいて少数クラスのデータ変換モデルGを学習することで、クラス間のデータ構造の関係性を反映したモデルLの生成が可能となる。また、モデルが持つパラメータは、全て一連の処理により自動的に最適化される。
したがって、機械学習装置1は、2つのモデルLとGとを競い合わせることにより、異常データのサンプルを十分に集められない場合であっても、クラス間のデータの関係性を考慮しつつ、学習モデルのパラメータを自動的に最適化し、高い検知性能を持つモデルを生成できる。
【0036】
機械学習装置1は、まず、初期学習部12により、正常クラス及び異常クラスの訓練データそれぞれから選択したデータを用いて、両クラスの検知性能を最大化する異常検知モデルLの学習を繰り返す。これにより、機械学習装置1は、第1更新部13及び第2更新部14による2つのモデルL及びGの更新処理の前に、基準となる異常検知モデルLの初期状態を生成する。
したがって、機械学習装置1は、更新処理における無駄な変動を抑制し、効率的にモデルを最適化できる。
【0037】
機械学習装置1は、評価値として、関数の出力である確率それぞれの対数を総和したものを用いることで、適切な評価により効率的に学習を進められる。
また、機械学習装置1は、データ集合D1及び前記第2集合から、それぞれ同数のデータ群を選択することで、両クラスの訓練データの傾向を等しく反映し、適切なモデルを生成できる。
【0038】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0039】
機械学習装置1による機械学習方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0040】
1 機械学習装置
10 制御部
11 初期化部
12 初期学習部
13 第1更新部
14 第2更新部
20 記憶部