以下に、本願の開示する学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例1にかかるシステムの全体構成例を説明する図である。図1に示すように、このシステムは、複数の端末装置1と複数のサーバ5と監視サーバ10とがネットワークNを介して相互に通信可能に接続される。なお、ネットワークNは、有線や無線を問わず、インターネットや専用線などの各種通信網を採用することができる。
複数の端末装置1それぞれは、複数のサーバ5それぞれが提供するサービスを利用するコンピュータ装置の一例であり、例えばパーソナルコンピュータ、タブレット端末、スマートフォンなどである。例えば、複数の端末装置1それぞれは、サーバ5に各種コマンドを発行して、サービスの提供を受ける。
複数のサーバ5それぞれは、Web検索やクラウドサービスなどの各種サービスを端末装置1に提供するコンピュータの一例であり、例えばサーバなどである。例えば、複数のサーバ5それぞれは、端末装置1からコマンドを受信して実行し、実行結果などを端末装置1に送信する。
監視サーバ10は、ネットワークNを介して実行された通信を監視し、通信ログとコマンド履歴とを用いて、ニューラルネットワークを用いた深層学習を実行し、不正通信の有無を判定する学習モデルを構築するコンピュータ装置の一例である。そして、監視サーバ10は、学習された学習モデルに、ネットワークNから取得した通信ログとコマンド履歴とを入力して、不正通信の発生をリアルタイムに予測(分類)する。
ここで、監視サーバ10の学習および予測について説明する。図2は、学習から予測までの全体的な流れを説明する図である。図2に示すように、監視サーバ10は、内部不正を発見するニューラルネットワークを学習するために、学習データとして、クライアントのIP(Internet Protocol)アドレスとホストのIPアドレスの関係が記録された関係データである通信ログと、コマンドとホストのIPアドレスとの関係が記録された関係データであるコマンド履歴を保持する。
例えば、監視サーバ10は、ラベルが付与された通信ログおよびコマンド履歴を教師有の学習データとして用いて、教師有学習を実行する。学習完了後、監視サーバ10は、予測対象の通信ログとコマンド履歴とを、学習済みの学習モデルに入力し、予測結果を取得する。そして、監視サーバ10は、予測結果が不正通信を表す場合、管理者に通知したり、アラームを報知したりする。
ここで、学習処理について詳細に説明する。図3は、実施例1にかかる監視サーバ10の学習処理を説明する図である。例えば、図3に示す学習処理において、監視サーバ10は、通常通信時に取得された通信ログおよびコマンド履歴にラベルとして(1.0)が設定され、不正通信時に取得された通信ログおよびコマンド履歴にラベルとして(0)が設定された学習データを保持する。
そして、監視サーバ10は、変換データ1の各値を各成分とするベクトルと、照合パターン1の各値を各成分とするベクトルとの内積が最大化するように、変換ルール1を生成する。その後、監視サーバ10は、変換ルール1を用いて、通信ログ1を変換データ1に変換して入力層に入力する。
同様に、監視サーバ10は、変換データ2の各値を各成分とするベクトルと、照合パターン2の各値を各成分とするベクトルとの内積が最大化するように、変換ルール2を生成する。その後、監視サーバ10は、変換ルール2を用いて、コマンド履歴2を変換データ2に変換して入力層に入力する。
このように、監視サーバ10は、同じ対象を表す変数(共通変数)が含まれる通信ログとコマンド履歴の2つの複数の関係データをニューラルネットワークに入力して学習モデルを構築する。すなわち、監視サーバ10は、共通変数に基づいて関係データ間を関連付けた上で、不正通信を表す特徴をニューラルネットワークにより学習する。
ところが、上記変換ルール1および変換ルール2に生成について、一般的な技術を用いた場合、各照合パターンに基づいて各変換ルールが規定されることから、学習精度が低下する場合がある。ここで、図4と図5を用いて、学習精度が低下する具体例を説明する。図4と図5は、一般技術の問題を説明する図である。図4および図5では、項目「ホスト」が共通変数である通信ログとコマンド履歴とを含む入力データを用いた学習処理を説明するが、図4と図5では、変換ルールが異なっている。
図4の例では、通信ログについて、通信ログAを変換した変換データAと照合パターンAとの類似度が最大となるように変換ルールAが生成され、変換ルールAにしたがって通信ログAから変換データAが生成される。例えば、変換ルールAは、S1をS´1に変換し、S2をS´2に変換し、R1をR´1に変換し、R2をR´2に変換するルールである。
同様に、コマンド履歴について、コマンド履歴Bを変換した変換データBと照合パターンBとの類似度が最大となるように変換ルールBが生成され、変換ルールBにしたがってコマンド履歴Bから変換データBが生成される。例えば、変換ルールBは、S1をS´´1に変換し、S2をS´´2に変換し、C1をC´2に変換し、C2をC´1に変換するルールである。
すなわち、図4の例では、入力データABにおける各関係データ(通信ログAとコマンド履歴B)が有するホストの対応関係は、「S´1=S´´1(=S1),S´2=S´´2(=S2)」となる。
これに対して、図5の例では、通信ログについて、通信ログCを変換した変換データCと照合パターンCとの類似度が最大となるように変換ルールCが生成され、変換ルールCにしたがって通信ログCから変換データCが生成される。例えば、変換ルールCは、S1をS´2に変換し、S2をS´1に変換し、R1をR´1に変換し、R2をR´2に変換するルールである。
同様に、コマンド履歴について、コマンド履歴Dを変換した変換データDと照合パターンDとの類似度が最大となるように変換ルールDが生成され、変換ルールDにしたがってコマンド履歴Dから変換データDが生成される。例えば、変換ルールDは、S1をS´´1に変換し、S2をS´´2に変換し、C1をC´2に変換し、C2をC´1に変換するルールである。
すなわち、図5の例では、入力データCDにおける各関係データ(通信ログCとコマンド履歴D)が有するホストの対応関係は、「S´1=S´´2(=S2),S´2=S´´1(=S1)」となる。
このように、同じ項目を有する入力データを用いて学習を行う場合でも、変換することにより、ニューラルネットワークに入力される順番が異なることがある。つまり、通信ログとコマンド履歴の各々にホストのIPアドレス(共通変数)が含まれ、内部不正の発見において、クライアントのIPアドレスとコマンドとの関係が分類に重要である場合であっても、共通変数の入力順が異なることで、この関係を考慮した学習が実行できない。
この問題についてより詳細に説明すると、まず、ニューラルネットワークの入力層の各ニューロンには同じ内容を示すデータが入力されなければならない。例えば、人間の特徴(身長、体重、年齢)をニューラルネットワークに入力することを考えた場合、1個目のニューロンには身長、2個目には体重、3個目には年齢を入力するなどの形式となる。このとき、例えば、人間Aでは[身長、体重、年齢]の順に、人間Bでは[体重、年齢、身長]の順で入力すると、「身長」、「体重」、「年齢」の関係を適切に学習することができないので、適切な分類も行われない。
上記図4と図5の説明図では、S´とS´´の対応関係が入力データABとCDで一致していない。つまり、入力データABではS´1とS´´1が同一のホストを指しているが、入力データCDではS´1とS´´1は異なるホストを指している。従って、入力データABでは1個目と5個目のニューロンに同一ホストに関するデータが入力されるが、入力データCDでは1個目と5個目には異なるホストに関するデータが入力されることになる。
ここで、通信ログのホストとコマンド履歴のホストを関連付けて分類を行うことが精度に大きく寄与すると予想される場合、通信ログとコマンド履歴の同一ホストに関するデータが入力されるニューロンの位置は入力データ間で一致している必要がある。これが入力データ間で一致していることにより、同一ホストに関する通信ログとコマンド履歴の関係を適切に学習することができる。換言すれば、これが入力データ間で一致していない状況というのは、上述した人間の特徴を入力する際に特徴を入力する順番が異なるという状況に相当するため、図4や図5の状況では適切な学習や分類は行われないことになる。
なお、ニューラルネットワークのパラメータや照合パターンが適切に更新されれば、S´とS´´の対応関係が入力データ間で一致するように変換されるということも考えられる。しかし、ニューラルネットワークのパラメータや照合パターンの更新の仕組みとして、S´とS´´の対応関係が入力データ間で一致することは保証されない。別の言い方をすると、一部の入力データでは他の入力データとはS´とS´´の対応関係が一致しないようにした方が精度良く分類できることがあり得る。これは一般的に過学習と言われる状態であり、学習に使用した入力データでは高い精度が得られるものの、学習に使用していない未知の入力データに対しては低い精度となる可能性が高い。
そこで、実施例1にかかる監視サーバ10は、入力データにおける各関係データ(通信ログとコマンド履歴)を変換する各変換ルールを生成する際に、共通変数については変換ルールを同一にする制約を設ける。
具体的には、監視サーバ10は、それぞれが2個以上の変数を含む複数の関係データで構成される入力データを受け付ける。監視サーバ10は、複数の関係データそれぞれに含まれる変数値を、照合パターンに対応させた変換データに変換する変換ルールを複数の関係データそれぞれについて決定する際に、複数の関係データに共通して含まれる変数(共通変数)に対する変換ルールが同一となるように、複数の関係データそれぞれについての変換ルールを決定する。その後、監視サーバ10は、照合パターンを更新する際に、複数の関係データの変換データとの類似度の合計に基づいて、更新量を決定する。
このようにすることで、監視サーバ10は、各関係データの変換後の共通変数の対応関係を入力データ間で一致させることができ、関係データ間の関連付けを考慮した学習を実行することができるので、学習精度の低下を抑制することができる。なお、実施例1では、監視サーバ10が学習処理と予測処理(分類処理)とを実行する場合を説明するが、各処理を別々のサーバで実行することもできる。
[機能構成]
図6は、実施例1にかかる監視サーバ10の機能構成を示す機能ブロック図である。図6に示すように、監視サーバ10は、通信部11、記憶部12、制御部20を有する。
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、ネットワークNを介して送受信された各種通信を受信し、予測結果などを管理者端末に送信する。
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置であり、例えばメモリやハードディスクなどである。この記憶部12は、学習データDB13、照合パターンDB14、変換ルールDB15、学習結果DB16を記憶する。
学習データDB13は、ニューラルネットワークを用いた学習モデルの学習に使用される学習データを記憶するデータベースである。具体的には、学習データDB13は、通信ログとコマンド履歴とを1つの組とするデータと、ラベルとを対応付けた複数の学習データを記憶する。
図7は、学習データDB13に記憶される情報の例を示す図である。図7に示すように、学習データDB13は、「取得時間、データ、ラベル」を対応付けて記憶する。ここで記憶される「取得時間」は、データが取得された時間を示し、「データ」は、学習対象のデータを示す。「ラベル」は、ニューラルネットワークの学習に利用される正解情報であり、不正通信を示す場合は「0」が設定され、「通常通信」を示す場合は「1.0」が設定される。
図7の例では、取得時間「10:00から10:10」の間に取得されたデータ(通信ログ1、コマンド履歴2)が通常通信(ラベル=1.0)であることを示している。また、通信ログ1は、通信元のIPアドレスを示す「ホスト」と、通信先であるクライアント端末のIPアドレスを示す「クライアント」と、発生した通信量を示す「量」とが対応付けられる。例えば、通信ログ1において、通信元ホストS1から通信先ホストR1への通信が3回発生したことを示す。
また、コマンド履歴2は、コマンド発行元のIPアドレスを示す「ホスト」と、発行されたコマンドを示す「コマンド」と、発生したコマンドの量を示す「量」とが対応付けられる。例えば、コマンド履歴2において、ホストS2からコマンドC1が2回実行されたことを示す。なお、通信ログが有する項目とコマンド履歴が有する項目とのうち、どの項目が共通しているかは、ユーザ等が指定することもでき、対応付けテーブルなどで指定することもできる。
なお、通信ログ1やコマンド履歴2の各レコードが関係に該当し、「ホスト」、「クライアント」、「コマンド」などが変数に該当し、「S1」などが変数値に該当し、変数値がニューラルネットワークへの入力対象となる。
照合パターンDB14は、ニューラルネットワークへ入力する数値の順序付けの基準が複数の基準値の配列で示される照合パターンを記憶するデータベースである。具体的には、照合パターンDB14は、学習対象の関係データである通信ログとコマンド履歴のそれぞれについて、照合パターンを記憶する。なお、照合パターンDB14が記憶する各照合パターンは、後述する制御部20によって更新される。
図8は、照合パターンDB14に記憶される情報の例を示す図である。図8に示すように、照合パターンDB14は、通信ログ用の照合パターン1とコマンド履歴用の照合パターン2とを記憶する。照合パターン1は、ホストS´1とクライアントR´1のレコードに該当する量、ホストS´2とクライアントR´1のレコードに該当する量、ホストS´1とクライアントR´2のレコードに該当する量、ホストS´2とクライアントR´2のレコードに該当する量の順で、ニューラルネットワークに入力することを示す。
同様に、照合パターン2は、ホストS´´1とコマンドC´1のレコードに該当する量、ホストS´´2とコマンドC´1のレコードに該当する量、ホストS´´1とコマンドC´2のレコードに該当する量、ホストS´´2とコマンドC´2のレコードに該当する量の順で、ニューラルネットワークに入力することを示す。
変換ルールDB15は、学習データを入力層に入力する形式である変換データに変換するためのルールを記憶するデータベースである。具体的には、変換ルールDB15は、学習対象の関係データである通信ログとコマンド履歴のそれぞれについて、変換ルールを記憶する。なお、変換ルールDB15が記憶する各変換ルールは、後述する制御部20によって更新される。
図9は、変換ルールDB15に記憶される情報の例を示す図である。図9に示すように、変換ルールDB15は、通信ログ用の変換ルール1とコマンド履歴用の変換ルール2とを記憶する。変換ルール1は、S1をS´2に変換し、S2をS´1に変換し、R1をR´1に変換し、R2をR´2に変換することを示す。変換ルール2は、S1をS´´2に変換し、S2をS´´1に変換し、C1をC´1に変換し、C2をC´2に変換することを示す。
ここで、詳細は後述するが、変換ルール1における「S1からS´2への変換、S2からS´1への変換」と、変換ルール2における「S1からS´´2への変換、S2からS´´1への変換」とは、共通変数の変換ルールを同一にする制約の下で生成された内容であり、同じ変換内容を示す。つまり、この共通ルールにより、通信ログとコマンド履歴に含まれる共通変数がどの順番で関係データに保存されている場合であっても、ニューラルネットワークに入力されるときには決まった順序で入力されることが保証される。
学習結果DB16は、後述する制御部20による学習結果を記憶するデータベースである。具体的には、学習結果DB16は、学習データの分類結果や、ディープラーニングによって学習されたニューラルネットワークの各パラメータの値などを記憶する。すなわち、学習結果DB16は、学習済みである学習モデルの構築に用いる各種情報を記憶する。
制御部20は、監視サーバ10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、データ取得部21、学習部22、予測部26を有する。なお、データ取得部21、学習部22、予測部26は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
データ取得部21は、ネットワークNで送受信される通信から各種データを取得する処理部である。例えば、データ取得部21は、各データを用いて、通信ログやコマンド履歴を生成する。そして、データ取得部21は、生成された通信ログやコマンド履歴にユーザが指定したラベルを付与し、学習データとして学習データDB13に格納する。なお、学習データは、ユーザが手動で生成して格納することもできる。
また、データ取得部21は、学習モデルの学習完了後、ネットワークNで送受信される通信から各種データを取得して、通信ログやコマンド履歴を生成する。そして、データ取得部21は、生成した通信ログやコマンド履歴を予測対象のデータとして、予測部26に出力する。
学習部22は、初期化部23、変換部24、更新部25を有し、学習データである2つの関係データを用いて、通常通信と不正通信とを分類するニューラルネットワークを学習し、学習モデルを構築する処理部である。具体的には、学習部22は、更新対象である照合パターンを微小に変換させたときの変換データの変動量を算出し、算出した変動量を用いて照合パターンやニューラルネットワークのパラメータを更新する。なお、学習処理を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。
初期化部23は、各照合パターンやニューラルネットワークのパラメータを初期化する処理部である。具体的には、初期化部23は、学習処理が開始されると、照合パターンDB14に記憶される通信ログ用の照合パターンの各量およびコマンド履歴用の照合パターンの各量に、ランダムな値を設定する。また、初期化部23は、学習処理が開始されると、ニューラルネットワークの各パラメータにランダムな値を設定する。なお、ランダムな値に限らず、予め指定した初期値を設定することもできる。
変換部24は、各関係データに共通して含まれる共通変数(ホスト)の変換内容を関係データ間で同一にするという制約の下で、照合パターンと変換データの類似度の総和を最大化するように入力データを変換する処理部である。
具体的には、変換部24は、通信ログの変換ルール1およびコマンド履歴の変換ルール2を、各変換データ各照合パターンとの類似度の総和(合計)が最大となるように決定する。このとき、変換部24は、通信ログとコマンド履歴との間で共通する共通変数である「ホスト」に対する変換ルールが同一となる制限の下で、通信ログ用の変換ルール1およびコマンド履歴の変換ルール2を生成する。
そして、変換部24は、生成した変換ルール1を用いて、入力データである通信ログ1を変換データ1に変換し、生成した変換ルール2を用いて、入力データであるコマンド履歴2を変換データ2に変換する。その後、変換部24は、変換データ1および変換データ2を、変換された順序でニューラルネットワークの各入力層に入力する。すなわち、変換部24は、通信ログ1およびコマンド履歴2を、各照合パターンで規定された順序で、入力層に入力する。
更新部25は、各変換ルール、各照合パターン、ニューラルネットワークのパラメータを更新する処理部である。具体的には、更新部25は、変換部24によって各変換データが入力された入力層の出力結果を、当該ニューラルネットワークの出力層から取得する。そして、更新部25は、入力データのラベルと出力結果との誤差を取得する。その後、更新部25は、誤差逆伝搬により得られた誤差を用いて、各変換ルール、各照合パターン、ニューラルネットワークのパラメータを更新する。なお、更新の具体的な手法は、後述する。
なお、初期化部23、変換部24、更新部25は、学習処理が継続する間、各入力データについて上記各処理を実行して、各照合パターン、ニューラルネットワークのパラメータを学習し、学習モデルを構築する。そして、初期化部23、変換部24、更新部25は、学習処理が終了すると、学習結果を学習結果DB16に格納する。
予測部26は、学習済みの学習モデルを用いて、不正通信を予測する処理部である。具体的には、予測部26は、学習結果DB16からニューラルネットワークのパラメータを読み出して、学習済みの学習モデルを構築する。また、予測部26は、学習結果DB16から、学習済みの通信ログ用の照合パターン1と、学習済みのコマンド履歴用の照合パターン2とを読み出す。
そして、予測部26は、予測対象の入力データ(通信ログ、コマンド履歴)の共通変数(ホスト)の変換内容を関係データ間で同一にするという制約の下で、各照合パターンと変換データの各類似度の総和を最大化するように、各変換ルール(変換ルール1、変換ルール2)を生成する。続いて、予測部26は、生成した変換ルール1に従って通信ログを変換データ1に変換し、生成した変換ルール2に従ってコマンド履歴を変換データ2に変換する。その後、予測部26は、変換データ1および変換データ2をニューラルネットワークに入力して出力結果を取得する。
そして、予測部26は、出力結果に基づいて、不正通信か否かを判定する。例えば、予測部26は、出力結果において、通常通信である確率が30%、不正通信である確率が70%である場合に、入力データを不正通信と判定する。なお、予測手法は、出力層の構成により任意に変更することができる。
[処理の流れ]
次に、学習部22が実行する学習処理の詳細を説明する。図10は、実施例1にかかる学習処理の流れを示すフローチャートである。図10に示すように、処理が開始されると(S101:Yes)、学習部22の初期化部23は、各照合パターンとニューラルネットワーク(NN)のパラメータをランダムに初期化する(S102)。
続いて、変換部24は、各関係データに共通して含まれる共通変数の変換内容を関係データ間で同一にするという制約の下で、照合パターンと変換データとの各類似度の総和を最大化するように各変換ルールを生成し、各変換ルールにしたがって各変換データを生成する(S103)。
そして、更新部25は、各変換データをニューラルネットワークに入力して誤差逆伝搬により誤差を取得する(S104)。
続いて、更新部25は、全照合パターンの中から1つの量を選択し(S105)、選択した量を1だけ変化させたときの各変換データ量の変分を算出する(S106)。その後、更新部25は、誤差逆伝搬の誤差と、算出した各変分の内積を算出する(S107)。
そして、全照合パターンにおいて未選択の量が存在する場合(S108:No)、未選択の量についてS105を実行する。一方、全照合パターンの全量について処理が完了した場合(S108:Yes)、更新部25は、各照合パターンの量とニューラルネットワークのパラメータとを更新する(S109)。
その後、学習処理を継続する場合(S110:No)、S103以降を繰り返し、終了条件を満たす場合は、学習処理を終了する(S110:Yes)。
[具体例]
次に、図11から図22を用いて、学習部22が実行する学習処理の具体例を説明する。
(前提)
まず、学習処理の前提として、入力データやニューラルネットワークについて説明する。図11は、具体例の入力データとニューラルネットワークを説明する図である。図11の(a)に示すように、ここでは、教師ラベル「1.0」が付与された入力データを用いて説明する。また、入力データは、「項S、項R、量」から構成される関係データXと「項S、項C、量」から構成される関係データYを含む。
また、関係データXは、「項S,項R,量」として「S1,R1,3」、「S2,R1,1」、「S1,R2,2」、「S2,R2,0」を有する。また、関係データYは、「項S,項C,量」として「S1,C1,2」、「S2,C1,1」、「S1,C2,0」、「S2,C2,3」を有する。つまり、入力データは、8個のデータであり、関係データXおよび関係データYに含まれる「項S」が共通変数となる。なお、例えば項Sは、通信元のホスト名やIPアドレスであり、R2は、通信先のクライアント端末のIPアドレスなどであり、項Cは、コマンドの内容であり、量は、通信回数やコマンド回数などであり入力層へ入力される学習対象のデータである。
また、ここで用いるニューラルネットワークは、図11の(b)に示すように、8個の入力データ(8個の量)に対応した8個の入力層を有する。また、中間層は省略するが、各入力層から出力層までのパラメータ(例えば重みなど)を「w1からw8」とし、入力層から出力層へ値が伝搬することを順伝搬と呼び、出力層から入力層へパラメータを更新することを逆伝搬と呼ぶ。また、具体例では、出力層から得られる出力結果と、教師ラベルとの誤差を用いて、逆伝搬によりパラメータを更新する教師有学習を用いて説明する。
(初期化)
次に、図10のS102で実行される初期化について説明する。図12は、初期化を説明する図である。図12の(a)に示すように、学習部22は、通信ログ用の照合パターンXA1の各量とコマンド履歴用の照合パターンYA1の各量とにランダムな値を設定する。ここで、照合パターンXA1は、「項S,項R,量」から構成される。なお、「項S,項R」は入力データを特定する情報であり、「量」は基準値である。また、照合パターンYA1は、「項S,項C,量」から構成される。なお、「項S,項C」は入力データを特定する情報であり、「量」は基準値である。
そして、初期値が設定された照合パターンXA1は、「項S,項R,量」として「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」が設定される。初期値が設定された照合パターンYA1は、「項S,項C,量」として「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」が設定される。
すなわち、各照合パターンにより、「S´1,R´1」、「S´2,R´1」、「S´1,R´2」、「S´2,R´2」、「S´´1,C´1」、「S´´2,C´1」、「S´´1,C´2」、「S´´2,C´2」に該当する各量が、この順番で、入力層に入力されることが規定されている。
また、図12の(b)に示すように、学習部22は、ニューラルネットワークのパラメータ「w1,w2,w3,w4,w5,w6,w7,w8」それぞれについて、「1.2,-0.1,-0.9,0.6,0.4,0.8,-1.3,0.2」を設定する。
(変換データの生成)
次に、図10のS103で実行される変換データについて説明する。図13は、変換データの生成を説明する図である。図13に示すように、学習部22は、入力データXを変換した変換データX1の各量と照合パターンXA1の各量との内積(類似度1)と、入力データYを変換した変換データY1の各量と照合パターンYA1の各量との内積(類似度2)との合計が最大となるように、変換ルールxa1と変換ルールyb1を生成する(条件1)。このとき、学習部22は、共通変数「項S」に設定される変数値(S1,S2)の変換ルールについて同じ内容となるようにする(条件2)。
図13に示す変換ルールや変換データは、条件1および条件2を満たす例を図示している。具体的には、変換データX1の各量と照合パターンXA1の各量との類似度1は、内積「(1×0.2)+(3×0.1)+(0×-0.3)+(2×0.4)=1.3」となる。また、変換データY1の各量と照合パターンYA1の各量との類似度2は、内積「(1×-0.4)+(2×0.2)+(3×0.3)+(0×0.1)=0.9」となる。
したがって、「類似度1(1.3)+類似度2(0.9)=2.2」が類似度1+類似度2の最大値であり、このときの変換ルールxa1は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya1は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2となる。すなわち、変換ルールxa1の「S1→S´2,S2→S´1」と変換ルールya1の「S1→S´´2,S2→S´´1」とが、各入力データにおける共通変数「項S」の変数値「S2」と「S1」がこの順で入力されるように、同じ変換内容を示している。なお、矢印は、元の変数値から変換後の変数値への変換を示している。
(更新:その1)
次に、図10のS104からS108について具体的に説明する。図14は、誤差取得と変換データの量の変分算出(その1)を説明する図である。まず、学習部22は、図13で生成された変換データX1と変換データY1とを、先頭から順に入力層に入力して順伝搬を実行し、出力層から出力値「0.2」を取得する。そして、学習部22は、出力値と教師ラベルとの誤差「0.2−1.0=-0.8」を算出し、誤差「-0.8」に基づいた逆伝搬を実行して誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」を取得する。
続いて、学習部22は、照合パターンの全量のうち1つ(ここではS´1R´1の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンXA1において「S´1,R´1,0.2」の量のみを1増加させて、「S´1,R´1,1.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa2と変換ルールya2を生成する。
ここで、図14に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX2の各量と照合パターンXA1の各量との類似度1は、内積「(3×1.2)+(1×0.1)+(2×-0.3)+(0×0.4)=3.1」となる。また、変換データY2の各量と照合パターンYA1の各量との類似度2は、内積「(0×-0.4)+(3×0.2)+(2×0.3)+(1×0.1)=1.3」となる。
したがって、「類似度1(3.1)+類似度2(1.3)=4.4」が類似度1+類似度2の最大値であり、このときの変換ルールxa2は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya2は、「S1→S´´1,S2→S´´2,C1→C´1,C2→C´2となる。すなわち、変換ルールxa1の「S1→S´1,S2→S´2」と変換ルールya2の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、更新後の変換データから更新前の変換データを減算することで、変換データの変分(変動量)を算出する。具体的には、学習部22は、変換データX2の各量「3,1,2,0」と変換データX1の各量「1,3,0,2」との変分「2,-2,2,-2」と、変換データY2の各量「0,3,2,1」と変換データY1の各量「1,2,3,0」との変分「-1,1,-1,1」とを算出する。
その後、学習部22は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部22は、誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「2,-2,2,-2,-1,1,-1,1」との内積として、「(-1.0×2)+(0.1×-2)+(0.7×2)+(-0.5×-2)+(-0.3×-1)+(-0.6×1)+(1.0×-1)+(-0.2×1)=-1.3」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´1,R´1」の変動に、算出した「-1.3」を設定する。
(更新:その2)
続いて、照合パターンの次の量の更新を説明する。図15は、変換データの量の変分算出(その2)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´2R´1の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンXA1のうち「S´2,R´1,0.1」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,1.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa3と変換ルールya3を生成する。
ここで、図15に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX3の各量と照合パターンXA1の各量との類似度1は、内積「(1×0.2)+(3×1.1)+(0×-0.3)+(2×0.4)=4.3」となる。また、変換データY3の各量と照合パターンYA1の各量との類似度2は、内積「(1×-0.4)+(2×0.2)+(3×0.3)+(0×0.1)=0.9」となる。
したがって、「類似度1(4.3)+類似度2(0.9)=5.2」が類似度1+類似度2の最大値であり、このときの変換ルールxa3は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya3は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2となる。すなわち、変換ルールxa3の「S1→S´2,S2→S´1」と変換ルールya3の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部22は、変換データX3の各量「1,3,0,2」と変換データX1の各量「1,3,0,2」との変分「0,0,0,0」と、変換データY2の各量「1,2,3,0」と変換データY1の各量「1,2,3,0」との変分「0,0,0,0」とを算出する。
その後、学習部22は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部22は、誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「0,0,0,0,0,0,0,0」との内積として、「0.0」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´2,R´1」の変動に、算出した「0.0」を設定する。
(更新:その3)
続いて、照合パターンの次の量の更新を説明する。図16は、変換データの量の変分算出(その3)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´1R´2の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンXA1の「S´1,R´2,−0.3」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,0.7」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa4と変換ルールya4を生成する。
ここで、図16に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX4の各量と照合パターンXA1の各量との類似度1は、内積「(2×0.2)+(0×0.1)+(3×0.7)+(1×0.4)=2.9」となる。また、変換データY4の各量と照合パターンYA1の各量との類似度2は、内積「(0×-0.4)+(3×0.2)+(2×0.3)+(1×0.1)=1.3」となる。
したがって、「類似度1(2.9)+類似度2(1.3)=4.2」が類似度1+類似度2の最大値であり、このときの変換ルールxa4は、「S1→S´1,S2→S´2,R1→R´2,R2→R´1となり、変換ルールya4は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1となる。すなわち、変換ルールxa4の「S1→S´1,S2→S´2」と変換ルールya4の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部22は、変換データX4の各量「2,0,3,1」と変換データX1の各量「1,3,0,2」との変分「1,-3,3,1」と、変換データY4の各量「0,3,2,1」と変換データY1の各量「1,2,3,0」との変分「-1,1,-1,1」とを算出する。
その後、学習部22は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部22は、誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「1,-3,3,-1,-1,1,-1,1」との内積として、「-0.2」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´1,R´2」の変動に、算出した「-0.2」を設定する。
(更新:その4)
続いて、照合パターンの次の量の更新を説明する。図17は、変換データの量の変分算出(その4)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´2R´2の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンXA1の「S´2,R´2,0.4」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,1.4」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa5と変換ルールya5を生成する。
ここで、図17に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX5の各量と照合パターンXA1の各量との類似度1は、内積「(0×0.2)+(2×0.1)+(1×-0.3)+(3×1.4)=4.1」となる。また、変換データY5の各量と照合パターンYA1の各量との類似度2は、内積「(1×-0.4)+(2×0.2)+(3×0.3)+(0×0.1)=0.9」となる。
したがって、「類似度1(4.1)+類似度2(0.9)=5.0」が類似度1+類似度2の最大値であり、このときの変換ルールxa5は、「S1→S´2,S2→S´1,R1→R´2,R2→R´1となり、変換ルールya5は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2」となる。すなわち、変換ルールxa5の「S1→S´2,S2→S´1」と変換ルールya5の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部22は、変換データX5の各量「0,1,1,3」と変換データX1の各量「1,3,0,2」との変分「-1,-1,1,1」と、変換データY5の各量「1,2,3,0」と変換データY1の各量「1,2,3,0」との変分「0,0,0,0」とを算出する。
その後、学習部22は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部22は、誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「-1,-1,1,1,0,0,0,0」との内積として、「1.1」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´2,R´2」の変動に、算出した「1.1」を設定する。
(更新:その5)
続いて、照合パターンの次の量の更新を説明する。図18は、変換データの量の変分算出(その5)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´´1C´1の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンYA1のうち「S´´1,C´1,−0.4」の量のみを1増加させて、「S´´1,C´1,0.6」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa6と変換ルールya6を生成する。
ここで、図18に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX6の各量と照合パターンXA1の各量との類似度1と、変換データY6の各量と照合パターンYA1の各量との類似度2との合計が「3.6」となる。このときの変換ルールxa6は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya6は、「S1→S´´2,S2→S´´1,C1→C´2,C2→C´1」となる。すなわち、変換ルールxa6の「S1→S´2,S2→S´1」と変換ルールya6の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX6の各量「1,3,0,2」と変換データX1の各量「1,3,0,2」との変分「0,0,0,0」と、変換データY6の各量「3,0,1,2」と変換データY1の各量「1,2,3,0」との変分「2,-2,-2,2」とを算出する。その後、学習部22は、誤差逆伝搬で得られた誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「0,0,0,0,2,-2,-2,2」との内積として、「-1.8」を算出する。そして、学習部22は、更新後の照合パターンYAの「S´´1,C´1」の変動に、算出した「-1.8」を設定する。
(更新:その6)
続いて、照合パターンの次の量の更新を説明する。図19は、変換データの量の変分算出(その6)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´´2C´1の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンYA1のうち「S´´2,C´1,0.2」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,1.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa7と変換ルールya7を生成する。
ここで、図19に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX7の各量と照合パターンXA1の各量との類似度1と、変換データY7の各量と照合パターンYA1の各量との類似度2との合計が「4.4」となる。このときの変換ルールxa7は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya7は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1」となる。すなわち、変換ルールxa7の「S1→S´1,S2→S´2」と変換ルールya7の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX7の各量「3,1,2,0」と変換データX1の各量「1,3,0,2」との変分「2,-2,2,-2」と、変換データY7の各量「0,3,2,1」と変換データY1の各量「1,2,3,0」との変分「-1,1,-1,1」とを算出する。その後、学習部22は、誤差逆伝搬で得られた誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「2,-2,2,-2,-1,1,-1,1」との内積として、「-1.3」を算出する。そして、学習部22は、更新後の照合パターンYAの「S´´2,C´1」の変動に、算出した「-1.3」を設定する。
(更新:その7)
続いて、照合パターンの次の量の更新を説明する。図20は、変換データの量の変分算出(その7)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´´1C´2の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンYA1のうち「S´´1,C´2,0.3」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,1.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa8と変換ルールya8を生成する。
ここで、図20に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX8の各量と照合パターンXA1の各量との類似度1と、変換データY8の各量と照合パターンYA1の各量との類似度2との合計が「5.2」となる。このときの変換ルールxa8は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya8は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2」となる。すなわち、変換ルールxa8の「S1→S´2,S2→S´1」と変換ルールya8の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX8の各量「1,3,0,2」と変換データX1の各量「1,3,0,2」との変分「0,0,0,0」と、変換データY8の各量「1,2,3,0」と変換データY1の各量「1,2,3,0」との変分「0,0,0,0」とを算出する。その後、学習部22は、誤差逆伝搬で得られた誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「0,0,0,0,0,0,0,0」との内積として、「0.0」を算出する。そして、学習部22は、更新後の照合パターンYAの「S´´1,C´2」の変動に、算出した「0.0」を設定する。
(更新:その8)
続いて、照合パターンの次の量の更新を説明する。図21は、変換データの量の変分算出(その8)を説明する図である。なお、ここで説明する処理も、図13で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
まず、学習部22は、照合パターンの全量のうち未選択の量を1つ(ここではS´´2C´2の量)を選択し、1だけ増加させる。具体的には、学習部22は、図13に示す照合パターンYA1のうち「S´´2,C´2,0.1」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,1.1」を生成する。
そして、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa9と変換ルールya9を生成する。
ここで、図21に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データX9の各量と照合パターンXA1の各量との類似度1と、変換データY9の各量と照合パターンYA1の各量との類似度2との合計が「2.8」となる。このときの変換ルールxa9は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya9は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2」となる。すなわち、変換ルールxa9の「S1→S´2,S2→S´1」と変換ルールya9の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX9の各量「3,1,2,0」と変換データX1の各量「1,3,0,2」との変分「2,-2,2,-2」と、変換データY9の各量「2,1,0,3」と変換データY1の各量「1,2,3,0」との変分「1,-1,-3,3」とを算出する。その後、学習部22は、誤差逆伝搬で得られた誤差「-1.0,0.1,0.7,-0.5,-0.3,-0.6,1.0,-0.2」と変分「2,-2,2,-2,1,-1,-3,3」との内積として、「-3.1」を算出する。そして、学習部22は、更新後の照合パターンYAの「S´´2,C´2」に、算出した「-3.1」を設定する。
(照合パターン更新およびパラメータ更新)
上述した図13から図21によって、入力データの各量について、微小な変換を与えたときの変動算出が実行されたので、最後に、その後に実行される図10のS109について具体的に説明する。図22は、パラメータの更新と照合パターンの更新を説明する図である。
図22の(a)に示すように、学習部22は、パラメータの初期値から、誤差逆伝搬で得られた教師ラベルとの差と各変換データの量との乗算値にステップサイズであるα(例えば1.0)を乗算した値を減算して、パラメータを更新する。具体的には、学習部22は、パラメータ「w1,w2,w3,w4,w5,w6,w7,w8」の初期値「1.2,-0.1,-0.9,0.6,0.4,0.8,-1.3,0.2」のそれぞれから、「1×-0.8,3×-0.8,0×-0.8,2×-0.8,1×-0.8,2×-0.8,3×-0.8,0×-0.8」を減算して、「2.0,2.3,-0.9,2.2,1.2,2.4,1.1,0.2」を算出する。
また、図22の(b)に示すように、学習部22は、各照合パターンから、図21までで算出された変動量とステップサイズα(例えば1.0)との乗算値を減算して、各照合パターンを更新する。
具体的には、学習部22は、照合パターンXA1の「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」から、算出済みの変動XAの「S´1,R´1,−1.3」、「S´2,R´1,0.0」、「S´1,R´2,−0.2」、「S´2,R´2,1.1」を減算して、更新後の照合パターンXA1´「S´1,R´1,1.5」、「S´2,R´1,0.1」、「S´1,R´2,−0.1」、「S´2,R´2,−0.7」を算出する。
同様に、学習部22は、照合パターンYA1の「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」から、算出済みの変動YAの「S´´1,C´1,−1.8」、「S´´2,C´1,−1.3」、「S´´1,C´2,0.0」、「S´´2,C´2,−3.1」を減算して、更新後の照合パターンYA1´「S´´1,C´1,1.4」、「S´´2,C´1,1.5」、「S´´1,C´2,0.3」、「S´´2,C´2,3.2」を算出する。
上述した処理を実行することで、学習部22は、パラメータと照合パターンとを更新する。そして、次の学習データ(入力データ)に対しては、更新されたパラメータと照合パターンとを初期値として同様の処理が実行される。
[効果]
上述したように、監視サーバ10は、複数の関係データに共通して含まれる共通変数の変換後の変換データにおいて対応関係が入力データ間で一致させることができる。このため、変換ルールが統一され、変数値の認識の食い違いが抑制されるので、過学習を抑制することができる。この結果、監視サーバ10は、適切な学習を実行することができ、高精度な予測を実現することができる。
ところで、入力データとして複数の関係データを入力する場合、各関係データが同等に重要とは限らない。例えば、内部不正の発見においては、通信ログよりもコマンド履歴の方が重要な場合もある。さらに、どの関係データがどれくらい重要であるかを学習前に特定することは難しい。
一方で、ニューラルネットワークには自身への入力データの重要度を学習するという効果があるため、この効果により重要度を考慮できるということも考えられる。しかし、各関係データを照合パターンとの類似度が高くなるように変換するという仕組みのため、重要度はニューラルネットワークに入力する前に、変換データを生成する段階で考慮する必要があるので、ニューラルネットワークの効果のみでは不十分である。
そこで、実施例2では、各関係データの重要度を示すパラメータを導入し、重要度で重み付けられた類似度に基づいて各関係データの変換データを生成することで、学習精度の向上を図る。
[全体構成]
図23は、実施例2にかかる監視サーバ10の学習処理を説明する図である。図23に示すように、図23に示すように、監視サーバ10は、教師データとして、通信ログとコマンド履歴の2つの関係データを用いて、学習処理を実行する。
監視サーバ10は、通信ログ1について、変換データ1の各値を各成分とするベクトルと、照合パターン1の各値を各成分とするベクトルとの内積に重要度1を乗算した類似度1を算出する。同様に、監視サーバ10は、コマンド履歴2について、変換データ2の各値を各成分とするベクトルと、照合パターン2の各値を各成分とするベクトルとの内積に重要度2を乗算した類似度2を算出する。
そして、監視サーバ10は、類似度1と類似度2の総和が最大となるように、通信ログを変換する変換データ1と、コマンド履歴を変換する変換データ2とを生成する。その後、監視サーバ10は、変換データ1に基づいて変換した変換データ1と、変換データ2に基づいて変換した変換データ2とをニューラルネットワークに入力して、実施例1と同様の手法による更新を実行する。
[処理の流れ]
図24は、実施例2にかかる学習処理の流れを示すフローチャートである。図24に示すように、図24に示すように、処理が開始されると(S201:Yes)、学習部22の初期化部23は、各照合パターンとニューラルネットワーク(NN)のパラメータに加えて、各重要度をランダムに初期化する(S202)。
続いて、変換部24は、各関係データに共通して含まれる共通変数の変換内容を関係データ間で同一にするという制約の下で、重要度を考慮した照合パターンと変換データとの各類似度の総和を最大化するように各変換ルールを生成し、各変換ルールにしたがって各変換データを生成する(S203)。
そして、更新部25は、各変換データをニューラルネットワークに入力して誤差逆伝搬により誤差を取得する(S204)。
続いて、更新部25は、全照合パターンの中から1つの量を選択し(S205)、選択した量を1だけ変化させたときの各変換データ量の変分を算出する(S206)。その後、更新部25は、誤差逆伝搬の誤差と、算出した各変分の内積を算出する(S207)。
そして、全照合パターンにおいて未選択の量が存在する場合(S208:No)、未選択の量についてS205を実行する。一方、全照合パターンの全量について処理が完了した場合(S208:Yes)、更新部25は、各照合パターンの量とニューラルネットワークのパラメータとに加えて、各重要度を更新する(S209)。
その後、学習処理を継続する場合(S210:No)、S203以降を繰り返し、終了条件を満たす場合は、学習処理を終了する(S210:Yes)。
[具体例]
次に、図25から図37を用いて、学習部22が実行する学習処理の具体例を説明する。実施例1と異なる点は、重要度を用いる点であり、類似度の計算、誤差の変分による更新対象に照合パターンとニューラルネットワークのパラメータだけでなく重要度も含まれる点である。なお、前提は、実施例1と同様とする。
(初期化)
次に、図24のS202で実行される初期化について説明する。図25は、実施例2にかかる初期化を説明する図である。図25の(a)に示す通信ログ用の照合パターンXA1の各量とコマンド履歴用の照合パターンYA1の各量の初期化、および、図25の(b)に示すニューラルネットワークのパラメータの初期化については、図12に示す実施例1と同様である。
実施例2では、学習部22は、各重要度の初期化を実行する。具体的には、図25の(c)に示すように、学習部22は、通信ログ用の重要度K1に、ランダムな値として0.2を設定し、コマンド履歴用の重要度K2に、ランダムな値として0.8を設定する。
(変換データの生成)
次に、図24のS203で実行される変換データについて説明する。図26は、実施例2にかかる変換データの生成を説明する図である。図26に示すように、学習部22は、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa1と変換ルールya1を生成する。
ここで、図26に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX1の各量と照合パターンXA1の各量との類似度1は、「内積((3×0.2)+(1×0.1)+(2×-0.3)+(0×0.4))×重要度K1「0.2」=0.1×0.2=0.02」となる。また、変換データY1の各量と照合パターンYA1の各量との類似度2は、「内積((0×-0.4)+(3×0.2)+(2×0.3)+(1×0.1))×類似度K2「0.8」=1.3×0.8=1.04」となる。
したがって、「類似度1(0.02)+類似度2(1.04)=1.06」が類似度1+類似度2の最大値であり、このときの変換ルールxa1は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya1は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1となる。すなわち、変換ルールxa1の「S1→S´1,S2→S´2」と変換ルールya1の「S1→S´´1,S2→S´´2」とが、各入力データにおける共通変数「項S」の変数値「S1」と「S2」がこの順で入力されるように、同じ変換内容を示している。
(更新:その1)
次に、図24のS204からS208の更新処理について具体的に説明する。なお、処理の流れは、実施例1と同様であり、類似度の算出方法なども同様である。
図27は、実施例2にかかる誤差取得と変換データの量の変分算出(その1)を説明する図である。まず、学習部22は、図26で生成された変換データX1と変換データY1とを、先頭から順に入力層に入力して順伝搬を実行し、出力層から出力値「1.7」を取得する。そして、学習部22は、出力値と教師ラベルとの誤差「1.7−1.0=0.7」を算出し、誤差「0.7」に基づいた逆伝搬を実行して誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」を取得する。
続いて、学習部22は、照合パターンの全量のうち1つ(ここではS´1R´1の量)を選択し、1だけ増加させる。具体的には、学習部22は、図25に示す照合パターンXA1において「S´1,R´1,0.2」の量のみを1増加させて、「S´1,R´1,1.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa2と変換ルールya2を生成する。
ここで、図27に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX2の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY2の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「1.66」となる。
また、図27に示すように、類似度の総和の最大値「1.66」とき、変換ルールxa2は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya2は、「S1→S´´1,S2→S´´2,C1→C´1,C2→C´2となる。すなわち、変換ルールxa2の「S1→S´1,S2→S´2」と変換ルールya2の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX2の各量「3,1,2,0」と変換データX1の各量「3,1,2,0」との変分「0,0,0,0」と、変換データY2の各量「0,3,2,1」と変換データY1の各量「0,3,2,1」との変分「0,0,0,0」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「0,0,0,0,0,0,0,0」との内積として、「0」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´1,R´1」の変動に、算出した「0」を設定する。
(更新:その2)
続いて、照合パターンの次の量の更新を説明する。図28は、実施例2にかかる変換データの量の変分算出(その2)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンXA1のうち「S´2,R´1,0.1」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,1.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa3と変換ルールya3を生成する。
ここで、図28に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX3の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY3の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「1.58」となる。
また、図28に示すように、類似度の総和の最大値「1.58」とき、変換ルールxa3は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya3は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1となる。すなわち、変換ルールxa3の「S1→S´1,S2→S´2」と変換ルールya3の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX3の各量「1,3,0,2」と変換データX1の各量「3,1,2,0」との変分「-2,2,-2,2」と、変換データY3の各量「1,2,3,0」と変換データY1の各量「0,3,2,1」との変分「1,-1,1,-1」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-2,2,-2,2,1,-1,1,-1」との内積として、「-1.1」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´2,R´1」の変動に、算出した「-1.1」を設定する。
(更新:その3)
続いて、照合パターンの次の量の更新を説明する。図29は、実施例2にかかる変換データの量の変分算出(その3)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンXA1のうち「S´1,R´2,−0.3」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,0.7」、「S´2,R´2,0.4」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa4と変換ルールya4を生成する。
ここで、図29に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX4の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY4の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「1.62」となる。
また、図29に示すように、類似度の総和の最大値「1.62」とき、変換ルールxa4は、「S1→S´1,S2→S´2,R1→R´2,R2→R´1となり、変換ルールya4は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1となる。すなわち、変換ルールxa4の「S1→S´1,S2→S´2」と変換ルールya4の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX4の各量「2,0,3,1」と変換データX1の各量「3,1,2,0」との変分「-1,-1,1,1」と、変換データY4の各量「0,3,2,1」と変換データY1の各量「0,3,2,1」との変分「0,0,0,0」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-1,-1,1,1,0,0,0,0」との内積として、「-0.9」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´1,R´2」の変動に、算出した「-0.9」を設定する。
(更新:その4)
続いて、照合パターンの次の量の更新を説明する。図30は、実施例2にかかる変換データの量の変分算出(その4)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンXA1のうち「S´2,R´2,0.4」の量のみを1増加させて、「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,1.4」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa5と変換ルールya5を生成する。
ここで、図30に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX5の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY5の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「1.54」となる。
また、図30に示すように、類似度の総和の最大値「1.54」とき、変換ルールxa5は、「S1→S´2,S2→S´1,R1→R´2,R2→R´1となり、変換ルールya5は、「S1→S´´2,S2→S´´1,C1→C´1,C2→C´2となる。すなわち、変換ルールxa5の「S1→S´2,S2→S´1」と変換ルールya5の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX5の各量「0,2,1,3」と変換データX1の各量「3,1,2,0」との変分「-3,1,-1,3」と、変換データY5の各量「1,2,3,0」と変換データY1の各量「0,3,2,1」との変分「1,-1,1,-1」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-3,1,-1,3,1,-1,1,-1」との内積として、「-2.0」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´2,R´2」の変動に、算出した「-2.0」を設定する。
(更新:その5)
続いて、照合パターンの次の量の更新を説明する。図31は、実施例2にかかる変換データの量の変分算出(その5)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンYA1のうち「S´´1,C´1,−0.4」の量のみを1増加させて、「S´´1,C´1,0.6」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa6と変換ルールya6を生成する。
ここで、図31に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX6の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY6の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「2.1」となる。
また、図31に示すように、類似度の総和の最大値「2.1」とき、変換ルールxa6は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya6は、「S1→S´´2,S2→S´´1,C1→C´2,C2→C´1となる。すなわち、変換ルールxa6の「S1→S´2,S2→S´1」と変換ルールya6の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX6の各量「1,3,0,2」と変換データX1の各量「3,1,2,0」との変分「-2,2,-2,2」と、変換データY6の各量「3,0,1,2」と変換データY1の各量「0,3,2,1」との変分「3,-3,-1,1」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-2,2,-2,2,3,-3,-1,1」との内積として、「0.3」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´´1,C´1」の変動に、算出した「0.3」を設定する。
(更新:その6)
続いて、照合パターンの次の量の更新を説明する。図32は、実施例2にかかる変換データの量の変分算出(その6)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンYA1のうち「S´´2,C´1,0.2」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,1.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa7と変換ルールya7を生成する。
ここで、図32に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX7の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY7の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「3.46」となる。
また、図32に示すように、類似度の総和の最大値「3.46」とき、変換ルールxa7は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya7は、「S1→S´´1,S2→S´´2,C1→C´2,C2→C´1となる。すなわち、変換ルールxa7の「S1→S´1,S2→S´2」と変換ルールya7の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX7の各量「3,1,2,0」と変換データX1の各量「3,1,2,0」との変分「0,0,0,0」と、変換データY7の各量「0,3,2,1」と変換データY1の各量「0,3,2,1」との変分「0,0,0,0」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「0,0,0,0,0,0,0,0」との内積として、「0」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´´2,C´1」の変動に、算出した「0」を設定する。
(更新:その7)
続いて、照合パターンの次の量の更新を説明する。図33は、実施例2にかかる変換データの量の変分算出(その7)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンYA1のうち「S´´1,C´2,0.3」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,1.3」、「S´´2,C´2,0.1」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa8と変換ルールya8を生成する。
ここで、図33に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX8の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY8の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「3.38」となる。
また、図33に示すように、類似度の総和の最大値「3.38」とき、変換ルールxa8は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya8は、「S1→S´´2,S2→S´´1,C1→C´2,C2→C´1となる。すなわち、変換ルールxa8の「S1→S´2,S2→S´1」と変換ルールya8の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX8の各量「1,3,0,2」と変換データX1の各量「3,1,2,0」との変分「-2,2,-2,2」と、変換データY8の各量「1,2,3,0」と変換データY1の各量「0,3,2,1」との変分「1,-1,1,-1」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-2,2,-2,2,1,-1,1,-1」との内積として、「-1.1」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´´1,C´2」の変動に、算出した「-1.1」を設定する。
(更新:その8)
続いて、照合パターンの次の量の更新を説明する。図34は、実施例2にかかる変換データの量の変分算出(その8)を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す照合パターンYA1のうち「S´´2,C´2,0.1」の量のみを1増加させて、「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,1.1」を生成する。
そして、学習部22は、重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa9と変換ルールya9を生成する。
ここで、図34に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX9の各量と照合パターンXA1の各量との類似度1(重要度K1×各量の内積)と、変換データY9の各量と照合パターンYA1の各量との類似度2(重要度K2×各量の内積)との総和は、「2.18」となる。
また、図34に示すように、類似度の総和の最大値「2.18」とき、変換ルールxa9は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya9は、「S1→S´´1,S2→S´´2,C1→C´1,C2→C´2となる。すなわち、変換ルールxa9の「S1→S´1,S2→S´2」と変換ルールya9の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX9の各量「3,1,2,0」と変換データX1の各量「3,1,2,0」との変分「0,0,0,0」と、変換データY9の各量「2,1,0,3」と変換データY1の各量「0,3,2,1」との変分「2,-2,-2,2」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「0,0,0,0,2,-2,-2,2」との内積として、「1.4」を算出する。そして、学習部22は、更新後の照合パターンXAの「S´´2,C´2」の変動に、算出した「1.4」を設定する。
(重要度の更新:その1)
続いて、実施例1とは異なり、学習部22は重要度を更新する。図35は、実施例2にかかる重要度K1の変分内積を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す重要度K1(0.2)および重要度K2(0.8)のうち、重要度K1を1だけ増加させて「1.2」とする。そして、学習部22は、増加させた重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa10と変換ルールya10を生成する。
ここで、図35に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX10の各量と照合パターンXA1の各量との類似度1(重要度K1(=1.2)×各量の内積)と、変換データY10の各量と照合パターンYA1の各量との類似度2(重要度K2(=0.8)×各量の内積)との総和は、「2.6」となる。
また、図35に示すように、類似度の総和の最大値「2.6」とき、変換ルールxa10は、「S1→S´2,S2→S´1,R1→R´1,R2→R´2となり、変換ルールya10は、「S1→S´´2,S2→S´´1,C1→C´2,C2→C´1となる。すなわち、変換ルールxa10の「S1→S´2,S2→S´1」と変換ルールya10の「S1→S´´2,S2→S´´1」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX10の各量「1,3,0,2」と変換データX1の各量「3,1,2,0」との変分「-2,2,-2,2」と、変換データY10の各量「3,0,1,2」と変換データY1の各量「0,3,2,1」との変分「3,-3,-1,1」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「-2,2,-2,2,3,-3,-1,1」との内積として、「0.3」を算出する。そして、学習部22は、更新後の重要度K1の変動に、算出した「0.3」を設定する。
(重要度の更新:その2)
図36は、実施例2にかかる重要度K2の変分内積を説明する図である。なお、ここで説明する処理も、図27で生成された変換データX1と変換データY1とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
学習部22は、図25に示す重要度K1(0.2)および重要度K2(0.8)のうち、重要度K2を1だけ増加させて「1.8」とする。そして、学習部22は、増加させた重要度を考量して、照合パターンと変換データとの類似度1と類似度2との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールxa11と変換ルールya11を生成する。
ここで、図36に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データX11の各量と照合パターンXA1の各量との類似度1(重要度K1(=0.2)×各量の内積)と、変換データY11の各量と照合パターンYA1の各量との類似度2(重要度K2(=1.8)×各量の内積)との総和は、「4.88」となる。
また、図36に示すように、類似度の総和の最大値「4.88」とき、変換ルールxa11は、「S1→S´1,S2→S´2,R1→R´1,R2→R´2となり、変換ルールya11は、「S1→S´´1,S2→S´´2,C1→C´1,C2→C´2となる。すなわち、変換ルールxa11の「S1→S´1,S2→S´2」と変換ルールya11の「S1→S´´1,S2→S´´2」とが、同じ変換内容を示している。
続いて、学習部22は、変換データX11の各量「3,1,2,0」と変換データX1の各量「3,1,2,0」との変分「0,0,0,0」と、変換データY11の各量「2,1,0,3」と変換データY1の各量「0,3,2,1」との変分「2,-2,-2,2」とを算出する。その後、学習部22は、誤差「0.8,-0.1,-0.6,0.4,0.3,0.6,-0.9,0.1」と変分「0,0,0,0,2,-2,-2,2」との内積として、「1.4」を算出する。そして、学習部22は、更新後の重要度K2の変動に、算出した「1.4」を設定する。
(照合パターン更新、パラメータ更新、重要度更新)
上述した処理によって、入力データの各量について、微小な変化を与えたときの変動算出が実行されたので、最後に、その後に実行される図24のS209について具体的に説明する。図37は、実施例2にかかるパラメータの更新と照合パターンの更新と重要度の更新を説明する図である。
図37の(a)に示すように、学習部22は、パラメータの初期値から、誤差逆伝搬で得られた教師ラベルとの差と各変換データの量との乗算値にステップサイズであるα(例えば1.0)を乗算した値を減算して、パラメータを更新する。具体的には、学習部22は、パラメータ「w1,w2,w3,w4,w5,w6,w7,w8」の初期値「1.2,-0.1,-0.9,0.6,0.4,0.8,-1.3,0.2」のそれぞれから、「3×0.7,1×0.7,2×0.7,0×0.7,0×0.7,3×0.7,2×0.7,1×0.7」を減算して、「-0.9,-0.8,-2.3,0.6,0.4,-1.3,-2.7,-0.5」を算出する。
また、図37の(b)に示すように、学習部22は、各照合パターンから、図36までで算出された変動量とステップサイズα(例えば1.0)との乗算値を減算して、各照合パターンを更新する。
具体的には、学習部22は、照合パターンXA1の「S´1,R´1,0.2」、「S´2,R´1,0.1」、「S´1,R´2,−0.3」、「S´2,R´2,0.4」から、算出済みの変動XAの「S´1,R´1,0.0」、「S´2,R´1,−0.1」、「S´1,R´2,−0.9」、「S´2,R´2,−2.0」を減算して、更新後の照合パターンXA1´「S´1,R´1,0.2」、「S´2,R´1,1.2」、「S´1,R´2,0.6」、「S´2,R´2,2.4」を算出する。
同様に、学習部22は、照合パターンYA1の「S´´1,C´1,−0.4」、「S´´2,C´1,0.2」、「S´´1,C´2,0.3」、「S´´2,C´2,0.1」から、算出済みの変動YAの「S´´1,C´1,0.3」、「S´´2,C´1,0.0」、「S´´1,C´2,−1.1」、「S´´2,C´2,1.4」を減算して、更新後の照合パターンYA1´「S´´1,C´1,−0・7」、「S´´2,C´1,0.2」、「S´´1,C´2,1.4」、「S´´2,C´2,−1.3」を算出する。
また、図37の(c)に示すように、学習部22は、重要度の初期値から、算出済みの変動量にステップサイズであるα(例えば1.0)を乗算した値を減算して、重要度を更新する。具体的には、学習部22は、重要度「K1,K2」の初期値「0.2,0.8」のそれぞれから「0.3,1.4」を減算して、新たな重要度「K1,K2」である「-0.1,-0.6」を算出する。
上述した処理を実行することで、学習部22は、パラメータと照合パターンと重要度とを更新する。そして、次の学習データ(入力データ)に対しては、更新されたパラメータと照合パターンと重要度とを初期値として同様の処理が実行される。
[効果]
監視サーバ10は、重要度に基づいて変換データを生成することができるので、各関係データの重要度を適切に考慮でき、学習精度を向上させることができる。また、監視サーバ10は、入力データの各量に対して微小な変化を与えたときの変動量や重要度に微小な変化を与えたときの変動量に応じて、重要度を更新することができるので、主観的な重要度の設定などを抑制することができ、関係データの重要度を適切に設定することができる。また、監視サーバ10は、学習に使用するすべての入力データに基づいて、重要度を決定できるので、固定した重要度による検証を、重要度の組み合わせのパターン数だけ実施する等の対応を省略することができる。この結果、重要度を検証する処理速度を短縮することができ、学習処理全体の処理時間の短縮が実現できる。