(57)【要約】【課題】機械学習に寄与する拡張教師データを生成することを課題とする。【解決手段】データ拡張装置は、グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習を実行する。そして、データ拡張装置は、機械学習に寄与する部分的なテンソルデータを特定する。その後、データ拡張装置は、部分的なテンソルデータと教師データとに基づいて、機械学習に用いられる、教師データを拡張した拡張教師データを生成する。【選択図】図１５
2020113044.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定し、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する、
処理を実行させることを特徴とするデータ拡張プログラム。
【請求項２】
前記機械学習は、ニューラルネットワークを用いたテンソルデータを入力とする学習であり、
前記特定する処理は、前記機械学習時に最適化される、教師データからコアテンソルを生成するときに用いられる各次元の要素行列から、前記部分的なテンソルデータを特定することを特徴とする請求項１に記載のデータ拡張プログラム。
【請求項３】
前記ニューラルネットワークの出力結果を局所的に近似する線形モデルを、前記コアテンソルを用いて学習する処理を前記コンピュータにさらに実行させ、
前記特定する処理は、前記各次元の要素行列それぞれと、前記線形モデルから得られる各次元の回帰係数それぞれとの内積を算出し、最も値が大きい各次元の要素を、前記部分的なテンソルデータとして特定することを特徴とする請求項２に記載のデータ拡張プログラム。
【請求項４】
前記生成する処理は、前記各次元の要素行列それぞれに、特定された前記各次元の要素それぞれを追加した新たな各次元の要素行列を生成し、前記新たな各次元の要素行列と、拡張の基準となる教師データから抽出されるコアテンソルとを用いた逆変換により、前記拡張教師データに対応するテンソルデータを生成することを特徴とする請求項３に記載のデータ拡張プログラム。
【請求項５】
前記生成する処理は、前記ニューラルネットワークの出力結果である分類確率が閾値未満かつ拡張させたいラベルが設定される教師データを、前記拡張の基準となる教師データとして選択することを特徴とする請求項４に記載のデータ拡張プログラム。
【請求項６】
生成された前記拡張教師データを用いて、学習済みである前記ニューラルネットワークの再学習を実行する処理を前記コンピュータにさらに実行させることを特徴とする請求項２に記載のデータ拡張プログラム。
【請求項７】
コンピュータが、
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定し、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する、
処理を実行することを特徴とするデータ拡張方法。
【請求項８】
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定する特定部と、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する生成部と、
を有することを特徴とするデータ拡張装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ拡張プログラム、データ拡張方法およびデータ拡張装置に関する。
【背景技術】
【０００２】
通信ログや銀行の取引履歴などのように、人や物（変数値）の間の関係の集合として定義されるデータ（以降、関係データと記載する場合がある）を入力とし、人やモノの間の関係を分類する技術として、ニューラルネットワークを用いた深層学習（DL：Deep  Learning）などの機械学習が利用されている。
【０００３】
また、機械学習としては、関係データをテンソルデータとして入力して学習するディープテンソル（DeepTensor：DT）が知られている。ディープテンソルは、グラフ構造のデータを深層学習することが可能なグラフ構造学習技術の一形態であり、入力としてグラフ構造を用い、グラフ構造をテンソルデータ（以下では、テンソルと記載する場合がある）として扱う。そして、ディープテンソルでは、予測に寄与するグラフの部分構造（テンソルの部分パターン）をコアテンソルとして抽出することで、高精度な予測を実現する。
【０００４】
このようなＤＬなどを含む機械学習では、適用領域を問わず、異常データが不足しやすい。例えば、通信ログから攻撃と正常の分類を行う機械学習において、日常的な活動のログ収集では正常の通信ログを簡単に収集できるが、攻撃時の通信ログを収集するのは困難である。このため、機械学習においては、既存の教師データから、新たな教師データである拡張教師データを生成し、学習を促進させるデータ拡張が広く用いられている。
【０００５】
例えば、事前に準備された化合物のデータベースから、中心的な基本構造を選び出し、付随する部分構造を付加する形で化合物の亜種を生成する技術が知られている。また、元データを基準に、無作為に要素を変更もしくは追加することで新たなデータを生成する技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−０５５５８０号公報
【特許文献２】特開２００７−３３４７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、離散値の組み合わせである関係データにおいて、データ拡張を行う場合、一般的な数値データや画像データで行うデータ拡張とは異なり、適切なデータ拡張であるかを事前あるいは事後に判別することが困難である。
【０００８】
例えば、化合物の手法では、基本構造や部分構造が事前に分かっていることが要求されるので、関係データのように基本構造等を明示的に表現できないデータには適用できない。また、要素を変更する手法では、減らす方向は数が限られるが、増やす方向は組み合わせが膨大な数となり、分類に寄与しない質の悪いデータを生成する可能性がある。
【０００９】
一つの側面では、機械学習に寄与する拡張教師データを生成することができるデータ拡張プログラム、データ拡張方法およびデータ拡張装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、データ拡張プログラムは、コンピュータに、グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定する処理を実行させる。データ拡張プログラムは、コンピュータに、前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する処理を実行させる。
【発明の効果】
【００１１】
一つの側面では、ディープテンソルの学習に寄与する拡張教師データを生成することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１にかかるデータ拡張装置を説明する図である。
【図２】図２は、一般的なデータ拡張を説明する図である。
【図３】図３は、一般的なデータ拡張の問題点を説明する図である。
【図４】図４は、実施例１にかかるデータ拡張装置の機能構成を示す機能ブロック図である。
【図５】図５は、教師データＤＢに記憶される情報の例を示す図である。
【図６】図６は、ディープテンソルの学習例を説明する図である。
【図７】図７は、ディープテンソルにおけるコアテンソルの生成を説明する図である。
【図８】図８は、線形モデルの学習を説明する図である。
【図９】図９は、学習された線形モデルを説明する図である。
【図１０】図１０は、内積処理を説明する図である。
【図１１】図１１は、特定処理を説明する図である。
【図１２】図１２は、要素行列の生成処理を説明する図である。
【図１３】図１３は、逆変換処理を説明する図である。
【図１４】図１４は、実施例１にかかるデータ拡張処理の流れを示すフローチャートである。
【図１５】図１５は、スコアに応じたデータ選択を説明する図である。
【図１６】図１６は、具体例を説明する図である。
【図１７】図１７は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデータ拡張プログラム、データ拡張方法およびデータ拡張装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾がない範囲内で適宜組み合わせることができる。
【実施例１】
【００１４】
［データ拡張装置の説明］
図１は、実施例１にかかるデータ拡張装置１０を説明する図である。図１に示すデータ拡張装置１０は、教師データから生成されるテンソルデータによるディープテンソルの学習結果を用いて、学習に利用された教師データを拡張した教師データである拡張教師データを生成するコンピュータ装置の一例である。例えば、データ拡張装置１０は、正常な通信ログ（正例）か攻撃などの異常な通信ログ（負例）かを判別するための教師データとして、収集数が少ない異常な通信ログを拡張した異常な通信ログを生成する。
【００１５】
ところで、一般的なデータ拡張では、元の教師データを基準に、無作為に要素を変更または追加することで、新たな教師データを生成することが行われる。図２は、一般的なデータ拡張を説明する図である。ここでは、離散値の組み合わせである関係データの一例として、「通信元ホスト、通信先ホスト、ポート、量」から構成される通信ログを例にして説明する。なお、この通信ログは、通信元ホストから通信先ホストへ、どのポート番号で何回通信が発生したかを示すログである。
【００１６】
図２に示すように、一般的な技術では、基準の通信データＡに対して、要素であるＲ１をＲ２に変更することで拡張教師データＢを生成する。この拡張教師データＢをテンソル化すると、基準の通信データＡのテンソルから、要素ｂが変更されたテンソルデータが生成される。また、新たな要素を追加することで拡張教師データＣを生成すると、基準の通信データＡのテンソルから、要素ｃが追加されたテンソルデータが生成される。
【００１７】
しかし、図２に示すような関係データでは、拡張教師データＢや拡張教師データＣが正例の教師データなのか負例の教師データなのかを判別することが難しい。図３は、一般的なデータ拡張の問題点を説明する図である。図３に示すように、「データＡ、特徴１、特徴２」から構成されるような数値データの場合、各特徴の分布により正例と負例とを簡単に判別することができるので、データ拡張により新たに生成されるデータＸがどのクラスに該当するかを容易に判別できる。すなわち、正例の拡張教師データ、負例の拡張教師データを容易に生成できる。
【００１８】
一方で、関係データの場合、変更や追加されたテンソル部分がクラス分類にどのように影響を与えるのかを明示できない。具体的には、関係データの要素である離散値を変更した拡張教師データＢや離散値を追加した拡張教師データＣを生成した場合であっても、ディープテンソルが離散値や離散値の組み合わせをどのように扱っているのかが不明であることから、各拡張教師データが正例なのか負例なのかを判別することができない。この結果、負例として扱うべき拡張教師データを正例の教師データとして学習させるなどの事象が発生することがあり、学習精度の劣化が起こりうる。
【００１９】
そこで、実施例１にかかるデータ拡張装置１０は、既存の教師データを用いてディープテンソルを学習し、得られた学習結果を近似する線形モデルを学習する。そして、データ拡張装置１０は、このとき得られた回帰係数により、ディープテンソルによる分類に重要な要素を特定し、特定した要素の組み合わせを元となるデータに付加して、拡張教師データを生成する。
【００２０】
具体的には、図１に示すように、データ拡張装置１０は、ディープテンソル（ＤＴ）の学習、ＤＴ説明機能による学習、データ拡張を実行する。まず、データ拡張装置１０は、教師データからテンソルデータを生成し、テンソルデータをＤＴに入力する。続いて、データ拡張装置１０は、ＤＴの出力値と教師データのラベルとの誤差が小さくなるように、ＤＴを学習する。そして、データ拡張装置１０は、学習済みのＤＴの予測結果を局所的に近似する線形モデルを学習する。
【００２１】
その後、データ拡張装置１０は、学習された線形モデルの回帰係数を用いて、元のテンソルデータからＤＴの学習に寄与する部分を特定する。そして、データ拡張装置１０は、ＤＴの学習時におけるコアテンソルの抽出時に、特定した部分を追加した要素行列を用いることで、元のテンソルデータから拡張教師データを生成する。
【００２２】
このように、データ拡張装置１０は、ＤＴの学習結果や線形モデルの学習結果を用いることで、ＤＴの学習に寄与する部分を特定することができるので、ＤＴの学習に寄与する拡張教師データを生成することができる。
【００２３】
［データ拡張装置の機能構成］
図４は、実施例１にかかるデータ拡張装置１０の機能構成を示す機能ブロック図である。図４に示すように、データ拡張装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２４】
通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、管理者が利用する図示しない管理装置から、処理開始指示や教師データなどを受信し、管理装置に学習結果やデータ拡張の結果などを送信する。
【００２５】
記憶部１２は、データや制御部２０が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部１２は、教師データＤＢ１３、学習結果ＤＢ１４、拡張教師データＤＢ１５を記憶する。
【００２６】
教師データＤＢ１３は、ディープテンソルを用いた学習モデルのディープラーニング（深層学習）や線形モデルを用いたＤＴ説明機能の学習に利用される訓練データ（学習データ）の一例である教師データを記憶するデータベースである。具体的には、教師データＤＢ１３は、通信ログとラベルとを対応付けた複数の教師データを記憶する。
【００２７】
図５は、教師データＤＢ１３に記憶される情報の例を示す図である。図５に示すように、教師データＤＢ１３は、「取得時間、データ、ラベル」を対応付けて記憶する。ここで記憶される「取得時間」は、データが取得された時間を示し、「データ」は、学習対象のデータを示す。「ラベル」は、ディープテンソルの学習に利用される正解情報であり、不正通信を示す場合は「０」が設定され、「通常通信」を示す場合は「１．０」が設定される。
【００２８】
図５の例では、取得時間「１０：００から１０：１０」の間に取得されたデータ（通信ログ）が通常通信（ラベル＝１．０）であることを示している。また、通信ログは、通信元のＩＰアドレスを示す「ホスト」と、通信先であるクライアント端末のＩＰアドレスを示す「クライアント」と、発生した通信量を示す「量」とが対応付けられる。例えば、通信ログは、通信元ホストＳ１から通信先ホストＲ１への通信が３回発生したことを示す。
【００２９】
なお、通信ログの各レコードが関係に該当し、「ホスト」、「クライアント」、「コマンド」などが変数に該当し、「Ｓ１」などが変数値に該当し、変数値がニューラルネットワークへの入力対象となる。
【００３０】
学習結果ＤＢ１４は、後述する制御部２０による学習結果を記憶するデータベースである。具体的には、学習結果ＤＢ１４は、教師データの分類結果や、ディープラーニングによって学習されたニューラルネットワーク（ディープテンソル）の各パラメータの値、ＤＴ説明機能の学習結果などを記憶する。すなわち、学習結果ＤＢ１４は、学習済みである学習モデルの構築に用いる各種情報を記憶する。
【００３１】
拡張教師データＤＢ１５は、後述する制御部２０によって生成された拡張教師データを記憶するデータベースである。例えば、拡張教師データＤＢ１５は、データ拡張によって生成された、攻撃などの異常な通信ログ（負例）に対応するテンソルデータなどを記憶する。
【００３２】
制御部２０は、データ拡張装置１０全体を司る処理部であり、例えばプロセッサなどである。制御部２０は、ＤＴ学習部２１、線形学習部２２、データ拡張部２３を有する。
【００３３】
ＤＴ学習部２１は、テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、ニューラルネットワークの深層学習およびテンソル分解の方法の学習を行う処理部である。すなわち、ＤＴ学習部２１は、各教師データから生成された各テンソルデータおよびラベルを入力として、ディープテンソルによる学習モデルの学習を実行する。ここでは、３次元のテンソルを例にして説明する。
【００３４】
図６は、ディープテンソルの学習例を説明する図である。図６に示すように、ＤＴ学習部２１は、教師データＤＢ１３から教師データを読み出して、教師データのグラフ構造をテンソル表現で表したテンソルデータを生成する。そして、ＤＴ学習部２１は、生成したテンソルデータを入力テンソルとしてテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、ＤＴ学習部２１は、コアテンソルをニューラルネットワークに入力して分類結果（ラベルＡ：７０％、ラベルＢ：３０％）を得る。その後、ＤＴ学習部２１は、分類結果（ラベルＡ：７０％、ラベルＢ：３０％）と教師ラベル（ラベルＡ：１００％、ラベルＢ：０％）との分類誤差を算出する。
【００３５】
ここで、ＤＴ学習部２１は、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて学習モデルの学習を実行する。すなわち、ＤＴ学習部２１は、ニューラルネットワークが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするように、ニューラルネットワークの各種パラメータを修正する。さらに、ＤＴ学習部２１は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造、すなわち正常な通信ログの特徴を示す特徴パターンもしくは異常な通信ログの特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。このようにすることで、最適化されたターゲットコアテンソルには予測に寄与する部分パターンが抽出されるようになる。
【００３６】
図７は、ディープテンソルにおけるコアテンソルの生成を説明する図である。図７に示すように、ＤＴ学習部２１は、構造制約テンソル分解により、グラフ構造のデータをコアテンソルと要素行列に分解し、コアテンソルをニューラルネットワークに入力する。構造制約テンソル分解は、分類に重要な特徴量が再現されたターゲットコアテンソルにできる限り類似するように、コアテンソルを算出する。このようにすることで、分類に重要な構造をコアテンソルの類似の位置に配置することができる。
【００３７】
なお、ＤＴ学習部２１が実行する構造制約テンソル分解は、２段階の最適化により計算される。第１段階では、与えられたターゲットコアテンソルを用いて、入力テンソルデータを最もよく近似するように要素行列のみを最適化する。第２段階では、第１段階で最適化された要素行列を用いて、入力テンソルデータを最もよく近似するように、コアテンソルを最適化する。このようにして最適化されたコアテンソルがニューラルネットワークに入力される。
【００３８】
線形学習部２２は、ディープテンソルの予測結果を局所的に近似する線形モデルを学習する処理部である。図８は、線形モデルの学習を説明する図である。図８に示すように、線形学習部２２は、最適化された各次元の要素行列Ｃｋを用いて、入力データからターゲットコアテンソルνと近似（類似）するようにコアテンソルｘ−（エックスバー）を生成する。そして、線形学習部２２は、コアテンソルｘ−をニューラルネットワークに入力して出力結果ｙ´を取得するとともに、コアテンソルｘ−を線形モデルに入力して出力結果ｙ´´を取得する。
【００３９】
その後、線形学習部２２は、ニューラルネットワークの出力結果ｙ´と線形モデルの出力結果ｙ´´とが近似するように、線形モデルを学習する。このようにして、線形学習部２２は、線形モデルを学習し、次元ごとの回帰係数を算出する。すなわち、線形学習部２２は、各次元の要素行列に対応した回帰係数を算出する。なお、線形モデルにおけるｗは各次元の重みであり、ｂは定数である。
【００４０】
図９は、学習された線形モデルを説明する図である。図９に示すように、学習された線形モデルは、クラスＡとクラスＢに分類するニューラルネットワークにおいてある任意の範囲について、データの分類説明を実現する。具体的には、学習された線形モデルは、説明したいデータｘの周辺データｚに対して、分離平面の法線ベクトルｗを定義することにより、データｘがどのくらすに分類されるかを示す。
【００４１】
図４に戻り、データ拡張部２３は、内積部２４、特定部２５、生成部２６、逆変換部２７を有し、データ拡張を実行する処理部である。
【００４２】
内積部２４は、線形モデルから得られる回帰係数と要素行列の内積から求まる、分類における寄与度（重要度）を示すスコアを算出する処理部である。具体的には、内積部２４は、基準となる教師データを選択する。例えば、内積部２４は、ディープテンソルによる分類確率が５０％付近で、異常な通信ログであるラベルが付与される教師データを選択する。そして、内積部２４は、学習済みの線形モデルやディープテンソルなどを用いて、選択した教師データのコアテンソル（ｘ−）を抽出する。
【００４３】
その後、内積部２４は、次元ごとに、要素行列の行ベクトルと回帰係数の列ベクトルとの内積を算出してスコアを取得する。図１０は、内積処理を説明する図である。図１０に示すように、内積部２４は、ＤＴ学習部２１による学習によって最適化されたｋ次元目の要素行列Ｃｋ（（ａ）参照）と、学習済みの線形モデルから得られたｋ次元目の回帰係数（（ｂ）参照）との内積を算出して、ｋ次元目のスコア（（ｃ）参照）を算出する。そして、内積部２４は、算出結果や抽出したコアテンソルなどを特定部２５に出力する。
【００４４】
なお、学習済みのｋ次元目の要素行列Ｃｋは、入力以外の要素を含む行列である。つまり、要素行列Ｃｋは、入力となりうる可能性がある最大の範囲の行列であり、網掛け部分が実際の入力となる要素である。図１０の例では、最大６要素の例を示している。
【００４５】
特定部２５は、分類における寄与度が最も大きい要素を特定する処理部である。具体的には、特定部２５は、次元ごとに算出されたスコアから最大スコアの要素を特定し、生成部２６に出力する。図１１は、特定処理を説明する図である。図１１に示すように、特定部２５は、内積部２４から取得したｋ次元目のスコアを、スコアが大きい順にソートする。そして、特定部２５は、スコアが０．５で最も大きい要素３を特定する。この要素３がｋ次元における最高スコアの要素となる。このようにして、特定部２５は、各次元について、最高スコアの要素を特定する。
【００４６】
生成部２６は、特定部２５によって特定された要素を入力要素に追加し、新たな要素行列を生成する処理部である。図１２は、要素行列の生成処理を説明する図である。図１２に示すように、生成部２６は、入力となりうる可能性がある最大の範囲の大きさであるｋ次元目の要素行列Ｃｋ（（ａ）参照）のうち、元々の入力要素と最高スコアの要素（要素３）とを含むように抽出した要素行列Ｃｋ´を生成する。そして、生成部２６は、各次元について生成された新たな要素行列Ｃｋ´を逆変換部２７に出力する。
【００４７】
逆変換部２７は、生成部２６により生成された各次元の新たな要素行列を用いて、入力テンソルに逆変換する処理部である。図１３は、逆変換処理を説明する図である。図１３に示すように、逆変換部２７は、基準データのコアテンソル（ｘ−）に、各次元の新たな要素行列Ｃｋ´を適用して逆変換を実行し、テンソルデータを生成する。そして、逆変換部２７は、得られたテンソルデータと、基準データと同じラベルとを対応付けた拡張教師データ（（ｄ）参照）を生成して、拡張教師データＤＢ１５に格納する。
【００４８】
［処理の流れ］
次に、データ拡張処理の流れを説明する。上述したデータ拡張は、次元ごとのスコアのうち最大スコアの要素を追加する処理を説明した。しかし、拡張教師データの精度を向上させるためにも、エッジまで拡張して、要素の追加判定を行うことが好ましい。
【００４９】
ここでは、エッジまで拡張したデータ拡張処理の詳細について説明する。なお、図５の教師データを例に次元とエッジについて説明すると、次元は、列に該当し、エッジは、行に該当する。
【００５０】
図１４は、実施例１にかかるデータ拡張処理の流れを示すフローチャートである。図１４に示すように、処理開始が指示されると（Ｓ１０１：Ｙｅｓ）、ＤＴ学習部２１が、教師データを用いてディープテンソルの学習を実行して学習モデルを構築する（Ｓ１０２）。また、線形学習部２２が、教師データが入力されたディープテンソルの出力結果を用いて、線形モデルを学習する（Ｓ１０３）。
【００５１】
各学習が終了すると、データ拡張部２３は、基準となるデータ（基準データ）を選択する（Ｓ１０４）。続いて、データ拡張部２３は、各次元について、ＤＴ学習によって最適化済みの要素行列の行ベクトルと、学習済みの線形モデルから得られる回帰係数の列ベクトルとの内積を算出することで、次元ごとのスコアを算出する（Ｓ１０５）。そして、データ拡張部２３は、次元ごとのスコアの算出結果から、各次元の最高スコアを選択する（Ｓ１０６）。
【００５２】
その後、データ拡張部２３は、各エッジについて、ＤＴ学習によって最適化済みの要素行列の列ベクトルと学習済みの線形モデルから得られる回帰係数の列ベクトルとの内積を算出することで、エッジごとのスコア（Ａ）を算出する（Ｓ１０７）。
【００５３】
そして、データ拡張部２３は、同様の手法により、Ｓ１０６で選択された最高スコアで構成されるエッジのスコア（Ｂ）を算出する（Ｓ１０８）。
【００５４】
ここで、データ拡張部２３は、Ｓ１０７で算出されたスコア（Ａ）の方がＳ１０８で算出されたスコア（Ｂ）よりも大きい場合（Ｓ１０９：Ｎｏ）、Ｓ１０４に戻って、基準データの選択からやり直す。
【００５５】
一方、データ拡張部２３は、Ｓ１０８で算出されたスコア（Ｂ）の方がＳ１０７で算出されたスコア（Ａ）よりも大きい場合（Ｓ１０９：Ｙｅｓ）、最高スコアの要素を追加した要素行列を用いた逆変換によって、拡張教師データを生成する（Ｓ１１０）。
【００５６】
［効果］
上述したように、データ拡張装置１０は、正のスコアとなるように要素を基準データに追加することで、攻撃亜種のデータを生成することができるので、ディープテンソルの学習に寄与する拡張教師データを生成することができる。図１５は、スコアに応じたデータ選択を説明する図である。図１５に示すように、基準となる攻撃データに対して、スコアが０以上の要素を追加することは、基準の攻撃データと同じクラス（攻撃）のデータを生成することになる。
【００５７】
また、０以上かつ最大値のスコアに該当する要素を追加することは、基準の攻撃データと同じクラス、かつ、線形モデルから最も離れたデータを追加することになる。つまり、既存の教師データでは網羅できていない可能性が高い教師データを生成することができる。一方で、基準となる攻撃データに対して、スコアが０未満の要素を追加することは、基準の攻撃データと逆クラス（正常）のデータを生成することになる。
【００５８】
したがって、実施例１に係るデータ拡張では、スコアが最も大きい要素を追加した拡張教師データを生成することで、既存の教師データに含まれない新たな教師データを生成することができる。なお、複数の拡張教師データを生成することが要求される場合には、スコアが０以上の各要素を追加した各拡張教師データを生成することもできる。
【００５９】
［具体例］
図１６は、具体例を説明する図である。図１６では、データ拡張処理により追加される拡張教師データの具体例を説明する。図１６には、端末（*.*.*.4）からサーバ（*.*.*.2）への通信の一連の活動が示される。
【００６０】
具体的には、端末からサーバへ管理者権限で認証処理が行われ、端末からサーバに管理者権限のリソースへのアクセスが実行される。その後、端末からサーバにｅｘｅファイルが書き込まれた後、端末によって、サーバに書き込まれたｅｘｅファイルが実行される。
【００６１】
このように、端末からサーバへの不正通信（攻撃）の一連の通信ログを教師データに用いることで、不正な情報収集を行う攻撃の特徴を学習することができる。さらに、実施例１にかかるデータ拡張により、通信ログには含まれない「ｅｘｅファイル書き込みフォルダ内のｌｏｇファイルの読み込み操作」を教師データに追加することができる。この結果、通信ログのみを用いた不正な情報収集の特徴学習に加えて、不正なデータ取得などの諜報活動の特徴学習も実行することができる。
【実施例２】
【００６２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６３】
［データや数値等］
上記実施例で用いた次元数、テンソルの構成例、数値、データ例、ラベルの設定値等は、あくまで一例であり、任意に変更することができる。また、教師データの例として、通信ログを例示したが、他のデータを用いることもできる。例えば、振込元、振込先、振込回数などを有する振込履歴などの関係データに対しても上記実施例を適用することもできる。なお、拡張対象の教師データも正例または負例のいずれであってもよい。また、基準データの選択は、例えば分類確率が５０％以上のうち最も分類確率が小さく、かつ、拡張対象のラベルが設定される教師データを選択することができる。
【００６４】
［再学習］
また、上記データ拡張装置１０は、拡張教師データを用いて、ディープテンソルの再学習や線形モデルの再学習を実行することもできる。この結果、ディープテンソルの分類精度を向上させることができ、線形モデルの精度も向上させることができる。
【００６５】
［学習手法］
上記実施例で説明したディープテンソルの学習や線形モデルの学習は、例示したものに限定されず、公知の手法を用いることもできる。
【００６６】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ディープテンソルを学習する装置、線形モデルを学習する装置、データ拡張を実行する装置などのように、各処理を別々の装置で実現することもできる。
【００６８】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６９】
［ハードウェア］
図１７は、ハードウェア構成例を説明する図である。図１７に示すように、データ拡張装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１７に示した各部は、バス等で相互に接続される。
【００７０】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図４に示した機能を動作させるプログラムやＤＢを記憶する。
【００７１】
プロセッサ１０ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、データ拡張装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、ＤＴ学習部２１、線形学習部２２、データ拡張部２３等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、ＤＴ学習部２１、線形学習部２２、データ拡張部２３等と同様の処理を実行するプロセスを実行する。
【００７２】
このようにデータ拡張装置１０は、プログラムを読み出して実行することでデータ拡張方法を実行する情報処理装置として動作する。また、データ拡張装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、データ拡張装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７３】
１０  データ拡張装置
１１  通信部
１２  記憶部
１３  教師データＤＢ
１４  学習結果ＤＢ
１５  拡張教師データＤＢ
２０  制御部
２１  ＤＴ学習部
２２  線形学習部
２３  データ拡張部
２４  内積部
２５  特定部
２６  生成部
２７  逆変換部
【図１】
2020113044.tif 000003
【図２】
2020113044.tif 000004
【図３】
2020113044.tif 000005
【図４】
2020113044.tif 000006
【図５】
2020113044.tif 000007
【図６】
2020113044.tif 000008
【図７】
2020113044.tif 000009
【図８】
2020113044.tif 000010
【図９】
2020113044.tif 000011
【図１０】
2020113044.tif 000012
【図１１】
2020113044.tif 000013
【図１２】
2020113044.tif 000014
【図１３】
2020113044.tif 000015
【図１４】
2020113044.tif 000016
【図１５】
2020113044.tif 000017
【図１６】
2020113044.tif 000018
【図１７】
2020113044.tif 000019