(57)【要約】【課題】コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる学習プログラム、学習方法および学習装置を提供する。【解決手段】学習プログラムは、コアテンソルが生成された機械学習モデルを学習する処理をコンピュータに実行させる。学習プログラムは、機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する処理をコンピュータに実行させる。学習プログラムは、複数の判定済疑似教師データを用いて、機械学習モデルの学習を実行する処理をコンピュータに実行させる。【選択図】図１
2020061007.tif 000002
【特許請求の範囲】
【請求項１】
コアテンソルが生成された機械学習モデルの学習プログラムであって、
前記機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、前記機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出し、
前記複数の判定済疑似教師データを用いて、前記機械学習モデルの学習を実行する、
処理をコンピュータに実行させる学習プログラム。
【請求項２】
前記複数の疑似教師データは、前記複数の教師データを用いた交差検定において、誤判定となった教師データを学習対象として生成された疑似教師データである、
請求項１に記載の学習プログラム。
【請求項３】
前記抽出する処理は、前記誤判定となった教師データと類似する種類の教師データを正例とし、前記誤判定となった教師データと異なる種類の教師データ、および、前記誤判定となった教師データ自体を負例とした判別器を用いて、前記コアテンソルが変化したと判定された疑似教師データを、判定済疑似教師データの候補データとし、該候補データから前記複数の判定済疑似教師データを抽出する、
請求項２に記載の学習プログラム。
【請求項４】
前記抽出する処理は、前記候補データを加えた教師データを用いて交差検定の精度評価を行い、精度が向上した場合に、前記候補データを判定済疑似教師データとして抽出する、
請求項３に記載の学習プログラム。
【請求項５】
コアテンソルが生成された機械学習モデルの学習方法であって、
前記機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、前記機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出し、
前記複数の判定済疑似教師データを用いて、前記機械学習モデルの学習を実行する、
処理をコンピュータが実行する学習方法。
【請求項６】
コアテンソルが生成された機械学習モデルの学習装置であって、
前記機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、前記機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する抽出部と、
前記複数の判定済疑似教師データを用いて、前記機械学習モデルの学習を実行する学習部と、
を有する学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
従来、情報セキュリティ分野におけるマルウェアの攻撃活動の分析では、ネットワーク内の通信ログについて熟練した技術者による分析が行われている。これに対し、ネットワーク内のログに基づく、標的型攻撃やマルウェアの活動内容を表現する構造である不審活動グラフを用いて、サイバー攻撃を分析することが提案されている。
【０００３】
また、グラフ構造のデータを深層学習する事が可能なグラフ構造学習技術（以降、このようなグラフ構造学習を行う装置の一形態を「ディープテンソル」と呼ぶ。）が知られている。さらに、機械学習において判別精度を向上させる方法として、教師データを改変した疑似教師データを学習させる方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１６／１７１２４３号
【特許文献２】特開２０１１−１５４７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワーク内のログを分析する場合、各機器をノードとし、機器間の通信をエッジとしたグラフ構造のデータを機械学習することが考えられる。この場合、マルウェアによる攻撃活動が含まれるデータは、攻撃活動が含まれないデータと比べて極端に少ないため、マルウェアによる攻撃活動が含まれるデータを教師データとし、教師データを改変して疑似教師データを生成する。しかしながら、ディープテンソルでは、入力データのテンソルよりコアテンソルを抽出する処理が行われるため、教師データを改変した疑似教師データについては、必ずしも全てが判別精度を向上させるものとはならない。
【０００６】
一つの側面では、コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、学習プログラムは、コアテンソルが生成された機械学習モデルを学習する処理をコンピュータに実行させる。学習プログラムは、前記機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、前記機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する処理をコンピュータに実行させる。学習プログラムは、前記複数の判定済疑似教師データを用いて、前記機械学習モデルの学習を実行する処理をコンピュータに実行させる。
【発明の効果】
【０００８】
一つの側面では、コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例の学習装置の構成の一例を示すブロック図である。
【図２】図２は、マルウェアの攻撃活動の割合の一例を示す図である。
【図３】図３は、マルウェアの進行度の一例を示す図である。
【図４】図４は、学習に寄与しない疑似教師データの一例を示す図である。
【図５】図５は、学習に寄与しない疑似教師データの他の一例を示す図である。
【図６】図６は、学習処理の流れの一例を示す図である。
【図７】図７は、誤判定となった教師データの一例を示す図である。
【図８】図８は、疑似教師データの生成に用いる統計データの一例を示す図である。
【図９】図９は、部分グラフの更新の一例を示す図である。
【図１０】図１０は、部分グラフの更新をコアテンソルで表した場合の一例を示す図である。
【図１１】図１１は、学習に寄与するか否かを判定する判別器の一例を示す図である。
【図１２】図１２は、判別器による判定の一例を示す図である。
【図１３】図１３は、候補データを加えた教師データによる精度評価の一例を示す図である。
【図１４】図１４は、実施例の学習処理のフローチャートの一例を示す図である。
【図１５】図１５は、学習プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示する学習プログラム、学習方法および学習装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１１】
図１は、実施例の学習装置の構成の一例を示すブロック図である。図１に示す学習装置１００は、教師データが不足する場合に生成する疑似教師データについて、学習を促進させると判定した疑似教師データを抽出して機械学習モデルの学習を行う学習装置の一例である。学習装置１００は、コアテンソルが生成された機械学習モデルを学習する。学習装置１００は、機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する。学習装置１００は、複数の判定済疑似教師データを用いて、機械学習モデルの学習を実行する。これにより、学習装置１００は、コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる。
【００１２】
まず、図２および図３を用いてマルウェアの活動について説明する。図２は、マルウェアの攻撃活動の割合の一例を示す図である。図２に示すように、マルウェアは、実行時間に対して、攻撃者との通信を行う遠隔操作時間（攻撃活動）の比率が小さい。また、マルウェアによる攻撃活動がありと判定されるデータは、攻撃活動がなしと判定されるデータに比べてデータ数が極端に少ない。さらに、マルウェアには、複数の亜種が存在するため、亜種それぞれのデータ数はさらに少なくなる。例えば、図２のマルウェア「ｄ１８」と「ｄ１９」は亜種である。また、マルウェアの行動を含むログを学習する場合には、ただでさえ少ない攻撃活動ありのデータを、教師データと評価用データとに分けることが求められる。
【００１３】
図３は、マルウェアの進行度の一例を示す図である。図３に示すように、マルウェアの活動は、例えば８段階に分類することができる。マルウェアは、例えば、攻撃者との通信が成立して操作されることで、情報の流出等の実害が発生する。このため、本実施例では、図２の進行度「６」以降の攻撃者との通信が成立した状態を、攻撃されている重篤な状態であるとする。
【００１４】
次に、ディープテンソルについて説明する。ディープテンソルとは、テンソル（グラフ情報）を入力とするディープラーニングであり、ニューラルネットワークの学習とともに、判別に寄与する部分グラフ構造（以下、部分グラフまたは部分構造ともいう。）を自動的に抽出する。この抽出処理は、ニューラルネットワークの学習とともに、入力テンソルデータのテンソル分解のパラメータを学習することによって実現される。
【００１５】
例えば、あるグラフ構造データの全体を表すグラフ構造は、テンソルとして表すことができる。また、テンソルは、構造制約テンソル分解によって、コアテンソルと行列の積に近似することができる。ディープテンソルでは、コアテンソルをニューラルネットワークに入力して深層学習を行い、ターゲットコアテンソルに近くなるように、拡張誤差逆伝搬法で最適化を行う。このとき、コアテンソルをグラフで表すと、特徴が凝縮された部分構造を表すグラフとなる。すなわち、ディープテンソルは、グラフ全体からコアテンソルによって重要な部分構造を自動的に学習できる。なお、以下の説明では、ディープテンソルをＤＴ（Deep  Tensor）と表現する場合がある。
【００１６】
続いて、図４および図５を用いて疑似教師データの生成について説明する。図４は、学習に寄与しない疑似教師データの一例を示す図である。図４の例は、マルウェアによる攻撃活動が含まれるデータをグラフ構造データで表した攻撃ありのグラフ１０を教師データとして、疑似教師データを生成する場合の一例である。図４の例では、攻撃ありのグラフ１０から抽出した、判別に寄与する攻撃ありの部分グラフ１１を、攻撃なしのグラフ１２に付加することで、攻撃ありの特徴を含むグラフ１３を生成する。つまり、攻撃ありの特徴を含むグラフ１３は、教師データである攻撃ありのグラフ１０を改変した疑似教師データである。このとき、攻撃ありの特徴を含むグラフ１３は、攻撃ありのグラフ１０と類似するためバリエーションは増加している。ところが、攻撃ありの特徴を含むグラフ１３は、判別に寄与する部分グラフを抽出すると、部分グラフ１１と同様であるため、学習への寄与は乏しい。つまり、攻撃ありの特徴を含むグラフ１３は、判別精度を向上させるものでないため学習に寄与せず、疑似教師データとして適切ではない。
【００１７】
図５は、学習に寄与しない疑似教師データの他の一例を示す図である。図５の例は、攻撃ありのグラフ１０を教師データとして、乱数的に生成した部分グラフ１４を攻撃ありのグラフ１０に付加して疑似教師データを生成する場合の一例である。つまり、図５の例では、乱数的に生成した部分グラフ１４を、攻撃ありのグラフ１０に付加することで、乱数的に生成した部分グラフ１４を含むグラフ１５を生成する。すなわち、グラフ１５は、教師データである攻撃ありのグラフ１０を改変した疑似教師データである。このとき、グラフ１５は、攻撃ありのグラフ１０と類似するためバリエーションは増加している。ところが、グラフ１５を疑似教師データとして学習した場合、乱数的に生成した部分グラフ１４の特徴を学習してしまう可能性がある。つまり、グラフ１５は、不適切なデータを含むことから判別精度が低下する可能性があるため学習に寄与せず、疑似教師データとして適切ではない。
【００１８】
そこで、本実施例では、生成した疑似教師データが学習に寄与するか否かを判定し、学習に寄与する疑似教師データを教師データに追加することで判別精度を向上させる。図６は、学習処理の流れの一例を示す図である。図６に示すように、（１）学習装置１００は、教師データによる学習を行い、攻撃ありで誤判定の教師データを選択する。（２）学習装置１００は、選択教師データに対する疑似教師データ（亜種グラフ）を生成する。（３）学習装置１００では、学習に寄与する疑似教師データか否かを判定する判別器を用意する。（４）学習装置１００は、（３）の判別器を用いて、疑似教師データが学習に寄与するならば教師データに追加して再学習を行う。このように、学習装置１００は、上述の（１）〜（４）を繰り返すことで、機械学習モデルの判定精度を向上させる。
【００１９】
次に、学習装置１００の構成について説明する。図１に示すように、学習装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、学習装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００２０】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。通信部１１０は、例えば、他の端末から学習用の教師データや判定対象の新規データを受信する。また、通信部１１０は、他の端末に、学習結果や判定結果を送信する。
【００２１】
表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。
【００２２】
操作部１１２は、学習装置１００のユーザから各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、ユーザによって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。
【００２３】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、ログ記憶部１２１と、教師データ記憶部１２２と、判定済疑似教師データ記憶部１２３と、機械学習モデル記憶部１２４とを有する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。
【００２４】
ログ記憶部１２１は、例えば、他の端末等から取得したログを記憶する。ログは、例えば、端末におけるコマンドログや、通信ログが挙げられる。
【００２５】
教師データ記憶部１２２は、ログから生成されたグラフ構造データである第１教師データを記憶する。また、教師データ記憶部１２２は、第１教師データから分割された交差検定（交差検証）で用いる評価用データを記憶する。さらに、教師データ記憶部１２２は、後述する第２および第３教師データを記憶する。
【００２６】
判定済疑似教師データ記憶部１２３は、生成された疑似教師データのうち、学習に寄与すると判定された判定済疑似教師データを記憶する。
【００２７】
機械学習モデル記憶部１２４は、第１〜第３教師データを深層学習した第１機械学習モデルと、生成した疑似教師データが第１機械学習モデルの学習に寄与したか否かを判別する第２機械学習モデル（以下、判別器ともいう。）とを記憶する。つまり、第２機械学習モデルは、亜種性を判別する判別器である。ここで、第２教師データは、第１教師データに１つの判定済疑似教師データを追加した教師データである。なお、第２教師データは、第１教師データに判定済疑似教師データを１つずつ増加するように追加した教師データであってもよい。また、第３教師データは、第１教師データに判定済疑似教師データ記憶部１２３に記憶された全ての判定済疑似教師データを追加した教師データである。各機械学習モデルは、例えば、ニューラルネットワークの各種パラメータ（重み係数）や、テンソル分解の方法等を記憶する。
【００２８】
制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３０は、第１生成部１３１と、学習部１３２と、判定部１３３と、第２生成部１３４と、抽出部１３５とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００２９】
第１生成部１３１は、例えば、通信部１１０を介して、他の端末から学習用のログを取得する。第１生成部１３１は、取得したログをログ記憶部１２１に記憶する。また、第１生成部１３１は、取得したログに基づいて、グラフ構造データである第１教師データを生成する。第１生成部１３１は、生成した第１教師データをＤＴによる交差検定を行うために分割する。第１生成部１３１は、例えば、Ｋ−分割交差検証や一個抜き交差検証（LOOCV：Leave  One  Out  Cross  Validation）を用いて、第１教師データから評価用データを生成する。なお、第１生成部１３１は、第１教師データが少ない場合には、学習に用いた第１教師データを用いて正しく判定できているかどうかを検証するようにしてもよい。第１生成部１３１は、生成した第１教師データおよび評価用データを教師データ記憶部１２２に記憶する。第１生成部１３１は、第１教師データを学習部１３２に出力する。また、第１生成部１３１は、評価用データを判定部１３３および抽出部１３５に出力する。
【００３０】
第１生成部１３１は、抽出部１３５から判定済疑似教師データが入力されると、入力された判定済疑似教師データを第１教師データに追加して第２教師データを生成する。第１生成部１３１は、生成した第２教師データを学習部１３２に出力するとともに、教師データ記憶部１２２に記憶する。
【００３１】
学習部１３２は、第１生成部１３１または判定部１３３から第１〜第３教師データのうちいずれかの教師データが入力されると、第１〜第３教師データのうちいずれかの教師データを学習して第１機械学習モデルを生成する。つまり、学習部１３２は、第１〜第３教師データのうちいずれかの教師データをテンソル分解し、コアテンソル（部分グラフ構造）を生成する。学習部１３２は、生成したコアテンソルをニューラルネットワークに入力して出力を得る。学習部１３２は、出力値の誤差が小さくなるように学習するとともに、判定精度が高くなるようにテンソル分解のパラメータを学習する。テンソル分解においては自由度があり、テンソル分解のパラメータとして、分解モデル、制約、最適化アルゴリズムの組み合わせ等が挙げられる。分解モデルは、例えば、ＣＰ（Canonical  Polyadic  decomposition）やＴｕｃｋｅｒが挙げられる。制約は、例えば、直交制約、スパース制約、スムース制約、非負制約等が挙げられる。最適化アルゴリズムは、例えば、ＡＬＳ（Alternating  Least  Square）、ＨＯＳＶＤ（Higher  Order  Singular  Value  Decomposition）、ＨＯＯＩ（Higher  Order  Orthogonal  Iteration  of  tensors）等が挙げられる。ディープテンソルにおいては、「判定精度が高くなる」という制約下でテンソル分解を行う事になる。言い換えると、学習部１３２は、複数の判定済疑似教師データ（第３教師データ）を用いて、第１機械学習モデルの学習を実行する。
【００３２】
学習部１３２は、第１〜第３教師データのうちいずれかの教師データの学習が完了すると、第１機械学習モデルを機械学習モデル記憶部１２４に記憶する。なお、ニューラルネットワークは、ＲＮＮ（再帰型ニューラルネットワーク：Recurrent  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習方法は、誤差逆伝播法など様々な手法を採用することができる。
【００３３】
学習部１３２は、第２生成部１３４から第４教師データが入力されると、第１機械学習モデルに対して第４教師データを学習し、第３機械学習モデルを生成する。学習部１３２は、第４教師データの学習が完了すると、第３機械学習モデルを抽出部１３５に出力する。
【００３４】
判定部１３３は、学習部１３２で第１または第２教師データの学習が完了すると、機械学習モデル記憶部１２４の第１機械学習モデルと、第１生成部１３１から入力された評価用データとを用いて、評価用データの分類精度が要求精度を満たすか否かを判定する。すなわち、判定部１３３は、ＤＴによる交差検定結果の精度を評価し、要求精度を満たすか否かを判定する。
【００３５】
判定部１３３は、要求精度を満たすと判定した場合には、判定済疑似教師データ記憶部１２３に記憶された全ての判定済疑似教師データを第１教師データに加えた第３教師データを生成する。判定部１３３は、生成した第３教師データを学習部１３２に出力するとともに、教師データ記憶部１２２に記憶する。
【００３６】
判定部１３３は、要求精度を満たさないと判定した場合には、第２生成部１３４に対して、判定結果と、疑似教師データの生成指示とを出力する。
【００３７】
判定部１３３は、学習部１３２で第３教師データの学習が完了すると、第１機械学習モデルと、第１生成部１３１から入力された評価用データとを用いて、分類精度が要求精度を満たすか否かを判定する。すなわち、判定部１３３は、ＤＴによる判定結果の精度を評価し、所定の精度を満たすことを確認する。なお、判定部１３３は、判定結果の精度が所定の精度を満たさない場合には、第３教師データを生成する際に加える判定済疑似教師データを減少させる等の変更を加えて、再度、学習および判定を行う。
【００３８】
第２生成部１３４は、判定部１３３から判定結果および生成指示が入力されると、教師データ記憶部１２２を参照し、第１教師データのうち、判定結果が誤判定となった教師データを疑似教師データのターゲットに決定して選択教師データとする。第２生成部１３４は、ログ記憶部１２１を参照し、一部分を更新した更新ログを生成する。第２生成部１３４は、生成した更新ログに基づいて、選択教師データの疑似教師データを生成する。
【００３９】
第２生成部１３４は、第１教師データから選択教師データと類似する種類（同じ種類）のマルウェアに対応する同種教師データと、第１教師データのうち選択教師データと異なる種類のマルウェアに対応する異種教師データとを抽出する。第２生成部１３４は、選択教師データと、抽出した同種教師データおよび異種教師データとを学習して、学習に寄与するか否かを判定する判別器を生成する。つまり、第２生成部１３４は、学習部１３２と同様に、選択教師データと、抽出した同種教師データおよび異種教師データとをテンソル分解し、コアテンソル（部分グラフ構造）を生成する。第２生成部１３４は、生成したコアテンソルをニューラルネットワークに入力して出力を得る。第２生成部１３４は、出力値の誤差が小さくなるように学習するとともに、判定精度が高くなるようにテンソル分解のパラメータを学習する。第２生成部１３４は、生成した判別器を機械学習モデル記憶部１２４に記憶する。
【００４０】
第２生成部１３４は、生成した判別器を用いて、選択教師データから生成した疑似教師データが、学習に寄与するか否かを判定する。第２生成部１３４は、学習に寄与しないと判定した場合には、再度、疑似教師データを生成する。第２生成部１３４は、学習に寄与すると判定した場合には、当該疑似教師データを候補データとする。第２生成部１３４は、候補データを第１教師データに追加して第４教師データを生成する。第２生成部１３４は、生成した第４教師データを学習部１３２に出力する。
【００４１】
言い換えると、第２生成部１３４は、誤判定となった教師データと類似する種類の教師データを正例とし、誤判定となった教師データと異なる種類の教師データ、および、誤判定となった教師データ自体を負例とした判別器を生成する。第２生成部１３４は、当該判別器を用いて、コアテンソルが変化したと判定された疑似教師データを、判定済疑似教師データの候補データとする。
【００４２】
ここで、図７から図１２を用いて候補データの生成について説明する。図７は、誤判定となった教師データの一例を示す図である。図７に示す教師データ群１７は、第１教師データのうち、攻撃ありの教師データである。また、教師データ群１８は、第１教師データのうち、攻撃なしの教師データである。第２生成部１３４は、教師データ群１７，１８について、学習および評価を行うことで、それぞれ正誤判定結果１９，２０を得る。正誤判定結果１９では、結果２１，２２が誤判定となっている。また、正誤判定結果２０では、結果２３が誤判定となっている。つまり、結果２１，２２は、本来攻撃ありであるはずが、攻撃なしと判定されている。また、結果２３は、本来攻撃なしであるはずが、攻撃ありと判定されている。
【００４３】
従って、結果２１，２２に対応する教師データ２１ａ，２２ａ、および、結果２３に対応する教師データ２３ａが、誤判定となった教師データである。ここで、第２生成部１３４は、本来攻撃ありであるはずが、攻撃なしと判定されている教師データ２１ａ，２２ａを、教師データ２３ａよりも優先し、まず、教師データ２１ａをターゲットに決定する。図７のグラフ２４は、教師データ２１ａをグラフ構造で表現したものである。
【００４４】
図８は、疑似教師データの生成に用いる統計データの一例を示す図である。図８に示す統計データ２５は、更新前の攻撃ありの場合のログの一例である。第２生成部１３４は、統計データ２５の要素の一部分を更新し、更新ログである統計データ２６を生成する。統計データ２６は、攻撃ありの場合の統計データ２５をベースとしつつ、統計データ２５とは異なり新たな情報を含むため、第１機械学習モデルの学習に寄与する可能性がある。なお、更新ログは、セキュリティ分野の知見やルールベースの知識等から生成するようにしてもよい。また、ログは、攻撃活動がなしの場合のログを用いてもよい。
【００４５】
図９は、部分グラフの更新の一例を示す図である。図９に示す部分グラフ２７，２８は、図８の統計データ２５，２６の特徴部分に対応する部分グラフを表したものである。つまり、部分グラフ２７は、統計データ２６を用いて更新することで、部分グラフ２８となる。
【００４６】
図１０は、部分グラフの更新をコアテンソルで表した場合の一例を示す図である。図１０に示すグラフ２９ａは、特徴部分である部分グラフをコアテンソル２９ｂとして表すことができる。グラフ２９ａは、更新前の攻撃ありの教師データ、つまり選択教師データに対応する。第２生成部１３４は、グラフ２９ａに対応するログの一部分を更新し、グラフ３０ａを生成する。グラフ３０ａは、特徴部分である部分グラフをコアテンソル３０ｂとして表すことができる。グラフ３０ａは、更新後の攻撃ありの教師データ、つまり疑似教師データに対応する。すなわち、グラフ３０ａは、グラフ２９ａのコアテンソル２９ｂがコアテンソル３０ｂに変化したグラフであるといえる。従って、グラフ３０ａに対応する疑似教師データは、学習に寄与する可能性があるといえる。
【００４７】
図１１は、学習に寄与するか否かを判定する判別器の一例を示す図である。図１１に示す選択教師データ３１は、ターゲットＡ（マルウェアＡ）に対応する。同種教師データ３２ａ〜３２ｃは、マルウェアＡと類似する種類、つまりマルウェアＡの亜種であるマルウェアＡ’〜Ａ’’’に対応する。異種教師データ３３ａ〜３３ｃは、マルウェアＡと異なる種類のマルウェアＢ’〜Ｂ’’’に対応する。第２生成部１３４は、同種教師データ３２ａ〜３２ｃを正例（学習に寄与する）とし、選択教師データ３１と、異種教師データ３３ａ〜３３ｃとを負例（学習に寄与しない）としてディープテンソルにより学習を行って判別器３４を生成する。
【００４８】
図１２は、判別器による判定の一例を示す図である。図１２は、図１１に示す判別器３４を用いて、図１０に示すグラフ２９ａ，３０ａを判定した場合を示す。図１２に示すように、グラフ２９ａは、選択教師データ、つまり誤判定となった教師データに対応するため、判別器３４での判定結果は寄与しないとなる。一方、グラフ３０ａは、疑似教師データに対応し、判別器３４での判定結果は寄与するであったとする。この場合、第２生成部１３４は、グラフ３０ａに対応する疑似教師データを候補データとする。
【００４９】
図１３は、候補データを加えた教師データによる精度評価の一例を示す図である。図１３に示す教師データ群１７ｂは、図７に示す教師データ群１７に、候補データ２１ｂを加えた教師データ群である。第２生成部１３４は、教師データ群１７ｂ，１８について、学習および評価を行うことで、それぞれ正誤判定結果３５，３６を得る。第２生成部１３４は、正誤判定結果３５において、教師データ２１ａに対応する結果２１ｃ（ターゲット）が正しく判定できた場合、候補データ２１ｂを教師データ群１７に追加した教師データ群１７ｂを採用する。一方、第２生成部１３４は、教師データ２１ａに対応する結果２１ｃ（ターゲット）が正しく判定できなかった場合、候補データ２１ｂを教師データ群１７に追加せず、候補データを再度生成し直す。これにより、第２生成部１３４は、学習に寄与する候補データを生成することができる。
【００５０】
図１の説明に戻って、抽出部１３５は、学習部１３２から第３機械学習モデルが入力されると、入力された第３機械学習モデルと第１生成部１３１から入力された評価用データとを用いて、交差検定を行う。抽出部１３５は、交差検定を行った結果、評価用データの分類精度が第１機械学習モデルと比較して向上したか否かを判定する。すなわち、抽出部１３５は、ＤＴによる交差検定結果の精度を評価し、交差検定の精度が向上したか否かを判定する。抽出部１３５は、交差検定の精度が向上していないと判定した場合には、候補データを破棄し、第２生成部１３４に対して次の疑似教師データの生成を指示する。
【００５１】
抽出部１３５は、交差検定の精度が向上したと判定した場合には、候補データを判定済疑似教師データとして抽出し、判定済疑似教師データ記憶部１２３に記憶する。また、抽出部１３５は、抽出した判定済疑似教師データを第１生成部１３１に出力する。
【００５２】
言い換えると、抽出部１３５は、第１機械学習モデルに対する複数の教師データ（第１教師データ）から生成された複数の疑似教師データから、第１機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する。また、複数の疑似教師データは、複数の教師データ（第１教師データ）を用いた交差検定において、誤判定となった教師データ（選択教師データ）を学習対象として生成された疑似教師データである。また、抽出部１３５は、第２生成部１３４において生成された候補データから、複数の判定済疑似教師データを抽出する。また、抽出部１３５は、候補データを加えた教師データを用いて（第３機械学習モデルを用いて）交差検定の精度評価を行い、精度が向上した場合に、候補データを判定済疑似教師データとして抽出する。
【００５３】
次に、実施例の学習装置１００の動作について説明する。図１４は、実施例の学習処理のフローチャートの一例を示す図である。
【００５４】
第１生成部１３１は、例えば、他の端末から学習用のログを取得する。第１生成部１３１は、取得したログをログ記憶部１２１に記憶する。また、第１生成部１３１は、取得したログに基づいて、グラフ構造データである第１教師データを生成する（ステップＳ１）。第１生成部１３１は、第１教師データから評価用データを生成する。第１生成部１３１は、生成した第１教師データおよび評価用データを教師データ記憶部１２２に記憶する。第１生成部１３１は、第１教師データを学習部１３２に出力する。また、第１生成部１３１は、評価用データを判定部１３３および抽出部１３５に出力する。
【００５５】
学習部１３２は、第１生成部１３１から第１または第２教師データが入力されると、第１または第２教師データを学習して第１機械学習モデルを生成する。学習部１３２は、生成した第１機械学習モデルを機械学習モデル記憶部１２４に記憶する。
【００５６】
判定部１３３は、学習部１３２で第１または第２教師データの学習が完了すると、機械学習モデル記憶部１２４の第１機械学習モデルと、第１生成部１３１から入力された評価用データとを用いて、ＤＴによる交差検定を行う（ステップＳ２）。判定部１３３は、ＤＴによる交差検定結果の精度を評価し（ステップＳ３）、要求精度を満たすか否かを判定する（ステップＳ４）。判定部１３３は、要求精度を満たさないと判定した場合には（ステップＳ４：否定）、第２生成部１３４に対して、判定結果と、疑似教師データの生成指示とを出力する。
【００５７】
第２生成部１３４は、判定部１３３から判定結果および生成指示が入力されると、教師データ記憶部１２２を参照し、第１教師データのうち、判定結果が誤判定となった教師データを疑似教師データのターゲットに決定して選択教師データとする。第２生成部１３４は、ログ記憶部１２１を参照し、一部分を更新した更新ログを生成する。第２生成部１３４は、生成した更新ログに基づいて、選択教師データの疑似教師データを生成する（ステップＳ５）。
【００５８】
第２生成部１３４は、第１教師データから選択教師データと類似する種類のマルウェアに対応する同種教師データと、第１教師データのうち選択教師データと異なる種類のマルウェアに対応する異種教師データとを抽出する。第２生成部１３４は、選択教師データと、抽出した同種教師データおよび異種教師データとを学習して、学習に寄与するか否かを判定する判別器を生成する。第２生成部１３４は、生成した判別器を機械学習モデル記憶部１２４に記憶する。
【００５９】
第２生成部１３４は、生成した判別器を用いて、選択教師データから生成した疑似教師データが、学習に寄与するか否かを判定する（ステップＳ６）。第２生成部１３４は、学習に寄与しないと判定した場合には（ステップＳ６：否定）、ステップＳ５に戻る。第２生成部１３４は、学習に寄与すると判定した場合には（ステップＳ６：肯定）、当該疑似教師データを候補データとする。第２生成部１３４は、候補データを第１教師データに追加して第４教師データを生成する（ステップＳ７）。第２生成部１３４は、生成した第４教師データを学習部１３２に出力する。
【００６０】
学習部１３２は、第２生成部１３４から第４教師データが入力されると、第１機械学習モデルに対して第４教師データを学習し、第３機械学習モデルを生成する。学習部１３２は、第４教師データの学習が完了すると、第３機械学習モデルを抽出部１３５に出力する。
【００６１】
抽出部１３５は、学習部１３２から第３機械学習モデルが入力されると、入力された第３機械学習モデルと第１生成部１３１から入力された評価用データとを用いて、ＤＴによる交差検定を行う（ステップＳ８）。抽出部１３５は、ＤＴによる交差検定結果の精度を評価し、交差検定の精度が向上したか否かを判定する（ステップＳ９）。抽出部１３５は、交差検定の精度が向上していないと判定した場合には（ステップＳ９：否定）、候補データを破棄し（ステップＳ１０）、ステップＳ５に戻る。
【００６２】
抽出部１３５は、交差検定の精度が向上したと判定した場合には（ステップＳ９：肯定）、候補データを判定済疑似教師データとして抽出し（ステップＳ１１）、判定済疑似教師データ記憶部１２３に記憶する。抽出部１３５は、抽出した判定済疑似教師データを第１生成部１３１に出力する。
【００６３】
第１生成部１３１は、抽出部１３５から判定済疑似教師データが入力されると、入力された判定済疑似教師データを第１教師データに追加して第２教師データを生成する（ステップＳ１２）。第１生成部１３１は、生成した第２教師データを学習部１３２に出力し、ステップＳ２に戻る。
【００６４】
判定部１３３は、ステップＳ４において、要求精度を満たすと判定した場合には（ステップＳ４：肯定）、判定済疑似教師データ記憶部１２３に記憶された全ての判定済疑似教師データを第１教師データに加えた第３教師データを生成する。判定部１３３は、生成した第３教師データを学習部１３２に出力する。
【００６５】
学習部１３２は、判定部１３３から第３教師データが入力されると、第３教師データを学習して第１機械学習モデルを生成する。学習部１３２は、生成した第１機械学習モデルを機械学習モデル記憶部１２４に記憶する。
【００６６】
判定部１３３は、学習部１３２で第３教師データの学習が完了すると、第１機械学習モデルと、第１生成部１３１から入力された評価用データとを用いて、分類精度が要求精度を満たすか否かを判定する。すなわち、学習部１３２および判定部１３３は、ＤＴによる学習および判定を行い（ステップＳ１３）、判定結果の精度を評価して所定の精度を満たすことを確認し（ステップＳ１４）、学習処理を終了する。これにより、学習装置１００は、コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる。また、学習装置１００は、攻撃活動があるデータのバリエーションを補完することができる。
【００６７】
このように、学習装置１００は、コアテンソルが生成された機械学習モデルを学習する。また、学習装置１００は、機械学習モデルに対する複数の教師データから生成された複数の疑似教師データから、機械学習モデルの学習を促進させると判定した複数の判定済疑似教師データを抽出する。また、学習装置１００は、複数の判定済疑似教師データを用いて、機械学習モデルの学習を実行する。その結果、学習装置１００は、コアテンソルを用いる機械学習モデルについて、疑似教師データの学習による判別精度低下を防止することができる。
【００６８】
また、学習装置１００では、複数の疑似教師データは、複数の教師データを用いた交差検定において、誤判定となった教師データを学習対象として生成された疑似教師データである。その結果、学習装置１００は、誤判定となった教師データを学習して、判別精度を向上させることができる。
【００６９】
また、学習装置１００は、誤判定となった教師データと類似する種類の教師データを正例とし、誤判定となった教師データと異なる種類の教師データ、および、誤判定となった教師データ自体を負例とした判別器を生成する。また、学習装置１００は、当該判別器を用いて、コアテンソルが変化したと判定された疑似教師データを、判定済疑似教師データの候補データとし、該候補データから複数の判定済疑似教師データを抽出する。その結果、学習装置１００は、学習に寄与する疑似教師データを学習して、判別精度を向上させることができる。
【００７０】
また、学習装置１００は、候補データを加えた教師データを用いて交差検定の精度評価を行い、精度が向上した場合に、候補データを判定済疑似教師データとして抽出する。その結果、学習装置１００は、判別精度が向上する疑似教師データを学習することができる。
【００７１】
なお、上記実施例では、ニューラルネットワークとして、ＲＮＮを一例として挙げたが、これに限定されない。例えば、ＣＮＮ（Convolutional  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。また、機械学習としては、ニューラルネットワーク以外にも、ＳＶＭ（Support  Vector  Machine）等の各種手法を用いてもよい。
【００７２】
また、上記実施例では、学習に寄与しないと判定された疑似教師データや、交差検定の精度が向上しないと判定された候補データは破棄していたが、これに限定されない。例えば、これらの疑似教師データや候補データを記憶しておき、学習が進んだ段階で再利用するようにしてもよい。
【００７３】
また、上記実施例では、１つのターゲットとなる誤判定となった教師データに対して、１つの判定済疑似教師データを用いたが、これに限定されない。例えば、１つのターゲットに対して、複数の判定済疑似教師データを用いてもよいし、複数のターゲットに対して複数の判定済疑似教師データを同時に追加するようにしてもよい。
【００７４】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第２生成部１３４と抽出部１３５とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【００７５】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００７６】
ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１５は、学習プログラムを実行するコンピュータの一例を示す図である。
【００７７】
図１５に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線または無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。
【００７８】
ハードディスク装置２０８には、図１に示した第１生成部１３１、学習部１３２、判定部１３３、第２生成部１３４および抽出部１３５の各処理部と同様の機能を有する学習プログラムが記憶される。また、ハードディスク装置２０８には、ログ記憶部１２１、教師データ記憶部１２２、判定済疑似教師データ記憶部１２３、機械学習モデル記憶部１２４、および、学習プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００のユーザから操作情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００のユーザに対して表示画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【００７９】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した第１生成部１３１、学習部１３２、判定部１３３、第２生成部１３４および抽出部１３５として機能させることができる。
【００８０】
なお、上記の学習プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの学習プログラムを記憶させておき、コンピュータ２００がこれらから学習プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８１】
１００  学習装置
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  ログ記憶部
１２２  教師データ記憶部
１２３  判定済疑似教師データ記憶部
１２４  機械学習モデル記憶部
１３０  制御部
１３１  第１生成部
１３２  学習部
１３３  判定部
１３４  第２生成部
１３５  抽出部
【図１】
2020061007.tif 000003
【図２】
2020061007.tif 000004
【図３】
2020061007.tif 000005
【図４】
2020061007.tif 000006
【図５】
2020061007.tif 000007
【図６】
2020061007.tif 000008
【図７】
2020061007.tif 000009
【図８】
2020061007.tif 000010
【図９】
2020061007.tif 000011
【図１０】
2020061007.tif 000012
【図１１】
2020061007.tif 000013
【図１２】
2020061007.tif 000014
【図１３】
2020061007.tif 000015
【図１４】
2020061007.tif 000016
【図１５】
2020061007.tif 000017