(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】データ拡張プログラム、データ拡張方法およびデータ拡張装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20221109BHJP
G06N 3/08 20060101ALI20221109BHJP
【FI】
G06N20/00 130
G06N3/08
(21)【出願番号】P 2019003474
(22)【出願日】2019-01-11
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】矢野 翔太郎
(72)【発明者】
【氏名】西野 琢也
(72)【発明者】
【氏名】丸橋 弘治
【審査官】杉浦 孝光
(56)【参考文献】
【文献】米国特許出願公開第2014/0317034(US,A1)
【文献】特表2022-508737(JP,A)
【文献】丸橋 弘治,研究開発最前線 人やモノのつながりを表すグラフデータから新たな知見を導く新技術Deep Tensor,FUJITSU,富士通株式会社,2017年09月01日,Vol.68 No.5,P29-P35
【文献】堰澤 映,人工的に生成した道路シーンを用いた道路標識認識器の学習,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2018年12月06日,Vol.118 No.362,P73-P78
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定し、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する、
処理を実行させることを特徴とするデータ拡張プログラム。
【請求項2】
前記機械学習は、ニューラルネットワークを用いたテンソルデータを入力とする学習であり、
前記特定する処理は、前記機械学習時に最適化される、教師データからコアテンソルを生成するときに用いられる各次元の要素行列から、前記部分的なテンソルデータを特定することを特徴とする請求項1に記載のデータ拡張プログラム。
【請求項3】
前記ニューラルネットワークの出力結果を局所的に近似する線形モデルを、前記コアテンソルを用いて学習する処理を前記コンピュータにさらに実行させ、
前記特定する処理は、前記各次元の要素行列それぞれと、前記線形モデルから得られる各次元の回帰係数それぞれとの内積を算出し、最も値が大きい各次元の要素を、前記部分的なテンソルデータとして特定することを特徴とする請求項2に記載のデータ拡張プログラム。
【請求項4】
前記生成する処理は、前記各次元の要素行列それぞれに、特定された前記各次元の要素それぞれを追加した新たな各次元の要素行列を生成し、前記新たな各次元の要素行列と、拡張の基準となる教師データから抽出されるコアテンソルとを用いた逆変換により、前記拡張教師データに対応するテンソルデータを生成することを特徴とする請求項3に記載のデータ拡張プログラム。
【請求項5】
前記生成する処理は、前記ニューラルネットワークの出力結果である分類確率が閾値未満かつ拡張させたいラベルが設定される教師データを、前記拡張の基準となる教師データとして選択することを特徴とする請求項4に記載のデータ拡張プログラム。
【請求項6】
生成された前記拡張教師データを用いて、学習済みである前記ニューラルネットワークの再学習を実行する処理を前記コンピュータにさらに実行させることを特徴とする請求項2に記載のデータ拡張プログラム。
【請求項7】
コンピュータが、
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定し、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する、
処理を実行することを特徴とするデータ拡張方法。
【請求項8】
グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定する特定部と、
前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する生成部と、
を有することを特徴とするデータ拡張装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ拡張プログラム、データ拡張方法およびデータ拡張装置に関する。
【背景技術】
【0002】
通信ログや銀行の取引履歴などのように、人や物(変数値)の間の関係の集合として定義されるデータ(以降、関係データと記載する場合がある)を入力とし、人やモノの間の関係を分類する技術として、ニューラルネットワークを用いた深層学習(DL:Deep Learning)などの機械学習が利用されている。
【0003】
また、機械学習としては、関係データをテンソルデータとして入力して学習するディープテンソル(DeepTensor:DT)が知られている。ディープテンソルは、グラフ構造のデータを深層学習することが可能なグラフ構造学習技術の一形態であり、入力としてグラフ構造を用い、グラフ構造をテンソルデータ(以下では、テンソルと記載する場合がある)として扱う。そして、ディープテンソルでは、予測に寄与するグラフの部分構造(テンソルの部分パターン)をコアテンソルとして抽出することで、高精度な予測を実現する。
【0004】
このようなDLなどを含む機械学習では、適用領域を問わず、異常データが不足しやすい。例えば、通信ログから攻撃と正常の分類を行う機械学習において、日常的な活動のログ収集では正常の通信ログを簡単に収集できるが、攻撃時の通信ログを収集するのは困難である。このため、機械学習においては、既存の教師データから、新たな教師データである拡張教師データを生成し、学習を促進させるデータ拡張が広く用いられている。
【0005】
例えば、事前に準備された化合物のデータベースから、中心的な基本構造を選び出し、付随する部分構造を付加する形で化合物の亜種を生成する技術が知られている。また、元データを基準に、無作為に要素を変更もしくは追加することで新たなデータを生成する技術が知られている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2018-055580号公報
【文献】特開2007-334755号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、離散値の組み合わせである関係データにおいて、データ拡張を行う場合、一般的な数値データや画像データで行うデータ拡張とは異なり、適切なデータ拡張であるかを事前あるいは事後に判別することが困難である。
【0008】
例えば、化合物の手法では、基本構造や部分構造が事前に分かっていることが要求されるので、関係データのように基本構造等を明示的に表現できないデータには適用できない。また、要素を変更する手法では、減らす方向は数が限られるが、増やす方向は組み合わせが膨大な数となり、分類に寄与しない質の悪いデータを生成する可能性がある。
【0009】
一つの側面では、機械学習に寄与する拡張教師データを生成することができるデータ拡張プログラム、データ拡張方法およびデータ拡張装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、データ拡張プログラムは、コンピュータに、グラフ構造を有する教師データを変換したテンソル形式のテンソルデータによる機械学習において前記機械学習に寄与する部分的なテンソルデータを特定する処理を実行させる。データ拡張プログラムは、コンピュータに、前記部分的なテンソルデータと前記教師データとに基づいて、前記機械学習に用いられる、前記教師データを拡張した拡張教師データを生成する処理を実行させる。
【発明の効果】
【0011】
一つの側面では、ディープテンソルの学習に寄与する拡張教師データを生成することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例1にかかるデータ拡張装置を説明する図である。
【
図2】
図2は、一般的なデータ拡張を説明する図である。
【
図3】
図3は、一般的なデータ拡張の問題点を説明する図である。
【
図4】
図4は、実施例1にかかるデータ拡張装置の機能構成を示す機能ブロック図である。
【
図5】
図5は、教師データDBに記憶される情報の例を示す図である。
【
図6】
図6は、ディープテンソルの学習例を説明する図である。
【
図7】
図7は、ディープテンソルにおけるコアテンソルの生成を説明する図である。
【
図8】
図8は、線形モデルの学習を説明する図である。
【
図9】
図9は、学習された線形モデルを説明する図である。
【
図14】
図14は、実施例1にかかるデータ拡張処理の流れを示すフローチャートである。
【
図15】
図15は、スコアに応じたデータ選択を説明する図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示するデータ拡張プログラム、データ拡張方法およびデータ拡張装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾がない範囲内で適宜組み合わせることができる。
【実施例1】
【0014】
[データ拡張装置の説明]
図1は、実施例1にかかるデータ拡張装置10を説明する図である。
図1に示すデータ拡張装置10は、教師データから生成されるテンソルデータによるディープテンソルの学習結果を用いて、学習に利用された教師データを拡張した教師データである拡張教師データを生成するコンピュータ装置の一例である。例えば、データ拡張装置10は、正常な通信ログ(正例)か攻撃などの異常な通信ログ(負例)かを判別するための教師データとして、収集数が少ない異常な通信ログを拡張した異常な通信ログを生成する。
【0015】
ところで、一般的なデータ拡張では、元の教師データを基準に、無作為に要素を変更または追加することで、新たな教師データを生成することが行われる。
図2は、一般的なデータ拡張を説明する図である。ここでは、離散値の組み合わせである関係データの一例として、「通信元ホスト、通信先ホスト、ポート、量」から構成される通信ログを例にして説明する。なお、この通信ログは、通信元ホストから通信先ホストへ、どのポート番号で何回通信が発生したかを示すログである。
【0016】
図2に示すように、一般的な技術では、基準の通信データAに対して、要素であるR1をR2に変更することで拡張教師データBを生成する。この拡張教師データBをテンソル化すると、基準の通信データAのテンソルから、要素bが変更されたテンソルデータが生成される。また、新たな要素を追加することで拡張教師データCを生成すると、基準の通信データAのテンソルから、要素cが追加されたテンソルデータが生成される。
【0017】
しかし、
図2に示すような関係データでは、拡張教師データBや拡張教師データCが正例の教師データなのか負例の教師データなのかを判別することが難しい。
図3は、一般的なデータ拡張の問題点を説明する図である。
図3に示すように、「データA、特徴1、特徴2」から構成されるような数値データの場合、各特徴の分布により正例と負例とを簡単に判別することができるので、データ拡張により新たに生成されるデータXがどのクラスに該当するかを容易に判別できる。すなわち、正例の拡張教師データ、負例の拡張教師データを容易に生成できる。
【0018】
一方で、関係データの場合、変更や追加されたテンソル部分がクラス分類にどのように影響を与えるのかを明示できない。具体的には、関係データの要素である離散値を変更した拡張教師データBや離散値を追加した拡張教師データCを生成した場合であっても、ディープテンソルが離散値や離散値の組み合わせをどのように扱っているのかが不明であることから、各拡張教師データが正例なのか負例なのかを判別することができない。この結果、負例として扱うべき拡張教師データを正例の教師データとして学習させるなどの事象が発生することがあり、学習精度の劣化が起こりうる。
【0019】
そこで、実施例1にかかるデータ拡張装置10は、既存の教師データを用いてディープテンソルを学習し、得られた学習結果を近似する線形モデルを学習する。そして、データ拡張装置10は、このとき得られた回帰係数により、ディープテンソルによる分類に重要な要素を特定し、特定した要素の組み合わせを元となるデータに付加して、拡張教師データを生成する。
【0020】
具体的には、
図1に示すように、データ拡張装置10は、ディープテンソル(DT)の学習、DT説明機能による学習、データ拡張を実行する。まず、データ拡張装置10は、教師データからテンソルデータを生成し、テンソルデータをDTに入力する。続いて、データ拡張装置10は、DTの出力値と教師データのラベルとの誤差が小さくなるように、DTを学習する。そして、データ拡張装置10は、学習済みのDTの予測結果を局所的に近似する線形モデルを学習する。
【0021】
その後、データ拡張装置10は、学習された線形モデルの回帰係数を用いて、元のテンソルデータからDTの学習に寄与する部分を特定する。そして、データ拡張装置10は、DTの学習時におけるコアテンソルの抽出時に、特定した部分を追加した要素行列を用いることで、元のテンソルデータから拡張教師データを生成する。
【0022】
このように、データ拡張装置10は、DTの学習結果や線形モデルの学習結果を用いることで、DTの学習に寄与する部分を特定することができるので、DTの学習に寄与する拡張教師データを生成することができる。
【0023】
[データ拡張装置の機能構成]
図4は、実施例1にかかるデータ拡張装置10の機能構成を示す機能ブロック図である。
図4に示すように、データ拡張装置10は、通信部11、記憶部12、制御部20を有する。
【0024】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者が利用する図示しない管理装置から、処理開始指示や教師データなどを受信し、管理装置に学習結果やデータ拡張の結果などを送信する。
【0025】
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部12は、教師データDB13、学習結果DB14、拡張教師データDB15を記憶する。
【0026】
教師データDB13は、ディープテンソルを用いた学習モデルのディープラーニング(深層学習)や線形モデルを用いたDT説明機能の学習に利用される訓練データ(学習データ)の一例である教師データを記憶するデータベースである。具体的には、教師データDB13は、通信ログとラベルとを対応付けた複数の教師データを記憶する。
【0027】
図5は、教師データDB13に記憶される情報の例を示す図である。
図5に示すように、教師データDB13は、「取得時間、データ、ラベル」を対応付けて記憶する。ここで記憶される「取得時間」は、データが取得された時間を示し、「データ」は、学習対象のデータを示す。「ラベル」は、ディープテンソルの学習に利用される正解情報であり、不正通信を示す場合は「0」が設定され、「通常通信」を示す場合は「1.0」が設定される。
【0028】
図5の例では、取得時間「10:00から10:10」の間に取得されたデータ(通信ログ)が通常通信(ラベル=1.0)であることを示している。また、通信ログは、通信元のIPアドレスを示す「ホスト」と、通信先であるクライアント端末のIPアドレスを示す「クライアント」と、発生した通信量を示す「量」とが対応付けられる。例えば、通信ログは、通信元ホストS1から通信先ホストR1への通信が3回発生したことを示す。
【0029】
なお、通信ログの各レコードが関係に該当し、「ホスト」、「クライアント」、「コマンド」などが変数に該当し、「S1」などが変数値に該当し、変数値がニューラルネットワークへの入力対象となる。
【0030】
学習結果DB14は、後述する制御部20による学習結果を記憶するデータベースである。具体的には、学習結果DB14は、教師データの分類結果や、ディープラーニングによって学習されたニューラルネットワーク(ディープテンソル)の各パラメータの値、DT説明機能の学習結果などを記憶する。すなわち、学習結果DB14は、学習済みである学習モデルの構築に用いる各種情報を記憶する。
【0031】
拡張教師データDB15は、後述する制御部20によって生成された拡張教師データを記憶するデータベースである。例えば、拡張教師データDB15は、データ拡張によって生成された、攻撃などの異常な通信ログ(負例)に対応するテンソルデータなどを記憶する。
【0032】
制御部20は、データ拡張装置10全体を司る処理部であり、例えばプロセッサなどである。制御部20は、DT学習部21、線形学習部22、データ拡張部23を有する。
【0033】
DT学習部21は、テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、ニューラルネットワークの深層学習およびテンソル分解の方法の学習を行う処理部である。すなわち、DT学習部21は、各教師データから生成された各テンソルデータおよびラベルを入力として、ディープテンソルによる学習モデルの学習を実行する。ここでは、3次元のテンソルを例にして説明する。
【0034】
図6は、ディープテンソルの学習例を説明する図である。
図6に示すように、DT学習部21は、教師データDB13から教師データを読み出して、教師データのグラフ構造をテンソル表現で表したテンソルデータを生成する。そして、DT学習部21は、生成したテンソルデータを入力テンソルとしてテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、DT学習部21は、コアテンソルをニューラルネットワークに入力して分類結果(ラベルA:70%、ラベルB:30%)を得る。その後、DT学習部21は、分類結果(ラベルA:70%、ラベルB:30%)と教師ラベル(ラベルA:100%、ラベルB:0%)との分類誤差を算出する。
【0035】
ここで、DT学習部21は、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて学習モデルの学習を実行する。すなわち、DT学習部21は、ニューラルネットワークが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするように、ニューラルネットワークの各種パラメータを修正する。さらに、DT学習部21は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造、すなわち正常な通信ログの特徴を示す特徴パターンもしくは異常な通信ログの特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。このようにすることで、最適化されたターゲットコアテンソルには予測に寄与する部分パターンが抽出されるようになる。
【0036】
図7は、ディープテンソルにおけるコアテンソルの生成を説明する図である。
図7に示すように、DT学習部21は、構造制約テンソル分解により、グラフ構造のデータをコアテンソルと要素行列に分解し、コアテンソルをニューラルネットワークに入力する。構造制約テンソル分解は、分類に重要な特徴量が再現されたターゲットコアテンソルにできる限り類似するように、コアテンソルを算出する。このようにすることで、分類に重要な構造をコアテンソルの類似の位置に配置することができる。
【0037】
なお、DT学習部21が実行する構造制約テンソル分解は、2段階の最適化により計算される。第1段階では、与えられたターゲットコアテンソルを用いて、入力テンソルデータを最もよく近似するように要素行列のみを最適化する。第2段階では、第1段階で最適化された要素行列を用いて、入力テンソルデータを最もよく近似するように、コアテンソルを最適化する。このようにして最適化されたコアテンソルがニューラルネットワークに入力される。
【0038】
線形学習部22は、ディープテンソルの予測結果を局所的に近似する線形モデルを学習する処理部である。
図8は、線形モデルの学習を説明する図である。
図8に示すように、線形学習部22は、最適化された各次元の要素行列C
kを用いて、入力データからターゲットコアテンソルνと近似(類似)するようにコアテンソルx
-(エックスバー)を生成する。そして、線形学習部22は、コアテンソルx
-をニューラルネットワークに入力して出力結果y´を取得するとともに、コアテンソルx
-を線形モデルに入力して出力結果y´´を取得する。
【0039】
その後、線形学習部22は、ニューラルネットワークの出力結果y´と線形モデルの出力結果y´´とが近似するように、線形モデルを学習する。このようにして、線形学習部22は、線形モデルを学習し、次元ごとの回帰係数を算出する。すなわち、線形学習部22は、各次元の要素行列に対応した回帰係数を算出する。なお、線形モデルにおけるwは各次元の重みであり、bは定数である。
【0040】
図9は、学習された線形モデルを説明する図である。
図9に示すように、学習された線形モデルは、クラスAとクラスBに分類するニューラルネットワークにおいてある任意の範囲について、データの分類説明を実現する。具体的には、学習された線形モデルは、説明したいデータxの周辺データzに対して、分離平面の法線ベクトルwを定義することにより、データxがどのくらすに分類されるかを示す。
【0041】
図4に戻り、データ拡張部23は、内積部24、特定部25、生成部26、逆変換部27を有し、データ拡張を実行する処理部である。
【0042】
内積部24は、線形モデルから得られる回帰係数と要素行列の内積から求まる、分類における寄与度(重要度)を示すスコアを算出する処理部である。具体的には、内積部24は、基準となる教師データを選択する。例えば、内積部24は、ディープテンソルによる分類確率が50%付近で、異常な通信ログであるラベルが付与される教師データを選択する。そして、内積部24は、学習済みの線形モデルやディープテンソルなどを用いて、選択した教師データのコアテンソル(x-)を抽出する。
【0043】
その後、内積部24は、次元ごとに、要素行列の行ベクトルと回帰係数の列ベクトルとの内積を算出してスコアを取得する。
図10は、内積処理を説明する図である。
図10に示すように、内積部24は、DT学習部21による学習によって最適化されたk次元目の要素行列C
k((a)参照)と、学習済みの線形モデルから得られたk次元目の回帰係数((b)参照)との内積を算出して、k次元目のスコア((c)参照)を算出する。そして、内積部24は、算出結果や抽出したコアテンソルなどを特定部25に出力する。
【0044】
なお、学習済みのk次元目の要素行列C
kは、入力以外の要素を含む行列である。つまり、要素行列C
kは、入力となりうる可能性がある最大の範囲の行列であり、網掛け部分が実際の入力となる要素である。
図10の例では、最大6要素の例を示している。
【0045】
特定部25は、分類における寄与度が最も大きい要素を特定する処理部である。具体的には、特定部25は、次元ごとに算出されたスコアから最大スコアの要素を特定し、生成部26に出力する。
図11は、特定処理を説明する図である。
図11に示すように、特定部25は、内積部24から取得したk次元目のスコアを、スコアが大きい順にソートする。そして、特定部25は、スコアが0.5で最も大きい要素3を特定する。この要素3がk次元における最高スコアの要素となる。このようにして、特定部25は、各次元について、最高スコアの要素を特定する。
【0046】
生成部26は、特定部25によって特定された要素を入力要素に追加し、新たな要素行列を生成する処理部である。
図12は、要素行列の生成処理を説明する図である。
図12に示すように、生成部26は、入力となりうる可能性がある最大の範囲の大きさであるk次元目の要素行列C
k((a)参照)のうち、元々の入力要素と最高スコアの要素(要素3)とを含むように抽出した要素行列C
k´を生成する。そして、生成部26は、各次元について生成された新たな要素行列C
k´を逆変換部27に出力する。
【0047】
逆変換部27は、生成部26により生成された各次元の新たな要素行列を用いて、入力テンソルに逆変換する処理部である。
図13は、逆変換処理を説明する図である。
図13に示すように、逆変換部27は、基準データのコアテンソル(x
-)に、各次元の新たな要素行列C
k´を適用して逆変換を実行し、テンソルデータを生成する。そして、逆変換部27は、得られたテンソルデータと、基準データと同じラベルとを対応付けた拡張教師データ((d)参照)を生成して、拡張教師データDB15に格納する。
【0048】
[処理の流れ]
次に、データ拡張処理の流れを説明する。上述したデータ拡張は、次元ごとのスコアのうち最大スコアの要素を追加する処理を説明した。しかし、拡張教師データの精度を向上させるためにも、エッジまで拡張して、要素の追加判定を行うことが好ましい。
【0049】
ここでは、エッジまで拡張したデータ拡張処理の詳細について説明する。なお、
図5の教師データを例に次元とエッジについて説明すると、次元は、列に該当し、エッジは、行に該当する。
【0050】
図14は、実施例1にかかるデータ拡張処理の流れを示すフローチャートである。
図14に示すように、処理開始が指示されると(S101:Yes)、DT学習部21が、教師データを用いてディープテンソルの学習を実行して学習モデルを構築する(S102)。また、線形学習部22が、教師データが入力されたディープテンソルの出力結果を用いて、線形モデルを学習する(S103)。
【0051】
各学習が終了すると、データ拡張部23は、基準となるデータ(基準データ)を選択する(S104)。続いて、データ拡張部23は、各次元について、DT学習によって最適化済みの要素行列の行ベクトルと、学習済みの線形モデルから得られる回帰係数の列ベクトルとの内積を算出することで、次元ごとのスコアを算出する(S105)。そして、データ拡張部23は、次元ごとのスコアの算出結果から、各次元の最高スコアを選択する(S106)。
【0052】
その後、データ拡張部23は、各エッジについて、DT学習によって最適化済みの要素行列の列ベクトルと学習済みの線形モデルから得られる回帰係数の列ベクトルとの内積を算出することで、エッジごとのスコア(A)を算出する(S107)。
【0053】
そして、データ拡張部23は、同様の手法により、S106で選択された最高スコアで構成されるエッジのスコア(B)を算出する(S108)。
【0054】
ここで、データ拡張部23は、S107で算出されたスコア(A)の方がS108で算出されたスコア(B)よりも大きい場合(S109:No)、S104に戻って、基準データの選択からやり直す。
【0055】
一方、データ拡張部23は、S108で算出されたスコア(B)の方がS107で算出されたスコア(A)よりも大きい場合(S109:Yes)、最高スコアの要素を追加した要素行列を用いた逆変換によって、拡張教師データを生成する(S110)。
【0056】
[効果]
上述したように、データ拡張装置10は、正のスコアとなるように要素を基準データに追加することで、攻撃亜種のデータを生成することができるので、ディープテンソルの学習に寄与する拡張教師データを生成することができる。
図15は、スコアに応じたデータ選択を説明する図である。
図15に示すように、基準となる攻撃データに対して、スコアが0以上の要素を追加することは、基準の攻撃データと同じクラス(攻撃)のデータを生成することになる。
【0057】
また、0以上かつ最大値のスコアに該当する要素を追加することは、基準の攻撃データと同じクラス、かつ、線形モデルから最も離れたデータを追加することになる。つまり、既存の教師データでは網羅できていない可能性が高い教師データを生成することができる。一方で、基準となる攻撃データに対して、スコアが0未満の要素を追加することは、基準の攻撃データと逆クラス(正常)のデータを生成することになる。
【0058】
したがって、実施例1に係るデータ拡張では、スコアが最も大きい要素を追加した拡張教師データを生成することで、既存の教師データに含まれない新たな教師データを生成することができる。なお、複数の拡張教師データを生成することが要求される場合には、スコアが0以上の各要素を追加した各拡張教師データを生成することもできる。
【0059】
[具体例]
図16は、具体例を説明する図である。
図16では、データ拡張処理により追加される拡張教師データの具体例を説明する。
図16には、端末(*.*.*.4)からサーバ(*.*.*.2)への通信の一連の活動が示される。
【0060】
具体的には、端末からサーバへ管理者権限で認証処理が行われ、端末からサーバに管理者権限のリソースへのアクセスが実行される。その後、端末からサーバにexeファイルが書き込まれた後、端末によって、サーバに書き込まれたexeファイルが実行される。
【0061】
このように、端末からサーバへの不正通信(攻撃)の一連の通信ログを教師データに用いることで、不正な情報収集を行う攻撃の特徴を学習することができる。さらに、実施例1にかかるデータ拡張により、通信ログには含まれない「exeファイル書き込みフォルダ内のlogファイルの読み込み操作」を教師データに追加することができる。この結果、通信ログのみを用いた不正な情報収集の特徴学習に加えて、不正なデータ取得などの諜報活動の特徴学習も実行することができる。
【実施例2】
【0062】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0063】
[データや数値等]
上記実施例で用いた次元数、テンソルの構成例、数値、データ例、ラベルの設定値等は、あくまで一例であり、任意に変更することができる。また、教師データの例として、通信ログを例示したが、他のデータを用いることもできる。例えば、振込元、振込先、振込回数などを有する振込履歴などの関係データに対しても上記実施例を適用することもできる。なお、拡張対象の教師データも正例または負例のいずれであってもよい。また、基準データの選択は、例えば分類確率が50%以上のうち最も分類確率が小さく、かつ、拡張対象のラベルが設定される教師データを選択することができる。
【0064】
[再学習]
また、上記データ拡張装置10は、拡張教師データを用いて、ディープテンソルの再学習や線形モデルの再学習を実行することもできる。この結果、ディープテンソルの分類精度を向上させることができ、線形モデルの精度も向上させることができる。
【0065】
[学習手法]
上記実施例で説明したディープテンソルの学習や線形モデルの学習は、例示したものに限定されず、公知の手法を用いることもできる。
【0066】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0067】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ディープテンソルを学習する装置、線形モデルを学習する装置、データ拡張を実行する装置などのように、各処理を別々の装置で実現することもできる。
【0068】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0069】
[ハードウェア]
図17は、ハードウェア構成例を説明する図である。
図17に示すように、データ拡張装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図17に示した各部は、バス等で相互に接続される。
【0070】
通信装置10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図4に示した機能を動作させるプログラムやDBを記憶する。
【0071】
プロセッサ10dは、
図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図2等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、データ拡張装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、DT学習部21、線形学習部22、データ拡張部23等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、DT学習部21、線形学習部22、データ拡張部23等と同様の処理を実行するプロセスを実行する。
【0072】
このようにデータ拡張装置10は、プログラムを読み出して実行することでデータ拡張方法を実行する情報処理装置として動作する。また、データ拡張装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、データ拡張装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0073】
10 データ拡張装置
11 通信部
12 記憶部
13 教師データDB
14 学習結果DB
15 拡張教師データDB
20 制御部
21 DT学習部
22 線形学習部
23 データ拡張部
24 内積部
25 特定部
26 生成部
27 逆変換部