(57)【要約】      （修正有）【課題】異常トラフィックを探知する方法を提供する。【解決手段】方法は、マシンラーニングの一つであるインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダを利用して学習用トラフィックデータに基づいて複数のエンコーダを生成する段階、探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成する段階および前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断する段階を含む。【選択図】図１４
2019028971.tif 000002
【特許請求の範囲】
【請求項１】
学習用トラフィック（ｔｒａｆｆｉｃ）データに基づいて複数のエンコーダ（ｅｎｃｏｄｅｒ）を生成する段階と、
探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成する段階と、
前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断する段階と、を含む、異常トラフィック探知方法。
【請求項２】
前記学習用トラフィックデータに基づいて複数のエンコーダを生成する段階は、
前記学習用トラフィックデータをあらかじめ設定された単位に分割する段階と、
前記分割した学習用トラフィックデータを複数の学習用イメージデータに変換する段階と、
前記複数の学習用イメージデータに基づいて前記複数のエンコーダを生成する段階と、を含む、請求項１に記載の異常トラフィック探知方法。
【請求項３】
前記複数の学習用イメージデータを学習して前記複数のエンコーダを生成する段階は、
コンボリューショナルニューラルネットワーク(convolutionalneural networks)を利用するインセプション−レジデュアルネットワーク−ｖ２(inception-residualnetwork-v2)基盤のオートエンコーダ(autoencoder)を通じて前記複数の学習用イメージデータを学習して前記複数のエンコーダを生成する段階を含む、請求項２に記載の異常トラフィック探知方法。
【請求項４】
前記探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成する段階は、
前記探知対象であるセッション別トラフィックデータをあらかじめ設定された単位に分割する段階と、
前記分割した探知対象であるセッション別トラフィックデータを複数のイメージデータに変換する段階と、を含む、請求項１に記載の異常トラフィック探知方法。
【請求項５】
前記セッション別トラフィックデータの異常の有無を判断する段階は、
前記オートエンコーダに前記複数のイメージデータを入力してＢＣＥ(binarycross entropy)を算出する段階と、
前記ＢＣＥとあらかじめ設定されたしきい値とを比較して前記セッション別トラフィックデータの異常の有無を判断する段階と、を含む、請求項３に記載の異常トラフィック探知方法。
【請求項６】
前記ＢＣＥとあらかじめ設定されたしきい値とを比較して前記セッション別トラフィックデータの異常の有無を判断する段階は、
前記ＢＣＥが前記あらかじめ設定されたしきい値以上の場合、前記セッション別トラフィックデータを異常と判断する段階を含む、請求項５に記載の異常トラフィック探知方法。
【請求項７】
前記ＢＣＥとあらかじめ設定されたしきい値を比較して前記セッション別トラフィックデータの異常の有無を判断する段階は、
前記ＢＣＥが前記あらかじめ設定されたしきい値未満の場合、クラスタリング(clustering)アルゴリズムを利用して前記セッション別トラフィックデータの異常の有無を判断する段階をさらに含む、請求項６に記載の異常トラフィック探知方法。
【請求項８】
前記クラスタリング(clustering)アルゴリズムを利用して前記セッション別トラフィックデータの異常の有無を判断する段階は、
前記学習用トラフィックデータおよび前記複数のエンコーダに基づいてクラスタリングアルゴリズムを利用して複数のデータ群集を生成する段階と、
前記複数のエンコーダ、前記複数のデータ群集および前記複数のイメージデータを利用して前記セッション別トラフィックデータの異常の有無を判断する段階と、を含む、請求項７に記載の異常トラフィック探知方法。
【請求項９】
前記学習用トラフィックデータおよび前記複数のエンコーダに基づいてクラスタリングアルゴリズムを利用して複数のデータ群集を生成する段階は、
前記分割した学習用トラフィックデータを前記複数のエンコーダに入力して前記複数のエンコーダの出力をそれぞれ保存する段階と、
前記それぞれ保存した複数のエンコーダの出力に対して前記クラスタリングアルゴリズムを適用して前記複数のエンコーダによる少なくとも一つ以上のデータ群集をそれぞれ生成する段階と、を含む、請求項８に記載の異常トラフィック探知方法。
【請求項１０】
前記複数のエンコーダ、前記複数のデータ群集および前記複数のイメージデータを利用して前記セッション別トラフィックデータの異常の有無を判断する段階は、
前記セッション別トラフィックデータを前記複数のエンコーダに入力して前記複数のエンコーダによる出力データをそれぞれ生成する段階と、
同じエンコーダを基準として前記複数のエンコーダによる出力データが前記複数のエンコーダに対応するデータ群集にすべて含まれない場合、前記セッション別トラフィックデータを異常トラフィックと判断する段階と、を含む、請求項８に記載の異常トラフィック探知方法。
【請求項１１】
プロセッサと、
前記プロセッサを通じて実行される少なくとも一つの命令が保存されたメモリと、を含み、
前記少なくとも一つの命令は、
学習用トラフィックデータに基づいて複数のエンコーダを生成するように実行され、
探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成するように実行され、
前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断するように実行される、異常トラフィック探知装置。
【請求項１２】
前記少なくとも一つの命令は、
前記学習用トラフィックデータをあらかじめ設定された単位に分割するように実行され、
前記分割した学習用トラフィックデータを複数の学習用イメージデータに変換するように実行され、
前記複数の学習用イメージデータに基づいて前記複数のエンコーダを生成するように実行される、請求項１１に記載の異常トラフィック探知装置。
【請求項１３】
前記少なくとも一つの命令は、
コンボリューショナルニューラルネットワーク(convolutionalneural networks)を利用するインセプション−レジデュアルネットワーク−ｖ２(inception-residualnetwork-v2)基盤のオートエンコーダ(autoencoder)を通じて前記複数の学習用イメージデータを学習して前記複数のエンコーダを生成するように実行される、請求項１２に記載の異常トラフィック探知装置。
【請求項１４】
前記少なくとも一つの命令は、
前記探知対象であるセッション別トラフィックデータをあらかじめ設定された単位に分割するように実行され、
前記分割した探知対象であるセッション別トラフィックデータを複数のイメージデータに変換するように実行される、請求項１１に記載の異常トラフィック探知装置。
【請求項１５】
前記少なくとも一つの命令は、
前記オートエンコーダに前記複数のイメージデータを入力してＢＣＥを算出するように実行され、
前記ＢＣＥとあらかじめ設定されたしきい値を比較して前記セッション別トラフィックデータの異常の有無を判断するように実行される、請求項１３に記載の異常トラフィック探知装置。
【請求項１６】
前記少なくとも一つの命令は、
前記ＢＣＥが前記あらかじめ設定されたしきい値以上の場合、前記セッション別トラフィックデータを異常と判断するように実行される、請求項１５に記載の異常トラフィック探知装置。
【請求項１７】
前記少なくとも一つの命令は、
前記ＢＣＥが前記あらかじめ設定されたしきい値未満の場合、クラスタリング(clustering)アルゴリズムを利用して前記セッション別トラフィックデータの異常の有無を判断するように実行される、請求項１６に記載の異常トラフィック探知装置。
【請求項１８】
前記少なくとも一つの命令は、
前記学習用トラフィックデータおよび前記複数のエンコーダに基づいてクラスタリングアルゴリズムを利用して複数のデータ群集を生成するように実行され、
前記複数のエンコーダ、前記複数のデータ群集および前記複数のイメージデータを利用して前記セッション別トラフィックデータの異常の有無を判断するように実行される、請求項１７に記載の異常トラフィック探知装置。
【請求項１９】
前記少なくとも一つの命令は、
前記分割した学習用トラフィックデータを前記複数のエンコーダに入力して前記複数のエンコーダの出力をそれぞれ保存するように実行され、
前記それぞれ保存した複数のエンコーダの出力に対して前記クラスタリングアルゴリズムを適用して前記複数のエンコーダによる少なくとも一つ以上のデータ群集をそれぞれ生成するように実行される、請求項１８に記載の異常トラフィック探知装置。
【請求項２０】
前記少なくとも一つの命令は、
前記セッション別トラフィックデータを前記複数のエンコーダに入力して前記複数のエンコーダによる出力データをそれぞれ生成するように実行され、
同じエンコーダを基準として前記複数のエンコーダによる出力データが前記複数のエンコーダに対応するデータ群集にすべて含まれない場合、前記セッション別トラフィックデータを異常トラフィックと判断するように実行される、請求項１８に記載の異常トラフィック探知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常トラフィックを探知する方法および装置に関するもので、さらに詳細にはマシンラーニング学習方法の一つであるインセプション−レジデュアルネットワーク−Ｖ２(inception-residual network-v2、inception-resnet-v2)基盤のオートエンコーダを利用して異常トラフィックを探知する方法および装置に関するものである。
【背景技術】
【０００２】
最近インターネットの急速な発達によってサーバーとインターネットとの間のＨＴＴＰ(HyperText Transfer Protocol)基盤の通信量も急速に増加しているのが実情である。ここで、ＨＴＴＰはハイパーテキスト(hypertext)文書を交換するために使われる通信規約であり、ハイパーテキストは文書の間々に特定のキーワードを置いて文字や絵を相互有機的に結び付けて連結させることによって、互いに異なる文書であっても一つの文書のように見えて参照しやすいようにする方式を意味する。我々の社会は通信量が増加するにつれて数多くの情報をやり取りして生活の質を向上させてきたが、それと同時に大規模のネットワークを対象とする攻撃が増加しており、深刻な社会的問題が発生している。
【０００３】
したがって、このような大規模なネットワーク攻撃を探知するためにトラフィックを分析する技術が台頭してきており、トラフィックを分析する技術はパケットの数またはバイトの大きさの量的変化を観察するのがほとんどである。
【０００４】
ただし、単に量的な変化にのみ基づいて異常トラフィックを探知する方法は、少ない量的変化を起こす攻撃を探知することができなかったり正常ではあるが過度の量的変化を表わす場合を異常トラフィックと誤って探知する場合が発生し得る問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前記のような問題点を解決するための本発明の目的は、異常トラフィックを探知する方法を提供するところにある。
【０００６】
前記のような問題点を解決するための本発明の目的は、異常トラフィックを探知する装置を提供するところにある。
【課題を解決するための手段】
【０００７】
前記目的を達成するための本発明の一実施例に係る異常トラフィック探知方法は、学習用トラフィック（ｔｒａｆｆｉｃ）データに基づいて複数のエンコーダ（ｅｎｃｏｄｅｒ）を生成する段階、探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成する段階、および前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断する段階を含むことができる。
【０００８】
前記目的を達成するための本発明の一実施例に係る異常トラフィック探知装置は、プロセッサ（ｐｒｏｃｅｓｓｏｒ）、および前記プロセッサを通じて実行される少なくとも一つの命令が保存されたメモリ（ｍｅｍｏｒｙ）を含み、前記少なくとも一つの命令は、学習用トラフィック（ｔｒａｆｆｉｃ）データに基づいて複数のエンコーダ（ｅｎｃｏｄｅｒ）を生成するように実行され、探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成するように実行され、前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断するように実行することができる。
【発明の効果】
【０００９】
本発明によると、異常トラフィックの探知にマシンラーニングを利用して誤警報率を減少させることができる。
【００１０】
本発明によると、マシンラーニングのうちインセプション−レジデュアルネットワーク−ｖ２(inception-resnet-v2)基盤のオートエンコーダ(autoencoder)を利用することによって、効果的に計算量を減らしレイヤー(layer)を増加させることができるため、異常トラフィックの探知において高い正確度および速度を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例に係る異常トラフィック探知装置のブロック構成図。
【図２】本発明の一実施例に係るトラフィックデータをイメージデータに変換する方法を説明する図面。
【図３】本発明の一実施例に係るコンボリューショナルニューラルネットワークのコンボリューション動作を説明する概念図。
【図４】本発明の一実施例に係るオートエンコーダの基盤となるインセプション−レジデュアルネットワーク−ｖ２を説明する概念図。
【図５】本発明の一実施例に係るオートエンコーダの構成を説明する概念図。
【図６】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでエンコーダの構造を説明する概念図。
【図７】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでエンコーダの構造に対応するデコーダの構造を説明する概念図。
【図８】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでステム(stem)段階を説明する概念図。
【図９】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階を説明する概念図。
【図１０】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＲｅｄｕｃｔｉｏｎ−Ａ段階を説明する概念図。
【図１１】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階を説明する概念図。
【図１２】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＲｅｄｕｃｔｉｏｎ−Ｂ段階を説明する概念図。
【図１３】本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階を説明する概念図。
【図１４】本発明の一実施例に係る異常トラフィック探知方法を説明するフローチャート。
【図１５】本発明の一実施例に係る異常トラフィック探知方法のうちエンコーダ、エンコーダに対応するデータ群集およびイメージデータを利用して異常の有無を判断する方法を説明するフローチャート。
【図１６】本発明の一実施例に係るオートエンコーダでデコーダを除去し、エンコーダの出力である多次元データに対してｔ−ＳＮＥを適用した結果を示した図面。
【図１７】本発明の一実施例に係る異常トラフィック探知装置の性能を説明するための図面。
【発明を実施するための形態】
【００１２】
本発明は多様な変更を加えることができ、多様な実施例を有することができるところ、特定の実施例を図面に例示し、詳細な説明に詳細に説明する。しかし、これは本発明を特定の実施形態に限定するためのものではなく、本発明の思想および技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。各図面の説明において、類似の参照符号は類似の構成要素に付与した。
【００１３】
第１、第２、Ａ、Ｂなどの用語は多様な構成要素の説明に使われ得るが、前記構成要素は前記用語によって限定されてはならない。前記用語は一つの構成要素を別の構成要素から区別する目的でのみ使われる。例えば、本発明の権利範囲を逸脱することなく、かつ第１構成要素は第２構成要素と命名され得、同様に第２構成要素も第１構成要素と命名され得る。「および／または」という用語は、複数の関連して記載された項目の組み合わせまたは複数の関連して記載された項目中のいずれかの項目を含む。
【００１４】
ある構成要素が別の構成要素に「連結されて」いるとか「接続されて」いると言及された時には、その他の構成要素に直接的に連結されているかまたは接続されていることもあり得るが、中間に他の構成要素が存在することもあり得ると理解されるべきである。反面、ある構成要素が他の構成要素に「直接連結されて」いるとか「直接接続されて」いると言及された時には、中間に他の構成要素が存在しないものと理解されるべきである。
【００１５】
本出願で使った用語は単に特定の実施例を説明するために使われたものであって、本発明を限定しようとする意図ではない。単数の表現は文脈上明白に異なることを意味しない限り、複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するためのものであり、一つまたはそれ以上の別の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加の可能性をあらかじめ排除しないものと理解されるべきである。
【００１６】
別途に定義されない限り、技術的又は科学的な用語を含んでここで使われるすべての用語は、本発明が属する技術分野で通常の知識を有する者によって一般に理解されることと同じ意味を有している。一般に使われる辞書に定義されているような用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈されるべきであり、本出願で明白に定義しない限り、理想的又は過度に形式的な意味に解釈されない。
【００１７】
以下、本発明に係る好ましい実施例を添付図面を参照して詳細に説明する。
【００１８】
本明細書においてトラフィックとは、ウェブサイトに訪問する人々がやりとりするデータの量を意味するウェブトラフィック(web traffic)を意味し得、インターネットを経由するデータの流れを意味するインターネットトラフィック（internet traffic）を意味し得る。また、トラフィックはＨＴＴＰ(HyperTextTransfer Protocol)を利用するインターネットトラフィックを意味し得る。ここで、ＨＴＴＰはステートレス(stateless)プロトコルであり得、ステートレスプロトコルはＨＴＴＰサーバーが多重要請期間の間、各ユーザーに対する情報または状態を保有することを要求しないこともある。
【００１９】
図１は本発明の一実施例に係る異常トラフィック探知装置のブロック構成図である。
【００２０】
図１を参照すると、本発明の一実施例に係る異常トラフィック探知装置１００は、少なくとも一つのプロセッサ１１０、メモリ１２０および保存装置１３０を含むことができる。
【００２１】
プロセッサ１１０は、メモリ１２０および／または保存装置１３０に保存されたプログラム命令(program command)を実行することができる。プロセッサ１１０は、中央処理装置（central processing unit；ＣＰＵ）、グラフィック処理装置（graphicsprocessing unit；ＧＰＵ）または本発明に係る方法が実行される専用のプロセッサを意味し得る。メモリ１２０と保存装置１３０は、揮発性保存媒体および／または不揮発性保存媒体で構成され得る。例えば、メモリ１２０は、読み取り専用メモリ（read only memory；ＲＯＭ）および／またはランダムアクセスメモリ（randomaccess memory；ＲＡＭ）で構成され得る。
【００２２】
メモリ１２０はプロセッサ１１０を通じて実行される少なくとも一つの命令を保存していることがある。少なくとも一つの命令は学習用トラフィック（ｔｒａｆｆｉｃ）データに基づいて複数のエンコーダ（ｅｎｃｏｄｅｒ）を生成する命令、探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成する命令および前記学習用トラフィックデータ、前記複数のエンコーダおよび前記複数のイメージデータのうち少なくとも一つを利用して前記セッション別トラフィックデータの異常の有無を判断する命令を含むことができる。
【００２３】
メモリ１２０に保存された命令は、プロセッサ１１０の機械学習によってアップデートされ得る。プロセッサ１１０は機械学習によってメモリに保存された命令を変更することができる。プロセッサ１１０が行う機械学習は、非指導学習方式によって行われ得る。
【００２４】
プロセッサ１１０はメモリ１２０に保存された命令によりトラフィックデータ獲得部１０から探知対象であるセッション別トラフィックデータを受信することができ、トラフィックデータ獲得部１０は取得したセッション別トラフィックデータをプロセッサ１１０に送信することができる。
【００２５】
プロセッサ１１０は学習用トラフィック（ｔｒａｆｆｉｃ）データに基づいて学習用イメージデータを生成することができ、探知対象であるセッション別トラフィックデータに基づいて複数のイメージデータを生成することができる。ここで、トラフィックデータはＨＴＴＰセッション別トラフィックデータを意味し得る。ＨＴＴＰセッションとは、一連のネットワーク要請および応答のトランザクション(transaction)を意味し得る。例えば、ＨＴＴＰクライアントはサーバーの特定のポートにＴＣＰ(Transmission Control Protocol)連結を設定して要請を始めることができ、該当ポートで受信待機するＨＴＴＰサーバーはクライアントの要請メッセージを待つことができ、要請を受けるとサーバーは、「ＨＴＴＰ／１．１  ２００  ＯＫ」のような状態表示列と自らのメッセージを送ることができる。このメッセージの本文は一般的に要請された資源であり得るが、エラーメッセージまたはその他の情報が返還され得、ここで、ＨＴＴＰクライアントの要請およびサーバーの応答がＨＴＴＰセッションを意味し得る。換言すれば、トラフィックデータは文字列データを意味し得る。プロセッサ１１０は文字列データに基づいてイメージデータを生成するために文字列データを逆順でｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒに変換して行列を生成することができ、さらに詳細には図２とともに後述する。
【００２６】
プロセッサ１１０は生成したイメージデータを機械学習の学習データとして利用してエンコーダを生成することができる。ここで、機械学習はコンボリューショナルニューラルネットワーク（Convolutional Neural Networks、ＣＮＮ）のオートエンコーダ(autoencoder)を利用することができ、インセプション−レジデュアルネットワーク−ｖ２(inception-residual network-v2、inception-resnet-v2)基盤のオートエンコーダを利用することができる。ここで、エンコーダは入力データが圧縮されて隠れレイヤー(hidden layers)を形成する過程をエンコーディングと表わすことができ、エンコーディングを行う部分をエンコーダと表わすことができる。また、その逆に隠れレイヤーが出力データを形成する過程はデコーディンと表わすことができ、デコーディングを行う部分をデコーダと表わすことができる。オートエンコーダは前述したエンコーダおよびデコーダを含み、さらに詳細には図３と共に後述する。
【００２７】
プロセッサ１００はイメージデータをオートエンコーダに入力して取得した出力値であるＢＣＥ(Binary Cross Entropy)とあらかじめ設定したしきい値とを比較してセッション別トラフィックデータの異常の有無を判断することができる。本発明の一実施例では、機械学習としてオートエンコーダを学習する過程で正常トラフィックデータを利用したので、正常トラフィックデータをイメージデータに変換してオートエンコーダに入力した場合、ＢＣＥは低い値を有し得、異常トラフィックデータをイメージデータに変換してオートエンコーダに入力した場合、ＢＣＥは高い値を有し得る。ここで、ＣＥ(Cross Entropy)は二つの確率分布間の差または距離を表わす指標を意味し得、差が大きいほど高い値を有し得る。すなわち、オートエンコーダは非指導学習方法を通じて機械学習を行うので、入力データと出力データの差が小さくなるように継続して学習を行うことができ、このため、ＢＣＥが高い値を有するのは正常トラフィックデータで学習したオートエンコーダにおいて異常トラフィックデータが入力されたということを意味し得る。したがって、プロセッサ１００はＢＣＥがあらかじめ設定したしきい値以上の場合、セッション別トラフィックデータを異常トラフィックと判断することができる。
【００２８】
プロセッサ１００はＢＣＥがあらかじめ設定したしきい値未満の場合、クラスタリング(clustering)アルゴリズムを利用してセッション別トラフィックデータの異常の有無を判断することができる。ここで、クラスタリングアルゴリズムは、多次元データベクトルを特定の方式で定義された距離を基準として近接したデータベクトルを群集化することを意味し得、本発明の一実施例ではｔ−ＳＮＥを利用することができる。ｔ−ＳＮＥは、ｔ−分布確率的エンベディングでデータの次元縮小に使われる機械学習アルゴリズムの一つを意味し得る。ｔ−ＳＮＥは、非線形次元縮小技法であり、高次元データを２、３次元などに減らして可視化するのに利用され得、類似のデータは近接した２、３次元の地点に、他のデータは遠く離れた地点にマッピングすることができる。
【００２９】
プロセッサ１００は、学習用イメージデータをエンコーダに入力してエンコーダの出力を保存することができ、保存した出力に前述したクラスタリングアルゴリズムを適用して複数の出力のうち距離が近い出力同士で群集してエンコーダに対応するデータ群集を生成することができる。また、複数の学習用イメージデータに基づいて複数のデータ群集を生成することができる。以後、プロセッサ１００はエンコーダに探知対象のイメージデータを入力して出力データを生成することができ、出力データが複数のデータ群集のうちいずれか一つに含まれる場合、セッション別トラフィックデータを正常トラフィックデータと判断することができ、出力データが複数のデータ群集のすべてに含まれない場合、セッション別トラフィックデータを異常と判断することができる。ここで、学習用トラフィックデータはあらかじめ設定した単位に分割されて複数の学習用イメージデータを生成することができ、複数の学習用イメージデータは複数のエンコーダを生成することができるので、このような場合、プロセッサ１００は一つの探知対象イメージデータから複数のエンコーダによる複数の出力データを有し得、一つの学習用イメージデータから複数のエンコーダによる複数のデータ群集を有することができる。したがって、プロセッサ１１０は、同じエンコーダを基準として複数の出力データが複数のデータ群集にすべて含まれない場合、セッション別トラフィックデータを異常と判断することができる。
【００３０】
例えば、第１学習用イメージデータに基づいて第１エンコーダおよび第１データ群集を生成し、同じ方式で第２学習用イメージデータおよび第３学習用イメージデータに基づいて第２エンコーダ、第２データ群集、第３エンコーダおよび第３時系列データを生成したと仮定する。プロセッサ１１０は探知対象であるイメージデータを第１エンコーダに入力して第１出力データを生成することができ、第１出力データと第１データ群集を比較することができる。第１出力データが第１データ群集に含まれない場合、プロセッサ１１０は探知対象であるイメージデータを第２エンコーダに入力して第２出力データを生成することができ、第２出力データと第２データ群集とを比較することができる。第２出力データが第２データ群集に含まれない場合、プロセッサ１１０は探知対象であるイメージデータを第３エンコーダに入力して第３出力データを生成することができ、第３出力データと第３データ群集とを比較することができる。第３出力データが第３データ群集に含まれない場合、プロセッサ１１０は探知対象であるイメージデータを含むセッション別トラフィックデータを異常トラフィックと判断することができる。
【００３１】
プロセッサ１１０はセッション別トラフィックデータが異常と判断された場合、判断結果をユーザーに提供することができる。プロセッサ１１０はユーザーに異常トラフィックの感知に伴う警報の表示または警告文を共に提供することができる。
図２は本発明の一実施例に係るトラフィックデータをイメージデータに変換する方法を説明する図面である。
【００３２】
本発明の一実施例に係る異常トラフィック探知装置は、文字列データを行列の形態に変換し、行列の形態をイメージデータとして認識することによって文字列データからイメージデータを生成することができる。換言すれば、プロセッサ１００は学習用トラフィックデータおよび探知対象であるセッション別トラフィックデータを行列の形態に変換し、変換された行列の形態を学習用イメージデータおよび探知対象イメージデータとして認識することができる。
【００３３】
プロセッサ１００が文字列データを行列の形態に変換する方法は、文字列で構成されているトラフィックデータをテキストの最後の文字から逆順でｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒに変換して行列の形態に変換する方法を利用することができる。ここで、ｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒは、一つの次元値が１であり、残りのすべての次元値が０であるベクトルを意味し得る。また、ｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒの行列の形態は、Ｆ(0)×Ｌ(0)の大きさを有することができる。ここで、Ｆ(0)は、トラフィックデータを構成できる文字の種類の個数を意味し得、Ｌ(0)は行列に変換できるテキストの長さを意味し得る。
【００３４】
また、トラフィックデータの文字列の長さがＬ(0)より短い場合には、足りないｖｅｃｔｏｒは０で表わすことができる。トラフィックデータの文字列の長さがＬ(0)より長い場合には、トラフィックデータの文字列の最初の文字が含まれるようにＬ(0)の大きさだけ前の部分の文字をｖｅｃｔｏｒで表わすことができ、最後の文字が含まれるようにＬ(0)の大きさだけ後の部分の文字をｖｅｃｔｏｒで表わすことができるが、ユーザーによって設定され得る。
【００３５】
例えば、図２を参照すると、トラフィックデータを構成できる文字は、「ＡＢＣＤＥＦ」であり、Ｌ(0)は６であると仮定する。この場合、Ｆ(0)は「ＡＢＣＤＥＦ」の個数として６の値を有し得る。したがって、ｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒは、６ｘ６の大きさを有することができる。このような設定で文字列「ＤＢＦＣ」を変換すると、文字列の最後の文字である「Ｃ」が第１列(column)に示され得 、その後は逆順で「Ｆ」、「Ｂ」および「Ｄ」が表われ得る。また、Ｌ(0)が６であるので文字列の長さ４より大きい。したがって、残りの第５列および第６列は０と示され得る。「Ｃ」はトラフィックデータを構成できる文字「ＡＢＣＤＥＦ」のうち三番目に位置するので、第３行に示され得、その後は「Ｆ」は第６行、「Ｂ」は第２行および「Ｄ」は第４行にそれぞれ示され得る。その結果、「ＤＢＦＣ」は図２のように、「Ｃ」は（３、１）、「Ｆ」は（６、２）、「Ｂ」は（２、３）および「Ｄ」は（４、４）にそれぞれ位置することができる。
【００３６】
本発明の一実施例に係る異常トラフィック探知装置は、学習用トラフィックデータおよびセッション別トラフィックデータをあらかじめ設定した個数に分割することができ、分割したデータを前述した行列変換方法により行列の形態に変換することができる。換言すれば、プロセッサ１００は、文字列で構成されたトラフィックデータをＬ(0)の大きさと対応するように分割して行列変換過程を行うことができる。
【００３７】
図３は、本発明の一実施例に係るコンボリューショナルニューラルネットワークのコンボリューション動作を説明する概念図である。
【００３８】
図３を参照すると、コンボリューショナルニューラルネットワーク(convolutionalneural network)は、入力データに対してコンボリューション(convolution)動作およびプーリング(pooling)動作などを行い、ｌａｙｅｒを積んで入力データを学習する機械学習を意味し得る。ここで、コンボリューション動作は、一定の大きさのカーネル(kernel)行列を利用して行列をスイープし(sweep)、データを他の形態に変形させることを意味し得、特性マップ(feature map)はコンボリューション動作を通じて生成されたイメージを意味し得る。ここで、カーネル行列の各元素に該当する値は加重値を意味し得る。プーリング動作はイメージの大きさを減らす過程であるサブサンプリング(subsampling)であって、ｃｏｎｖｏｌｕｔｉｏｎ動作を行った結果からあらかじめ設定した方法によって代表値を抽出することを意味し得る。
【００３９】
本発明の一実施例に係るオートエンコーダはコンボリューショナルニューラルネットワークを利用して実現され得、教師信号（正解）なしに学習を行う非教師学習に該当し得る。
【００４０】
本発明の一実施例に係るオートエンコーダは、入力データをエンコーディングして隠れレイヤーを生成し、隠れレイヤーを再びデコーディングして出力データを生成し、入力データと出力データとを比較して出力データが入力されたデータに近似するようにエンコーディングおよび／またはデコーディング時のパラメーターまたは加重値を調整させることによって、データを学習する人工神経網である。オートエンコーダは学習が完了すると、デコーディングを行う部分を除去してエンコーディングを行う部分のみを使うことに特徴がある。本発明の明細書ではエンコーディングを行う部分をエンコーダと示すことができ、デコーディングを行う部分をデコーダと示すことができる。本発明の一実施例に係るオートエンコーダは、インセプション−レジデュアルネットワーク−ｖ２を基盤とすることができる。インセプション−レジデュアルネットワーク−ｖ２は、コンボリューショナルニューラルネットワークの構造であるインセプションネットワーク構造にレジデュアルネットワークを接ぎ木させたものであって、図４と共に後述する。また、具体的にコンボリューションを利用してエンコーディングおよびデコーディングを行う方法については図６〜図１３と共に後述する。
【００４１】
図４は、本発明の一実施例に係るオートエンコーダの基盤となるインセプション−レジデュアルネットワーク−ｖ２を説明する概念図である。
【００４２】
図４を参照すると、インセプション−レジデュアルネットワーク−ｖ２は、入力データをエンコーディングするために、Ｓｔｅｍ、１０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ、Ｒｅｄｕｃｔｉｏｎ−Ａ、２０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ、Ｒｅｄｕｃｔｉｏｎ−Ｂ、１０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ、Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇ、ＤｒｏｐｏｕｔおよびＳｏｆｔｍａｘの段階を含むことができ、演算量を減らしてより多くのレイヤーを有することができるインセプションネットワークの特性と、ネットワークが深くなって訓練が不可能なvanishing gradient problemを解決するために下位レイヤーの出力を減らし、上位レイヤーの出力を下位レイヤーに加えるレジデュアルネットワークの特性を接ぎ木させたネットワークであり得る。さらに詳細には、Christian SzegedyのInception-v4、inception-resnet and the impact of residual connections onlearning(2016)論文に説明されている。前述した論文で、インセプション−レジデュアルネットワーク−ｖ２は２９９×２９９の大きさを有するＲＧＢ  ３個のチャネルで構成されたイメージ、すなわち２９９×２９９×３の大きさの入力データを受信して１０００の大きさの圧縮データを生成する方法を提案した。ただし、本発明でインセプション−レジデュアルネットワーク−ｖ２は、前述した論文で提案した構造を変形して、図２で説明した方式により生成された１×Ｌ(0)×Ｆ(0)大きさの入力データを受信して１０００の大きさの圧縮データを生成するエンコーダの部分を含むことができ、図５で後述するデコーダを利用して再び１×Ｌ(0)×Ｆ(0)大きさのデータにデコーディングするデコーダの部分を含むことができる。
【００４３】
図５は、本発明の一実施例に係るオートエンコーダの構成を説明する概念図である。
【００４４】
図５を参照すると、本発明の一実施例に係るオートエンコーダは、インセプション−レジデュアルネットワーク−ｖ２基盤のエンコーディング段階、および対応するデコーディング段階を含むことができる。学習部１３０は、図４のオートエンコーダを利用して学習データを学習することができ、学習データを出力データと比較して誤差が減少するようにパラメーターまたは加重値を調整することができる。パラメーターまたは加重値は、１０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ、２０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂおよび１０個のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階で調整され得、それぞれスケーリング(scaling)を通じて調整され得る。さらに詳細なオートエンコーダの構成は、図５〜図１２とともに後述する。
【００４５】
本発明の明細書で、Ｆは基本フレームサイズである１２８を意味し得、Ｖは有効なコンボリューション(valid convolution)または有効なマックスプーリング(valid maxpooling)を意味し得、ｓｔｒｉｄｅはコンボリューションまたはマックスプーリングを行う間隔を意味し得、ｌｉｎｅａｒは活性関数(avtivation function)なしに全コンボリューション(fullconvolution)を行うことを意味し得る。Ｃｏｎｖ．はコンボリューションを意味し得、Ｃｏｎｖ．Ｔｒａｎｓ．はコンボリューションの逆を意味し得る。Ｍａ×Ｐｏｏｌはマックスプーリングを意味し得、ＭａｘＵｎＰｏｏｌはマックスプーリングの逆を意味し得る。Ａ×Ｂ  Ｃｏｎｖ．はＡｘＢの大きさを参照してコンボリューションを行うことを意味し得、Ａ×Ｂ  ＭａｘＰｏｏｌはＡ×Ｂの大きさを参照してマックスプーリングを行うことを意味し得る。前述した記号の説明は本発明の明細書で継続して同じ意味で使われ得る。
【００４６】
図６は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでエンコーダの構造を説明する概念図である。
【００４７】
具体的には、図６はエンコーディング段階の合算、分配およびスケーリングを説明するもので、図６の（ａ）を参照すると、本発明の一実施例に係るオートエンコーダのエンコーディング段階において、Filter Concatは各モジュールの出力データを合算することができ、シグマ（ｓｉｇｍａ）記号を使って表わすこともできる。換言すれば、Filter Concatの出力データＸは、各モジュールの出力データｘ１、ｘ２、…、ｘＮを合算したもので表わすことができる。図５の（ｂ）を参照すると、本発明に係るオートエンコーダのエンコーディング段階において、分配は出力データを同じ出力データに分配することを表わすことができる。また、図５の（ｃ）を参照すると、本発明のオートエンコーダでスケーリング（ｓｃａｌｉｎｇ）は各モジュールの出力データにａ１、ａ２、…、ａＮをかけた値を合算することであり、ここで、ａ１、ａ２、…、ａＮはエンコーディングの部分のパラメーターまたは加重値を意味し得、ａ１、ａ２、…、ａＮを調整して学習を進めることができる。
【００４８】
図７は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでエンコーダの構造に対応するデコーダの構造を説明する概念図である。
【００４９】
具体的には、図７はデコーディング段階の分配、平均およびスケーリングを説明するもので、図７の（ａ）を参照すると、本発明の一実施例に係るオートエンコーダのデコーディング段階において、Ｆｉｌｔｅｒ  Ｓｐｌｉｔは上位モジュールの出力データを分けて各モジュールに分配することができ、各モジュールに分配された出力データの合計が上位段階の出力データと同じでもよい。Ｆｉｌｔｅｒ  Ｓｐｌｉｔはエンコーディング段階と同様にシグマ記号を使って表わすこともできる。換言すれば、Ｆｉｌｔｅｒ  Ｓｐｌｉｔの上位段階の出力データＸは、各モジュールに分配された出力データｘ１、ｘ２、…、ｘＮを合算したもので表わすことができる。図６の（ｂ）を参照すると、本発明に係るオートエンコーダのデコーディング段階でＭｅａｎは各上位モジュールの出力データに対する平均を算出することができる。また、図６の（ｃ）を参照すると、本発明のオートエンコーダでスケーリングは上位モジュールの出力データを分配して各分配された出力データにｂ１、ｂ２、…、ｂＮをそれぞれかけることであり、ここで、ｂ１、ｂ２、…、ｂＮはデコーディングの部分のパラメーターまたは加重値を意味し得、ｂ１、ｂ２、…、ｂＮを調整して学習を進めることができる。
【００５０】
図８は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでステム(stem)段階を説明する概念図である。
図８を参照すると、本発明の一実施例に係るオートエンコーダのｓｔｅｍ段階は、図５のエンコーダ(encoder)とデコーダ(decoder)でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図８のエンコーダｓｔｅｍ段階が行われ得、図５のデコーダでは図８のデコーダｓｔｅｍ段階が行われ得る。エンコーダのｓｔｅｍ段階は入力データを順次に１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）、１×３  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．を行うことができ、最後の１×３  Ｃｏｎｖ．の出力データを分配して１×３  ＭａｘＰｏｏｌ（ｓｔｒｉｄｅ  ２）および１×３  Ｃｏｎｖ．（ｓｔｒｄｅ  ２）を行うことができ、分配して行った出力データを再び合算し、再び分配して、一方では１×１  Ｃｏｎｖ．および１×３  ｃｏｎｖ．を順次に行うことができ、他方では１×１  Ｃｏｎｖ．、１×１  Ｃｏｎｖ．、１×７  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．を順次に行うことができる。分配して行った出力データを再び合算し、再び分配して、１×３  Ｃｏｎｖ．および１×３  ＭａｘＰｏｏｌ（ｓｔｒｉｄｅ  ２）を行うことができ、分配して行った出力データを再び合算することができる。また、本発明に係るオートエンコーダのｓｔｅｍ段階は、前述したｓｔｅｍ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のｓｔｅｍ段階と同一に行われ得るが、これに限定されない。デコーダのｓｔｅｍ段階はエンコーディング段階のｓｔｅｍ段階と逆に行われ得る。
【００５１】
図９は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階を説明する概念図である。
【００５２】
図９を参照すると、本発明の一実施例に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階は、図５のエンコーダ（ｅｎｃｏｄｅｒ）とデコーダ（ｄｅｃｏｄｅｒ）でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図９のエンコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階が行われ得、図５のデコーダでは図９のデコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階が行われ得る。エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階は、入力データを４個に分配することができ、一番目は１×１  Ｃｏｎｖ．、１×３  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．を順次に行うことができ、二番目は１×１  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．を順次に行うことができ、三番目は１×１  Ｃｏｎｖ．を行うことができる。一番目、二番目および三番目は合算されて１×１  Ｃｏｎｖ．（ｌｉｎｅａｒ）およびスケーリングされ得、スケーリングされた出力データと４個に分配された入力データのうち何らの過程も遂行していない入力データを合算することができる。また、本発明に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階は、前述したＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階と同一に行われ得るが、これに限定されない。デコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階は、エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階と逆に行われ得る。
【００５３】
本発明の一実施例に係るオートエンコーダは、Ｉｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階のスケーリングの大きさａ、ｂおよびｃを調整することができ、調整を通じて学習を進めることができる。
【００５４】
図１０は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＲｅｄｕｃｔｉｏｎ−Ａ段階を説明する概念図である。
【００５５】
図１０を参照すると、本発明の一実施例に係るオートエンコーダのＲｅｄｕｃｔｉｏｎ−Ａ段階は、図５のエンコーダ（ｅｎｃｏｄｅｒ）とデコーダ（ｄｅｃｏｄｅｒ）でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図１０のエンコーダＲｅｄｕｃｔｉｏｎ−Ａ段階が行われ得、図５のデコーダでは図１０のデコーダＲｅｄｕｃｔｉｏｎ−Ａ段階が行われ得る。エンコーダのＲｅｄｕｃｔｉｏｎ−Ａ段階は入力データを３個に分配することができ、一番目は１×１  Ｃｏｎｖ．、１×３  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）を順次に行うことができ、二番目は１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）を行うことができ、三番目は１×３  ＭａｘＰｏｏｌ（ｓｔｒｄｅ  ２）を行うことができる。また、分配して行われた出力データをすべて合算してＲｅｄｕｃｔｉｏｎ−Ａ段階の出力データを生成することができる。本発明に係るオートエンコーダのＲｅｄｕｃｔｉｏｎ−Ａ段階は、前述したＲｅｄｕｃｔｉｏｎ−Ａ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のＲｅｄｕｃｔｉｏｎ−Ａ段階と同一に行われ得るが、これに限定されない。デコーダのＲｅｄｕｃｔｉｏｎ−Ａ段階は、エンコーダのＲｅｄｕｃｔｉｏｎ−Ａ段階と逆に行われ得る。
【００５６】
図１１は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階を説明する概念図である。
【００５７】
図１１を参照すると、本発明の一実施例に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階は、図５のエンコーダ（ｅｎｃｏｄｅｒ）とデコーダ（ｄｅｃｏｄｅｒ）でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図１１のエンコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階が行われ得、図５のデコーダでは図１１のデコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階が行われ得る。エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階は入力データを３個に分配することができ、一番目は１×１  Ｃｏｎｖ．、１×７  Ｃｏｎｖ．および１×１  Ｃｏｎｖ．を順次に行うことができ、二番目は１×１  Ｃｏｎｖ．を行うことができる。一番目および二番目は合算されて１×１  Ｃｏｎｖ．（ｌｉｎｅａｒ）およびスケーリングされ得、スケーリングされた出力データと３個に分配された入力データのうち何らの過程も遂行していない入力データを合算することができる。また、本発明に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階は、前述したＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階と同一に行われ得るが、これに限定されない。デコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階は、エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階と逆に行われ得る。
【００５８】
本発明の一実施例に係るオートエンコーダは、Ｉｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階のスケーリングの大きさａ、ｂおよびｃを調整することができ、調整を通じて学習を進めることができる。
【００５９】
図１２は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダでＲｅｄｕｃｔｉｏｎ−Ｂ段階を説明する概念図である。
【００６０】
図１２を参照すると、本発明の一実施例に係るオートエンコーダのＲｅｄｕｃｔｉｏｎ−Ｂ段階は、図５のエンコーダ（ｅｎｃｏｄｅｒ）とデコーダ（ｄｅｃｏｄｅｒ）でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図１２のエンコーダＲｅｄｕｃｔｉｏｎ−Ｂ段階が行われ得、図５のデコーダでは図１２のデコーダＲｅｄｕｃｔｉｏｎ−Ｂ段階が行われ得る。エンコーダのＲｅｄｕｃｔｉｏｎ−Ｂ段階は入力データを４個に分配することができ、一番目は１×１  Ｃｏｎｖ．、１×３  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）を順次に行うことができ、二番目は１×３  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）を行うことができ、三番目は１×１  Ｃｏｎｖ．および１×３  Ｃｏｎｖ．（ｓｔｒｉｄｅ  ２）を行うことができ、四番目は１×３  ＭａｘＰｏｏｌ（ｓｔｒｄｅ  ２）を行うことができる。また、分配して行われた出力データをすべて合算してＲｅｄｕｃｔｉｏｎ−Ｂ段階の出力データを生成することができる。本発明に係るオートエンコーダのＲｅｄｕｃｔｉｏｎ−Ｂ段階は、前述したＲｅｄｕｃｔｉｏｎ−Ｂ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のＲｅｄｕｃｔｉｏｎ−Ｂ段階と同一に行われ得るが、これに限定されない。デコーダのＲｅｄｕｃｔｉｏｎ−Ｂ段階は、エンコーダのＲｅｄｕｃｔｉｏｎ−Ｂ段階と逆に行われ得る。
【００６１】
図１３は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートコーダでＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階を説明する概念図である。
【００６２】
図１３を参照すると、本発明の一実施例に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階は、図５のエンコーダ（ｅｎｃｏｄｅｒ）とデコーダ（ｄｅｃｏｄｅｒ）でそれぞれ行われ得る。換言すれば、図５のエンコーダでは図１３のエンコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階が行われ得、図５のデコーダでは図１３のデコーダＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階が行われ得る。エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階は入力データを３個に分配することができ、一番目は１×１  Ｃｏｎｖ．、１×３  Ｃｏｎｖ．および１×１  Ｃｏｎｖ．を順次に行うことができ、二番目は１×１  Ｃｏｎｖ．を行うことができる。一番目および二番目は合算されて１×１  Ｃｏｎｖ．（ｌｉｎｅａｒ）およびスケーリングされ得、スケーリングされた出力データと３個に分配された入力データのうち何らの過程も遂行していない入力データを合算することができる。また、本発明に係るオートエンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階は、前述したＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階だけでなく通常のインセプション−レジデュアルネットワーク−ｖ２のＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階と同一に行われ得るが、これに限定されない。デコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階は、エンコーダのＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階と逆に行われ得る。
【００６３】
本発明の一実施例に係るオートエンコーダはＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階のスケーリングの大きさａ、ｂおよびｃを調整することができ、調整を通じて学習を進めることができる。
【００６４】
図１４は、本発明の一実施例に係る異常トラフィック探知方法を説明するフローチャートである。
【００６５】
図１４を参照すると、本発明の一実施例に係る異常トラフィック探知方法は、まず、学習用トラフィックデータをあらかじめ設定された単位に分割し、分割した複数の学習用トラフィックデータを変換して複数の学習用イメージデータを生成することができる（Ｓ１４０１）。ここで、学習用トラフィックデータは複数のＨＴＴＰ  ｒｅｑｕｅｓｔ単位に分割され得る。例えば、５個のＨＴＴＰ  ｒｅｑｕｅｓｔが３個の単位に分割される場合、１−２−３、２−３−４および３−４−５に分割され得、分割された３個のＨＴＴＰ  ｒｅｑｕｅｓｔを連接させて一つのテキストとすることができ、図２に前述した方法によりこれをイメージに変換することができる。その後、複数の学習用イメージデータを利用してインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダを学習することができる（Ｓ１４０２）。オートエンコーダを学習した後、異常トラフィック探知装置１００は、トラフィックデータ獲得部１０を通じて探知対象であるセッション別トラフィックデータを受信し、セッション別トラフィックデータをあらかじめ設定された単位に分割し、分割した複数のセッション別トラフィックデータを変換して複数のイメージデータを生成することができる（Ｓ１４０３）。ここで、セッション別トラフィックデータを複数のイメージデータに生成する方法は、学習用トラフィックデータを学習用イメージデータに生成する方法と同じ方法を利用することができる。複数のイメージデータは学習を終えたオートエンコーダに入力され得、その結果として複数のイメージデータに対応する複数のＢＣＥ値が算出され得る（Ｓ１４０４）。それから、算出された複数のＢＣＥ値とあらかじめ設定されたしきい値とを比較することができ（Ｓ１４０５）、複数のＢＣＥ値のうちあらかじめ設定した特定個数以上のＢＣＥ値があらかじめ設定されたしきい値より大きいか同じ場合、探知対象であるセッション別トラフィックデータを異常トラフィックデータと判断することができる（Ｓ１４０６）。
【００６６】
ただし、複数のＢＣＥ値のうちあらかじめ設定した特定個数以上のＢＣＥ値があらかじめ設定されたしきい値より小さい場合、探知対象であるセッション別トラフィックデータの異常の有無を判断するために、クラスタリングアルゴリズムを利用することができる。この場合、オートエンコーダから複数のエンコーダを生成することができ（Ｓ１４０７）、複数のエンコーダの出力に基づいてクラスタリングアルゴリズムを利用して複数のエンコーダのそれぞれに対応する複数のデータ群集を生成することができる（Ｓ１４０８）。
【００６７】
その後、複数のエンコーダ、複数のエンコーダのそれぞれに対応するデータ群集および探知対象であるセッション別トラフィックデータから生成されたイメージデータに基づいて異常トラフィックの有無を判断することができるが（Ｓ１４０９）、具体的な判断方法については図１５とともに後述する。
【００６８】
図１５は、本発明の一実施例に係る異常トラフィック探知方法のうちエンコーダ、エンコーダに対応するデータ群集およびイメージデータを利用して異常の有無を判断する方法を説明するフローチャートである。
【００６９】
ここで、一つのエンコーダは一つのデータ群集を生成することができるが、本発明の他の実施例において一つのエンコーダは、複数のデータ群集を生成することができる。
【００７０】
図１５を参照すると、本発明の一実施例に係る異常トラフィック探知方法を説明するために、図１４でｎ個の学習用イメージデータ集合、学習用イメージデータ集合によるｎ個のエンコーダおよびエンコーダによるｎ個のデータ群集を生成し、探知対象であるセッション別トラフィックデータに基づいてｍ個のイメージデータを生成したと仮定し（Ｓ１５０１）、第１エンコーダ、第１データ群集および第１イメージデータを基準または初期値として異常トラフィックの探知を開始することができる（Ｓ１５０２）。本発明に係る異常トラフィック探知方法は、イメージデータをエンコーダに入力して出力データを生成することができ（Ｓ１５０３）、出力データが使われたエンコーダに対応するデータ群集が存在する領域に出力データが含まれるのかを判断することができる（Ｓ１５０４）。
【００７１】
出力データがデータ群集に含まれない場合、使われたエンコーダが最後のエンコーダなのかを判断することができ（Ｓ１５０５）、最後のエンコーダではない場合、次のエンコーダおよび次のエンコーダに対応するデータ群集を選択することができ（Ｓ１５０６）、最後のエンコーダである場合、探知対象であるセッション別トラフィックデータを異常トラフィックと探知することができる（Ｓ１５０７）。
【００７２】
出力データがデータ群集に含まれる場合、使われたイメージデータが最後のイメージデータなのかを判断することができ（Ｓ１５０８）、最後のイメージデータではない場合、次のイメージデータを選択することができ（Ｓ１５０９）、最後のイメージデータである場合、探知対象であるセッション別トラフィックデータを正常トラフィックと探知することができる（Ｓ１５１０）。
【００７３】
図１６は、本発明の一実施例に係るオートエンコーダでデコーダを除去し、エンコーダの出力である多次元データに対してｔ−ＳＮＥを適用した結果を示した図面である。
【００７４】
図１６を参照すると、本発明のオートエンコーダでデコーディング段階を除去し、ｔ−分布確率的エンベディング（ｔ−ＳＮＥ）を適用すると、類似のトラフィックは狭い領域に群集し得る。ｔ−ＳＮＥはデータの次元縮小に使われる機械学習アルゴリズムまたはクラスタリング（ｃｌｕｓｔｅｒｉｎｇ）アルゴリズムであり得、非線形次元縮小技法に該当し得る。ｔ−ＳＮＥは類似したデータは近接した地点に、他のデータは離れた地点にマッピングする特徴を有し得る。
【００７５】
本発明に係る異常トラフィック探知装置は、正常トラフィックによる結果で狭い領域に集まったデータを一つのデータ群集と定義することができ、データ群集は各エンコーダにより異なって定義され得る。さらに詳細には、各エンコーダの出力にクラスタリングアルゴリズムを適用した結果で最も狭い領域に最も多くのデータが集まった一つまたは複数のデータ群集を該当エンコーダに対応するデータ群集と定義または選定することができる。
【００７６】
図１７は、本発明の一実施例に係る異常トラフィック探知装置の性能を説明するための図面である。
【００７７】
図１７を参照すると、本発明の一実施例に係る異常トラフィック探知装置の性能は、ＲＯＣ(Receiver Operating Characteristic)カーブ（ｃｕｒｖｅ）を利用して表わすことができる。ＲＯＣカーブは、敏感度および特異度を利用する基準値を決めるカーブであって、ＲＯＣカーブの底面積を計算した値であるＡＵＣ(Area Under the Curve)の面積が大きいほど性能が良いと判断することができる。ここで、本発明の一実施例に係るオートエンコーダの出力はエラー値であるＢＣＥ(binary cross entropy)で表わすことができ、正常トラフィックデータでオートエンコーダを訓練したので、正常トラフィックデータに対して低いＢＣＥが出力され得、異常トラフィックデータに対しては高いＢＣＥが出力され得る。したがって、ＢＣＥ値にしきい値を設定して出力がしきい値より低いと正常トラフィックと探知することができ、出力が高いか同じであると異常トラフィックと探知することができる。図１５は前述したしきい値により異常トラフィックを異常トラフィックと探知する確率(true positive rate)および正常トラフィックを異常トラフィックと探知する確率、すなわち誤断率(false positive rate)を算出したものであり得る。
【００７８】
図１７の（ａ）は、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダとＣＲＥＰＥ基盤のオートエンコーダを利用して異常トラフィックを探知した結果を比較したグラフである。図１７の（ａ）を参照すると、インセプション−レジデュアルネットワーク−ｖ２基盤のオートエンコーダを使った異常トラフィック探知装置がＣＲＥＰＥ基盤のオートエンコーダを使った異常トラフィックを探知装置より高い性能を有すると判断することができる。また、Ｅｒａは訓練の繰り返しの程度を意味し得、Ｅｒａが増加するほどＡＵＣが増加してさらに高い性能を有すると判断することができる。
【００７９】
図１７の（ｂ）は、本発明の一実施例に係るオートエンコーダの構造により結果を比較したグラフである。図１７の（ｂ）を参照すると、本発明の一実施例に係るインセプション−レジデュアルネットワーク−ｖ２で１−１−１構造より１−２−１の構造がさらに高い性能を有すると判断することができる。ここで、１−１−１構造は、オートエンコーダでそれぞれＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ａ段階、Ｉｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階およびＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｃ段階の繰り返し個数を意味し得、１−２−１はＩｎｃｅｐｔｉｏｎ−ｒｅｓｎｅｔ−Ｂ段階が二回繰り返されたことを意味し得る。換言すれば、インセプション−レジデュアルネットワーク−ｖ２のモジュールが増加するほどネットワークがさらに複雑となり得、性能もさらによくなると判断することができる。
【００８０】
本発明の実施例に係る異常トラフィック探知方法の動作は、コンピュータ読み取り可能記録媒体にコンピュータ読み取り可能プログラムまたはコードとして実現することが可能である。コンピュータ読み取り可能記録媒体はコンピュータシステムによって読み込まれ得るデータが保存されるすべての種類の記録装置を含む。また、コンピュータ読み取り可能記録媒体は、ネットワークに連結されたコンピュータシステムに分散されて分散方式でコンピュータ読み取り可能プログラムまたはコードが保存され実行され得る。
【００８１】
また、コンピュータ読み取り可能記録媒体は、ロム（ｒｏｍ）、ラム（ｒａｍ）、フラッシュメモリ(flash memory)などのように、プログラム命令を保存して遂行するように特別に構成されたハードウェア装置を含むことができる。プログラム命令は、コンパイラ(compiler)によって作られるような機械語コードだけでなく、インタープリタ(interpreter)などを使ってコンピュータによって実行され得る高級言語コードを含むことができる。
【００８２】
方法段階の一部又は全部は例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって（または利用して）遂行され得る。一部の実施例において、最も重要な方法段階の少なくとも一つはこのような装置によって遂行され得る。
【００８３】
実施例において、プログラム可能なロジック装置（例えば、フィールドプログラマブルゲートアレイ）が、ここで説明された方法の機能の一部又は全部を遂行するために使われ得る。実施例において、フィールドプログラマブルゲートアレイは、ここで説明された方法のうち一つを遂行するためのマイクロプロセッサとともに作動することができる。一般に、方法は何らかのハードウェア装置によって遂行されることが好ましい。
【００８４】
上記では本発明の好ましい実施例を参照して説明したが、該当技術分野の熟練した当業者は下記の特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更し得ることが理解できるであろう。
【符号の説明】
【００８５】
１０    トラフィックデータ獲得部
１１０    プロセッサ
１２０    メモリ
１３０    保存装置
【図１】
2019028971.tif 000003
【図２】
2019028971.tif 000004
【図３】
2019028971.tif 000005
【図４】
2019028971.tif 000006
【図５】
2019028971.tif 000007
【図６】
2019028971.tif 000008
【図７】
2019028971.tif 000009
【図８】
2019028971.tif 000010
【図９】
2019028971.tif 000011
【図１０】
2019028971.tif 000012
【図１１】
2019028971.tif 000013
【図１２】
2019028971.tif 000014
【図１３】
2019028971.tif 000015
【図１４】
2019028971.tif 000016
【図１５】
2019028971.tif 000017
【図１６】
2019028971.tif 000018
【図１７】
2019028971.tif 000019