(57)【要約】【課題】学習精度の低下を抑制することを課題とする。【解決手段】監視サーバは、変数間の関係がそれぞれに記録された複数の関係データの集合である入力データと正解情報とを取得する。監視サーバは、複数の関係データそれぞれに対応した各照合パターンにしたがって、複数の関係データそれぞれに含まれる変数値を入力順に並び替える変換データに変換する際に、複数の関係データに共通に含まれる共通変数の変換前後の対応関係が同一となるように、複数の関係データそれぞれに対応した各変換ルールを決定する。監視サーバは、対応する各変換ルールにしたがって、複数の関係データそれぞれを複数の変換データに変換する。監視サーバは、複数の変換データの集合を入力データとしてニューラルネットワークに入力し、正解情報に基づいて、ニューラルネットワークを用いた学習モデルの学習を実行する。【選択図】図３
2020080021.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
変数間の関係がそれぞれに記録された複数の関係データの集合である入力データと、前記入力データに付加された正解情報とを取得し、
前記複数の関係データそれぞれに対応した、ニューラルネットワークへ入力する変数値の順序付けの基準が複数の基準値の配列で規定された各照合パターンにしたがって、前記複数の関係データそれぞれに含まれる変数値を入力順に並び替える変換データに変換する際に、前記複数の関係データに共通に含まれる共通変数の変換前後の対応関係が同一となるように、前記複数の関係データそれぞれに対応した各変換ルールを決定し、
対応する前記各変換ルールにしたがって、前記複数の関係データそれぞれを複数の変換データに変換し、
前記複数の変換データの集合を前記入力データとして前記ニューラルネットワークに入力し、前記正解情報に基づいて、前記ニューラルネットワークを用いた学習モデルの学習を実行する
処理を実行させることを特徴とする学習プログラム。
【請求項２】
前記決定する処理は、前記共通変数の変換前後の対応関係が同一となる条件を満たしつつ、前記複数の関係データそれぞれから生成される複数の変換データそれぞれと、対応する照合パターンとの各類似度の総和が最大となるように、前記各変換ルールを決定することを特徴とする請求項１に記載の学習プログラム。
【請求項３】
前記決定する処理は、前記複数の関係データそれぞれから生成される複数の変換データそれぞれと、対応する照合パターンとの類似度を算出し、算出された各類似度に、前記複数の関係データそれぞれに設定される各重要度を乗算し、乗算した各値の総和が最大となるように、前記各変換ルールを決定することを特徴とする請求項２に記載の学習プログラム。
【請求項４】
前記学習する処理は、
複数の入力層が前記関係ごとに設けられる前記ニューラルネットワークに、前記入力データに含まれる変数値を前記入力順で入力して得られる出力値と、前記正解情報との誤差を算出し、
前記複数の変換データそれぞれと前記誤差との乗算結果を用いて、前記複数の入力層それぞれに対応したパラメータを更新することを特徴とする請求項３に記載の学習プログラム。
【請求項５】
前記学習する処理は、
前記誤差に基づく誤差逆伝搬を実行して、前記複数の入力層それぞれに対応した複数の誤差情報を取得し、
前記各照合パターンに含まれる前記複数の基準値それぞれを微小変化させたときに、前記条件を満たしつつ前記各類似度の総和が最大となるように前記各変換ルールを決定し、
前記各変換ルールにしたがって前記複数の変換データを生成し、
前記微小変化前の前記複数の変換データと前記微小変化後の前記複数の変換データとの変分、および、前記複数の誤差情報に基づいて、前記各照合パターンの変動量を算出し、
前記各照合パターンの変動量を用いて、前記各照合パターンを更新することを特徴とする請求項４に記載の学習プログラム。
【請求項６】
前記学習する処理は、
前記各重要度を微小変化させたときに、前記条件を満たしつつ前記各類似度の総和が最大となるように、前記各変換ルールを決定し、
前記各変換ルールにしたがって前記複数の変換データを生成し、
前記微小変化前の前記複数の変換データと前記微小変化後の前記複数の変換データとの変分、および、前記複数の誤差情報に基づいて、前記各重要度の変動量を算出し、
前記各重要度の変動量を用いて、前記各重要度を更新することを特徴とする請求項５に記載の学習プログラム。
【請求項７】
コンピュータが、
変数間の関係がそれぞれに記録された複数の関係データの集合である入力データと、前記入力データに付加された正解情報とを取得し、
前記複数の関係データそれぞれに対応した、ニューラルネットワークへ入力する変数値の順序付けの基準が複数の基準値の配列で規定された各照合パターンにしたがって、前記複数の関係データそれぞれに含まれる変数値を入力順に並び替える変換データに変換する際に、前記複数の関係データに共通に含まれる共通変数の変換前後の対応関係が同一となるように、前記複数の関係データそれぞれに対応した各変換ルールを決定し、
対応する前記各変換ルールにしたがって、前記複数の関係データそれぞれを複数の変換データに変換し、
前記複数の変換データの集合を前記入力データとして前記ニューラルネットワークに入力し、前記正解情報に基づいて、前記ニューラルネットワークを用いた学習モデルの学習を実行する
処理を実行することを特徴とする学習方法。
【請求項８】
変数間の関係がそれぞれに記録された複数の関係データの集合である入力データと、前記入力データに付加された正解情報とを取得する取得部と、
前記複数の関係データそれぞれに対応した、ニューラルネットワークへ入力する変数値の順序付けの基準が複数の基準値の配列で規定された各照合パターンにしたがって、前記複数の関係データそれぞれに含まれる変数値を入力順に並び替える変換データに変換する際に、前記複数の関係データに共通に含まれる共通変数の変換前後の対応関係が同一となるように、前記複数の関係データそれぞれに対応した各変換ルールを決定する決定部と、
対応する前記各変換ルールにしたがって、前記複数の関係データそれぞれを複数の変換データに変換する変換部と、
前記複数の変換データの集合を前記入力データとして前記ニューラルネットワークに入力し、前記正解情報に基づいて、前記ニューラルネットワークを用いた学習モデルの学習を実行する学習部と
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
通信ログや銀行の取引履歴などのように、人やモノ（変数値）の間の関係の集合として定義されるデータ（以降、関係データと記載する場合がある）を入力とし、人やモノの間の関係を分類する技術として、ニューラルネットワークを用いた深層学習（DL：Deep  learning）などの機械学習が利用されている。ニューラルネットワークによる分類は、入力ベクトルの各要素を入力層の各ニューロンに対応させて入力し、下層のニューロンの値の重み付き和に従い、ニューロンの活性度を算出し、出力層の活性度により、入力ベクトルの分類を推定する。
【０００３】
ニューラルネットワークでは、入力データに正規化や所定の変換などを行って順番などを決定した上で入力層に入力されるが、人やモノの間の関係づけを分類したい場合、どの関係をどのニューロンへの入力とするか不明な場合が多い。そのため、ニューラルネットワークへの入力時に、関係を順序づける手法として、照合パターンを利用した技術が利用されている。
【０００４】
図３９は、照合パターンを用いたニューラルネットワークの学習例を説明する図である。図３９に示す手法では、入力データの順序づけのルールを、照合パターンによって規定することで、ニューラルネットワークの誤差逆伝搬を利用した、順序づけのルールの更新を行う。具体的には、まず、図３９の（１）に示すように、照合パターンとの類似度が最大になるように、入力データを順序づける。次に、図３９の（２）に示すように、照合パターンの変動に対する変換データの量の変分を算出する。
【０００５】
そして、図３９の（３）に示すように、誤差逆伝搬により得られる入力層の誤差と、算出した変換データの量の変分との内積により、照合パターンの更新方向を決定する。例えば、分類誤差を増加させる変換データの量の変分の方向（入力層の誤差）に、照合パターンの変動に対する変換データの量の変分を掛け合わせることにより、分類誤差を増加させる照合パターンの変動の方向を算出する。このようにして、ニューラルネットワークへ入力する順番を適切に決定し、分類精度の向上が図られる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−５５５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記技術では、複数の関係データが入力として与えられる場合、学習精度が低下する場合がある。例えば、各関係データに同じ対象を表す変数（共通変数）が含まれ、かつ、その共通変数に基づいて関係データ間を関連付けることが重要である場合に、上記技術では、各関係データの入力順序が関係データごとの照合パターンにしたがって決定される。このため、各関係データの変換後の共通変数の対応関係が入力データ間で一致しない場合があり、関係データ間の関連付けを考慮した学習が担保されず、学習精度が低下し、結果として分類精度も低下する。
【０００８】
一つの側面では、学習精度の低下を抑制することができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、学習プログラムは、コンピュータに、変数間の関係がそれぞれに記録された複数の関係データの集合である入力データと、前記入力データに付加された正解情報とを取得する処理を実行させる。学習プログラムは、コンピュータに、前記複数の関係データそれぞれに対応した、ニューラルネットワークへ入力する変数値の順序付けの基準が複数の基準値の配列で規定された各照合パターンにしたがって、前記複数の関係データそれぞれに含まれる変数値を入力順に並び替える変換データに変換する際に、前記複数の関係データに共通に含まれる共通変数の変換前後の対応関係が同一となるように、前記複数の関係データそれぞれに対応した各変換ルールを決定する処理を実行させる。学習プログラムは、コンピュータに、対応する前記各変換ルールにしたがって、前記複数の関係データそれぞれを複数の変換データに変換する処理を実行させる。学習プログラムは、コンピュータに、前記複数の変換データの集合を前記入力データとして前記ニューラルネットワークに入力し、前記正解情報に基づいて、前記ニューラルネットワークを用いた学習モデルの学習を実行する処理を実行させる。
【発明の効果】
【００１０】
一つの側面では、学習精度の低下を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかるシステムの全体構成例を説明する図である。
【図２】図２は、学習から予測までの全体的な流れを説明する図である。
【図３】図３は、実施例１にかかる監視サーバの学習処理を説明する図である。
【図４】図４は、一般技術の問題を説明する図である。
【図５】図５は、一般技術の問題を説明する図である。
【図６】図６は、実施例１にかかる監視サーバの機能構成を示す機能ブロック図である。
【図７】図７は、学習データＤＢに記憶される情報の例を示す図である。
【図８】図８は、照合パターンＤＢに記憶される情報の例を示す図である。
【図９】図９は、変換ルールＤＢに記憶される情報の例を示す図である。
【図１０】図１０は、実施例１にかかる学習処理の流れを示すフローチャートである。
【図１１】図１１は、具体例の入力データとニューラルネットワークを説明する図である。
【図１２】図１２は、初期化を説明する図である。
【図１３】図１３は、変換データの生成を説明する図である。
【図１４】図１４は、誤差取得と変換データの量の変分算出（その１）を説明する図である。
【図１５】図１５は、変換データの量の変分算出（その２）を説明する図である。
【図１６】図１６は、変換データの量の変分算出（その３）を説明する図である。
【図１７】図１７は、変換データの量の変分算出（その４）を説明する図である。
【図１８】図１８は、変換データの量の変分算出（その５）を説明する図である。
【図１９】図１９は、変換データの量の変分算出（その６）を説明する図である。
【図２０】図２０は、変換データの量の変分算出（その７）を説明する図である。
【図２１】図２１は、変換データの量の変分算出（その８）を説明する図である。
【図２２】図２２は、パラメータの更新と照合パターンの更新を説明する図である。
【図２３】図２３は、実施例２にかかる監視サーバの学習処理を説明する図である。
【図２４】図２４は、実施例２にかかる学習処理の流れを示すフローチャートである。
【図２５】図２５は、実施例２にかかる初期化を説明する図である。
【図２６】図２６は、実施例２にかかる変換データの生成を説明する図である。
【図２７】図２７は、実施例２にかかる誤差取得と変換データの量の変分算出（その１）を説明する図である。
【図２８】図２８は、実施例２にかかる変換データの量の変分算出（その２）を説明する図である。
【図２９】図２９は、実施例２にかかる変換データの量の変分算出（その３）を説明する図である。
【図３０】図３０は、実施例２にかかる変換データの量の変分算出（その４）を説明する図である。
【図３１】図３１は、実施例２にかかる変換データの量の変分算出（その５）を説明する図である。
【図３２】図３２は、実施例２にかかる変換データの量の変分算出（その６）を説明する図である。
【図３３】図３３は、実施例２にかかる変換データの量の変分算出（その７）を説明する図である。
【図３４】図３４は、実施例２にかかる変換データの量の変分算出（その８）を説明する図である。
【図３５】図３５は、実施例２にかかる重要度Ｋ１の変分内積を説明する図である。
【図３６】図３６は、実施例２にかかる重要度Ｋ２の変分内積を説明する図である。
【図３７】図３７は、実施例２にかかるパラメータの更新と照合パターンの更新と重要度の更新を説明する図である。
【図３８】図３８は、ハードウェア構成例を説明する図である。
【図３９】図３９は、照合パターンを用いたニューラルネットワークの学習例を説明する図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１３】
［全体構成］
図１は、実施例１にかかるシステムの全体構成例を説明する図である。図１に示すように、このシステムは、複数の端末装置１と複数のサーバ５と監視サーバ１０とがネットワークＮを介して相互に通信可能に接続される。なお、ネットワークＮは、有線や無線を問わず、インターネットや専用線などの各種通信網を採用することができる。
【００１４】
複数の端末装置１それぞれは、複数のサーバ５それぞれが提供するサービスを利用するコンピュータ装置の一例であり、例えばパーソナルコンピュータ、タブレット端末、スマートフォンなどである。例えば、複数の端末装置１それぞれは、サーバ５に各種コマンドを発行して、サービスの提供を受ける。
【００１５】
複数のサーバ５それぞれは、Ｗｅｂ検索やクラウドサービスなどの各種サービスを端末装置１に提供するコンピュータの一例であり、例えばサーバなどである。例えば、複数のサーバ５それぞれは、端末装置１からコマンドを受信して実行し、実行結果などを端末装置１に送信する。
【００１６】
監視サーバ１０は、ネットワークＮを介して実行された通信を監視し、通信ログとコマンド履歴とを用いて、ニューラルネットワークを用いた深層学習を実行し、不正通信の有無を判定する学習モデルを構築するコンピュータ装置の一例である。そして、監視サーバ１０は、学習された学習モデルに、ネットワークＮから取得した通信ログとコマンド履歴とを入力して、不正通信の発生をリアルタイムに予測（分類）する。
【００１７】
ここで、監視サーバ１０の学習および予測について説明する。図２は、学習から予測までの全体的な流れを説明する図である。図２に示すように、監視サーバ１０は、内部不正を発見するニューラルネットワークを学習するために、学習データとして、クライアントのＩＰ（Internet  Protocol）アドレスとホストのＩＰアドレスの関係が記録された関係データである通信ログと、コマンドとホストのＩＰアドレスとの関係が記録された関係データであるコマンド履歴を保持する。
【００１８】
例えば、監視サーバ１０は、ラベルが付与された通信ログおよびコマンド履歴を教師有の学習データとして用いて、教師有学習を実行する。学習完了後、監視サーバ１０は、予測対象の通信ログとコマンド履歴とを、学習済みの学習モデルに入力し、予測結果を取得する。そして、監視サーバ１０は、予測結果が不正通信を表す場合、管理者に通知したり、アラームを報知したりする。
【００１９】
ここで、学習処理について詳細に説明する。図３は、実施例１にかかる監視サーバ１０の学習処理を説明する図である。例えば、図３に示す学習処理において、監視サーバ１０は、通常通信時に取得された通信ログおよびコマンド履歴にラベルとして（１．０）が設定され、不正通信時に取得された通信ログおよびコマンド履歴にラベルとして（０）が設定された学習データを保持する。
【００２０】
そして、監視サーバ１０は、変換データ１の各値を各成分とするベクトルと、照合パターン１の各値を各成分とするベクトルとの内積が最大化するように、変換ルール１を生成する。その後、監視サーバ１０は、変換ルール１を用いて、通信ログ１を変換データ１に変換して入力層に入力する。
【００２１】
同様に、監視サーバ１０は、変換データ２の各値を各成分とするベクトルと、照合パターン２の各値を各成分とするベクトルとの内積が最大化するように、変換ルール２を生成する。その後、監視サーバ１０は、変換ルール２を用いて、コマンド履歴２を変換データ２に変換して入力層に入力する。
【００２２】
このように、監視サーバ１０は、同じ対象を表す変数（共通変数）が含まれる通信ログとコマンド履歴の２つの複数の関係データをニューラルネットワークに入力して学習モデルを構築する。すなわち、監視サーバ１０は、共通変数に基づいて関係データ間を関連付けた上で、不正通信を表す特徴をニューラルネットワークにより学習する。
【００２３】
ところが、上記変換ルール１および変換ルール２に生成について、一般的な技術を用いた場合、各照合パターンに基づいて各変換ルールが規定されることから、学習精度が低下する場合がある。ここで、図４と図５を用いて、学習精度が低下する具体例を説明する。図４と図５は、一般技術の問題を説明する図である。図４および図５では、項目「ホスト」が共通変数である通信ログとコマンド履歴とを含む入力データを用いた学習処理を説明するが、図４と図５では、変換ルールが異なっている。
【００２４】
図４の例では、通信ログについて、通信ログＡを変換した変換データＡと照合パターンＡとの類似度が最大となるように変換ルールＡが生成され、変換ルールＡにしたがって通信ログＡから変換データＡが生成される。例えば、変換ルールＡは、Ｓ１をＳ´１に変換し、Ｓ２をＳ´２に変換し、Ｒ１をＲ´１に変換し、Ｒ２をＲ´２に変換するルールである。
【００２５】
同様に、コマンド履歴について、コマンド履歴Ｂを変換した変換データＢと照合パターンＢとの類似度が最大となるように変換ルールＢが生成され、変換ルールＢにしたがってコマンド履歴Ｂから変換データＢが生成される。例えば、変換ルールＢは、Ｓ１をＳ´´１に変換し、Ｓ２をＳ´´２に変換し、Ｃ１をＣ´２に変換し、Ｃ２をＣ´１に変換するルールである。
【００２６】
すなわち、図４の例では、入力データＡＢにおける各関係データ（通信ログＡとコマンド履歴Ｂ）が有するホストの対応関係は、「Ｓ´１＝Ｓ´´１（＝Ｓ１），Ｓ´２＝Ｓ´´２（＝Ｓ２）」となる。
【００２７】
これに対して、図５の例では、通信ログについて、通信ログＣを変換した変換データＣと照合パターンＣとの類似度が最大となるように変換ルールＣが生成され、変換ルールＣにしたがって通信ログＣから変換データＣが生成される。例えば、変換ルールＣは、Ｓ１をＳ´２に変換し、Ｓ２をＳ´１に変換し、Ｒ１をＲ´１に変換し、Ｒ２をＲ´２に変換するルールである。
【００２８】
同様に、コマンド履歴について、コマンド履歴Ｄを変換した変換データＤと照合パターンＤとの類似度が最大となるように変換ルールＤが生成され、変換ルールＤにしたがってコマンド履歴Ｄから変換データＤが生成される。例えば、変換ルールＤは、Ｓ１をＳ´´１に変換し、Ｓ２をＳ´´２に変換し、Ｃ１をＣ´２に変換し、Ｃ２をＣ´１に変換するルールである。
【００２９】
すなわち、図５の例では、入力データＣＤにおける各関係データ（通信ログＣとコマンド履歴Ｄ）が有するホストの対応関係は、「Ｓ´１＝Ｓ´´２（＝Ｓ２），Ｓ´２＝Ｓ´´１（＝Ｓ１）」となる。
【００３０】
このように、同じ項目を有する入力データを用いて学習を行う場合でも、変換することにより、ニューラルネットワークに入力される順番が異なることがある。つまり、通信ログとコマンド履歴の各々にホストのＩＰアドレス（共通変数）が含まれ、内部不正の発見において、クライアントのＩＰアドレスとコマンドとの関係が分類に重要である場合であっても、共通変数の入力順が異なることで、この関係を考慮した学習が実行できない。
【００３１】
この問題についてより詳細に説明すると、まず、ニューラルネットワークの入力層の各ニューロンには同じ内容を示すデータが入力されなければならない。例えば、人間の特徴（身長、体重、年齢）をニューラルネットワークに入力することを考えた場合、１個目のニューロンには身長、２個目には体重、３個目には年齢を入力するなどの形式となる。このとき、例えば、人間Ａでは［身長、体重、年齢］の順に、人間Ｂでは［体重、年齢、身長］の順で入力すると、「身長」、「体重」、「年齢」の関係を適切に学習することができないので、適切な分類も行われない。
【００３２】
上記図４と図５の説明図では、Ｓ´とＳ´´の対応関係が入力データＡＢとＣＤで一致していない。つまり、入力データＡＢではＳ´１とＳ´´１が同一のホストを指しているが、入力データＣＤではＳ´１とＳ´´１は異なるホストを指している。従って、入力データＡＢでは１個目と５個目のニューロンに同一ホストに関するデータが入力されるが、入力データＣＤでは１個目と５個目には異なるホストに関するデータが入力されることになる。
【００３３】
ここで、通信ログのホストとコマンド履歴のホストを関連付けて分類を行うことが精度に大きく寄与すると予想される場合、通信ログとコマンド履歴の同一ホストに関するデータが入力されるニューロンの位置は入力データ間で一致している必要がある。これが入力データ間で一致していることにより、同一ホストに関する通信ログとコマンド履歴の関係を適切に学習することができる。換言すれば、これが入力データ間で一致していない状況というのは、上述した人間の特徴を入力する際に特徴を入力する順番が異なるという状況に相当するため、図４や図５の状況では適切な学習や分類は行われないことになる。
【００３４】
なお、ニューラルネットワークのパラメータや照合パターンが適切に更新されれば、Ｓ´とＳ´´の対応関係が入力データ間で一致するように変換されるということも考えられる。しかし、ニューラルネットワークのパラメータや照合パターンの更新の仕組みとして、Ｓ´とＳ´´の対応関係が入力データ間で一致することは保証されない。別の言い方をすると、一部の入力データでは他の入力データとはＳ´とＳ´´の対応関係が一致しないようにした方が精度良く分類できることがあり得る。これは一般的に過学習と言われる状態であり、学習に使用した入力データでは高い精度が得られるものの、学習に使用していない未知の入力データに対しては低い精度となる可能性が高い。
【００３５】
そこで、実施例１にかかる監視サーバ１０は、入力データにおける各関係データ（通信ログとコマンド履歴）を変換する各変換ルールを生成する際に、共通変数については変換ルールを同一にする制約を設ける。
【００３６】
具体的には、監視サーバ１０は、それぞれが２個以上の変数を含む複数の関係データで構成される入力データを受け付ける。監視サーバ１０は、複数の関係データそれぞれに含まれる変数値を、照合パターンに対応させた変換データに変換する変換ルールを複数の関係データそれぞれについて決定する際に、複数の関係データに共通して含まれる変数（共通変数）に対する変換ルールが同一となるように、複数の関係データそれぞれについての変換ルールを決定する。その後、監視サーバ１０は、照合パターンを更新する際に、複数の関係データの変換データとの類似度の合計に基づいて、更新量を決定する。
【００３７】
このようにすることで、監視サーバ１０は、各関係データの変換後の共通変数の対応関係を入力データ間で一致させることができ、関係データ間の関連付けを考慮した学習を実行することができるので、学習精度の低下を抑制することができる。なお、実施例１では、監視サーバ１０が学習処理と予測処理（分類処理）とを実行する場合を説明するが、各処理を別々のサーバで実行することもできる。
【００３８】
［機能構成］
図６は、実施例１にかかる監視サーバ１０の機能構成を示す機能ブロック図である。図６に示すように、監視サーバ１０は、通信部１１、記憶部１２、制御部２０を有する。
【００３９】
通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、ネットワークＮを介して送受信された各種通信を受信し、予測結果などを管理者端末に送信する。
【００４０】
記憶部１２は、データや制御部２０が実行するプログラムなどを記憶する記憶装置であり、例えばメモリやハードディスクなどである。この記憶部１２は、学習データＤＢ１３、照合パターンＤＢ１４、変換ルールＤＢ１５、学習結果ＤＢ１６を記憶する。
【００４１】
学習データＤＢ１３は、ニューラルネットワークを用いた学習モデルの学習に使用される学習データを記憶するデータベースである。具体的には、学習データＤＢ１３は、通信ログとコマンド履歴とを１つの組とするデータと、ラベルとを対応付けた複数の学習データを記憶する。
【００４２】
図７は、学習データＤＢ１３に記憶される情報の例を示す図である。図７に示すように、学習データＤＢ１３は、「取得時間、データ、ラベル」を対応付けて記憶する。ここで記憶される「取得時間」は、データが取得された時間を示し、「データ」は、学習対象のデータを示す。「ラベル」は、ニューラルネットワークの学習に利用される正解情報であり、不正通信を示す場合は「０」が設定され、「通常通信」を示す場合は「１．０」が設定される。
【００４３】
図７の例では、取得時間「１０：００から１０：１０」の間に取得されたデータ（通信ログ１、コマンド履歴２）が通常通信（ラベル＝１．０）であることを示している。また、通信ログ１は、通信元のＩＰアドレスを示す「ホスト」と、通信先であるクライアント端末のＩＰアドレスを示す「クライアント」と、発生した通信量を示す「量」とが対応付けられる。例えば、通信ログ１において、通信元ホストＳ１から通信先ホストＲ１への通信が３回発生したことを示す。
【００４４】
また、コマンド履歴２は、コマンド発行元のＩＰアドレスを示す「ホスト」と、発行されたコマンドを示す「コマンド」と、発生したコマンドの量を示す「量」とが対応付けられる。例えば、コマンド履歴２において、ホストＳ２からコマンドＣ１が２回実行されたことを示す。なお、通信ログが有する項目とコマンド履歴が有する項目とのうち、どの項目が共通しているかは、ユーザ等が指定することもでき、対応付けテーブルなどで指定することもできる。
【００４５】
なお、通信ログ１やコマンド履歴２の各レコードが関係に該当し、「ホスト」、「クライアント」、「コマンド」などが変数に該当し、「Ｓ１」などが変数値に該当し、変数値がニューラルネットワークへの入力対象となる。
【００４６】
照合パターンＤＢ１４は、ニューラルネットワークへ入力する数値の順序付けの基準が複数の基準値の配列で示される照合パターンを記憶するデータベースである。具体的には、照合パターンＤＢ１４は、学習対象の関係データである通信ログとコマンド履歴のそれぞれについて、照合パターンを記憶する。なお、照合パターンＤＢ１４が記憶する各照合パターンは、後述する制御部２０によって更新される。
【００４７】
図８は、照合パターンＤＢ１４に記憶される情報の例を示す図である。図８に示すように、照合パターンＤＢ１４は、通信ログ用の照合パターン１とコマンド履歴用の照合パターン２とを記憶する。照合パターン１は、ホストＳ´１とクライアントＲ´１のレコードに該当する量、ホストＳ´２とクライアントＲ´１のレコードに該当する量、ホストＳ´１とクライアントＲ´２のレコードに該当する量、ホストＳ´２とクライアントＲ´２のレコードに該当する量の順で、ニューラルネットワークに入力することを示す。
【００４８】
同様に、照合パターン２は、ホストＳ´´１とコマンドＣ´１のレコードに該当する量、ホストＳ´´２とコマンドＣ´１のレコードに該当する量、ホストＳ´´１とコマンドＣ´２のレコードに該当する量、ホストＳ´´２とコマンドＣ´２のレコードに該当する量の順で、ニューラルネットワークに入力することを示す。
【００４９】
変換ルールＤＢ１５は、学習データを入力層に入力する形式である変換データに変換するためのルールを記憶するデータベースである。具体的には、変換ルールＤＢ１５は、学習対象の関係データである通信ログとコマンド履歴のそれぞれについて、変換ルールを記憶する。なお、変換ルールＤＢ１５が記憶する各変換ルールは、後述する制御部２０によって更新される。
【００５０】
図９は、変換ルールＤＢ１５に記憶される情報の例を示す図である。図９に示すように、変換ルールＤＢ１５は、通信ログ用の変換ルール１とコマンド履歴用の変換ルール２とを記憶する。変換ルール１は、Ｓ１をＳ´２に変換し、Ｓ２をＳ´１に変換し、Ｒ１をＲ´１に変換し、Ｒ２をＲ´２に変換することを示す。変換ルール２は、Ｓ１をＳ´´２に変換し、Ｓ２をＳ´´１に変換し、Ｃ１をＣ´１に変換し、Ｃ２をＣ´２に変換することを示す。
【００５１】
ここで、詳細は後述するが、変換ルール１における「Ｓ１からＳ´２への変換、Ｓ２からＳ´１への変換」と、変換ルール２における「Ｓ１からＳ´´２への変換、Ｓ２からＳ´´１への変換」とは、共通変数の変換ルールを同一にする制約の下で生成された内容であり、同じ変換内容を示す。つまり、この共通ルールにより、通信ログとコマンド履歴に含まれる共通変数がどの順番で関係データに保存されている場合であっても、ニューラルネットワークに入力されるときには決まった順序で入力されることが保証される。
【００５２】
学習結果ＤＢ１６は、後述する制御部２０による学習結果を記憶するデータベースである。具体的には、学習結果ＤＢ１６は、学習データの分類結果や、ディープラーニングによって学習されたニューラルネットワークの各パラメータの値などを記憶する。すなわち、学習結果ＤＢ１６は、学習済みである学習モデルの構築に用いる各種情報を記憶する。
【００５３】
制御部２０は、監視サーバ１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、データ取得部２１、学習部２２、予測部２６を有する。なお、データ取得部２１、学習部２２、予測部２６は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【００５４】
データ取得部２１は、ネットワークＮで送受信される通信から各種データを取得する処理部である。例えば、データ取得部２１は、各データを用いて、通信ログやコマンド履歴を生成する。そして、データ取得部２１は、生成された通信ログやコマンド履歴にユーザが指定したラベルを付与し、学習データとして学習データＤＢ１３に格納する。なお、学習データは、ユーザが手動で生成して格納することもできる。
【００５５】
また、データ取得部２１は、学習モデルの学習完了後、ネットワークＮで送受信される通信から各種データを取得して、通信ログやコマンド履歴を生成する。そして、データ取得部２１は、生成した通信ログやコマンド履歴を予測対象のデータとして、予測部２６に出力する。
【００５６】
学習部２２は、初期化部２３、変換部２４、更新部２５を有し、学習データである２つの関係データを用いて、通常通信と不正通信とを分類するニューラルネットワークを学習し、学習モデルを構築する処理部である。具体的には、学習部２２は、更新対象である照合パターンを微小に変換させたときの変換データの変動量を算出し、算出した変動量を用いて照合パターンやニューラルネットワークのパラメータを更新する。なお、学習処理を終了するタイミングは、所定数以上の学習データを用いた学習が完了した時点や復元誤差が閾値未満となった時点など、任意に設定することができる。
【００５７】
初期化部２３は、各照合パターンやニューラルネットワークのパラメータを初期化する処理部である。具体的には、初期化部２３は、学習処理が開始されると、照合パターンＤＢ１４に記憶される通信ログ用の照合パターンの各量およびコマンド履歴用の照合パターンの各量に、ランダムな値を設定する。また、初期化部２３は、学習処理が開始されると、ニューラルネットワークの各パラメータにランダムな値を設定する。なお、ランダムな値に限らず、予め指定した初期値を設定することもできる。
【００５８】
変換部２４は、各関係データに共通して含まれる共通変数（ホスト）の変換内容を関係データ間で同一にするという制約の下で、照合パターンと変換データの類似度の総和を最大化するように入力データを変換する処理部である。
【００５９】
具体的には、変換部２４は、通信ログの変換ルール１およびコマンド履歴の変換ルール２を、各変換データ各照合パターンとの類似度の総和（合計）が最大となるように決定する。このとき、変換部２４は、通信ログとコマンド履歴との間で共通する共通変数である「ホスト」に対する変換ルールが同一となる制限の下で、通信ログ用の変換ルール１およびコマンド履歴の変換ルール２を生成する。
【００６０】
そして、変換部２４は、生成した変換ルール１を用いて、入力データである通信ログ１を変換データ１に変換し、生成した変換ルール２を用いて、入力データであるコマンド履歴２を変換データ２に変換する。その後、変換部２４は、変換データ１および変換データ２を、変換された順序でニューラルネットワークの各入力層に入力する。すなわち、変換部２４は、通信ログ１およびコマンド履歴２を、各照合パターンで規定された順序で、入力層に入力する。
【００６１】
更新部２５は、各変換ルール、各照合パターン、ニューラルネットワークのパラメータを更新する処理部である。具体的には、更新部２５は、変換部２４によって各変換データが入力された入力層の出力結果を、当該ニューラルネットワークの出力層から取得する。そして、更新部２５は、入力データのラベルと出力結果との誤差を取得する。その後、更新部２５は、誤差逆伝搬により得られた誤差を用いて、各変換ルール、各照合パターン、ニューラルネットワークのパラメータを更新する。なお、更新の具体的な手法は、後述する。
【００６２】
なお、初期化部２３、変換部２４、更新部２５は、学習処理が継続する間、各入力データについて上記各処理を実行して、各照合パターン、ニューラルネットワークのパラメータを学習し、学習モデルを構築する。そして、初期化部２３、変換部２４、更新部２５は、学習処理が終了すると、学習結果を学習結果ＤＢ１６に格納する。
【００６３】
予測部２６は、学習済みの学習モデルを用いて、不正通信を予測する処理部である。具体的には、予測部２６は、学習結果ＤＢ１６からニューラルネットワークのパラメータを読み出して、学習済みの学習モデルを構築する。また、予測部２６は、学習結果ＤＢ１６から、学習済みの通信ログ用の照合パターン１と、学習済みのコマンド履歴用の照合パターン２とを読み出す。
【００６４】
そして、予測部２６は、予測対象の入力データ（通信ログ、コマンド履歴）の共通変数（ホスト）の変換内容を関係データ間で同一にするという制約の下で、各照合パターンと変換データの各類似度の総和を最大化するように、各変換ルール（変換ルール１、変換ルール２）を生成する。続いて、予測部２６は、生成した変換ルール１に従って通信ログを変換データ１に変換し、生成した変換ルール２に従ってコマンド履歴を変換データ２に変換する。その後、予測部２６は、変換データ１および変換データ２をニューラルネットワークに入力して出力結果を取得する。
【００６５】
そして、予測部２６は、出力結果に基づいて、不正通信か否かを判定する。例えば、予測部２６は、出力結果において、通常通信である確率が３０％、不正通信である確率が７０％である場合に、入力データを不正通信と判定する。なお、予測手法は、出力層の構成により任意に変更することができる。
【００６６】
［処理の流れ］
次に、学習部２２が実行する学習処理の詳細を説明する。図１０は、実施例１にかかる学習処理の流れを示すフローチャートである。図１０に示すように、処理が開始されると（Ｓ１０１：Ｙｅｓ）、学習部２２の初期化部２３は、各照合パターンとニューラルネットワーク（ＮＮ）のパラメータをランダムに初期化する（Ｓ１０２）。
【００６７】
続いて、変換部２４は、各関係データに共通して含まれる共通変数の変換内容を関係データ間で同一にするという制約の下で、照合パターンと変換データとの各類似度の総和を最大化するように各変換ルールを生成し、各変換ルールにしたがって各変換データを生成する（Ｓ１０３）。
【００６８】
そして、更新部２５は、各変換データをニューラルネットワークに入力して誤差逆伝搬により誤差を取得する（Ｓ１０４）。
【００６９】
続いて、更新部２５は、全照合パターンの中から１つの量を選択し（Ｓ１０５）、選択した量を１だけ変化させたときの各変換データ量の変分を算出する（Ｓ１０６）。その後、更新部２５は、誤差逆伝搬の誤差と、算出した各変分の内積を算出する（Ｓ１０７）。
【００７０】
そして、全照合パターンにおいて未選択の量が存在する場合（Ｓ１０８：Ｎｏ）、未選択の量についてＳ１０５を実行する。一方、全照合パターンの全量について処理が完了した場合（Ｓ１０８：Ｙｅｓ）、更新部２５は、各照合パターンの量とニューラルネットワークのパラメータとを更新する（Ｓ１０９）。
【００７１】
その後、学習処理を継続する場合（Ｓ１１０：Ｎｏ）、Ｓ１０３以降を繰り返し、終了条件を満たす場合は、学習処理を終了する（Ｓ１１０：Ｙｅｓ）。
【００７２】
［具体例］
次に、図１１から図２２を用いて、学習部２２が実行する学習処理の具体例を説明する。
【００７３】
（前提）
まず、学習処理の前提として、入力データやニューラルネットワークについて説明する。図１１は、具体例の入力データとニューラルネットワークを説明する図である。図１１の（ａ）に示すように、ここでは、教師ラベル「１．０」が付与された入力データを用いて説明する。また、入力データは、「項Ｓ、項Ｒ、量」から構成される関係データＸと「項Ｓ、項Ｃ、量」から構成される関係データＹを含む。
【００７４】
また、関係データＸは、「項Ｓ，項Ｒ，量」として「Ｓ１，Ｒ１，３」、「Ｓ２，Ｒ１，１」、「Ｓ１，Ｒ２，２」、「Ｓ２，Ｒ２，０」を有する。また、関係データＹは、「項Ｓ，項Ｃ，量」として「Ｓ１，Ｃ１，２」、「Ｓ２，Ｃ１，１」、「Ｓ１，Ｃ２，０」、「Ｓ２，Ｃ２，３」を有する。つまり、入力データは、８個のデータであり、関係データＸおよび関係データＹに含まれる「項Ｓ」が共通変数となる。なお、例えば項Ｓは、通信元のホスト名やＩＰアドレスであり、Ｒ２は、通信先のクライアント端末のＩＰアドレスなどであり、項Ｃは、コマンドの内容であり、量は、通信回数やコマンド回数などであり入力層へ入力される学習対象のデータである。
【００７５】
また、ここで用いるニューラルネットワークは、図１１の（ｂ）に示すように、８個の入力データ（８個の量）に対応した８個の入力層を有する。また、中間層は省略するが、各入力層から出力層までのパラメータ（例えば重みなど）を「ｗ１からｗ８」とし、入力層から出力層へ値が伝搬することを順伝搬と呼び、出力層から入力層へパラメータを更新することを逆伝搬と呼ぶ。また、具体例では、出力層から得られる出力結果と、教師ラベルとの誤差を用いて、逆伝搬によりパラメータを更新する教師有学習を用いて説明する。
【００７６】
（初期化）
次に、図１０のＳ１０２で実行される初期化について説明する。図１２は、初期化を説明する図である。図１２の（ａ）に示すように、学習部２２は、通信ログ用の照合パターンＸＡ１の各量とコマンド履歴用の照合パターンＹＡ１の各量とにランダムな値を設定する。ここで、照合パターンＸＡ１は、「項Ｓ，項Ｒ，量」から構成される。なお、「項Ｓ，項Ｒ」は入力データを特定する情報であり、「量」は基準値である。また、照合パターンＹＡ１は、「項Ｓ，項Ｃ，量」から構成される。なお、「項Ｓ，項Ｃ」は入力データを特定する情報であり、「量」は基準値である。
【００７７】
そして、初期値が設定された照合パターンＸＡ１は、「項Ｓ，項Ｒ，量」として「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」が設定される。初期値が設定された照合パターンＹＡ１は、「項Ｓ，項Ｃ，量」として「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」が設定される。
【００７８】
すなわち、各照合パターンにより、「Ｓ´１，Ｒ´１」、「Ｓ´２，Ｒ´１」、「Ｓ´１，Ｒ´２」、「Ｓ´２，Ｒ´２」、「Ｓ´´１，Ｃ´１」、「Ｓ´´２，Ｃ´１」、「Ｓ´´１，Ｃ´２」、「Ｓ´´２，Ｃ´２」に該当する各量が、この順番で、入力層に入力されることが規定されている。
【００７９】
また、図１２の（ｂ）に示すように、学習部２２は、ニューラルネットワークのパラメータ「ｗ１，ｗ２，ｗ３，ｗ４，ｗ５，ｗ６，ｗ７，ｗ８」それぞれについて、「1.2，-0.1，-0.9，0.6，0.4，0.8，-1.3，0.2」を設定する。
【００８０】
（変換データの生成）
次に、図１０のＳ１０３で実行される変換データについて説明する。図１３は、変換データの生成を説明する図である。図１３に示すように、学習部２２は、入力データＸを変換した変換データＸ１の各量と照合パターンＸＡ１の各量との内積（類似度１）と、入力データＹを変換した変換データＹ１の各量と照合パターンＹＡ１の各量との内積（類似度２）との合計が最大となるように、変換ルールｘａ１と変換ルールｙｂ１を生成する（条件１）。このとき、学習部２２は、共通変数「項Ｓ」に設定される変数値（Ｓ１，Ｓ２）の変換ルールについて同じ内容となるようにする（条件２）。
【００８１】
図１３に示す変換ルールや変換データは、条件１および条件２を満たす例を図示している。具体的には、変換データＸ１の各量と照合パターンＸＡ１の各量との類似度１は、内積「（1×0.2）＋（3×0.1）＋（0×-0.3）＋（2×0.4）＝1.3」となる。また、変換データＹ１の各量と照合パターンＹＡ１の各量との類似度２は、内積「（1×-0.4）＋（2×0.2）＋（3×0.3）＋（0×0.1）＝0.9」となる。
【００８２】
したがって、「類似度１（1.3）＋類似度２（0.9）＝2.2」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ１は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ１は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ１の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ１の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、各入力データにおける共通変数「項Ｓ」の変数値「Ｓ２」と「Ｓ１」がこの順で入力されるように、同じ変換内容を示している。なお、矢印は、元の変数値から変換後の変数値への変換を示している。
【００８３】
（更新：その１）
次に、図１０のＳ１０４からＳ１０８について具体的に説明する。図１４は、誤差取得と変換データの量の変分算出（その１）を説明する図である。まず、学習部２２は、図１３で生成された変換データＸ１と変換データＹ１とを、先頭から順に入力層に入力して順伝搬を実行し、出力層から出力値「0.2」を取得する。そして、学習部２２は、出力値と教師ラベルとの誤差「0.2−1.0＝-0.8」を算出し、誤差「-0.8」に基づいた逆伝搬を実行して誤差「-1.0，0.1，0.7，-0.5，-0.3，-0.6，1.0，-0.2」を取得する。
【００８４】
続いて、学習部２２は、照合パターンの全量のうち１つ（ここではＳ´１Ｒ´１の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＸＡ１において「Ｓ´１，Ｒ´１，０．２」の量のみを１増加させて、「Ｓ´１，Ｒ´１，１．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【００８５】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ２と変換ルールｙａ２を生成する。
【００８６】
ここで、図１４に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ２の各量と照合パターンＸＡ１の各量との類似度１は、内積「（3×1.2）＋（1×0.1）＋（2×-0.3）＋（0×0.4）＝3.1」となる。また、変換データＹ２の各量と照合パターンＹＡ１の各量との類似度２は、内積「（0×-0.4）＋（3×0.2）＋（2×0.3）＋（1×0.1）＝1.3」となる。
【００８７】
したがって、「類似度１（3.1）＋類似度２（1.3）＝4.4」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ２は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ２は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ１の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ２の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【００８８】
続いて、学習部２２は、更新後の変換データから更新前の変換データを減算することで、変換データの変分（変動量）を算出する。具体的には、学習部２２は、変換データＸ２の各量「3，1，2，0」と変換データＸ１の各量「1，3，0，2」との変分「2，-2，2，-2」と、変換データＹ２の各量「0，3，2，1」と変換データＹ１の各量「1，2，3，0」との変分「-1，1，-1，1」とを算出する。
【００８９】
その後、学習部２２は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部２２は、誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´１，Ｒ´１」の変動に、算出した「-1.3」を設定する。
【００９０】
（更新：その２）
続いて、照合パターンの次の量の更新を説明する。図１５は、変換データの量の変分算出（その２）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【００９１】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´２Ｒ´１の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＸＡ１のうち「Ｓ´２，Ｒ´１，０．１」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，１．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【００９２】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ３と変換ルールｙａ３を生成する。
【００９３】
ここで、図１５に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ３の各量と照合パターンＸＡ１の各量との類似度１は、内積「（1×0.2）＋（3×1.1）＋（0×-0.3）＋（2×0.4）＝4.3」となる。また、変換データＹ３の各量と照合パターンＹＡ１の各量との類似度２は、内積「（1×-0.4）＋（2×0.2）＋（3×0.3）＋（0×0.1）＝0.9」となる。
【００９４】
したがって、「類似度１（4.3）＋類似度２（0.9）＝5.2」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ３は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ３は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ３の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ３の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【００９５】
続いて、学習部２２は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部２２は、変換データＸ３の各量「1，3，0，2」と変換データＸ１の各量「1，3，0，2」との変分「0，0，0，0」と、変換データＹ２の各量「1，2，3，0」と変換データＹ１の各量「1，2，3，0」との変分「0，0，0，0」とを算出する。
【００９６】
その後、学習部２２は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部２２は、誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´２，Ｒ´１」の変動に、算出した「0.0」を設定する。
【００９７】
（更新：その３）
続いて、照合パターンの次の量の更新を説明する。図１６は、変換データの量の変分算出（その３）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【００９８】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´１Ｒ´２の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＸＡ１の「Ｓ´１，Ｒ´２，−０．３」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，０．７」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【００９９】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ４と変換ルールｙａ４を生成する。
【０１００】
ここで、図１６に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ４の各量と照合パターンＸＡ１の各量との類似度１は、内積「（2×0.2）＋（0×0.1）＋（3×0.7）＋（1×0.4）＝2.9」となる。また、変換データＹ４の各量と照合パターンＹＡ１の各量との類似度２は、内積「（0×-0.4）＋（3×0.2）＋（2×0.3）＋（1×0.1）＝1.3」となる。
【０１０１】
したがって、「類似度１（2.9）＋類似度２（1.3）＝4.2」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ４は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´２，Ｒ２→Ｒ´１となり、変換ルールｙａ４は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ４の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ４の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１０２】
続いて、学習部２２は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部２２は、変換データＸ４の各量「2，0，3，1」と変換データＸ１の各量「1，3，0，2」との変分「1，-3，3，1」と、変換データＹ４の各量「0，3，2，1」と変換データＹ１の各量「1，2，3，0」との変分「-1，1，-1，1」とを算出する。
【０１０３】
その後、学習部２２は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部２２は、誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´１，Ｒ´２」の変動に、算出した「-0.2」を設定する。
【０１０４】
（更新：その４）
続いて、照合パターンの次の量の更新を説明する。図１７は、変換データの量の変分算出（その４）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１０５】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´２Ｒ´２の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＸＡ１の「Ｓ´２，Ｒ´２，０．４」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，１．４」を生成する。
【０１０６】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ５と変換ルールｙａ５を生成する。
【０１０７】
ここで、図１７に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ５の各量と照合パターンＸＡ１の各量との類似度１は、内積「（0×0.2）＋（2×0.1）＋（1×-0.3）＋（3×1.4）＝4.1」となる。また、変換データＹ５の各量と照合パターンＹＡ１の各量との類似度２は、内積「（1×-0.4）＋（2×0.2）＋（3×0.3）＋（0×0.1）＝0.9」となる。
【０１０８】
したがって、「類似度１（4.1）＋類似度２（0.9）＝5.0」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ５は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´２，Ｒ２→Ｒ´１となり、変換ルールｙａ５は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２」となる。すなわち、変換ルールｘａ５の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ５の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１０９】
続いて、学習部２２は、更新後の変換データから更新前の変換データを減算することで、変換データの変分を算出する。具体的には、学習部２２は、変換データＸ５の各量「0，1，1，3」と変換データＸ１の各量「1，3，0，2」との変分「-1，-1，1，1」と、変換データＹ５の各量「1，2，3，0」と変換データＹ１の各量「1，2，3，0」との変分「0，0，0，0」とを算出する。
【０１１０】
その後、学習部２２は、誤差逆伝搬で得られた誤差と、変換データの量の変分との内積を算出する。具体的には、学習部２２は、誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´２，Ｒ´２」の変動に、算出した「1.1」を設定する。
【０１１１】
（更新：その５）
続いて、照合パターンの次の量の更新を説明する。図１８は、変換データの量の変分算出（その５）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１１２】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´´１Ｃ´１の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＹＡ１のうち「Ｓ´´１，Ｃ´１，−０．４」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，０．６」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１１３】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ６と変換ルールｙａ６を生成する。
【０１１４】
ここで、図１８に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ６の各量と照合パターンＸＡ１の各量との類似度１と、変換データＹ６の各量と照合パターンＹＡ１の各量との類似度２との合計が「3.6」となる。このときの変換ルールｘａ６は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ６は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１」となる。すなわち、変換ルールｘａ６の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ６の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１１５】
続いて、学習部２２は、変換データＸ６の各量「1，3，0，2」と変換データＸ１の各量「1，3，0，2」との変分「0，0，0，0」と、変換データＹ６の各量「3，0，1，2」と変換データＹ１の各量「1，2，3，0」との変分「2，-2，-2，2」とを算出する。その後、学習部２２は、誤差逆伝搬で得られた誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＹＡの「Ｓ´´１，Ｃ´１」の変動に、算出した「-1.8」を設定する。
【０１１６】
（更新：その６）
続いて、照合パターンの次の量の更新を説明する。図１９は、変換データの量の変分算出（その６）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１１７】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´´２Ｃ´１の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＹＡ１のうち「Ｓ´´２，Ｃ´１，０．２」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，１．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１１８】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ７と変換ルールｙａ７を生成する。
【０１１９】
ここで、図１９に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ７の各量と照合パターンＸＡ１の各量との類似度１と、変換データＹ７の各量と照合パターンＹＡ１の各量との類似度２との合計が「4.4」となる。このときの変換ルールｘａ７は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ７は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１」となる。すなわち、変換ルールｘａ７の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ７の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１２０】
続いて、学習部２２は、変換データＸ７の各量「3，1，2，0」と変換データＸ１の各量「1，3，0，2」との変分「2，-2，2，-2」と、変換データＹ７の各量「0，3，2，1」と変換データＹ１の各量「1，2，3，0」との変分「-1，1，-1，1」とを算出する。その後、学習部２２は、誤差逆伝搬で得られた誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＹＡの「Ｓ´´２，Ｃ´１」の変動に、算出した「-1.3」を設定する。
【０１２１】
（更新：その７）
続いて、照合パターンの次の量の更新を説明する。図２０は、変換データの量の変分算出（その７）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１２２】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´´１Ｃ´２の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＹＡ１のうち「Ｓ´´１，Ｃ´２，０．３」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，１．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１２３】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ８と変換ルールｙａ８を生成する。
【０１２４】
ここで、図２０に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ８の各量と照合パターンＸＡ１の各量との類似度１と、変換データＹ８の各量と照合パターンＹＡ１の各量との類似度２との合計が「5.2」となる。このときの変換ルールｘａ８は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ８は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２」となる。すなわち、変換ルールｘａ８の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ８の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１２５】
続いて、学習部２２は、変換データＸ８の各量「1，3，0，2」と変換データＸ１の各量「1，3，0，2」との変分「0，0，0，0」と、変換データＹ８の各量「1，2，3，0」と変換データＹ１の各量「1，2，3，0」との変分「0，0，0，0」とを算出する。その後、学習部２２は、誤差逆伝搬で得られた誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＹＡの「Ｓ´´１，Ｃ´２」の変動に、算出した「0.0」を設定する。
【０１２６】
（更新：その８）
続いて、照合パターンの次の量の更新を説明する。図２１は、変換データの量の変分算出（その８）を説明する図である。なお、ここで説明する処理も、図１３で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１２７】
まず、学習部２２は、照合パターンの全量のうち未選択の量を１つ（ここではＳ´´２Ｃ´２の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図１３に示す照合パターンＹＡ１のうち「Ｓ´´２，Ｃ´２，０．１」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，１．１」を生成する。
【０１２８】
そして、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ９と変換ルールｙａ９を生成する。
【０１２９】
ここで、図２１に示す変換ルールや変換データは、上記最大値と制約を満たす例を図示している。具体的には、変換データＸ９の各量と照合パターンＸＡ１の各量との類似度１と、変換データＹ９の各量と照合パターンＹＡ１の各量との類似度２との合計が「2.8」となる。このときの変換ルールｘａ９は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ９は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２」となる。すなわち、変換ルールｘａ９の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ９の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１３０】
続いて、学習部２２は、変換データＸ９の各量「3，1，2，0」と変換データＸ１の各量「1，3，0，2」との変分「2，-2，2，-2」と、変換データＹ９の各量「2，1，0，3」と変換データＹ１の各量「1，2，3，0」との変分「1，-1，-3，3」とを算出する。その後、学習部２２は、誤差逆伝搬で得られた誤差「-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」を算出する。そして、学習部２２は、更新後の照合パターンＹＡの「Ｓ´´２，Ｃ´２」に、算出した「-3.1」を設定する。
【０１３１】
（照合パターン更新およびパラメータ更新）
上述した図１３から図２１によって、入力データの各量について、微小な変換を与えたときの変動算出が実行されたので、最後に、その後に実行される図１０のＳ１０９について具体的に説明する。図２２は、パラメータの更新と照合パターンの更新を説明する図である。
【０１３２】
図２２の（ａ）に示すように、学習部２２は、パラメータの初期値から、誤差逆伝搬で得られた教師ラベルとの差と各変換データの量との乗算値にステップサイズであるα（例えば１．０）を乗算した値を減算して、パラメータを更新する。具体的には、学習部２２は、パラメータ「ｗ１，ｗ２，ｗ３，ｗ４，ｗ５，ｗ６，ｗ７，ｗ８」の初期値「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」を算出する。
【０１３３】
また、図２２の（ｂ）に示すように、学習部２２は、各照合パターンから、図２１までで算出された変動量とステップサイズα（例えば１．０）との乗算値を減算して、各照合パターンを更新する。
【０１３４】
具体的には、学習部２２は、照合パターンＸＡ１の「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」から、算出済みの変動ＸＡの「Ｓ´１，Ｒ´１，−１．３」、「Ｓ´２，Ｒ´１，０．０」、「Ｓ´１，Ｒ´２，−０．２」、「Ｓ´２，Ｒ´２，１．１」を減算して、更新後の照合パターンＸＡ１´「Ｓ´１，Ｒ´１，１．５」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．１」、「Ｓ´２，Ｒ´２，−０．７」を算出する。
【０１３５】
同様に、学習部２２は、照合パターンＹＡ１の「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」から、算出済みの変動ＹＡの「Ｓ´´１，Ｃ´１，−１．８」、「Ｓ´´２，Ｃ´１，−１．３」、「Ｓ´´１，Ｃ´２，０．０」、「Ｓ´´２，Ｃ´２，−３．１」を減算して、更新後の照合パターンＹＡ１´「Ｓ´´１，Ｃ´１，１．４」、「Ｓ´´２，Ｃ´１，１．５」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，３．２」を算出する。
【０１３６】
上述した処理を実行することで、学習部２２は、パラメータと照合パターンとを更新する。そして、次の学習データ（入力データ）に対しては、更新されたパラメータと照合パターンとを初期値として同様の処理が実行される。
【０１３７】
［効果］
上述したように、監視サーバ１０は、複数の関係データに共通して含まれる共通変数の変換後の変換データにおいて対応関係が入力データ間で一致させることができる。このため、変換ルールが統一され、変数値の認識の食い違いが抑制されるので、過学習を抑制することができる。この結果、監視サーバ１０は、適切な学習を実行することができ、高精度な予測を実現することができる。
【実施例２】
【０１３８】
ところで、入力データとして複数の関係データを入力する場合、各関係データが同等に重要とは限らない。例えば、内部不正の発見においては、通信ログよりもコマンド履歴の方が重要な場合もある。さらに、どの関係データがどれくらい重要であるかを学習前に特定することは難しい。
【０１３９】
一方で、ニューラルネットワークには自身への入力データの重要度を学習するという効果があるため、この効果により重要度を考慮できるということも考えられる。しかし、各関係データを照合パターンとの類似度が高くなるように変換するという仕組みのため、重要度はニューラルネットワークに入力する前に、変換データを生成する段階で考慮する必要があるので、ニューラルネットワークの効果のみでは不十分である。
【０１４０】
そこで、実施例２では、各関係データの重要度を示すパラメータを導入し、重要度で重み付けられた類似度に基づいて各関係データの変換データを生成することで、学習精度の向上を図る。
【０１４１】
［全体構成］
図２３は、実施例２にかかる監視サーバ１０の学習処理を説明する図である。図２３に示すように、図２３に示すように、監視サーバ１０は、教師データとして、通信ログとコマンド履歴の２つの関係データを用いて、学習処理を実行する。
【０１４２】
監視サーバ１０は、通信ログ１について、変換データ１の各値を各成分とするベクトルと、照合パターン１の各値を各成分とするベクトルとの内積に重要度１を乗算した類似度１を算出する。同様に、監視サーバ１０は、コマンド履歴２について、変換データ２の各値を各成分とするベクトルと、照合パターン２の各値を各成分とするベクトルとの内積に重要度２を乗算した類似度２を算出する。
【０１４３】
そして、監視サーバ１０は、類似度１と類似度２の総和が最大となるように、通信ログを変換する変換データ１と、コマンド履歴を変換する変換データ２とを生成する。その後、監視サーバ１０は、変換データ１に基づいて変換した変換データ１と、変換データ２に基づいて変換した変換データ２とをニューラルネットワークに入力して、実施例１と同様の手法による更新を実行する。
【０１４４】
［処理の流れ］
図２４は、実施例２にかかる学習処理の流れを示すフローチャートである。図２４に示すように、図２４に示すように、処理が開始されると（Ｓ２０１：Ｙｅｓ）、学習部２２の初期化部２３は、各照合パターンとニューラルネットワーク（ＮＮ）のパラメータに加えて、各重要度をランダムに初期化する（Ｓ２０２）。
【０１４５】
続いて、変換部２４は、各関係データに共通して含まれる共通変数の変換内容を関係データ間で同一にするという制約の下で、重要度を考慮した照合パターンと変換データとの各類似度の総和を最大化するように各変換ルールを生成し、各変換ルールにしたがって各変換データを生成する（Ｓ２０３）。
【０１４６】
そして、更新部２５は、各変換データをニューラルネットワークに入力して誤差逆伝搬により誤差を取得する（Ｓ２０４）。
【０１４７】
続いて、更新部２５は、全照合パターンの中から１つの量を選択し（Ｓ２０５）、選択した量を１だけ変化させたときの各変換データ量の変分を算出する（Ｓ２０６）。その後、更新部２５は、誤差逆伝搬の誤差と、算出した各変分の内積を算出する（Ｓ２０７）。
【０１４８】
そして、全照合パターンにおいて未選択の量が存在する場合（Ｓ２０８：Ｎｏ）、未選択の量についてＳ２０５を実行する。一方、全照合パターンの全量について処理が完了した場合（Ｓ２０８：Ｙｅｓ）、更新部２５は、各照合パターンの量とニューラルネットワークのパラメータとに加えて、各重要度を更新する（Ｓ２０９）。
【０１４９】
その後、学習処理を継続する場合（Ｓ２１０：Ｎｏ）、Ｓ２０３以降を繰り返し、終了条件を満たす場合は、学習処理を終了する（Ｓ２１０：Ｙｅｓ）。
【０１５０】
［具体例］
次に、図２５から図３７を用いて、学習部２２が実行する学習処理の具体例を説明する。実施例１と異なる点は、重要度を用いる点であり、類似度の計算、誤差の変分による更新対象に照合パターンとニューラルネットワークのパラメータだけでなく重要度も含まれる点である。なお、前提は、実施例１と同様とする。
【０１５１】
（初期化）
次に、図２４のＳ２０２で実行される初期化について説明する。図２５は、実施例２にかかる初期化を説明する図である。図２５の（ａ）に示す通信ログ用の照合パターンＸＡ１の各量とコマンド履歴用の照合パターンＹＡ１の各量の初期化、および、図２５の（ｂ）に示すニューラルネットワークのパラメータの初期化については、図１２に示す実施例１と同様である。
【０１５２】
実施例２では、学習部２２は、各重要度の初期化を実行する。具体的には、図２５の（ｃ）に示すように、学習部２２は、通信ログ用の重要度Ｋ１に、ランダムな値として０．２を設定し、コマンド履歴用の重要度Ｋ２に、ランダムな値として０．８を設定する。
【０１５３】
（変換データの生成）
次に、図２４のＳ２０３で実行される変換データについて説明する。図２６は、実施例２にかかる変換データの生成を説明する図である。図２６に示すように、学習部２２は、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ１と変換ルールｙａ１を生成する。
【０１５４】
ここで、図２６に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ１の各量と照合パターンＸＡ１の各量との類似度１は、「内積（（3×0.2）＋（1×0.1）＋（2×-0.3）＋（0×0.4））×重要度Ｋ１「0.2」＝0.1×0.2＝0.02」となる。また、変換データＹ１の各量と照合パターンＹＡ１の各量との類似度２は、「内積（（0×-0.4）＋（3×0.2）＋（2×0.3）＋（1×0.1））×類似度Ｋ２「0.8」＝1.3×0.8＝1.04」となる。
【０１５５】
したがって、「類似度１（0.02）＋類似度２（1.04）＝1.06」が類似度１＋類似度２の最大値であり、このときの変換ルールｘａ１は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ１は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ１の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ１の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、各入力データにおける共通変数「項Ｓ」の変数値「Ｓ１」と「Ｓ２」がこの順で入力されるように、同じ変換内容を示している。
【０１５６】
（更新：その１）
次に、図２４のＳ２０４からＳ２０８の更新処理について具体的に説明する。なお、処理の流れは、実施例１と同様であり、類似度の算出方法なども同様である。
【０１５７】
図２７は、実施例２にかかる誤差取得と変換データの量の変分算出（その１）を説明する図である。まず、学習部２２は、図２６で生成された変換データＸ１と変換データＹ１とを、先頭から順に入力層に入力して順伝搬を実行し、出力層から出力値「1.7」を取得する。そして、学習部２２は、出力値と教師ラベルとの誤差「1.7−1.0＝0.7」を算出し、誤差「0.7」に基づいた逆伝搬を実行して誤差「0.8，-0.1，-0.6，0.4，0.3，0.6，-0.9，0.1」を取得する。
【０１５８】
続いて、学習部２２は、照合パターンの全量のうち１つ（ここではＳ´１Ｒ´１の量）を選択し、１だけ増加させる。具体的には、学習部２２は、図２５に示す照合パターンＸＡ１において「Ｓ´１，Ｒ´１，０．２」の量のみを１増加させて、「Ｓ´１，Ｒ´１，１．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【０１５９】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ２と変換ルールｙａ２を生成する。
【０１６０】
ここで、図２７に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ２の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ２の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「1.66」となる。
【０１６１】
また、図２７に示すように、類似度の総和の最大値「1.66」とき、変換ルールｘａ２は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ２は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ２の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ２の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１６２】
続いて、学習部２２は、変換データＸ２の各量「3，1，2，0」と変換データＸ１の各量「3，1，2，0」との変分「0，0，0，0」と、変換データＹ２の各量「0，3，2，1」と変換データＹ１の各量「0，3，2，1」との変分「0，0，0，0」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´１，Ｒ´１」の変動に、算出した「0」を設定する。
【０１６３】
（更新：その２）
続いて、照合パターンの次の量の更新を説明する。図２８は、実施例２にかかる変換データの量の変分算出（その２）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１６４】
学習部２２は、図２５に示す照合パターンＸＡ１のうち「Ｓ´２，Ｒ´１，０．１」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，１．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【０１６５】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ３と変換ルールｙａ３を生成する。
【０１６６】
ここで、図２８に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ３の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ３の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「1.58」となる。
【０１６７】
また、図２８に示すように、類似度の総和の最大値「1.58」とき、変換ルールｘａ３は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ３は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ３の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ３の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１６８】
続いて、学習部２２は、変換データＸ３の各量「1，3，0，2」と変換データＸ１の各量「3，1，2，0」との変分「-2，2，-2，2」と、変換データＹ３の各量「1，2，3，0」と変換データＹ１の各量「0，3，2，1」との変分「1，-1，1，-1」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´２，Ｒ´１」の変動に、算出した「-1.1」を設定する。
【０１６９】
（更新：その３）
続いて、照合パターンの次の量の更新を説明する。図２９は、実施例２にかかる変換データの量の変分算出（その３）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１７０】
学習部２２は、図２５に示す照合パターンＸＡ１のうち「Ｓ´１，Ｒ´２，−０．３」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，０．７」、「Ｓ´２，Ｒ´２，０．４」を生成する。
【０１７１】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ４と変換ルールｙａ４を生成する。
【０１７２】
ここで、図２９に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ４の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ４の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「1.62」となる。
【０１７３】
また、図２９に示すように、類似度の総和の最大値「1.62」とき、変換ルールｘａ４は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´２，Ｒ２→Ｒ´１となり、変換ルールｙａ４は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ４の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ４の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１７４】
続いて、学習部２２は、変換データＸ４の各量「2，0，3，1」と変換データＸ１の各量「3，1，2，0」との変分「-1，-1，1，1」と、変換データＹ４の各量「0，3，2，1」と変換データＹ１の各量「0，3，2，1」との変分「0，0，0，0」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´１，Ｒ´２」の変動に、算出した「-0.9」を設定する。
【０１７５】
（更新：その４）
続いて、照合パターンの次の量の更新を説明する。図３０は、実施例２にかかる変換データの量の変分算出（その４）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１７６】
学習部２２は、図２５に示す照合パターンＸＡ１のうち「Ｓ´２，Ｒ´２，０．４」の量のみを１増加させて、「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，１．４」を生成する。
【０１７７】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ５と変換ルールｙａ５を生成する。
【０１７８】
ここで、図３０に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ５の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ５の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「1.54」となる。
【０１７９】
また、図３０に示すように、類似度の総和の最大値「1.54」とき、変換ルールｘａ５は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´２，Ｒ２→Ｒ´１となり、変換ルールｙａ５は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ５の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ５の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１８０】
続いて、学習部２２は、変換データＸ５の各量「0，2，1，3」と変換データＸ１の各量「3，1，2，0」との変分「-3，1，-1，3」と、変換データＹ５の各量「1，2，3，0」と変換データＹ１の各量「0，3，2，1」との変分「1，-1，1，-1」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´２，Ｒ´２」の変動に、算出した「-2.0」を設定する。
【０１８１】
（更新：その５）
続いて、照合パターンの次の量の更新を説明する。図３１は、実施例２にかかる変換データの量の変分算出（その５）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１８２】
学習部２２は、図２５に示す照合パターンＹＡ１のうち「Ｓ´´１，Ｃ´１，−０．４」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，０．６」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１８３】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ６と変換ルールｙａ６を生成する。
【０１８４】
ここで、図３１に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ６の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ６の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「2.1」となる。
【０１８５】
また、図３１に示すように、類似度の総和の最大値「2.1」とき、変換ルールｘａ６は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ６は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ６の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ６の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１８６】
続いて、学習部２２は、変換データＸ６の各量「1，3，0，2」と変換データＸ１の各量「3，1，2，0」との変分「-2，2，-2，2」と、変換データＹ６の各量「3，0，1，2」と変換データＹ１の各量「0，3，2，1」との変分「3，-3，-1，1」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´´１，Ｃ´１」の変動に、算出した「0.3」を設定する。
【０１８７】
（更新：その６）
続いて、照合パターンの次の量の更新を説明する。図３２は、実施例２にかかる変換データの量の変分算出（その６）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１８８】
学習部２２は、図２５に示す照合パターンＹＡ１のうち「Ｓ´´２，Ｃ´１，０．２」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，１．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１８９】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ７と変換ルールｙａ７を生成する。
【０１９０】
ここで、図３２に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ７の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ７の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「3.46」となる。
【０１９１】
また、図３２に示すように、類似度の総和の最大値「3.46」とき、変換ルールｘａ７は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ７は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ７の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ７の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０１９２】
続いて、学習部２２は、変換データＸ７の各量「3，1，2，0」と変換データＸ１の各量「3，1，2，0」との変分「0，0，0，0」と、変換データＹ７の各量「0，3，2，1」と変換データＹ１の各量「0，3，2，1」との変分「0，0，0，0」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´´２，Ｃ´１」の変動に、算出した「0」を設定する。
【０１９３】
（更新：その７）
続いて、照合パターンの次の量の更新を説明する。図３３は、実施例２にかかる変換データの量の変分算出（その７）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０１９４】
学習部２２は、図２５に示す照合パターンＹＡ１のうち「Ｓ´´１，Ｃ´２，０．３」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，１．３」、「Ｓ´´２，Ｃ´２，０．１」を生成する。
【０１９５】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ８と変換ルールｙａ８を生成する。
【０１９６】
ここで、図３３に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ８の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ８の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「3.38」となる。
【０１９７】
また、図３３に示すように、類似度の総和の最大値「3.38」とき、変換ルールｘａ８は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ８は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ８の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ８の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０１９８】
続いて、学習部２２は、変換データＸ８の各量「1，3，0，2」と変換データＸ１の各量「3，1，2，0」との変分「-2，2，-2，2」と、変換データＹ８の各量「1，2，3，0」と変換データＹ１の各量「0，3，2，1」との変分「1，-1，1，-1」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´´１，Ｃ´２」の変動に、算出した「-1.1」を設定する。
【０１９９】
（更新：その８）
続いて、照合パターンの次の量の更新を説明する。図３４は、実施例２にかかる変換データの量の変分算出（その８）を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０２００】
学習部２２は、図２５に示す照合パターンＹＡ１のうち「Ｓ´´２，Ｃ´２，０．１」の量のみを１増加させて、「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，１．１」を生成する。
【０２０１】
そして、学習部２２は、重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ９と変換ルールｙａ９を生成する。
【０２０２】
ここで、図３４に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ９の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１×各量の内積）と、変換データＹ９の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２×各量の内積）との総和は、「2.18」となる。
【０２０３】
また、図３４に示すように、類似度の総和の最大値「2.18」とき、変換ルールｘａ９は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ９は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ９の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ９の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０２０４】
続いて、学習部２２は、変換データＸ９の各量「3，1，2，0」と変換データＸ１の各量「3，1，2，0」との変分「0，0，0，0」と、変換データＹ９の各量「2，1，0，3」と変換データＹ１の各量「0，3，2，1」との変分「2，-2，-2，2」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の照合パターンＸＡの「Ｓ´´２，Ｃ´２」の変動に、算出した「1.4」を設定する。
【０２０５】
（重要度の更新：その１）
続いて、実施例１とは異なり、学習部２２は重要度を更新する。図３５は、実施例２にかかる重要度Ｋ１の変分内積を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０２０６】
学習部２２は、図２５に示す重要度Ｋ１（０．２）および重要度Ｋ２（０．８）のうち、重要度Ｋ１を１だけ増加させて「１．２」とする。そして、学習部２２は、増加させた重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ１０と変換ルールｙａ１０を生成する。
【０２０７】
ここで、図３５に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ１０の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１（＝１．２）×各量の内積）と、変換データＹ１０の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２（＝０．８）×各量の内積）との総和は、「2.6」となる。
【０２０８】
また、図３５に示すように、類似度の総和の最大値「2.6」とき、変換ルールｘａ１０は、「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ１０は、「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１，Ｃ１→Ｃ´２，Ｃ２→Ｃ´１となる。すなわち、変換ルールｘａ１０の「Ｓ１→Ｓ´２，Ｓ２→Ｓ´１」と変換ルールｙａ１０の「Ｓ１→Ｓ´´２，Ｓ２→Ｓ´´１」とが、同じ変換内容を示している。
【０２０９】
続いて、学習部２２は、変換データＸ１０の各量「1，3，0，2」と変換データＸ１の各量「3，1，2，0」との変分「-2，2，-2，2」と、変換データＹ１０の各量「3，0，1，2」と変換データＹ１の各量「0，3，2，1」との変分「3，-3，-1，1」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の重要度Ｋ１の変動に、算出した「0.3」を設定する。
【０２１０】
（重要度の更新：その２）
図３６は、実施例２にかかる重要度Ｋ２の変分内積を説明する図である。なお、ここで説明する処理も、図２７で生成された変換データＸ１と変換データＹ１とを入力して誤差逆伝搬で得られる誤差を用いて実行される。
【０２１１】
学習部２２は、図２５に示す重要度Ｋ１（０．２）および重要度Ｋ２（０．８）のうち、重要度Ｋ２を１だけ増加させて「１．８」とする。そして、学習部２２は、増加させた重要度を考量して、照合パターンと変換データとの類似度１と類似度２との合計が最大となるように、共通変数の変換ルールを同じにする制約の下で、変換ルールｘａ１１と変換ルールｙａ１１を生成する。
【０２１２】
ここで、図３６に示す変換ルールや変換データは、上記類似度の最大値と制約を満たす例を図示している。具体的には、変換データＸ１１の各量と照合パターンＸＡ１の各量との類似度１（重要度Ｋ１（＝０．２）×各量の内積）と、変換データＹ１１の各量と照合パターンＹＡ１の各量との類似度２（重要度Ｋ２（＝１．８）×各量の内積）との総和は、「4.88」となる。
【０２１３】
また、図３６に示すように、類似度の総和の最大値「4.88」とき、変換ルールｘａ１１は、「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２，Ｒ１→Ｒ´１，Ｒ２→Ｒ´２となり、変換ルールｙａ１１は、「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２，Ｃ１→Ｃ´１，Ｃ２→Ｃ´２となる。すなわち、変換ルールｘａ１１の「Ｓ１→Ｓ´１，Ｓ２→Ｓ´２」と変換ルールｙａ１１の「Ｓ１→Ｓ´´１，Ｓ２→Ｓ´´２」とが、同じ変換内容を示している。
【０２１４】
続いて、学習部２２は、変換データＸ１１の各量「3，1，2，0」と変換データＸ１の各量「3，1，2，0」との変分「0，0，0，0」と、変換データＹ１１の各量「2，1，0，3」と変換データＹ１の各量「0，3，2，1」との変分「2，-2，-2，2」とを算出する。その後、学習部２２は、誤差「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」を算出する。そして、学習部２２は、更新後の重要度Ｋ２の変動に、算出した「1.4」を設定する。
【０２１５】
（照合パターン更新、パラメータ更新、重要度更新）
上述した処理によって、入力データの各量について、微小な変化を与えたときの変動算出が実行されたので、最後に、その後に実行される図２４のＳ２０９について具体的に説明する。図３７は、実施例２にかかるパラメータの更新と照合パターンの更新と重要度の更新を説明する図である。
【０２１６】
図３７の（ａ）に示すように、学習部２２は、パラメータの初期値から、誤差逆伝搬で得られた教師ラベルとの差と各変換データの量との乗算値にステップサイズであるα（例えば１．０）を乗算した値を減算して、パラメータを更新する。具体的には、学習部２２は、パラメータ「ｗ１，ｗ２，ｗ３，ｗ４，ｗ５，ｗ６，ｗ７，ｗ８」の初期値「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」を算出する。
【０２１７】
また、図３７の（ｂ）に示すように、学習部２２は、各照合パターンから、図３６までで算出された変動量とステップサイズα（例えば１．０）との乗算値を減算して、各照合パターンを更新する。
【０２１８】
具体的には、学習部２２は、照合パターンＸＡ１の「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，０．１」、「Ｓ´１，Ｒ´２，−０．３」、「Ｓ´２，Ｒ´２，０．４」から、算出済みの変動ＸＡの「Ｓ´１，Ｒ´１，０．０」、「Ｓ´２，Ｒ´１，−０．１」、「Ｓ´１，Ｒ´２，−０．９」、「Ｓ´２，Ｒ´２，−２．０」を減算して、更新後の照合パターンＸＡ１´「Ｓ´１，Ｒ´１，０．２」、「Ｓ´２，Ｒ´１，１．２」、「Ｓ´１，Ｒ´２，０．６」、「Ｓ´２，Ｒ´２，２．４」を算出する。
【０２１９】
同様に、学習部２２は、照合パターンＹＡ１の「Ｓ´´１，Ｃ´１，−０．４」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，０．３」、「Ｓ´´２，Ｃ´２，０．１」から、算出済みの変動ＹＡの「Ｓ´´１，Ｃ´１，０．３」、「Ｓ´´２，Ｃ´１，０．０」、「Ｓ´´１，Ｃ´２，−１．１」、「Ｓ´´２，Ｃ´２，１．４」を減算して、更新後の照合パターンＹＡ１´「Ｓ´´１，Ｃ´１，−０・７」、「Ｓ´´２，Ｃ´１，０．２」、「Ｓ´´１，Ｃ´２，１．４」、「Ｓ´´２，Ｃ´２，−１．３」を算出する。
【０２２０】
また、図３７の（ｃ）に示すように、学習部２２は、重要度の初期値から、算出済みの変動量にステップサイズであるα（例えば１．０）を乗算した値を減算して、重要度を更新する。具体的には、学習部２２は、重要度「Ｋ１，Ｋ２」の初期値「0.2，0.8」のそれぞれから「0.3，1.4」を減算して、新たな重要度「Ｋ１，Ｋ２」である「-0.1，-0.6」を算出する。
【０２２１】
上述した処理を実行することで、学習部２２は、パラメータと照合パターンと重要度とを更新する。そして、次の学習データ（入力データ）に対しては、更新されたパラメータと照合パターンと重要度とを初期値として同様の処理が実行される。
【０２２２】
［効果］
監視サーバ１０は、重要度に基づいて変換データを生成することができるので、各関係データの重要度を適切に考慮でき、学習精度を向上させることができる。また、監視サーバ１０は、入力データの各量に対して微小な変化を与えたときの変動量や重要度に微小な変化を与えたときの変動量に応じて、重要度を更新することができるので、主観的な重要度の設定などを抑制することができ、関係データの重要度を適切に設定することができる。また、監視サーバ１０は、学習に使用するすべての入力データに基づいて、重要度を決定できるので、固定した重要度による検証を、重要度の組み合わせのパターン数だけ実施する等の対応を省略することができる。この結果、重要度を検証する処理速度を短縮することができ、学習処理全体の処理時間の短縮が実現できる。
【実施例３】
【０２２３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０２２４】
［入力データ］
上記実施例では、２つの関係データを用いた例を説明したが、これに限定されるものではなく、２つ以上の複数の関係データを用いることもできる。その場合、各関係データに対して照合パターンを用意し、各関係データで共通する共通変数の変換内容を同一にする制約の下で、実施例１−２と同様の処理を実行する。
【０２２５】
［数値等］
また、上記実施例で用いた数値、教師ラベルの設定内容、微小変化の値等は、あくまで一例であり、任意に変更することができる。また、入力データの変数の数や共通変数の数もあくまで一例であり、任意に変更することができる。
【０２２６】
また、一例として、通信ログとコマンド履歴とを用いた例で説明したが、関係データはこれに限定されるものではない。例えば、振込元、振込先、振込回数などを有する振込履歴と、口座名、入金金額、入金回数などを有する口座情報とを用いて、振込先と口座名とを共通変数として振込詐欺の口座を判定する学習モデルの構築に、上記実施例を適用することもできる。
【０２２７】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０２２８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習部２２と予測部２６とを別々の装置で実現することもできる。
【０２２９】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０２３０】
［ハードウェア］
図３８は、ハードウェア構成例を説明する図である。図３８に示すように、監視サーバ１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図３８に示した各部は、バス等で相互に接続される。
【０２３１】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図６に示した機能を動作させるプログラムやＤＢを記憶する。
【０２３２】
プロセッサ１０ｄは、図６に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、監視サーバ１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、データ取得部２１、学習部２２、予測部２６等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、データ取得部２１、学習部２２、予測部２６等と同様の処理を実行するプロセスを実行する。
【０２３３】
このように監視サーバ１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、監視サーバ１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、監視サーバ１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０２３４】
１０  監視サーバ
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  照合パターンＤＢ
１５  変換ルールＤＢ
１６  学習結果ＤＢ
２０  制御部
２１  データ取得部
２２  学習部
２３  初期化部
２４  変換部
２５  更新部
２６  予測部
【図１】
2020080021.tif 000003
【図２】
2020080021.tif 000004
【図３】
2020080021.tif 000005
【図４】
2020080021.tif 000006
【図５】
2020080021.tif 000007
【図６】
2020080021.tif 000008
【図７】
2020080021.tif 000009
【図８】
2020080021.tif 000010
【図９】
2020080021.tif 000011
【図１０】
2020080021.tif 000012
【図１１】
2020080021.tif 000013
【図１２】
2020080021.tif 000014
【図１３】
2020080021.tif 000015
【図１４】
2020080021.tif 000016
【図１５】
2020080021.tif 000017
【図１６】
2020080021.tif 000018
【図１７】
2020080021.tif 000019
【図１８】
2020080021.tif 000020
【図１９】
2020080021.tif 000021
【図２０】
2020080021.tif 000022
【図２１】
2020080021.tif 000023
【図２２】
2020080021.tif 000024
【図２３】
2020080021.tif 000025
【図２４】
2020080021.tif 000026
【図２５】
2020080021.tif 000027
【図２６】
2020080021.tif 000028
【図２７】
2020080021.tif 000029
【図２８】
2020080021.tif 000030
【図２９】
2020080021.tif 000031
【図３０】
2020080021.tif 000032
【図３１】
2020080021.tif 000033
【図３２】
2020080021.tif 000034
【図３３】
2020080021.tif 000035
【図３４】
2020080021.tif 000036
【図３５】
2020080021.tif 000037
【図３６】
2020080021.tif 000038
【図３７】
2020080021.tif 000039
【図３８】
2020080021.tif 000040
【図３９】
2020080021.tif 000041