JP2019049783A - 機械学習プログラム、機械学習方法、および機械学習装置 - Google Patents

機械学習プログラム、機械学習方法、および機械学習装置 Download PDF

Info

Publication number
JP2019049783A
JP2019049783A JP2017172626A JP2017172626A JP2019049783A JP 2019049783 A JP2019049783 A JP 2019049783A JP 2017172626 A JP2017172626 A JP 2017172626A JP 2017172626 A JP2017172626 A JP 2017172626A JP 2019049783 A JP2019049783 A JP 2019049783A
Authority
JP
Japan
Prior art keywords
input
value
neural network
values
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017172626A
Other languages
English (en)
Other versions
JP6898562B2 (ja
Inventor
弘治 丸橋
Hiroharu Maruhashi
弘治 丸橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017172626A priority Critical patent/JP6898562B2/ja
Priority to US16/125,420 priority patent/US11514308B2/en
Publication of JP2019049783A publication Critical patent/JP2019049783A/ja
Application granted granted Critical
Publication of JP6898562B2 publication Critical patent/JP6898562B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ニューラルネットワークによる分類精度を向上させる。【解決手段】機械学習装置10は、複数の項目それぞれの変数値と、ニューラルネットワーク1の入力層の次の層のニューロンとの組ごとに設定された第1パラメータ値に基づいて、組み合わせパタンと次の層のニューロンとの組ごとの第2パラメータ値を算出する。第2パラメータ値は、組み合わせパタンに含まれる変数値それぞれと次の層のニューロンとの組の第1パラメータ値の積である。次に機械学習装置10は、算出した第2パラメータ値を、次の層のニューロンに入力する数値に対する重み値として用いて、入力順序に従った複数の数値の入力に応じたニューラルネットワーク1の出力値を算出する。さらに機械学習装置10は、出力値と教師データ3との誤差に基づいて、照合パタン11aの複数の基準値と第1パラメータ値とを更新する。【選択図】図1

Description

本発明は、機械学習プログラム、機械学習方法、および機械学習装置に関する。
ニューラルネットワークを利用して、コンピュータに機械学習を行わせることができる。例えばコンピュータは、学習対象の入力データをニューラルネットワークの入力層に入力する。次にコンピュータは、ニューラルネットワーク内のユニットごとに、予め定義された処理を入力データに対して実行し、その結果を次の層のユニットへの入力とする。ニューラルネットワークの出力層まで処理が到達すると、コンピュータは出力層での処理結果を、出力データとして出力する。そしてコンピュータは、入力データに対応付けられた教師データの値と出力データとを比較し、値に差があれば、その差が縮まるようにニューラルネットワークを修正する。このような処理を繰り返すことで、入力データを所定の基準で分類できるニューラルネットワークが作成される。例えば、ある一定期間内のネットワークの通信ログから、その期間内に不正行為が行われているか否かを分類するニューラルネットワークが作成できる。
なお、ニューラルネットワークは、教師データの数と比較して、1つの教師データで入力される数値の数が多い場合、過学習になりやすい。過学習は、過剰適合とも呼ばれる。過学習は、教師データに過剰に適合してしまい、教師データの分類精度は高いが、教師データ以外のデータの分類精度が低い状態である。ニューラルネットワークにおいては、このような過学習を避けるための技術が適用される場合もある。
ニューラルネットワークを用いた技術としては、例えば入力文字を正しく分類することにより、精度よく文字を認識できる文字認識装置がある。また微分値を用いてニューラルネットワークの修正の振動を防ぐことによる、高速で精度の良いニューラルネットワークの学習方法も考えられている。さらに各学習データの学習のしやすさ、データパタンなどの分類や分類ごとのデータ数によらず、各データを均一、かつ高速に学習させるニューラルネットワークの学習装置もある。グラフデータの各ノードの近傍ノードを順序付け、近傍ノード間の関係に同じ重みを与える畳み込みニューラルネットワーク学習技術もある。
その他、コンピュータによる知識の学習に関する技術として、例えば学習効率をよくするためのパタン認識のためのモデル学習方法がある。また学習時に用いた入力パラメータ値と異なる入力パタンを受けた場合にも実用的な空燃比制御などを行うことができ、ニューラルネットワークの安定性を保証する、ニューラルネットワークを用いたパラメータ推定装置もある。
特開平8−329196号公報 特開平9−81535号公報 特開平9−138786号公報 特開平9−90981号公報 特開平11−224106号公報
Mathias Niepert, Mohamed Ahmed, Konstantin Kutzkov, "Learning Convolutional Neural Networks for Graphs", Proceedings of The 33rd International Conference on Machine Learning, ICML, 8 June 2016, pp. 2014-2023
人またはものの関係をニューラルネットワークで学習する場合において、入力層へ入力する値の順番が、出力層における出力値に影響する場合がある。すなわち、入力層への入力する値の順番が不適切であることが、分類精度低下の原因となる。そこで、正確な学習を行うには、教師データに示される複数の値を、適切な順番で入力することが重要となる。しかし、入力データに含まれる値の数が多い場合、それらの値の適切な入力順を決定するのは容易ではない。しかも、入力データに含まれる値の数が多いことが過学習を引き起こし、分類精度の低下を招く可能性もある。
1つの側面では、本件は、ニューラルネットワークによる分類精度を向上させることを目的とする。
1つの案では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。
まずコンピュータは、複数の数値を含む入力データと、入力データに対する分類の正解を示す教師データとを取得する。次にコンピュータは、複数の項目それぞれの変数値の組み合わせパタンごとの基準値の配列により、ニューラルネットワークへ入力する数値の順序付けの基準が示された照合パタンに基づいて、入力データに含まれる複数の数値それぞれを組み合わせパタンのいずれかに対応付けることで、複数の数値それぞれの入力順序を決定する。次にコンピュータは、複数の項目それぞれの変数値と、ニューラルネットワークの入力層の次の層のニューロンとの組ごとに設定された第1パラメータ値に基づいて、組み合わせパタンと次の層のニューロンとの組それぞれについて、組み合わせパタンに含まれる変数値それぞれと次の層のニューロンとの組の第1パラメータ値の積を、組み合わせパタンに対応付けられた数値を次の層のニューロンへ入力する際の重み値を示す第2パラメータ値に決定する。次にコンピュータは、次の層のニューロンへ入力する数値の重み値として第2パラメータ値を用いて、入力順序に従った複数の数値の入力に応じたニューラルネットワークの出力値を算出する。次にコンピュータは、出力値と教師データとの誤差に基づいて、ニューラルネットワークで正解を得るための、ニューラルネットワークの入力層と次の層とのそれぞれへの入力値の誤差とを算出する。そしてコンピュータは、入力層と次の層とのそれぞれへの入力値の誤差に基づいて、照合パタンの複数の基準値と第1パラメータ値とを更新する。
1態様によれば、ニューラルネットワークによる分類精度を向上させることができる。
第1の実施の形態に係る機械学習装置の構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。 監視サーバの機能の一例を示すブロック図である。 通信ログ記憶部の一例を示す図である。 教師データ記憶部の一例を示す図である。 学習結果記憶部の一例を示す図である。 過学習の抑止策を適用しない場合のデータの分類方法を示す図である。 照合パタンの適正化の概要を示す図である。 過学習の抑止策を適用しない場合の機械学習処理の手順を示すフローチャートの一例である。 機械学習に利用するニューラルネットワークの一例を示す図である。 機械学習の例を示す第1の図である。 機械学習の例を示す第2の図である。 機械学習の例を示す第3の図である。 機械学習の例を示す第4の図である。 機械学習の例を示す第5の図である。 機械学習の例を示す第6の図である。 過学習となる場合の例を示す図である。 変換データの自由度が低い場合の例を示す図である。 入力層の次の層の複数のニューロンそれぞれとの間のパラメータ数の削減例を示す図である。 パラメータ数を削減した場合の分類の特徴の削減後のパラメータへの反映例を示す図である。 過学習の抑止策を適用する場合の機械学習処理の手順を示すフローチャートの一例である。 パラメータの初期化の一例を示す図である。 パラメータの部分微分の算出例を示す図である。 学習によって得られるパラメータの一例を示す図である。 化合物の分類例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態に係る機械学習装置について説明する。
図1は、第1の実施の形態に係る機械学習装置の構成例を示す図である。機械学習装置10は、記憶部11と処理部12とを有する。機械学習装置10は、例えばコンピュータである。記憶部11は、例えば機械学習装置10が有するメモリまたはストレージ装置により実現することができる。処理部12は、例えば機械学習装置10が有するプロセッサにより実現することができる。
記憶部11は、照合パタン11aと、ニューラルネットワーク1のパラメータとを記憶する。照合パタン11aには、複数の項目(項S、項R、項P)それぞれの変数値の組み合わせパタンごとの基準値の配列により、ニューラルネットワーク1へ入力する数値の順序付けの基準が示されている。ニューラルネットワーク1は、入力層、中間層、出力層で構成されており、図1の例では中間層は1層のみである。この場合、記憶部11は、入力層と中間層との間のパラメータ(入力層・中間層間パラメータ11b)と、中間層と出力層の間のパラメータ(中間層・出力層間パラメータ11c)とを記憶する。
処理部12は、複数の数値を含む入力データ2と、入力データ2に対する分類の正解を示す教師データ3とを取得する。入力データ2には、例えば、複数の項目(項S、項R、項P)それぞれの入力変数値の組み合わせパタンごとの数値が設定されている。入力データ2の一項目の2以上の入力変数値の間に、入力変数値を含む組み合わせパタンに設定された数値に相関がある場合がある。
例えば入力データ2が、ネットワーク間の通信の観測結果であるものとする。この場合、入力データ2の各項目として、例えば通信元ホスト、通信先ホスト、ポートが設けられる。通信元ホストの入力変数値は、パケットを送信した装置の識別子である。通信先ホストの入力変数値は、パケットを受信した装置の識別子である。ポートの入力変数値は、パケットを受信した装置におけるパケットを受信したポートのポート番号である。このような入力データ2では、複数の項目それぞれの入力変数値の組み合わせに対して、通信の頻度を示す数値が設定される。複数の項目それぞれの入力変数値の組み合わせは、入力変数値間の関係を表している。そして、例えば共通の通信先ホストとポートの組に対して高頻度でパケットを送信する通信元ホストが複数ある場合、それらの通信元ホストは相関があるといえる。
入力データ2のいずれかの項目の2以上の入力変数値の間の相関の発生状況が、ニューラルネットワーク1の学習結果に、強く影響する場合がある。この場合、相関の発生状況に関する特徴を維持したまま、ニューラルネットワークのパラメータ数を削減できれば、過学習を抑止できる。
そこで、入力層・中間層間パラメータ11bの値として、複数の項目(項S、項R、項P)それぞれの変数値と、ニューラルネットワーク1の中間層のニューロンとの組ごとに設定された第1パラメータ値が用いられる。「項S」の変数値の数が「3」、「項R」の変数値の数が「2」、「項R」の変数値の数が「3」であれば、第1パラメータ値の数は「16」となる。この第1パラメータ値の数は、中間層のニューロンに入力される数値の総数(18×2=36)よりも少ない。そのため、ニューラルネットワーク1の出力値を計算する際における、中間層のニューロンに入力される数値それぞれに対する重みとしては、第1パラメータの積で表現した第2パラメータが用いられる。具体的には、以下の通りである。
入力データ2と教師データ3とを取得した処理部12は、照合パタン11aに基づいて、入力データ2に含まれる複数の数値それぞれを組み合わせパタンのいずれかに対応付けることで、複数の数値それぞれの入力順序を決定する。例えば処理部12は、複数の入力変数値それぞれを、照合パタンに示される複数の変数値のいずれかに変換して、変換後の変数値の組み合わせパタンを照合パタン11aに合わせて並べ替えることで、変換データ4を生成する。そして処理部12は、変換データ4に示される数値の順番を、複数の数値それぞれの入力順序とする。
この際、処理部12は、照合パタン11aに示される基準値の配列と、変換データ4の数値の配列との類似度が最大となるように、複数の数値それぞれの入力順序を決定する。例えば処理部12は、入力順序が上位の数値から順に並べた複数の数値の配列を成分とした第1ベクトルを生成する。そして処理部12は、照合パタン11a内の複数の基準値を成分とする第2ベクトルと第1ベクトルとの内積が最大となるように、第1ベクトル内の成分の順番を入れ替えることで、複数の数値の入力順序を決定する。
次に処理部12は、第1パラメータ値に基づいて、変数値の組み合わせパタンと中間層のニューロンとの組ごとに、該当する組み合わせパタンに対応付けられた数値を、該当する次の層(中間層)のニューロンへ入力する際の重み値を示す第2パラメータ値を決定する。例えば処理部12は、変数値の組み合わせパタンに含まれる変数値それぞれと中間層のニューロンとの組の第1パラメータ値の積を、第2パラメータ値とする。
次に処理部12は、決定した入力順序に従った複数の数値の入力に応じたニューラルネットワーク1の出力値を算出する。図1では、ニューラルネットワーク1の入力層のユニットが縦に並んで示されており、入力順序が上位の数値ほど、上に配置されたユニットへの入力となるように、複数の数値が入力層の複数のユニットに入力される。なお入力層の1つのユニットには、1つの数値のみが入力されるものとする。出力値を算出する際、処理部12は、変数値の組み合わせパタンと中間層のニューロンとの組それぞれに対応する第2パラメータ値を、変換データ4において該当する組み合わせパタンに対応付けられた数値を次の層(中間層)のニューロンに入力するときの、重み値として用いる。
次に処理部12は、出力値と教師データ3との誤差に基づいて、ニューラルネットワーク1で正解を得るための、ニューラルネットワーク1の入力層と中間層とのそれぞれへの入力値の誤差5を算出する。例えば処理部12は、ニューラルネットワーク1の誤差逆伝播法により、入力値の誤差5を算出する。
処理部12は、入力層への入力値の誤差に基づいて、照合パタン11aの複数の基準値を更新する。例えば処理部12は、照合パタン11aの複数の基準値それぞれを変化対象値として選択する。そして処理部12は、変化対象値として選択した基準値ごとに以下の処理を実行する。
処理部12は、変化対象値を所定量だけ増加または減少させた仮照合パタンに基づいて複数の数値それぞれの仮の入力順序を決定する。例えば処理部12は、仮照合パタンとの類似度が最大となるように入力データ2の数値を並べ替えた変換データを生成する。次に処理部12は、照合パタン11aに基づいて決定した入力順序と、仮照合パタンに基づいて決定した仮の入力順序とにおいて、同じ順番となる数値間の差分値を算出する。
次に処理部12は、入力層の複数のユニットへの入力値の誤差と、同じ順番となる数値間の差分値とに基づいて、照合パタン11a内の変化対象値に対応する基準値の増加または減少を決定する。例えば処理部12は、入力値の誤差を成分とする第3ベクトルと、仮の入力順序が上位の方から並べられた、同じ順番の数値との差分値を成分とする第4ベクトルとの内積に基づいて、変化対象値に対応する基準値の増加または減少を決定する。
変化対象値を所定量だけ増加させたのであれば、処理部12は、内積の符号が正のとき基準値の値を減少させると決定し、内積の符号が負のとき基準値の値を増加させると決定する。また変化対象値を所定量だけ減少させたのであれば、処理部12は、内積の符号が正のとき基準値の値を増加させると決定し、内積の符号が負のとき基準値の値を減少させると決定する。
照合パタン11aのすべての基準値に対応する変動値を算出すると、処理部12は、増加または減少の決定に従って、変化対象値として選択された照合パタン11aの基準値を更新し、更新後の照合パタンを得る。例えば処理部12は、ニューラルネットワーク1のステップサイズ(図1の例では「2」)を変動値に乗算し、乗算結果を、照合パタン11a内のその変動値に対応する基準値から減算する。
処理部12は、このような照合パタン11aの更新処理を、例えば更新前の照合パタン11aと更新後の照合パタン11aの基準値の差が所定値以下になるまで繰り返す。その結果、入力データ2を適正に並べ替える基準を示す照合パタン11aが得られる。
また処理部12は、中間層への入力値の誤差に基づいて入力層・中間層間パラメータの値(第1パラメータ値)を更新する。さらに処理部12は、出力値と教師データとの誤差に基づいて、中間層・出力層間パラメータの値を更新する。第1パラメータ値の更新では、処理部12は、例えば誤差逆伝播により、正解を得るために第2パラメータ値を増加させるのが適切と判定した場合、その第2パラメータ値の算出に用いた第1パラメータ値を増加させる。また処理部12は、正解を得るために第2パラメータ値を減少させるのが適切と判定した場合、その第2パラメータ値の算出に用いた第1パラメータ値を減少させる。
このように第1の実施の形態では、各項目の変数値の組み合わせ(変数値間の関係)と中間層の各ニューロンとの間の第2パラメータを、関係を構成する変数値それぞれと各ニューロンとの間のパラメータの積により表現している。これにより、入力層と中間層との間のパラメータの数を削減することができる。パラメータの数が削減されたことで、過学習が抑止される。
しかも入力データに各項目間で相関の強い変数値の集合が多数含まれており、かつ、強い相関を持つ変数値の集合同士の変数値の関係の仕方が分類の特徴として重要であれば、パラメータ数を削減しても、入力データの特徴は損なわれない。例えば、「項S」の1番目の変数値「S’1」と2番目の変数値「S’2」、「項R」の1番目の変数値「R’1」、および「P項」の1番目の変数値「P’1」と2番目の変数値「P’2」の集合が、強い相関を持つ変数値の集合であるものとする。この場合、学習の結果、強い相関を持つ変数値の集合に含まれる変数値による変数値の組み合わせパタンは、中間層の共通のニューロン(図1の例では1番目のニューロン)との組に対応する第2パラメータ値が高くなる。これは、入力層・中間層間パラメータ11bでは、強い相関を持つ複数の変数値「S’1」、「S’2」、「R’1」、「P’1」それぞれの1番目のニューロンとの間の第1パラメータ値が、他よりも高くなることで表される。すなわち、強い相関を持つ変数値の集合同士の変数値の関係を、少ないパラメータ数で表すことが可能となっている。
強い相関を持つ変数値の集合同士の変数値の関係の仕方が分類の特徴として重要な場合、強い相関を持つ変数値の集合同士の変数値の関係を示す特徴が失われなければ、分類精度の低下が抑止される。すなわち、パラメータ数を削減したことによる分類精度の低下は抑止されている。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、コンピュータネットワーク上の通信ログに基づいて、不正な通信の有無を、ニューラルネットワークを用いて解析するものである。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20には、複数のサーバ211,212,・・・、複数の端末装置221,222,・・・、および監視サーバ100が接続されている。複数のサーバ211,212,・・・は、いずれかの端末装置からの要求に応じた処理を実行するコンピュータである。複数のサーバ211,212,・・・のうちの2台以上が連携して処理を実行する場合もある。複数の端末装置221,222,・・・は、複数のサーバ211,212,・・・で提供されるサービスを利用するユーザが使用するコンピュータである。
監視サーバ100は、ネットワーク20を介して行われた通信を監視し、通信ログを記録する。監視サーバ100は、通信ログを用いて、機械学習を行い、不正通信の有無を判別に利用するニューラルネットワークの最適化を行う。そして監視サーバ100は、通信ログに基づいて、最適化されたニューラルネットワークを用いて不正通信が行われた時間帯を検出する。
図3は、第2の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。監視サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、監視サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、監視サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図3に示した監視サーバ100と同様のハードウェアにより実現することができる。
監視サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。監視サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、監視サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また監視サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、監視サーバが有する機能について説明する。
図4は、監視サーバの機能の一例を示すブロック図である。監視サーバ100は、通信情報収集部110、通信ログ記憶部120、教師データ記憶部130、学習部140、学習結果記憶部150、および解析部160を有する。
通信情報収集部110は、ネットワーク20を介して送受信されているパケットなどの通信情報を取得する。例えば通信情報収集部110は、ネットワーク20内に設置されたスイッチのミラーリングポートを介して、そのスイッチを経由して通信されたパケットを取得する。また通信情報収集部110は、各サーバ211,212,・・・から、そのサーバ自身の通信ログを取得することもできる。通信情報収集部110は、取得した通信情報を、通信ログ記憶部120に格納する。
通信ログ記憶部120は、通信情報収集部110が収集した通信情報のログ(通信ログ)を記憶する。
教師データ記憶部130は、過去の所定の期間における単位時間帯(例えば10分間)ごとの、不正通信の発生の有無(教師フラグ)を示す情報を記憶する。
学習部140は、通信ログ記憶部120に格納された通信ログと、教師データ記憶部130に格納された教師フラグとに基づいて、不正通信が行われたときの通信ログの特徴を学習し、学習結果を反映させたニューラルネットワークを生成する。例えば学習部140は、ニューラルネットワークへの入力データの並べ替えに用いる照合パタンと、ニューラルネットワーク内の各ユニットへ入力する値の重みとを決定する。そして学習部140は、ニューラルネットワーク、照合パタン、および重みを含む学習結果を、学習結果記憶部150に格納する。
学習結果記憶部150は、学習部140における学習結果を記憶する。
解析部160は、学習結果記憶部150に格納された学習結果に基づいて、通信ログ記憶部120に新たに格納された単位時間帯の通信ログを解析し、その単位時間帯内に不正通信が行われたか否かを判断する。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に通信ログ記憶部120に格納される情報について具体的に説明する。
図5は、通信ログ記憶部の一例を示す図である。通信ログ記憶部120には、複数の単位期間ログ121,122,・・・が格納されている。単位期間ログ121,122,・・・それぞれには、通信ログの収集期間が示されている。単位期間ログ121,122,・・・には、収集期間で示された時間帯内に収集した通信情報が格納される。
単位期間ログ121,122,・・・に格納される各レコードには、通信元ホスト、通信先ホスト、および量が含まれる。通信元ホストは、パケットの送信元の装置の識別子である。通信先ホストは、パケットの宛先の装置の識別子である。量は、通信元ホストと通信先ホストとの組が同一となる通信の出現回数である。なお単位期間ログ121,122,・・・に、通信に使用されたポートの識別子(例えば宛先のTCP/UDPのポート番号)を含めてもよい。
次に教師データ記憶部130に格納される情報について具体的に説明する。
図6は、教師データ記憶部の一例を示す図である。教師データ記憶部130には、正常通信リスト131と不正通信リスト132とが格納されている。正常通信リスト131には、正常な通信が行われていた単位期間のリストが設定される。不正通信リスト132には、不正な通信が行われた単位期間のリストが設定される。正常通信リスト131と不正通信リスト132への単位期間の設定は、例えばシステムの管理者が行う。
機械学習を行う際には、単位期間が正常通信リスト131と不正通信リスト132とのどちらに登録されているかにより、その単位期間の通信ログを入力データとして機械学習を実施したときの正解を示す値(教師ラベル)が決定される。例えば学習部140は、正常通信リスト131に登録されている単位期間の通信ログを入力データとしたときの教師ラベルを「1.0」とする。また学習部140は、不正通信リスト132に登録されている単位期間の通信ログを入力データとしたときの教師ラベルを「0.0」とする。
次に学習結果記憶部150に格納される情報について具体的に説明する。
図7は、学習結果記憶部の一例を示す図である。学習結果記憶部150には、ニューラルネットワーク151、パラメータ群152、および照合パタン153が格納されている。ニューラルネットワーク151は、入力層から出力層まで、ニューロンを表すユニットを接続したものである。図7において、ユニットは円で表されている。
ユニット間は、信号の流れを示す矢印で接続されている。各ユニットには、入力された信号に対する処理が定義されている。各ユニットにおける処理の結果、そのユニットから出力される信号が決定され、その信号が次のユニットに送られる。出力層のユニットから出力される信号の値に基づいて、入力されたデータが属する分類(例えば、不正通信を含む通信ログなのか否か)が判定される。
パラメータ群152には、あるユニットから別のユニットに与える影響の強さを示す複数の重み値が含まれる。各重み値は、ニューラルネットワーク151のユニット間を接続する矢印に対応付けられている。
照合パタン153は、単位期間ログ内の各レコードの並べ替えに使用する情報である。分類対象の単位期間ログを、ニューラルネットワーク151を用いて分類する場合、照合パタン153と類似するように、単位期間ログ内のレコードの並べ替えが行われる。例えば照合パタン153のレコードには、通信元ホスト、通信先ホスト、および量が含まれる。通信元ホストは、パケットの送信元の装置を示す、ニューラルネットワーク151を用いた解析上の識別子である。通信先ホストは、パケットの送信先の装置を示す、ニューラルネットワーク151を用いた解析上の識別子である。量は、通信元ホストと通信先ホストとの組に対応する通信の単位期間内での発生確率である。
次に、ニューラルネットワーク151を用いたデータ分類方法について説明する。なお第2の実施の形態では、過学習の抑止策を適用する場合と、過学習の抑止策を適用しない場合とで処理が異なる。過学習の抑止策を適用する場合とは、例えば過学習になりやすく、過学習の抑止策が適用可能な場合である。以下、過学習の抑止策を適用しない場合の処理を先に説明し、次に、過学習の抑止策を適用する場合における過学習の抑止策を適用しない場合との相違点を説明する。
<過学習の抑止策を適用しない場合のデータ分類処理>
図8は、過学習の抑止策を適用しない場合のデータの分類方法を示す図である。例えば、1つの単位期間ログを、ニューラルネットワーク151を用いた分類対象の入力データ30として、解析部160に入力する場合を想定する。
入力データ30内の各レコードが、ニューラルネットワーク151の入力層のいずれかのユニットに対応付けられる。そして各レコード内の量の値が、対応付けられたユニットへの入力となる。入力層に入力される値は、例えば正規化して入力される。
図8に示すように、複数の対象物の関係(通信元ホストと通信先ホストとの関係)に応じた分類を行う場合、どの関係をどのユニットへの入力とするのが適切なのか、不明な場合が多い。例えば、不正通信が、あるサーバによる処理aと、そのサーバとは別のサーバによる処理bと組み合わせで実施される場合を想定する。この場合、サーバAが処理aを実行し、サーバBが処理bを実行すれば、不正通信が成立する。また、サーバBが処理aを実行し、サーバAが処理bを実行しても、不正通信が成立する。このように、不正通信の有無を検出する場合、不正通信のパタンを構成するホストは、その都度異なる。
そこで不正通信の有無についてニューラルネットワーク151を用いて判別する場合、入力データ30内の各レコードに、不正通信の有無を正しく判定できるように順序付けを行うこととなる。例えば分類に強く寄与する関係が、変数値間の関係全体の構造とは無関係に出現する場合、適切な順序付けを行わないと、その関係が適切に入力層のユニットに対応付けられず、分類精度が悪くなってしまう。
複数の対象物の関係を示すレコードの従来の順序付けは、分類精度とは無関係に行われている。そのため従来の方法では、より高い分類精度が得られる方法が見逃される可能性が高い。単純に、順序付けのすべてのパタンを生成し、すべてのパタンを入力データとすることも考えられるが、計算量が膨大となる。そこで、第2の実施の形態では、学習部140が適切な照合パタン153を生成することで、少ない計算量で、精度よく分類可能な順序付けを可能とする。
図9は、照合パタンの適正化の概要を示す図である。学習部140は、照合パタン50の初期値を設定する。例えば通信元ホストが2台存在し、通信先ホストが2台存在する場合を想定する。この場合、学習部140は、通信元ホストの識別子として「S’1」と「S’2」とを生成する。また学習部140は、通信先ホストの識別子として「R’1」と「R’2」とを生成する。さらに学習部140は、通信元ホストの識別子と通信先ホストの識別子とのすべての組み合わせを生成し、各組み合わせの量に初期値を設定する。初期値は、例えばランダムに生成した値である。そして学習部140は、通信元ホストの識別子、通信先ホストの識別子、および量の組を1レコードとする照合パタン50を生成する。
次に学習部140は、教師データ記憶部130内の正常通信リスト131または不正通信リスト132に含まれる単位期間の通信ログを、入力データ30として取得する。次に、学習部140は、入力データ30に示される通信元ホストの識別子と通信先ホストの識別子とを、照合パタン50で用いている識別子に変換するとともに、レコードに順序付けを行い、照合パタン50と類似度が最大となる変換データ60を生成する。照合パタン50と変換データ60との類似度は、例えば各レコードの量の値を示すベクトル間の内積で表される。なお、入力データ30内の通信元ホストの識別子と、照合パタン50内の通信元ホストの識別子とは、1対1で対応付けられる。
変換データ60の生成処理では、学習部140は、入力データ30の量を成分とし、量の順番を並べ替えで生成可能なすべてのベクトル(入力ベクトル)を生成する。また学習部140は、照合パタン50に設定されている量を成分として、照合パタン50に示される順に成分を並べたベクトル(照合ベクトル)を生成する。次に学習部140は、複数のベクトルそれぞれについて、照合ベクトルとの内積を計算する。学習部140は、内積が最大となる入力ベクトルを特定する。学習部140は、特定した入力ベクトルが得られるように、入力データ30の通信元ホストと通信先ホストとの識別子を、照合パタン50に示す識別子に変換する。
図9の例では、入力ベクトル(1,3,0,2)が最も照合ベクトル(0.2,0.1,−0.3,0.4)との内積が大きくなる。そこで、入力データ30において量が「3」の関係「S1,R1」を示すレコードは、変換データ60では2番目のレコードとなるように、「S’2,R’1」に変換されている。入力データ30において量が「1」の関係「S2,R1」を示すレコードは、変換データ60では1番目のレコードとなるように、「S’1,R’1」に変換されている。入力データ30において量が「2」の関係「S1,R2」を示すレコードは、変換データ60では4番目のレコードとなるように、「S’2,R’2」に変換されている。入力データ30において量が「0」の関係「S2,R2」を示すレコードは、変換データ60では3番目のレコードとなるように、「S’1,R’2」に変換されている。このように、先に量の値の順序付けが行われ、それに合わせて通信元ホストと通信先ホストとの識別子が変換される。
このように第2の実施の形態では、入力データ30の順序付けが、照合パタン50を基準に決められる。学習部140は、以下の手順でニューラルネットワーク151の誤差逆伝播を利用し、照合パタン50を最適化することで、入力データ30の順序付けの最適な基準を定義する。
変換データ60を生成すると、学習部140は、変換データ60の量を、ニューラルネットワーク151の入力層の各ユニットへの入力として、ニューラルネットワーク151に基づく順伝播を計算する。そして学習部140は、出力層からの出力と、教師データ記憶部130に設定された正解の値とを比較し、誤差を計算する。次に学習部140は、誤差逆伝播により、誤差が減少するように各ユニットへの入力の重み値を修正する。学習部140は、誤差逆伝播を入力層のユニットへの入力にも適用し、入力層のユニットへの入力値の誤差を計算する。これにより、入力層の誤差を示す誤差ベクトル(−1.3,0.1,1.0,−0.7)が得られる。
また学習部140は、照合パタン50の変動に対する変換データ60の量の変分を算出する。例えば学習部140は、照合パタン50における「S’1,R’1」の量が「1」だけ増加した場合を想定し、その場合の照合パタンとの類似度が最大となる変換データ60aを生成する。変換データ60aの生成方法は、変換データ60を生成する場合と同じである。例えば学習部140は、照合パタン50の「S’1,R’1」の量を「1.2」に変更した仮の照合パタンを生成し、仮の照合パタンとの類似度が最大となるように入力データ30のレコードを並べ替え、変換データ60aを生成する。このとき生成される仮の照合パタンは、照合パタン50内の1つの量の変化が変換データ60におよぼす影響を調査するために一時的に生成される照合パタンである。基準となる照合パタンの量が変わったことで、変換データ60とは異なる変換データ60aが生成される。
学習部140は、新たに生成した変換データ60aの量と、変換データ60の量との変分を計算する。例えば学習部140は、同じ順番のレコードごとに、変換データ60aのレコードの量から変換データ60のレコ−ドの量を減算する。その結果、量の変分を示す変分ベクトル(2,−2,2,−2)が得られる。
学習部140は、誤差逆伝播により得られる入力層の誤差ベクトルと、照合パタン50の「S’1,R’1」の量を「1」だけ増加させた場合の変換データ60aに基づく変分ベクトルとの内積を計算する。学習部140は、算出された内積により、照合パタン50の「S’1,R’1」の量の変動方向、および変動量を決定する。照合パタン50の「S’1,R’1」の量を「1」だけ増加させることで、分類誤差が増加する場合、内積の結果は正となる。そのため内積の結果に負の値を乗算した方向が、「S’1,R’1」の量の変動方向となる。例えば学習部140は、内積に負の実数を乗算した値を、照合パタン50における「S’1,R’1」の量に加算することで、その量を変動させる。なお入力データが複数ある場合、学習部140は、例えば複数の入力データそれぞれに基づいて計算した内積の平均値に基づいて、「S’1,R’1」の量を変動させる。
同様に照合パタン50の他の量も、その量を「1」増加した場合の変換データに基づいて、変動させることができる。
このように学習部140は、分類誤差を増加させる変換データの量の変分の方向(入力層の誤差)に、照合パタンの変動に対する変換データの量の変分を掛け合わせることにより、分類誤差を増加させる照合パタンの変動の方向、および変動量を算出する。
以下、学習部140における機械学習の処理を具体的に説明する。
図10は、過学習の抑止策を適用しない場合の機械学習処理の手順を示すフローチャートの一例である。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS101]学習部140は、照合パタンとニューラルネットワークの、各ユニットへの入力の重みのパラメータを初期化する。例えば学習部140は、照合パタンの各レコードの量に、ランダムに生成した値を設定する。また学習部140は、各重みの値として、ランダムに生成した値を設定する。
[ステップS102]学習部140は、照合パタンに最も類似する変換データに、入力データを変換する。
[ステップS103]学習部140は、ニューラルネットワークを用いた順伝播および誤差逆伝播により、入力層の誤差ベクトルを取得する。
[ステップS104]学習部140は、照合パタンの未選択のレコードを1つ選択する。
[ステップS105]学習部140は、選択したレコードの量を「1」だけ増加させたときの、変換データの量の変分ベクトルを算出する。
[ステップS106]学習部140は、ステップS103で取得した誤差ベクトルと、ステップS105で算出した変分ベクトルとの内積を算出する。学習部140は、内積の結果を、選択したレコードの変動値とする。
[ステップS107]学習部140は、照合パタン内のすべてのレコードを選択したか否かを判断する。すべてのレコードが選択済みであれば、処理がステップS108に進められる。未選択のレコードがあれば、処理がステップS104に進められる。
[ステップS108]学習部140は、照合パタンの量とニューラルネットワークの重みのパラメータとを更新する。例えば学習部140は、照合パタンの各レコードの量に、レコードを選択したときにステップS106で算出した変動値を加算する。また学習部140は、ニューラルネットワークの誤差逆伝播によって計算した各パラメータの修正後の値に、重みのパラメータを更新する。
[ステップS109]学習部140は、処理の終了条件が満たされたか否かを判断する。例えば学習部140は、照合パタンの量とニューラルネットワークの重みのパラメータとが収束したか、もしくは、ステップS102〜S108の処理を所定回数以上ループさせた場合、終了条件が満たされたと判断する。照合パタンの量については、例えばステップS108における更新前後での各量の変化量の合計が所定値以下であれば、収束したと判断することができる。またニューラルネットワークの重みのパラメータについては、例えばステップS108における更新前後での各パラメータの変化量の合計が所定値以下であれば、収束したと判断することができる。すなわち、照合パタンの量とニューラルネットワークの重みのパラメータとのいずれもが、ステップS108の更新によってほとんど値が変化しない場合、収束したものと判断できる。終了条件が満たされた場合、処理が終了する。終了条件が満たされていなければ、処理がステップS102に進められる。
以上のような手順で機械学習を実行し、適切な照合パタンの量と各パラメータの値とを決定することができる。以下、図11〜図17を参照して、具体的な機械学習の例について説明する。なお、図12〜図17以下では、各データの通信元ホストを設定するフィールドを「項S」と表し、通信先ホストを設定するフィールドを「項R」と表すものとする。
図11は、機械学習に利用するニューラルネットワークの一例を示す図である。図11の例では、第2の実施の形態の処理を分かりやすくするため、ユニットが4つの入力層とユニットが1つの出力層とで構成されるニューラルネットワーク41を想定する。入力層の各ユニットから出力層のユニットへの信号には、それぞれ重みを示すパラメータ(W1,W2,W3,W4)が設定されている。学習部140は、このようなニューラルネットワーク41を用いて機械学習を行う。
図12は、機械学習の例を示す第1の図である。例えば教師ラベル「1.0」の入力データ31に基づいて、学習部140が機械学習を行うものとする。まず学習部140は、照合パタン51の量と、パラメータ群71の各重みの値とを初期化する。
次に学習部140は、照合パタン51との類似度が最大となるように、入力データ31の並べ替えを行い、変換データ61を生成する。図12の例では、照合パタン51の量を成分とする照合ベクトルと、変換データ61の量を成分とする入力ベクトルとの内積は「1.3」である。
図13は、機械学習の例を示す第2の図である。学習部140は、変換データ61の量を入力ベクトルとして、ニューラルネットワーク41の順伝播の計算を行い、出力値を算出する。例えば学習部140は、入力ベクトルの各成分の量に、その量の入力先のユニットの重みの値を乗算し、成分ごとの乗算結果の合計を、順伝播の出力値とする。図13の例では、出力値は「2.1」(1×1.2+3×(−0.1)+0×(−0.9)+2×(0.6))である。学習部140は、出力値「2.1」と教師ラベル「1.0」との差を計算する。例えば学習部140は出力値から教師ラベルの値を減算し、差「1.1」を得る。この差は、出力値が「1.1」だけ大きすぎることを意味する。
次に学習部140は、誤差逆伝播により、入力層へ入力する値の誤差を計算する。例えば学習部140は、教師ラベルとの差を各ユニットの重みの値に乗算し、乗算結果を、そのユニットへ入力する量の誤差とする。そして学習部140は、入力層のユニットごとの誤差を成分とするベクトルを生成することで、誤差ベクトル(1.3,−0.1,−1.0,0.7)を得る。誤差ベクトルの成分の符号が正の場合、入力層の対応するユニットへの入力値が大きすぎることを意味する。誤差ベクトルの成分の符号が負の場合、入力層の対応するユニットへの入力値が小さすぎることを意味する。
また学習部140は、初期状態の照合パタン51(図12参照)の「S’1,R’1」のレコードの量を「1」だけ増加させて「1.2」とした照合パタン52を生成する。次に学習部140は、入力データ31の順序付けを行い、照合パタン52と類似度が最大となる変換データ62を生成する。次に学習部140は、元の変換データ61と新たに生成した変換データ62との量を、通信元ホスト(項S)と通信先ホスト(項R)との組が同じレコード同士で比較し、量の変分を計算する。例えば変換データ62の「S’1,R’1」の量「3」から、変換データ61の「S’1,R’1」の量「1」を減算し、減算結果「2」を「S’1,R’1」に対応する量の変分とする。学習部140は、レコードごとに計算した量の変分を成分とする変分ベクトル(2,−2,2,−2)を生成する。
学習部140は、誤差ベクトル(1.3,−0.1,−1.0,0.7)と変分ベクトル(2,−2,2,−2)との内積を計算し、得られた内積「−0.6」を「S’1,R’1」の量の変動値とする。学習部140は、例えば、通信元ホスト(項S)と通信先ホスト(項R)との組「S’1,R’1」に対応付けて、変動値「−0.6」を変動データ80に設定する。
誤差ベクトルは、各入力値について、出力値の誤差を拡大させる方向にどの程度ずれているのかを示している。そのため「S’1,R’1」のレコードの量を「1」だけ増加させたときの変分ベクトルが誤差ベクトルと類似している場合、その量の増加が、出力値の誤差を拡大させる方向に作用することを意味する。すなわち、誤差ベクトルと変分ベクトルとの内積が正の場合、「S’1,R’1」の量を増加させると、出力値の誤差が拡大する。誤差ベクトルと変分ベクトルとの内積が負の場合、「S’1,R’1」の量を増加させると、出力値の誤差が縮小する。
図14は、機械学習の例を示す第3の図である。学習部140は、初期状態の照合パタン51(図12参照)の「S’2,R’1」のレコードの量を「1」だけ増加させて「1.1」とした照合パタン53を生成する。次に学習部140は、入力データ31の順序付けを行い、照合パタン53と類似度が最大となる変換データ63を生成する。次に学習部140は、元の変換データ61と新たに生成した変換データ63との量を、通信元ホスト(項S)と通信先ホスト(項R)との組が同じレコード同士で比較し、量の変分を計算する。そして学習部140は、レコードごとに計算した量の変分を成分とする変分ベクトル(0,0,0,0)を生成する。学習部140は、誤差ベクトル(1.3,−0.1,−1.0,0.7)と変分ベクトル(0,0,0,0)との内積を計算し、得られた内積「0.0」を「S’2,R’1」の量の変動値として、変動データ80に設定する。
図15は、機械学習の例を示す第4の図である。学習部140は、初期状態の照合パタン51(図12参照)の「S’1,R’2」のレコードの量を「1」だけ増加させて「0.7」とした照合パタン54を生成する。次に学習部140は、入力データ31の順序付けを行い、照合パタン54と類似度が最大となる変換データ64を生成する。次に学習部140は、元の変換データ61と新たに生成した変換データ64との量を、通信元ホスト(項S)と通信先ホスト(項R)との組が同じレコード同士で比較し、量の変分を計算する。そして学習部140は、レコードごとに計算した量の変分を成分とする変分ベクトル(1,−3,3,−1)を生成する。学習部140は、誤差ベクトル(1.3,−0.1,−1.0,0.7)と変分ベクトル(1,−3,3,−1)との内積を計算し、得られた内積「−2.1」を「S’1,R’2」の量の変動値として、変動データ80に設定する。
図16は、機械学習の例を示す第5の図である。学習部140は、初期状態の照合パタン51(図12参照)の「S’2,R’2」のレコードの量を「1」だけ増加させて「1.4」とした照合パタン55を生成する。次に学習部140は、入力データ31の順序付けを行い、照合パタン55と類似度が最大となる変換データ65を生成する。次に学習部140は、元の変換データ61と新たに生成した変換データ65との量を、通信元ホスト(項S)と通信先ホスト(項R)との組が同じレコード同士で比較し、量の変分を計算する。そして学習部140は、レコードごとに計算した量の変分を成分とする変分ベクトル(−1,−1,1,1)を生成する。学習部140は、誤差ベクトル(1.3,−0.1,−1.0,0.7)と変分ベクトル(−1,−1,1,1)との内積を計算し、得られた内積「−1.5」を「S’2,R’2」の量の変動値として、変動データ80に設定する。
図17は、機械学習の例を示す第6の図である。学習部140は、変換データ61の各レコードの量に、ニューラルネットワーク41の順伝播の計算結果と教師ラベルとの差「1.1」を乗算する。学習部140は、乗算結果に、定数αをさらに乗算する。定数αの値は、例えばニューラルネットワーク41のステップサイズであり、図11〜図17に示した例では「α=1」である。学習部140は、「変換データ61の量×教師ラベルとの差「1.1」×定数α」の結果を、パラメータ群71のパラメータから減算する。
例えば学習部140は、入力層の1つめのユニットに対応する重み「W1」の値「1.2」から、そのユニットへ入力する量「1」に「1.1」とα「1」を乗算した結果「1.1」を減算し、新たな重み「W1」の値「0.1」とする。同様に、入力層のユニットごとに、重みのパラメータの値が更新され、新たなパラメータ群72が生成される。
また学習部140は、通信元ホスト(項S)と通信先ホスト(項R)との組ごとに、照合パタン51に示される量から、変動データ80の変動値に定数αを乗算した値を減算する。そして学習部140は、通信元ホスト(項S)と通信先ホスト(項R)との組ごとの計算結果を、更新後の照合パタン56の量の値とする。例えば「S’1,R’1」の量は、「0.8」(0.2−1×(−0.6))に更新される。
入力データが複数ある場合、学習部140は、入力データごとに算出された変換データ61の量の平均値を用いて、パラメータ群71の重みの値を更新する。また学習部140は、入力データごとに算出された変動データ80の変動値の平均値を用いて、照合パタン51の量を更新する。
このようにして学習部140により、ニューラルネットワークにより算出される誤差を利用して、照合パタンが更新される。最終的に出力された照合パタンを用いて、解析部160が通信ログの分類を行う。例えば解析部160は、学習フラグがない通信ログを、照合パタンとの類似度が最大になるように変換する。そして、解析部160は、変換後のデータをニューラルネットワークへの入力値として入力し、ニューラルネットワークの出力値を計算する。その際、解析部160は、学習部140によって生成されたパラメータ群によって、各ユニットへの入力値を重み付けする。そして解析部160は、ニューラルネットワークの出力値により、例えば、通信ログの取得期間内に不正通信が行われたか否かを判定する。すなわち、その通信ログが、正常な通信の記録なのか、不正な通信の記録なのかの分類が行われる。このようにして、入力データの適切な順序付けにより、高精度の分類が可能となる。
しかも、順序付けのすべてのパタンを探索することなく、現実的な計算量で最適な順序付けが探索可能となり、計算量も少なくて済む。例えば、3項目の人またはものがあり、各項目の種類数がそれぞれ「A,B,C」(A,B,Cは1以上の整数)であるものとする。また、各項目から1種類ずつの人またはものの組み合わせに対応する数値がN個(Nは1以上の整数)あるものとする。適切な照合結果を得るために探索するすべての順序付けのパタンは(A!B!C!)N通りになる。この場合、数値の数が増えると、現実的な時間で機械学習の計算をするのが困難となる。第2の実施の形態では、照合パタンにおける3つの項目の種類数を「A’,B’,C’」(A’,B’,C’は1以上の整数)とする。またニューラルネットワークの更新回数をE(Eは1以上の整数)とする。この場合、A’B’C’(A+B+C)NEに比例する計算量となり、現実的な計算量で計算可能である。
<過学習の抑止策を適用する場合のデータ分類処理>
過学習の抑止策は、過学習が発生しやすい場合に行われる。過学習が発生しやすい場合として、まず教師データが十分にない場合がある。教師データが十分にあるかどうかは、入力層のユニットから、次の中間層のユニット(ニューロン)へのパラメータ数との比較によって決まる。例えば、教師データ数に対して、入力層のユニットから次の中間層のニューロンへのパラメータ数が多いと、機械学習において過学習が発生する。入力層のユニットから次の中間層のニューロンへのパラメータ数は、入力層のユニットが多いほど多くなり、かつ次の中間層のニューロンが多いほど多くなる。
図18は、過学習となる場合の例を示す図である。ニューラルネットワーク151の入力層には、変換データ60の各項目の変数値のすべての組み合わせパタンに対応するユニットが設けられる。そしてニューラルネットワーク151の入力層のユニットそれぞれから次の層のニューロンそれぞれに対して、値が入力される(該当する値の入力が、破線の矩形内の矢印で示されている)。入力される各値には、重みを示すパラメータが乗算される。すなわち、図18に示す破線の矩形内の矢印の数の分だけ、該当する入力に対応するパラメータが設定される。
例えば、データがm個(mは1以上の整数)の項目間の関係であり、各項目の変数値の数がI1,・・・,Im、次の層のニューロンがL個(Lは1以上の整数)の場合、その間のパラメータ数はI1×…×Im×Lとなる。送信元ホスト、送信先ホスト、ポートが各10種類、次の層のニューロンが10個の場合、その間のパラメータ数は10×10×10×10=10000個だが、入力データが100個程度しかない場合には、容易に過学習となる。
また、変換データの自由度が低い場合にも、過学習となりやすい。変換データの自由度が低い場合とは、例えば、入力データの各項目の変数値同士に、高い相関がある場合にも過学習となる。
図19は、変換データの自由度が低い場合の例を示す図である。図19の例では、入力データ91には、通信元ホスト、通信先ホスト、およびポートの3つの項目が含まれる。そして入力データ91には、3つの項目それぞれの変数値の組み合わせパタンごとの量が設定されている。このとき、例えば、同じポート番号・通信先ホストの組み合わせに通信することの多い通信元ホスト同士は、高い相関があるといえる。この場合、高い相関を有する複数の通信元ホスト、それらの通信先となる通信先ホストとポートの集合を、高相関の変数値の集合とする。
このように、入力データ91の各項目において、高い相関を有する変数値の集合が存在する場合、入力データ91から変換して生成した変換データ92においても、各項目の変数値同士に高い相関がある。変換データ92において、複数の項目それぞれの変数値同士に高い相関があると、変換データ92の自由度が低くなる。変換データ92の自由度が低ければ、全教師データが正解になるような照合パタンおよびパラメータの学習が容易となり、過学習となりやすくなる。
このような過学習の抑止策として、単純には、照合パタンのレコードの数、または入力層の次の層のニューロンのいずれかの数を小さくすることが考えられる。照合パタンのレコードの数を少なくするためには、変換データの同じ変数値に、多くの入力データの変数値を対応づけることになる。しかし、このような方法で照合パタンのレコード数を削減すると、入力データに含まれる特徴のうち、変換データで表現できないものが多くなってしまい、それが理由で分類精度が劣化する可能性がある。
また、入力層の次の層のニューロンの数を削減すると、変換データに含まれる特徴のうち、上位層のニューロンに伝搬できないものが多くなってしまい、それが理由で分類精度が劣化する可能性がある。
そこで第2の実施の形態では、変換データのレコードに示される複数の関係それぞれと、入力層の次の層の複数のニューロンそれぞれとの間のパラメータを、関係を構成する各変数値と各ニューロンとの間のパラメータの積により表現する。この場合、ニューラルネットワークにおける学習過程では、教師データの正解が得られるように、関係を構成する各変数値と各ニューロンとの間のパラメータの値を学習することになる。
図20は、入力層の次の層の複数のニューロンそれぞれとの間のパラメータ数の削減例を示す図である。変換データ92の各レコードに設定されている量それぞれが、ニューラルネットワーク93の入力層の対応するユニットに入力される。入力層の各ユニットは、次の層のすべてのニューロンへ、入力された量にパラメータを乗算した結果を入力する。ここでi番目(iは1以上の整数)の通信元ホスト、j番目(jは1以上の整数)の通信先ホスト、およびk番目(kは1以上の整数)のポートの組み合わせで示される関係を(i,j,k)とする。この関係に対応する量を、入力層の次の層のl番目(lは1以上の整数)のニューロンに入力する際に、その量に乗算するパラメータの値を、wi,j,k,lとする。このときwi,j,k,lを、以下の式(1)で表す。
i,j,k,l=wi,l×wj,l×wk,l ・・・(1)
ここでwi,lは、i番目の通信元ホストの識別子と、入力層の次の層のl番目のニューロンとの組に対応するパラメータの値である。wj,lは、j番目の通信先ホストの識別子と、入力層の次の層のl番目のニューロンとの組に対応するパラメータの値である。wk,lは、k番目のポートの識別子と、入力層の次の層のl番目のニューロンとの組に対応するパラメータの値である。
これにより、学習するパラメータの値「wi,j,k,l」が、複数のパラメータの値「wi,l、wj,l、wk,l」の積で表現される。すなわち入力層と入力層の次の層との間のパラメータを、少ないパラメータで表現できる。これにより、過学習を抑止できる
例えばデータがm個(mは1以上の整数)の項目間の関係であり、各項目の変数値の数がI1,・・・,Im(I1,・・・,Imは、それぞれ1以上の整数)、入力層の次の層のニューロンがL個(Lは1以上の整数)である場合、その間のパラメータ数はI1×L+・・・+Im ×Lとなる。例えば10種類の通信元ホスト、10種類の通信先ホスト、10種類のポートの間の関係を示す変換データ92に対し、入力層の次の層のニューロンが10個なら、その間のパラメータ数は10×10+10×10+10×10=300個になる。
このようにパラメータ数を削減しても、入力データに各項目間で相関の強い変数値の集合が多数含まれており、かつ、強い相関を持つ変数値の集合同士の変数値の関係の仕方が分類の特徴として重要である場合に、分類の特徴を損なわずに済む。したがって、分類精度を低下させずにパラメータ数を大幅に削減して、過学習を防止することができる。
図21は、パラメータ数を削減した場合の分類の特徴の削減後のパラメータへの反映例を示す図である。図21では、変換データ92内の高い相関を有する変数値の集合を、四角柱で表している。図21に示すように、変換データ92は、相関の高い変数値の集合同士が複雑に関係しあった構造を持っている。
ここで、変換データ92内に、強い相関を持つ変数値の集合がどのように存在しているのかが、データを分類するうえで重要な特徴となる場合がある。このようなデータ分類は、例えばある種のサイバー攻撃の攻撃パタンの特徴によってデータを分類する場合に有効である。この特徴は、図21に示した変換データ92における四角柱の領域に現れる。すなわち、変換データ92内の強い相関を持つ変数値の集合を示す四角柱の領域の分布状況が、データを分類するための重要な特徴となる。
例えば変換データ92におけるi番目の通信元ホストとi+1番目の通信元ホストは、共にj番目の通信先ホストのk番目のポートに対して、高頻度で通信を行っているものとする。すなわち、i番目の通信元ホストとi+1番目の通信元ホストとは、高い相関を有する。ここで、入力層の次の層のl番目のニューロンへ入力する値に対する重みは、上記の式(1)で計算される。
この場合、「wi,l」、「wi+1,l」、「wj,l」、「wk,l」のパラメータの値が、学習により他のパラメータの値より大きな値となれば、高相関の変数値の集合に関する特徴を損なわずに済む。すなわち、変換データの各レコードに示される関係と入力層の次の層との間のパラメータを、式(1)に示す積表現で表しても、強い相関を持つ変数値の集合同士の関係を示す特徴を損なわずに表現できる。例えばi番目の通信元ホストとi+1番目の通信元ホストが、共にj番目の通信先ホストのk番目のポートに対して高頻度で通信を行っているという関係が、少ないパラメータ数で表現できる。
このように第2の実施の形態では、入力データに相関の強い変数値の集合が多数含まれており、かつ、強い相関を持つ変数値の集合同士の変数値の関係の仕方が分類の特徴として重要である場合に、式(1)に示す形式でパラメータを表現する。そして式(1)の右辺のパラメータの値をニューラルネットワークにより学習することで、分類の特徴を損なうことなく、パラメータ数を大幅に削減し、過学習を抑止することができる。
次に、過学習の抑止策を適用する場合の機械学習処理の手順について説明する。
図22は、過学習の抑止策を適用する場合の機械学習処理の手順を示すフローチャートの一例である。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS201]学習部140は、照合パタンとニューラルネットワークのパラメータとを初期化する。初期化されるパラメータのうち、入力層から次の層へ入力する数値に対するパラメータは、式(1)に示す積表現であり、式(1)の右辺に示されるパラメータが初期化対象である。
図23は、パラメータの初期化の一例を示す図である。図23の例では、変換データ311は、通信元ホスト、通信先ホスト、およびポートの項目を有している。通信元ホストは3つの変数値を有する。通信先ホストは2つの変数値を有する。ポートは3つの変数値を有する。したがって、3つの項目の変数値の組み合わせパタンは18通りであり、変換データ311には各組み合わせパタンに対応する18個のレコードが含まれる。各レコードには、対応する組み合わせパタンの出現頻度を示す量が設定されている。
ニューラルネットワーク312の入力層には、変換データ311のレコード数と同じ数のユニットが設けられている。またニューラルネットワーク312の、入力層の次の中間層には、2つのニューロンが設けられている。中間層の各ニューロンの出力は、出力層の1つのニューロンに入力される。
この場合、学習部140は、3つのパラメータ群314〜316の各パラメータを初期化する。パラメータ群314は、通信元ホストの複数の変数値それぞれと、中間層の複数のニューロンとの組み合わせごとのパラメータである。パラメータ群315は、通信先ホストの複数の変数値それぞれと、中間層の複数のニューロンとの組み合わせごとのパラメータである。パラメータ群316は、ポートの複数の変数値それぞれと、中間層の複数のニューロンとの組み合わせごとのパラメータである。学習部140は、3つのパラメータ群314〜316の各パラメータを、例えばランダムな値に初期化する。
3つのパラメータ群314〜316のパラメータに基づいて、積表現されたパラメータ313を生成することができる。図23の例では、パラメータ群314〜316に含まれる16個のパラメータに基づいて、積表現されたパラメータ313に含まれる36個のパラメータが生成される。
以下、図22の説明に戻る。
[ステップS202]学習部140は、照合パタンに最も類似する変換データに、入力データを変換する。
[ステップS203]学習部140は、ニューラルネットワーク312を用いた順伝播および誤差逆伝播により、入力層の誤差ベクトルを取得する。この際、学習部140は、パラメータ群314〜316内の各パラメータの勾配を、項目ごとの微分(部分微分)によって算出する。そして、学習部140は、求めた勾配によって、パラメータ群314〜316内のパラメータの値を修正する。
図24は、パラメータの部分微分の算出例を示す図である。特定の項目の部分微分は、例えば変換データ311と、部分微分の対象とする項目以外の項目のパラメータと、入力層の次の層における逆伝播誤差とに基づいて計算される。例えば通信元ホストのパラメータ群314についての部分微分を計算する場合、通信先ホストのパラメータ群315とポートのパラメータ群316のパラメータが用いられる。
通信元ホストの部分微分の計算では、例えば学習部140は、変換データ311の各レコードの量と、通信先ホストのパラメータ群315とポートのパラメータ群316との対応する変数値のパラメータの値との積を計算する。例えば通信元ホスト「S’1」、通信先ホスト「R’1」、ポート「P’1」の組み合わせに対応するレコードに設定された量に対しては、通信先ホスト「R’1」のパラメータの値とポート「P’1」のパラメータの値とが乗算される。このような乗算は、中間層のニューロンごとに行われる。
次に学習部140は、通信元ホストの変数値それぞれについて、変換データ311における対応するレコードの量を用いて得られた積の計算結果を、中間層のニューロンごとに集約する。例えば通信元ホスト「S’1」の部分積分の値を求める場合、変換データ311における通信元ホスト「S’1」を含むレコードの量を用いた積の計算結果が集約される。積の計算結果の集約とは、例えば、積の計算結果を合計する処理である。学習部140は、集約結果に、対応するニューロンの出力に対する逆伝播誤差を乗算することで、各変数値の部分微分を得る。得られた部分微分が、対応する変数値の中間層のニューロンごとの勾配となる。
学習部140は、例えば、項目の変数値と中間層のニューロンとの組ごとに求めた勾配に所定値を乗算した値を、該当する組に対応するパラメータの値から減算して得られた値を、そのパラメータの修正後の値とする。
以下、図22の説明に戻る。
[ステップS204]学習部140は、照合パタンの未選択のレコードを1つ選択する。
[ステップS205]学習部140は、選択したレコードの量を「1」だけ増加させたときの、入力データから生成した変換データの量の変分ベクトルを算出する。
[ステップS206]学習部140は、ステップS203で取得した誤差ベクトルと、ステップS205で算出した変分ベクトルとの内積を算出する。学習部140は、内積の結果を、選択したレコードの変動値とする。
[ステップS207]学習部140は、照合パタン内のすべてのレコードを選択したか否かを判断する。すべてのレコードが選択済みであれば、処理がステップS208に進められる。未選択のレコードがあれば、処理がステップS204に進められる。
[ステップS208]学習部140は、照合パタンの量とニューラルネットワークの重みのパラメータとを更新する。例えば学習部140は、照合パタンの各レコードの量に、レコードを選択したときにステップS206で算出した変動値を加算する。また学習部140は、ニューラルネットワークの誤差逆伝播によって計算した各パラメータの修正後の値に、重みのパラメータを更新する。
[ステップS209]学習部140は、処理の終了条件が満たされたか否かを判断する。終了条件が満たされた場合、処理が終了する。終了条件が満たされていなければ、処理がステップS202に進められる。
このようにして、入力層と中間層との間のパラメータの数を削減して、機械学習を行うことができる。そして、パラメータ数が削減されたことで、過学習が抑止される。
また、このような過学習抑止策は、入力データに各項目間で相関の強い変数値の集合が多数含まれており、かつ、強い相関を持つ変数値の集合同士の変数値の関係の仕方が分類の特徴として重要である場合に適用される。この場合、過学習の抑止策を適用しても、変換データ中の高相関な変数値の集団の存在を各ニューロンに伝えるように、照合パタンとパラメータとが学習される。
図25は、学習によって得られるパラメータの一例を示す図である。例えば変換データ321では、通信元ホストの「S’1」と「S’2」、通信先ホストの「R’1」、ポート「P’1」と「P’2」の組み合わせにおいて、通信元ホストの「S’1」と「S’2」とが高相関であり、ポート「P’1」と「P’2」とが高相関である。この場合、ニューラルネットワークによる学習を進めていくと、高相関な変数値の集団が、中間層の1つのニューロン(図25の例では、1つ目のニューロン)との間のパラメータで示される。
例えば通信元ホストの変数値それぞれと中間層の1つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれる通信元ホスト「S’1」と「S’2」の値は大きく、他の通信元ホスト「S’3」の値は小さくなる。同様に通信先ホストの変数値それぞれと中間層の1つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれる通信先ホスト「R’1」の値は大きく、他の通信元ホスト「R’2」の値は小さくなる。またポートの変数値それぞれと中間層の1つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれるポート「P’1」と「P’2」の値は大きく、他の通信元ホスト「P’3」の値は小さくなる。
変換データ321では、通信元ホストの「S’2」と「S’3」、通信先ホストの「R’2」、ポート「P’2」と「P’3」の組み合わせにおいて、通信元ホストの「S’2」と「S’3」とが高相関であり、ポート「P’2」と「P’3」とが高相関である。この場合、ニューラルネットワークによる学習を進めていくと、高相関な変数値の集団が、中間層の1つのニューロン(図25の例では、2つ目のニューロン)との間のパラメータで示される。
例えば通信元ホストの変数値それぞれと中間層の2つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれる通信元ホスト「S’2」と「S’3」の値は大きく、他の通信元ホスト「S’1」の値は小さくなる。同様に通信先ホストの変数値それぞれと中間層の2つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれる通信先ホスト「R’2」の値は大きく、他の通信元ホスト「R’1」の値は小さくなる。またポートの変数値それぞれと中間層の2つめのニューロンとの間のパラメータのうち、高相関な変数値の集団に含まれるポート「P’2」と「P’3」の値は大きく、他の通信元ホスト「P’1」の値は小さくなる。
このように、学習するパラメータの数を削減しても、高相関の変数値を示す特徴がニューラルネットワークに反映される。したがって、パラメータ数を削減したことによるニューラルネットワークの分類精度の低下が抑止される。
〔その他の実施の形態〕
第2の実施の形態は、通信ログの分類の機械学習に関する例であるが、通信ログの分類以外にも、入力値の順番が精度に影響する場合がある。例えば、化合物の位置に関わらず活性をもつ構造により、化合物を分類したい場合が考えられる。化合物の分類に対しても、照合パタンを用いて適切な順序付けを行うことで、精度の高い分類が可能となる。
図26は、化合物の分類例を示す図である。例えば複数の化合物構造データ401,402,・・・を、その化合物の働きに応じて分類する場合を考える。化合物構造データ401,402,・・・には、化合物を構成する物質のうちの2つの物質間の関係を示す複数のレコードが含まれているものとする。
分類に強く寄与する関係(図中、破線の円で囲まれた関係)が、変数値間の関係全体の構造とは無関係に出現する場合がある。ニューラルネットワークを用いた分類において、化合物構造データ401,402,・・・内の関係の順番が不適切だと、正しく分類できない可能性がある。そこで、分類精度を高めるように最適化された照合パタンを用いて、化合物構造データ401,402,・・・内の関係を順序付けることで、化合物の位置に関わらず活性をもつ構造が存在する場合でも、化合物を正しく分類できる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ニューラルネットワーク
2 入力データ
3 教師データ
4 変換データ
5 誤差
10 機械学習装置
11 記憶部
11a 照合パタン
11b 入力層・中間層間パラメータ
11c 中間層・出力層間パラメータ
12 処理部

Claims (5)

  1. コンピュータに、
    複数の数値を含む入力データと、前記入力データに対する分類の正解を示す教師データとを取得し、
    複数の項目それぞれの変数値の組み合わせパタンごとの基準値の配列により、ニューラルネットワークへ入力する数値の順序付けの基準が示された照合パタンに基づいて、前記入力データに含まれる前記複数の数値それぞれを前記組み合わせパタンのいずれかに対応付けることで、前記複数の数値それぞれの入力順序を決定し、
    前記複数の項目それぞれの変数値と、前記ニューラルネットワークの入力層の次の層のニューロンとの組ごとに設定された第1パラメータ値に基づいて、前記組み合わせパタンと前記次の層のニューロンとの組それぞれについて、前記組み合わせパタンに含まれる変数値それぞれと前記次の層のニューロンとの組の前記第1パラメータ値の積を、前記組み合わせパタンに対応付けられた数値を前記次の層のニューロンへ入力する際の重み値を示す第2パラメータ値に決定し、
    前記次の層のニューロンへ入力する数値の重み値として前記第2パラメータ値を用いて、前記入力順序に従った前記複数の数値の入力に応じた前記ニューラルネットワークの出力値を算出し、
    前記出力値と前記教師データとの誤差に基づいて、前記ニューラルネットワークで正解を得るための、前記ニューラルネットワークの入力層と前記次の層とのそれぞれへの入力値の誤差を算出し、
    前記入力層と前記次の層とのそれぞれへの入力値の誤差に基づいて、前記照合パタンの前記複数の基準値と前記第1パラメータ値とを更新する、
    処理を実行させる機械学習プログラム。
  2. 前記入力データには、前記複数の項目それぞれの入力変数値の組み合わせパタンごとの数値が設定されており、一項目の2以上の入力変数値の間に、前記入力変数値を含む組み合わせパタンに設定された数値に相関がある、
    請求項1記載の機械学習プログラム。
  3. 前記入力順序の決定では、前記入力変数値それぞれを、前記照合パタンに示される前記複数の変数値のいずれかに変換して、変換後の変数値の組み合わせパタンを前記照合パタンに合わせて並べ替えることで得られる数値の順番を、前記複数の数値それぞれの前記入力順序とする、
    請求項2記載の機械学習プログラム。
  4. コンピュータが、
    複数の数値を含む入力データと、前記入力データに対する分類の正解を示す教師データとを取得し、
    複数の項目それぞれの変数値の組み合わせパタンごとの基準値の配列により、ニューラルネットワークへ入力する数値の順序付けの基準が示された照合パタンに基づいて、前記入力データに含まれる前記複数の数値それぞれを前記組み合わせパタンのいずれかに対応付けることで、前記複数の数値それぞれの入力順序を決定し、
    前記複数の項目それぞれの変数値と、前記ニューラルネットワークの入力層の次の層のニューロンとの組ごとに設定された第1パラメータ値に基づいて、前記組み合わせパタンと前記次の層のニューロンとの組それぞれについて、前記組み合わせパタンに含まれる変数値それぞれと前記次の層のニューロンとの組の前記第1パラメータ値の積を、前記組み合わせパタンに対応付けられた数値を前記次の層のニューロンへ入力する際の重み値を示す第2パラメータ値に決定し、
    前記次の層のニューロンへ入力する数値の重み値として前記第2パラメータ値を用いて、前記入力順序に従った前記複数の数値の入力に応じた前記ニューラルネットワークの出力値を算出し、
    前記出力値と前記教師データとの誤差に基づいて、前記ニューラルネットワークで正解を得るための、前記ニューラルネットワークの入力層と前記次の層とのそれぞれへの入力値の誤差を算出し、
    前記入力層と前記次の層とのそれぞれへの入力値の誤差に基づいて、前記照合パタンの前記複数の基準値と前記第1パラメータ値とを更新する、
    機械学習方法。
  5. 複数の項目それぞれの変数値の組み合わせパタンごとの基準値の配列により、ニューラルネットワークへ入力する数値の順序付けの基準が示された照合パタンを記憶する記憶部と、
    複数の数値を含む入力データと、前記入力データに対する分類の正解を示す教師データとを取得し、前記照合パタンに基づいて、前記入力データに含まれる前記複数の数値それぞれを前記組み合わせパタンのいずれかに対応付けることで、前記複数の数値それぞれの入力順序を決定し、前記複数の項目それぞれの変数値と、前記ニューラルネットワークの入力層の次の層のニューロンとの組ごとに設定された第1パラメータ値に基づいて、前記組み合わせパタンと前記次の層のニューロンとの組それぞれについて、前記組み合わせパタンに含まれる変数値それぞれと前記次の層のニューロンとの組の前記第1パラメータ値の積を、前記組み合わせパタンに対応付けられた数値を前記次の層のニューロンへ入力する際の重み値を示す第2パラメータ値に決定し、前記次の層のニューロンへ入力する数値の重み値として前記第2パラメータ値を用いて、前記入力順序に従った前記複数の数値の入力に応じた前記ニューラルネットワークの出力値を算出し、前記出力値と前記教師データとの誤差に基づいて、前記ニューラルネットワークで正解を得るための、前記ニューラルネットワークの入力層と前記次の層とのそれぞれへの入力値の誤差を算出し、前記入力層と前記次の層とのそれぞれへの入力値の誤差に基づいて、前記照合パタンの前記複数の基準値と前記第1パラメータ値とを更新する、処理部と、
    を有する機械学習装置。
JP2017172626A 2017-09-08 2017-09-08 機械学習プログラム、機械学習方法、および機械学習装置 Active JP6898562B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017172626A JP6898562B2 (ja) 2017-09-08 2017-09-08 機械学習プログラム、機械学習方法、および機械学習装置
US16/125,420 US11514308B2 (en) 2017-09-08 2018-09-07 Method and apparatus for machine learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017172626A JP6898562B2 (ja) 2017-09-08 2017-09-08 機械学習プログラム、機械学習方法、および機械学習装置

Publications (2)

Publication Number Publication Date
JP2019049783A true JP2019049783A (ja) 2019-03-28
JP6898562B2 JP6898562B2 (ja) 2021-07-07

Family

ID=65631318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017172626A Active JP6898562B2 (ja) 2017-09-08 2017-09-08 機械学習プログラム、機械学習方法、および機械学習装置

Country Status (2)

Country Link
US (1) US11514308B2 (ja)
JP (1) JP6898562B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021014726A (ja) * 2019-07-12 2021-02-12 株式会社奥村組 シールド掘進工法における掘進予測モデルの作成方法
JP2021014727A (ja) * 2019-07-12 2021-02-12 株式会社奥村組 シールド掘進機の施工管理方法
WO2021054402A1 (ja) * 2019-09-20 2021-03-25 株式会社 Preferred Networks 推定装置、訓練装置、推定方法及び訓練方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030722B2 (en) * 2017-10-04 2021-06-08 Fotonation Limited System and method for estimating optimal parameters
EP3575813B1 (en) * 2018-05-30 2022-06-29 Siemens Healthcare GmbH Quantitative mapping of a magnetic resonance imaging parameter by data-driven signal-model learning
JP7279446B2 (ja) * 2019-03-20 2023-05-23 富士通株式会社 学習プログラム、学習方法、及び学習装置
WO2021040944A1 (en) 2019-08-26 2021-03-04 D5Ai Llc Deep learning with judgment
US11651197B2 (en) * 2020-03-04 2023-05-16 International Business Machines Corporation Holistic service advisor system
US11615330B2 (en) * 2020-03-18 2023-03-28 Kyndryl, Inc. Virtual subject matter expert provisioning
US11475303B2 (en) * 2020-04-14 2022-10-18 Microsoft Technology Licensing, Llc Spread neural networks
CN115938390B (zh) * 2023-01-06 2023-06-30 中国科学院自动化研究所 生成语音鉴别模型的连续学习方法、装置和电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319844A (ja) 1994-05-25 1995-12-08 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワークの学習装置及びニューラルネットワークの学習方法
JPH08249303A (ja) 1995-03-13 1996-09-27 Ricoh Co Ltd 信号処理装置
JP3469677B2 (ja) 1995-05-31 2003-11-25 三洋電機株式会社 文字認識装置およびその学習方法
JPH0981535A (ja) 1995-09-11 1997-03-28 Matsushita Electric Ind Co Ltd ニューラルネットワークの学習方法
JPH0990981A (ja) 1995-09-22 1997-04-04 Nippon Telegr & Teleph Corp <Ntt> パターン認識のためのモデル学習方法
JPH09138786A (ja) 1995-11-14 1997-05-27 Matsushita Electric Ind Co Ltd ニューラルネットワークの学習装置
JPH11224106A (ja) 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd パラメータ推定装置
JP2002222409A (ja) 2001-01-26 2002-08-09 Fuji Electric Co Ltd ニューラルネットワークの最適化学習方法
JP6435581B2 (ja) * 2015-01-29 2018-12-12 パナソニックIpマネジメント株式会社 転移学習装置、転移学習システム、転移学習方法およびプログラム
JP6898561B2 (ja) 2017-09-08 2021-07-07 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021014726A (ja) * 2019-07-12 2021-02-12 株式会社奥村組 シールド掘進工法における掘進予測モデルの作成方法
JP2021014727A (ja) * 2019-07-12 2021-02-12 株式会社奥村組 シールド掘進機の施工管理方法
JP7219180B2 (ja) 2019-07-12 2023-02-07 株式会社奥村組 シールド掘進工法における掘進予測モデルの作成方法
JP7219181B2 (ja) 2019-07-12 2023-02-07 株式会社奥村組 シールド掘進機の施工管理方法
WO2021054402A1 (ja) * 2019-09-20 2021-03-25 株式会社 Preferred Networks 推定装置、訓練装置、推定方法及び訓練方法

Also Published As

Publication number Publication date
JP6898562B2 (ja) 2021-07-07
US20190080236A1 (en) 2019-03-14
US11514308B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
JP6898562B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
JP6751235B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
JP6898561B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
Adikari et al. Identifying fake profiles in linkedin
KR101843066B1 (ko) 기계 학습에 있어서 데이터 확대를 이용하여 데이터의 분류를 수행하는 방법 및 이를 이용한 장치
US11062215B2 (en) Using different data sources for a predictive model
US20160210555A1 (en) Dynamic model data facility and automated operational model building and usage
US20180077180A1 (en) Bot detection system based on deep learning
US20210026909A1 (en) System and method for identifying contacts of a target user in a social network
JP6546180B2 (ja) ネットワークサブジェクトの社会的関係タイプの取得
US10243981B2 (en) Bot detection based on divergence and variance
CN109522922B (zh) 学习数据选择方法及设备以及计算机可读记录介质
US20180077181A1 (en) Bot detection based on behavior analytics
US11443207B2 (en) Aggregated feature importance for finding influential business metrics
JP5833817B2 (ja) ドキュメント使用クラスタリングによるユーザタスク表現を近似するための方法
EP3924858A1 (en) Efficient access of chainable records
Zhang et al. Detecting Insider Threat from Behavioral Logs Based on Ensemble and Self‐Supervised Learning
Ramachandramurthy et al. Distilling big data: Refining quality information in the era of yottabytes
JP6773972B2 (ja) データ変換プログラム、データ変換方法、およびデータ変換装置
JP2024510634A (ja) 可変分布保存を用いて機密データを変換するための学習
US8055607B2 (en) Adaptive multi-levels dictionaries and singular value decomposition techniques for autonomic problem determination
US20180218259A1 (en) Optimizing node locations within a space
US20210158179A1 (en) Dynamic recommendation system for correlated metrics and key performance indicators
US10580017B2 (en) Using ontological distance to measure unexpectedness of correlation
CORELATD TRANSFORMED DATSET

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200625

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200625

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210524

R150 Certificate of patent or registration of utility model

Ref document number: 6898562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150