特許第6608981号(P6608981)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ペンタ・セキュリティ・システムズ・インコーポレーテッドの特許一覧

<>
  • 特許6608981-異常セッション感知方法 図000044
  • 特許6608981-異常セッション感知方法 図000045
  • 特許6608981-異常セッション感知方法 図000046
  • 特許6608981-異常セッション感知方法 図000047
  • 特許6608981-異常セッション感知方法 図000048
  • 特許6608981-異常セッション感知方法 図000049
  • 特許6608981-異常セッション感知方法 図000050
  • 特許6608981-異常セッション感知方法 図000051
  • 特許6608981-異常セッション感知方法 図000052
  • 特許6608981-異常セッション感知方法 図000053
  • 特許6608981-異常セッション感知方法 図000054
  • 特許6608981-異常セッション感知方法 図000055
  • 特許6608981-異常セッション感知方法 図000056
  • 特許6608981-異常セッション感知方法 図000057
  • 特許6608981-異常セッション感知方法 図000058
  • 特許6608981-異常セッション感知方法 図000059
  • 特許6608981-異常セッション感知方法 図000060
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6608981
(24)【登録日】2019年11月1日
(45)【発行日】2019年11月20日
(54)【発明の名称】異常セッション感知方法
(51)【国際特許分類】
   G06N 3/04 20060101AFI20191111BHJP
【FI】
   G06N3/04 154
   G06N3/04 145
【請求項の数】6
【全頁数】30
(21)【出願番号】特願2018-41354(P2018-41354)
(22)【出願日】2018年3月7日
(65)【公開番号】特開2019-61647(P2019-61647A)
(43)【公開日】2019年4月18日
【審査請求日】2018年3月7日
(31)【優先権主張番号】10-2017-0122363
(32)【優先日】2017年9月22日
(33)【優先権主張国】KR
【前置審査】
(73)【特許権者】
【識別番号】505112037
【氏名又は名称】ペンタ・セキュリティ・システムズ・インコーポレーテッド
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(72)【発明者】
【氏名】シム サンギュ
(72)【発明者】
【氏名】キム ドクス
(72)【発明者】
【氏名】リ ソクウ
(72)【発明者】
【氏名】パク スンヨン
【審査官】 北元 健太
(56)【参考文献】
【文献】 特開2017−111660(JP,A)
【文献】 国際公開第2016/150472(WO,A1)
【文献】 特開2017−76403(JP,A)
【文献】 韓国登録特許第10−1644998(KR,B1)
【文献】 Manuel Lopes-Martin et al.,Network Traffic Classifier With Convolutional and Recurrent Neural Networks for Internet of Things,IEEE Access [online],2017年 9月 6日,Vol.5,pp.18042−18050,[検索日 2018.12.28], インターネット <URL: https://ieeexplore.ieee.org/document/8026581>,URL,https://ieeexplore.ieee.org/document/8026581
【文献】 Soroush Vosoughi et al.,Tweet2Vec: Learning Tweet Embeddings Using Character-level CNN-LSTM Encoder-Decoder,Proceedings of the 39th International ACM SIGIR Conference on Research and Development in Information Retrieval,2016年 7月17日
【文献】 多田智史,あたらしい人工知能の教科書 プロダクト/サービス開発に必要な基礎知識,株式会社翔泳社,2017年 8月10日,初版第4刷,pp.224−226,267−276
【文献】 藤田毅,C++で学ぶディープラーニング,株式会社マイナビ出版,2017年 6月25日,初版第1刷,pp.187−219
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 − 99/00
(57)【特許請求の範囲】
【請求項1】
プロセッサ(processor)を含むセッション分析装置により遂行される、サーバーがクライアントから受信する要請メッセージと、前記サーバーが生成する応答メッセージを含むセッションの異常可否を感知する方法において、
前記セッションに含まれたメッセージのうち少なくとも一部を行列形態のデータに変換する段階;
コンボリューショナルニューラルネットワークを利用して前記行列形態のデータを前記行列よりも小さい次元の表現ベクトルに変換する段階;および
前記メッセージから獲得された表現ベクトルを、前記メッセージの発生順に沿って羅列することによって第1表現ベクトルシーケンスを構成し、LSTMニューラルネットワークを利用して前記第1表現ベクトルシーケンスを分析することによって、前記セッションの異常可否を判断する段階;を含み、
前記LSTMニューラルネットワークに含まれたLSTMレイヤーは、入力を受けた表現ベクトルに対する隠れ(hidden)ベクトルを出力するときに、以前に入力を受けた表現ベクトルに対する隠れベクトルの出力を参照し、
前記LSTMニューラルネットワークは、複数のLSTMレイヤーを含むLSTMエンコーダおよび前記LSTMエンコーダと対称的な構造を有するLSTMデコーダを含み、
前記LSTMニューラルネットワークに含まれたLSTMエンコーダは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、あらかじめ定められた大きさの隠れ(hidden)ベクトルを出力し、
前記LSTMニューラルネットワークに含まれたLSTMデコーダは、前記隠れベクトルの入力を受けて前記第1表現ベクトルシーケンスに含まれる表現ベクトルのそれぞれに対応する推定ベクトルを逆順に出力することによって、第2表現ベクトルシーケンスを出力し、
前記セッションの異常可否を判断する段階は、
前記第1表現ベクトルシーケンスと前記第2表現ベクトルシーケンスとの間の差に基づいて前記セッションが正常であるか異常であるかを判断する、異常セッション感知方法。
【請求項2】
前記メッセージのうち少なくとも一部を行列形態のデータに変換する段階は、
前記メッセージのそれぞれに含まれた文字をワンホットベクトル(one−hot vector)に変換することによって、前記メッセージのそれぞれを行列形態のデータに変換する、請求項1に記載の異常セッション感知方法。
【請求項3】
前記コンボリューショナルニューラルネットワークおよび前記LSTMニューラルネットワークをトレーニング(training)する段階;を含む、請求項1に記載の異常セッション感知方法。
【請求項4】
訓練データを前記コンボリューショナルニューラルネットワークに入力し、
前記コンボリューショナルニューラルネットワークの出力を、前記コンボリューショナルニューラルネットワークに対称的な構造を有する対称ニューラルネットワークに入力させ、
前記対称ニューラルネットワークの出力と前記訓練データとの間の差に基づいて、前記コンボリューショナルニューラルネットワークで使用する加重値パラメーターを更新することによって、前記コンボリューショナルニューラルネットワークをトレーニングする、請求項に記載の異常セッション感知方法。
【請求項5】
練データを前記LSTMエンコーダに入力し、
前記LSTMエンコーダから出力される隠れベクトルおよび前記訓練データを前記LSTMデコーダに入力し、
前記LSTMデコーダの出力と前記訓練データとの間の差に基づいて、前記LSTMエンコーダおよび前記LSTMデコーダで使用する加重値パラメーターを更新することによって、前記LSTMニューラルネットワークをトレーニングする、請求項に記載の異常セッション感知方法。
【請求項6】
プロセッサ(processor)を含むセッション分析装置により遂行される、サーバーがクライアントから受信する要請メッセージと、前記サーバーが生成する応答メッセージを含むセッションの異常可否を感知する方法において、
前記セッションに含まれたメッセージのうち少なくとも一部を行列形態のデータに変換する段階;
コンボリューショナルニューラルネットワークを利用して前記行列形態のデータを前記行列よりも小さい次元の表現ベクトルに変換する段階;および
前記メッセージから獲得された表現ベクトルを、前記メッセージの発生順に沿って羅列することによって第1表現ベクトルシーケンスを構成し、GRUニューラルネットワークを利用して前記第1表現ベクトルシーケンスを分析することによって、前記セッションの異常可否を判断する段階;を含み、
前記GRUニューラルネットワークに含まれたGRUレイヤーは、入力を受けた表現ベクトルに対する隠れ(hidden)ベクトルを出力するときに、以前に入力を受けた表現ベクトルに対する隠れベクトルの出力を参照し、
前記GRUニューラルネットワークは、複数のGRUレイヤーを含むGRUエンコーダおよび前記GRUエンコーダと対称的な構造を有するGRUデコーダを含み、
前記GRUニューラルネットワークに含まれたGRUエンコーダは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、あらかじめ定められた大きさの隠れ(hidden)表現ベクトルを出力し、
前記GRUニューラルネットワークに含まれたGRUデコーダは、前記隠れベクトルの入力を受けて前記第1表現ベクトルシーケンスに含まれる表現ベクトルのそれぞれに対応する推定ベクトルを逆順に出力することによって、第2表現ベクトルシーケンスを出力し、
前記セッションの異常可否を判断する段階は、
前記第1表現ベクトルシーケンスと前記第2表現ベクトルシーケンスとの間の差に基づいて前記セッションが正常であるか異常であるかを判断する、異常セッション感知方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はサーバーの異常セッションを感知する方法に関するもので、コンボリューショナルニューラルネットワークおよびLSTMニューラルネットワークを利用して異常セッションを感知する方法に関するものである。
【背景技術】
【0002】
一般的に、サーバーがクライアントにサービスを提供する間、クライアントはサーバーに要請メッセージ(ex. http reqeust)を伝送し、サーバーは要請に応答して応答メッセージ(ex. http response)を生成する。サービス提供過程で発生した要請メッセージと応答メッセージを時間順に整列したものをセッション(ex. http session)と言うことができる。
【0003】
もし、サーバーの動作にエラーが発生したり、攻撃者が他の使用者のログイン情報を奪取して接続するようになると、要請メッセージと応答メッセージの配列特徴が通常とは異なるようになり、正常なセッションとは異なる特徴を有する異常セッションが発生する。サービスエラーを迅速に復元するためには、セッションをモニタリングして異常セッションを感知できる技術が要求される。その一方、自動的にデータの特徴を抽出してカテゴリー化する技術としてマシンラーニングが脚光を浴びている。
【0004】
マシンラーニング(machine learning;機械学習)とは、人工知能(Artificial Intelligence:AI)の一種であって、データを基盤としてコンピュータが自ら学習した内容に基づいて、回帰、分類、群集化などの予測作業を行うことをいう。
【0005】
ディープラーニング(deep learning)は人の考え方をコンピュータに教える機械学習の一分野であり、多様な非線形変換技法の組み合わせを通じて高い水準の抽象化(abstractions、多量のデータや複雑な資料の中から核心的な内容または機能を要約する作業)を試みる機械学習(machine learning)アルゴリズムの集合と定義することができる。
【0006】
ディープラーニングの構造は、人工ニューラルネットワーク(ANN、artificial neural networks)に基づいて設計された概念である。人工ニューラルネットワークは、仮想のニューロンを数学的にモデリングした後にシミュレーションして、人間の脳のような学習能力を持たせようとするアルゴリズムであって、主にパターン認識に多く用いられる。ディープラーニングで利用する人工ニューラルネットワークモデルは、線形フィッテイング(linear fitting)と非線形変換(nonlinear transformation or activation)を繰り返して積み上げた構造を有する。ディープラーニングで用いるニューラルネットワークモデルは、ディープニューラルネットワーク(Deep Neural Network、DNN)、コンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)、リカレントニューラルネットワーク(Recurrent Neural Network、RNN)、制限ボルツマンマシン(Restricted Boltzmann Machine、RBM)、ディープ信頼ニューラルネットワーク(Deep Belief Network、DBN)、ディープQ−ネットワーク(Deep Q−Networks)等が挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、人工ニューラルネットワークを利用して異常セッションを感知する方法を提供することにその目的がある。
【課題を解決するための手段】
【0008】
一側面において、サーバーがクライアントから受信する要請メッセージと、前記サーバーが生成する応答メッセージを含むセッションの異常可否を感知する方法において、前記セッションに含まれたメッセージのうち少なくとも一部を行列形態のデータに変換する段階;コンボリューショナルニューラルネットワークを利用して前記行列形態のデータを前記行列よりも小さい次元の表現(representation)ベクトルに変換する段階;および前記メッセージから獲得された表現ベクトルを、前記メッセージの発生順に沿って羅列することによって第1表現ベクトルシーケンスを構成し、LSTMニューラルネットワークを利用して前記第1表現ベクトルシーケンスを分析することによって、前記セッションの異常可否を判断する段階;を含む異常セッション感知方法が開示される。
【0009】
前記メッセージのうち少なくとも一部を行列形態のデータに変換する段階は、前記メッセージのそれぞれに含まれた文字をワンホットベクトル(one−hot vector)に変換することによって、前記メッセージのそれぞれを行列形態のデータに変換することができる。
【0010】
前記LSTMニューラルネットワークは、複数のLSTMレイヤーを含むLSTMエンコーダおよび前記LSTMエンコーダと対称的な構造を有するLSTMデコーダを含むことができる。
【0011】
前記LSTMエンコーダは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、あらかじめ定められた大きさの隠れベクトルを出力し、前記LSTMデコーダは、前記隠れベクトルの入力を受けて前記第1表現ベクトルシーケンスに対応する第2表現ベクトルシーケンスを出力することができる。
【0012】
前記セッションが正常であるか異常であるかを判断する段階は、前記第1表現ベクトルシーケンスと前記第2表現ベクトルシーケンスとの間の差に基づいて、前記セッションが正常であるか異常であるかを判断することができる。
【0013】
前記LSTMデコーダは、前記第1表現ベクトルシーケンスに含まれる表現ベクトルのそれぞれに対応する推定ベクトルを逆順に出力することによって、前記第2表現ベクトルシーケンスを出力することができる。
【0014】
前記LSTMニューラルネットワークは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、入力を受けた表現ベクトルから次の順番の表現ベクトルに対する推定ベクトルを出力することができる。
【0015】
前記セッションの異常可否を判断する段階は、前記LSTMニューラルネットワークが出力した推定ベクトルと前記LSTMニューラルネットワークが入力を受ける表現ベクトルとの間の差から、前記セッションの異常可否を判断することができる。
【0016】
前記異常セッション感知方法は、前記コンボリューショナルニューラルネットワークおよび前記LSTMニューラルネットワークをトレーニング(training)する段階をさらに含むことができる。
【0017】
前記異常セッション感知方法は、訓練データを前記コンボリューショナルニューラルネットワークに入力し、前記コンボリューショナルニューラルネットワークの出力を、前記コンボリューショナルニューラルネットワークに対称的な構造を有する対称ニューラルネットワークに入力させ、前記対称ニューラルネットワークの出力と前記訓練データとの間の差に基づいて前記コンボリューショナルニューラルネットワークで使用する加重値パラメーターを更新することによって、前記コンボリューショナルニューラルネットワークをトレーニングすることができる。
【0018】
前記LSTMニューラルネットワークは、複数のLSTMレイヤーを含むLSTMエンコーダおよび前記LSTMエンコーダと対称的な構造を有するLSTMデコーダを含み、前記異常セッション感知方法は、訓練データを前記LSTMエンコーダに入力し、前記LSTMエンコーダから出力される隠れベクトルおよび前記訓練データを前記LSTMデコーダに入力し、前記LSTMデコーダの出力と前記訓練データとの間の差に基づいて前記LSTMエンコーダおよび前記LSTMデコーダで使用する加重値パラメーターを更新することによって、前記LSTMニューラルネットワークをトレーニングすることができる。
【0019】
他の側面において、前記セッションに含まれたメッセージのうち少なくとも一部を行列形態のデータに変換する段階;コンボリューショナルニューラルネットワークを利用して前記行列形態のデータを前記行列よりも小さい次元の表現ベクトルに変換する段階;および前記メッセージから獲得された表現ベクトルを、前記メッセージの発生順に沿って羅列することによって第1表現ベクトルシーケンスを構成し、GRUニューラルネットワークを利用して前記第1表現ベクトルシーケンスを分析することによって、前記セッションの異常可否を判断する段階;を含む異常セッション感知方法が開示される。
【0020】
前記GRUニューラルネットワークは、複数のGRUレイヤーを含むGRUエンコーダおよび前記GRUエンコーダと対称的な構造を有するGRUデコーダを含むことができる。
【0021】
前記GRUエンコーダは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、あらかじめ定められた大きさの隠れ(hidden)ベクトルを出力し、前記GRUデコーダは、前記隠れベクトルの入力を受けて前記第1表現ベクトルシーケンスに対応する第2表現ベクトルシーケンスを出力することができる。
【0022】
前記セッションが正常であるか異常であるかを判断する段階は、前記第1表現ベクトルシーケンスと前記第2表現ベクトルシーケンスとの間の差に基づいて前記セッションが正常であるか異常であるかを判断することができる。
【0023】
前記GRUデコーダは、前記第1表現ベクトルシーケンスに含まれる表現ベクトルのそれぞれに対応する推定ベクトルを逆順に出力することによって、前記第2表現ベクトルシーケンスを出力することができる。
【0024】
前記GRUニューラルネットワークは、前記第1表現ベクトルシーケンスに含まれた表現ベクトルの入力を順に受け、入力を受けた表現ベクトルから次の順番の表現ベクトルに対する予測値を出力することができる。
【0025】
前記セッションの異常可否を判断する段階は、前記GRUニューラルネットワークが出力した予測値と前記GRUニューラルネットワークが入力を受ける表現ベクトルとの間の差から、前記セッションの異常可否を判断することができる。
【発明の効果】
【0026】
開示された実施例によると、コンボリューショナルニューラルネットワークを利用してセッションに含まれたメッセージを低い次元の表現ベクトルに変換することができる。また、LSTMまたはGRUニューラルネットワークを利用してセッションに含まれた表現ベクトルシーケンスを分析し、これからセッションの異常可否を判断することができる。実施例によると、受動的な作業が介入されることなく人工ニューラルネットワークを利用してセッションの異常可否を容易に判断することができる。
【図面の簡単な説明】
【0027】
図1】例示的な実施例に係る装置を示したブロック図。
図2】本発明の例示的な実施例に係る装置で遂行される異常セッション感知方法を示したフローチャート。
図3】セッションの一例を示した概念図。
図4】プロセッサがメッセージの文字列を行列形態のデータに変換することを例示的に示した概念図。
図5】コンボリューショナルニューラルネットワークを例示的に示した概念図。
図6】コンボリューション演算を例示的に示した概念図。
図7】プロセッサが図6に示したイメージからコンボリューションイメージを抽出したことを示した概念図。
図8図5に示したコンボリューションおよびプーリングレイヤーの動作を示した概念図。
図9】LSTMニューラルネットワークを例示的に示した概念図。
図10】LSTMレイヤーの構成を例示的に示した概念図。
図11】LSTMエンコーダ動作方式を示した概念図。
図12】LSTMデコーダの動作方式を示した概念図。
図13】LSTMニューラルネットワークが直ちに推定ベクトルを出力する例を示した概念図。
図14】GRUニューラルネットワークを例示的に示した概念図。
図15】GRUレイヤーの構成を例示的に示した概念図。
図16】本発明の例示的な実施例に係る装置100で遂行される異常セッション感知方法の変形例を示したフローチャート。
図17】コンボリューショナルニューラルネットワークのトレーニング過程を示した概念図。
【発明を実施するための形態】
【0028】
本発明は多様な変更を加えることができ、多様な実施例を有することができるところ、特定の実施例を図面に例示し、詳細な説明に詳細に説明する。しかし、これは本発明を特定の実施形態に限定するためのものではなく、本発明の思想および技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。各図面の説明において、類似の参照符号は類似の構成要素に付与した。
【0029】
第1、第2、A、Bなどの用語は多様な構成要素の説明に使われ得るが、前記構成要素は前記用語によって限定されてはならない。前記用語は一つの構成要素を別の構成要素から区別する目的でのみ使われる。例えば、本発明の権利範囲を逸脱することなく、かつ第1構成要素は第2構成要素と命名され得、同様に第2構成要素も第1構成要素と命名され得る。「および/または」という用語は、複数の関連して記載された項目の組み合わせまたは複数の関連して記載された項目中のいずれかの項目を含む。
【0030】
ある構成要素が別の構成要素に「連結されて」いるとか「接続されて」いると言及された時には、その他の構成要素に直接的に連結されているかまたは接続されていることもあり得るが、中間に他の構成要素が存在することもあり得ると理解されるべきである。反面、ある構成要素が他の構成要素に「直接連結されて」いるとか「直接接続されて」いると言及された時には、中間に他の構成要素が存在しないものと理解されるべきである。
【0031】
本出願で使った用語は単に特定の実施例を説明するために使われたものであって、本発明を限定しようとする意図ではない。単数の表現は文脈上明白に異なることを意味しない限り、複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するためのものであり、一つまたはそれ以上の別の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加の可能性をあらかじめ排除しないものと理解されるべきである。
【0032】
別途に定義されない限り、技術的又は科学的な用語を含んでここで使われるすべての用語は、本発明が属する技術分野で通常の知識を有する者によって一般に理解されることと同じ意味を有している。一般に使われる辞書に定義されているような用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈されるべきであり、本出願で明白に定義しない限り、理想的又は過度に形式的な意味に解釈されない。
【0033】
以下、本発明に係る好ましい実施例を添付図面を参照して詳細に説明する。
【0034】
図1は、例示的な実施例に係る装置100を示したブロック図である。
【0035】
図1の装置100は、サービスを提供するサーバーであってもよく、サーバーと連結されてサーバーのセッションを分析する他の装置であってもよい。
【0036】
図1を参照すると、例示的な実施例に係る装置100は、少なくとも一つのプロセッサ110、メモリ120および保存装置125等を含むことができる。
【0037】
プロセッサ110は、メモリ120および/または保存装置125に保存されたプログラム命令(program command)を遂行することができる。プロセッサ110は、中央処理装置(central processing unit;CPU)、グラフィック処理装置(graphics processing unit;GPU)または本発明に係る方法が遂行される専用のプロセッサを意味し得る。メモリ120と保存装置160は、揮発性保存媒体および/または不揮発性保存媒体で構成され得る。例えば、メモリ120は、読み取り専用メモリ(read only memory;ROM)および/またはランダムアクセスメモリ(random access memory;RAM)で構成され得る。
【0038】
メモリ120は、プロセッサ110を介して実行される少なくとも一つの命令を保存していてもよい。
【0039】
メモリ120に保存された命令は、プロセッサ110の機械学習によってアップデートされ得る。プロセッサ110は機械学習によってメモリに保存された命令を変更することができる。プロセッサ110が遂行する機械学習は、指導学習方式または非指導学習方式によって行われ得る。しかし、実施例はこれに制限されるものではない。例えば、機械学習は強化学習などの他の方式によって行われてもよい。
【0040】
図2は、本発明の例示的な実施例に係る装置100で遂行される異常セッション感知方法を示したフローチャートである。
【0041】
図2を参照すると、S110段階で、プロセッサ110はセッションを構成することができる。プロセッサ110は、クライアントがサーバーに伝送した要請メッセージとサーバーが生成した応答メッセージからセッションを構成することができる。要請メッセージは、http requestを含むことができる。応答メッセージは、http responseを含むことができる。セッションは、http sessionを含むことができる。プロセッサ110は要請メッセージおよび応答メッセージを、生成時点に沿って順に羅列してセッションを構成することができる。
【0042】
図3は、セッションの一例を示した概念図である。
【0043】
図3を参照すると、プロセッサ110は要請メッセージおよび応答メッセージを生成時点に沿って順に羅列することによって、セッションを構成することができる。プロセッサ110は要請メッセージおよび応答メッセージのそれぞれに識別子を付与することもできる。プロセッサ110は後述する過程でセッションの特徴を分析することによって、セッションの異常可否を判断することができる。プロセッサ110はセッションの特徴を分析することによって、異常なパターンで要請メッセージと応答メッセージが羅列されたセッションを異常セッションと判断することができる。
【0044】
再び図2を参照すると、S130段階で、プロセッサ110はセッションに含まれたメッセージのうち少なくとも一部を抽出することができる。例えば、プロセッサ110は、セッションに含まれた要請メッセージおよび応答メッセージのすべてを抽出することができる。他の例として、プロセッサ110はセッションに含まれた要請メッセージのみを抽出することができる。さらに他の例として、プロセッサ110はセッションに含まれた応答メッセージのみを抽出することもできる。
【0045】
プロセッサ110は抽出したメッセージのそれぞれを行列形態のデータに変換することができる。プロセッサ110はメッセージのそれぞれに含まれた文字をワンホットベクトル(one−hot vector)に変換することができる。
【0046】
図4は、プロセッサ110がメッセージの文字列を行列形態のデータに変換することを例示的に示した概念図である。
【0047】
図4を参照すると、プロセッサ110はメッセージに含まれた文字列の最後の文字から逆順で文字のそれぞれをワンホットベクトル(one−hot vector)に変換することができる。プロセッサ110は文字のそれぞれをワンホットベクトルに変換することによって、メッセージの文字列を行列に変換することができる。
【0048】
ワンホットベクトルは一つの成分のみが1であり、残りの成分は0であるか、すべての成分が0であり得る。ワンホットベクトルで「1」値を有する成分の位置は、ワンホットベクトルが示す文字の種類によって変わり得る。例えば、図4に示した通り、アルファベットのC、F、B、Dのそれぞれに対応するone−hot vectorは、互いに異なる位置の成分が「1」値を有し得る。図4に示した点字のイメージは例示的なものに過ぎず、実施例はこれに制限されるものではない。例えば、ワンホットベクトルの大きさは、図4に示したものよりも大きくてもよい。one−hot vectorは、テキスト集合テキスト合計「abcdefghijklmnopqrstuvwxyz0123456789−、;.!?:”ウォン”/ウォンウォン|_@#$%^&*〜′+−=<>()[]{}」を表現することができる。あるいは多様な文字に対応するために、入力される文字列をUTF−8コードに変換した後、再び16進数の変換を経て「0123456789abcdef」で表現することができる。例えば、このような変化を経た英文字1字は2字の16進数で表現される。
【0049】
one−hot vectorにおいて、「1」成分の位置はone−hot vectorが示す文字の順序により変わり得る。
【0050】
文字の種類が総F(0)(ex. 69個(英文字26、数字0−9、new line、33個の特殊文字)の場合、プロセッサ110はそれぞれのメッセージをF(0)×L(0)大きさの行列に変換することができる。もし、メッセージの長さがL(0)より小さければ、不足する表現ベクトルはいずれも0表現ベクトルに変換することができる。他の例として、メッセージの長さがL(0)よりも大きければ、L(0)個の文字のみをワンホットベクトルに変換することができる。
【0051】
再び図3を参照すると、S140段階で、プロセッサ110はコンボリューショナルニューラルネットワーク(Convolutional neural network)を利用して、行列データを低い次元の表現ベクトルでマッピングすることができる。プロセッサ110はコンボリューショナルニューラルネットワークを利用して、行列データの特性が反映された表現ベクトルを出力することができる。出力された表現ベクトルの次元は、行列データの次元よりも低くてもよい。以下ではコンボリューショナルニューラルネットワークについて説明する。
【0052】
図5はコンボリューショナルニューラルネットワークを例示的に示した概念図である。
【0053】
図5を参照すると、コンボリューショナルニューラルネットワークは、少なくとも一つのコンボリューションおよびプーリングレイヤー(convolution & pooling layer)と、少なくとも一つの全体連結レイヤー(fully connected layer)を含むことができる。図5では一つのレイヤーでコンボリューション動作およびプーリング動作が行われる例を示したが、実施例はこれに制限されるものではない。例えば、コンボリューション動作が遂行されるレイヤーとプーリング動作が遂行されるレイヤーが互いに分離されていてもよい。また、コンボリューショナルニューラルネットワークはプーリング動作を遂行しなくてもよい。
【0054】
コンボリューショナルニューラルネットワークは入力を受けたデータの特徴を抽出し、入力を受けたデータよりもスケールが小さい出力データを生成して出力することができる。コンボリューショナルニューラルネットワークはイメージまたは行列形態のデータの入力を受けることができる。
【0055】
コンボリューションおよびプーリングレイヤーは行列データの入力を受け、入力を受けた行列データに対してコンボリューション演算を遂行することができる。
【0056】
図6は、コンボリューション演算を例示的に示した概念図である。
【0057】
図6を参照すると、プロセッサ110は、カーネルFIを利用して入力イメージOIに対するコンボリューション演算を遂行することができる。カーネルFIは、イメージOIのピクセルの個数よりも小さい大きさの行列であり得る。例示的に、フィルタカーネルFIの(1、1)成分は0であり得る。したがって、コンボリューションを計算する時、カーネルFIの(1、1)成分に対応するイメージOIのピクセルに対して0を乗算してもよい。他の例として、カーネルFIの(2、1)成分は1である。したがって、コンボリューションを計算する時、カーネルFIの(2、1)成分に対応するイメージOIのピクセルに対して1を乗算してもよい。
【0058】
プロセッサ110はイメージOI上でカーネルFIの位置を変更しながら、イメージOIに対するコンボリューション演算を遂行することができる。そして、プロセッサ110は計算されたコンボリューション値からコンボリューションイメージを出力することができる。
【0059】
図7は、プロセッサ110が図6に示したイメージOIからコンボリューションイメージを抽出したことを示した概念図である。
【0060】
図7に示したフィルタカーネルFIが、イメージOI上で動くことができる場合の数が(10−3+1)×(10−3+1)=8×8個であるため、プロセッサ110は8×8個のコンボリューション値を計算することができる。そして、8×8個のコンボリューション値から図6に示したような8×8ピクセルの大きさのコンボリューションイメージを抽出することができる。コンボリューションイメージCIのピクセルの個数は、原本イメージOIよりも小さくなるようになる。プロセッサ110は、カーネルFIを利用することによって、原本イメージの特性が反映されたコンボリューションイメージを抽出することができる。プロセッサ110は、カーネルFIを利用して入力されたイメージOIよりも大きさが小さく、入力されたイメージOIの特性を反映するコンボリューションイメージCIを出力することができる。コンボリューション演算はコンボリューションレイヤーまたはコンボリューションおよびプーリングレイヤーで遂行され得る。
【0061】
図8は、図5に示したコンボリューションおよびプーリングレイヤーの動作を示した概念図である。
【0062】
図8では便宜上、コンボリューショナルニューラルネットワークの最初のコンボリューションおよびプーリングレイヤー(Convolution and pooling layer 1)での動作を例示的に示した。図8を参照すると、入力レイヤーはF(0)×L(0)大きさの行列データの入力を受けることができる。入力レイヤーはm×r大きさを有するn個のコンボリューションフィルターを利用してコンボリューション演算を遂行することができる。入力レイヤーはコンボリューション演算を通じてn個の特徴マップ(feature map)を出力することができる。特徴マップのそれぞれの次元はF(0)×L(0)よりも小さくてもよい。
【0063】
コンボリューションおよびプーリングレイヤー(layer 1)は、コンボリューション演算によって出力された特徴マップのそれぞれに対してプーリング演算を遂行することによって、特徴マップの大きさを減らすことができる。プーリング演算は、特徴マップで隣接したピクセルをマージ(merge)して一つの代表値を獲得する演算であり得る。コンボリューションおよびプーリングレイヤーでプーリング演算によって特徴マップの大きさが減少され得る。
【0064】
代表値は多様な方法で獲得され得る。例えば、プロセッサ110は特徴マップで互いに隣接したp×q個のピクセルの値のうち最大値を代表値として決定することができる。他の例として、プロセッサ110は特徴マップで互いに隣接したp×q個のピクセルの値の平均値を代表値として決定することができる。
【0065】
再び図5を参照すると、N個のコンボリューションおよびプーリングレイヤーでコンボリューション演算とプーリング演算が遂行され得る。コンボリューション演算およびプーリング演算が遂行されることによって特徴マップの大きさはますます減少され得る。最後のコンボリューションおよびプーリングレイヤー(Layer N)でM(Nc)×L(Nc)の大きさを有する特徴マップF(Nc)個が出力され得る。最後のコンボリューションおよびプーリングレイヤー(Layer N)で出力される特徴マップは次のように表現され得る。
【0066】
【0067】
最後のコンボリューションおよびプーリングレイヤー(Layer N)で出力される特徴マップは、最初の全体連結レイヤー(Layer N+1)に入力され得る。最初の全体連結レイヤーは、入力を受けた特徴マップを1×F(Nc)(Nc)(Nc)(≡∧(Nc))の大きさを有する1次元の表現ベクトルa(Nc)(t) for 0≦t≦∧(Nc)−1に変換することができる。
【0068】
最初の全体連結レイヤーは、変換した1次元の表現ベクトルに対してウェイト(weight)行列を乗算することができる。例示的に、最初の全体連結レイヤーが遂行する演算は数学式7のように示すことができる。
【0069】
【0070】
数学式1でW(Nc+1)(t、u)は、最初の全体連結レイヤーで利用するウェイト行列を意味する。a(Nc+1)(t)は最初の全体連結レイヤーで出力される表現ベクトルを意味する。a(Nc+1)(t)は1次元の表現ベクトルであり得る。∧(Nc+1)は最初の全体連結レイヤーで出力される表現ベクトルa(Nc+1)(t)の大きさを意味する。
【0071】
数学式1を参照すると、最初の全体連結レイヤーは、∧(Nc)大きさの表現ベクトルからウェイト行列を利用して∧(Nc+1)の大きさの表現ベクトルを出力することができる。
【0072】
図5を参照すると、コンボリューショナルニューラルネットワークは、N個の全体連結レイヤーを含むことができる。数学式1を一般化して、l番目の全体連結レイヤーで遂行される演算は数学式2のように示すことができる。
【0073】
【0074】
数学式2において、a(l)(t)はl番目の全体連結レイヤーの出力表現ベクトルを意味する。W(l)(t,u)はl番目の全体連結レイヤーで利用するウェイト行列を意味する。φ(l)はl番目の全体連結レイヤーで利用する活性化関数を意味する。a(l-1)(u)はl−1番目の全体連結レイヤーの出力表現ベクトルであって、l番目の全体連結レイヤーに対する入力表現ベクトルであり得る。
【0075】
出力レイヤー(Output layer)は最後の全体連結レイヤーの出力表現ベクトルa(NC+NF)(t)の入力を受けることができる。出力レイヤーは数学式3のように表現ベクトル演算を遂行することができる。
【0076】
【0077】
数学式3において、z(NC+NF+1)(t)は出力レイヤーで出力される表現ベクトルを意味する。Cは出力表現ベクトルz(NC+NF+1)(t)のクラス(class)の個数を意味する。
【0078】
出力レイヤーは、数学式3で獲得した出力表現ベクトルz(NC+NF+1)(t)のそれぞれのクラスに対する最終出力値を計算することができる。出力レイヤーは、活性化関数を利用して最終出力表現ベクトルを計算することができる。出力レイヤーの最終出力値の計算過程は数学式4のように示すことができる。
【0079】
【0080】
数学式4において、φ(NC+NF+1)は出力レイヤーで利用される活性化関数を意味する。φ(NC+NF+1)はシグモイド関数、ハイパータンジェント関数および整流線形ユニットのうち少なくとも一つであり得る。数学式4を参照すると、出力レイヤーは出力表現ベクトルz(NC+NF+1)(t)に対する最終出力表現ベクトル^γ(t)を計算することができる。
【0081】
他の例として、最終出力レイヤーはソフトマックス(soft max)関数を利用して最終出力値を計算することもできる。出力レイヤーの最終出力表現ベクトル計算過程は数学式5のように示すこともできる。
【0082】
【0083】
数学式5を参照すると、最終出力レイヤーは出力表現ベクトルのクラス値に対する指数関数を利用して最終出力値を計算することができる。
【0084】
数学式3〜5において、0≦t≦C−1であるので、コンボリューショナルニューラルネットワークはC×1の大きさの表現ベクトルを出力することができる。すなわち、コンボリューショナルニューラルネットワークはF(0)×L(0)の大きさの行列データの入力を受けてC×1の大きさの表現ベクトルを出力することができる。
【0085】
コンボリューショナルニューラルネットワークは非指導学習方式によってもトレーニングされ得る。コンボリューショナルニューラルネットワークのトレーニング方式は図17を参照した説明において後述する。
【0086】
再び図2を参照すると、S150段階で、プロセッサ110はセッションに対応する第1表現ベクトルシーケンスを生成することができる。プロセッサ110は、コンボリューショナルニューラルネットワークを利用してセッションで抽出したメッセージのそれぞれから獲得した表現ベクトルを利用して、第1表現ベクトルシーケンスを生成することができる。例えば、プロセッサ110はメッセージの生成順に沿って表現ベクトルを順に羅列して表現ベクトルシーケンスを生成することができる。第1表現ベクトルシーケンスは例示的に下記のように表現され得る。
【0087】
【0088】
はセッションのt番目のメッセージ(要請メッセージまたは応答メッセージ)から生成された表現ベクトルを意味し得る。
【0089】
S160段階で、プロセッサ110は第1表現ベクトルシーケンスを分析することによって、セッションの異常可否を判断することができる。プロセッサ110は、LSTM(Long short term memory)ニューラルネットワークを利用して第1表現ベクトルシーケンスを分析することができる。LSTMニューラルネットワークは、情報を保存するセル状態(Cell state)の選択的な更新を通じてRNN(Recurrent Neural Network)の長期依存性を回避することができる。以下では、LSTMニューラルネットワークについて説明する。
【0090】
図9は、LSTMニューラルネットワークを例示的に示した概念図である。
【0091】
【0092】
【0093】
【0094】
図10は、LSTMレイヤーの構成を例示的に示した概念図である。
【0095】
図10を参照すると、LSTMレイヤーは忘れゲート(forget gate)810、入力ゲート(input gate)850、出力ゲート(output gate)860を含むことができる。図10でボックスの中央のラインはレイヤーのセル(cell)状態を示すラインである。
【0096】
【0097】
【0098】
数学式6において、σはシグモイド(sigmoid)関数を意味する。bはバイアス(bias)を意味する。Wxfはxに対する加重値を意味し、Whfはht−1に対する加重値を意味し、Wcfはct−1に対する加重値を意味する。
【0099】
入力ゲート850は、セル状態にどのような新しい情報を反映するかを決定することができる。入力ゲート850は数学式7を利用して、セル状態に反映する新しい情報iを計算することができる。
【0100】
【0101】
数学式7において、σはシグモイド(sigmoid)関数を意味する。bはバイアス(bias)を意味する。Wxiはxに対する加重値を意味し、Whiはht−1に対する加重値を意味し、Wciはct−1に対する加重値を意味する。
【0102】
入力ゲート850は、新しいセル状態Cに対する候補値を計算することができる。入力ゲート850は数学式8を利用して、候補値を計算することができる。
【0103】
【0104】
数学式8において、bはバイアス(bias)を意味する。Wxcはxに対する加重値を意味し、Whcはht−1に対する加重値を意味する。
【0105】
セルラインは、f、iを利用して新しいセル状態cを計算することができる。例示的に、cは数学式9により計算され得る。
【0106】
【0107】
数学式8を参照すると、数学式9は数学式10のように示すことができる。
【0108】
【0109】
出力ゲート860は、セル状態cを利用して出力値を計算することができる。例示的に、出力ゲート860は数学式11により出力値を計算することができる。
【0110】
【0111】
数学式11において、σはシグモイド(sigmoid)関数を意味する。bはバイアス(bias)を意味する。Wxoはxに対する加重値を意味し、Whoはht−1に対する加重値を意味し、Wcoはcに対する加重値を意味する。
【0112】
LSTMレイヤーは、出力値oおよび新しいセル状態cを利用して表現ベクトルxに対する隠れベクトルhを計算することができる。例示的に、hは数学式12により計算され得る。
【0113】
【0114】
LSTMニューラルネットワークは、LSTMエンコーダ(encoder)およびLSTMエンコーダに対称的な構造を有するLSTMデコーダ(decoder)を含むことができる。LSTMエンコーダは、第1表現ベクトルシーケンスの入力を受けることができる。LSTMエンコーダは、第1表現ベクトルシーケンスの入力を受けてあらかじめ定められた大きさの隠れベクトルを出力することができる。LSTMデコーダは、LSTMエンコーダから出力された隠れベクトルの入力を受けることができる。LSTMデコーダは、LSTMエンコーダで使用された加重値行列とバイアス値をそのまま使用することができる。LSTMデコーダは、第1表現ベクトルシーケンスに対応する第2表現ベクトルシーケンスを出力することができる。LSTMデコーダは、第2表現ベクトルシーケンスは第1表現ベクトルシーケンスに含まれた表現ベクトルに対応する推定ベクトルを含むことができる。LSTMデコーダは、推定ベクトルを逆順に出力することができる。すなわち、LSTMデコーダは、第1表現ベクトルシーケンスの表現ベクトルの逆順に推定ベクトルを出力することができる。
【0115】
図11はLSTMエンコーダ動作方式を示した概念図である。
【0116】
【0117】
【0118】
【0119】
【0120】
【0121】
【0122】
【0123】
数学式13において、Sはセッションで抽出したメッセージ(要請メッセージまたは応答メッセージ)の個数を意味する。xはt番目のメッセージから出力された表現ベクトルであり、^xはLSTMデコーダが出力したxに対する推定ベクトルである。プロセッサ110は、第1表現ベクトルシーケンスと第2表現ベクトルシーケンスとの間の差があらかじめ定められた基準値δよりも小さいかの可否を判断することができる。もし、第1表現ベクトルシーケンスと第2表現ベクトルシーケンスとの間の差が基準値δよりも大きければ、プロセッサ110はセッションが異常であると判断することができる。
【0124】
前述した説明では、LSTMニューラルネットワークがLSTMエンコーダおよびLSTMデコーダを含む例について説明した。しかし、実施例はこれに制限されるものではない。例えば、LSTMニューラルネットワークは直ちに推定ベクトルを出力することもできる。
【0125】
図13は、LSTMニューラルネットワークが直ちに推定ベクトルを出力する例を示した概念図である。
【0126】
【0127】
【0128】
【0129】
【0130】
前述した説明では、プロセッサ110がLSTMニューラルネットワークを利用してセッションの異常可否を判断する例について説明した。しかし、実施例はこれに制限されるものではない。例えば、プロセッサ110はS160段階で、GRUニューラルネットワークを利用してセッションの異常可否を判断することもできる。
【0131】
図14は、GRUニューラルネットワークを例示的に示した概念図である。
【0132】
【0133】
【0134】
【0135】
図15は、GRUレイヤーの構成を例示的に示した概念図である。
【0136】
図15を参照すると、GRUレイヤーはリセットゲートrおよびアップデートゲートzを含むことができる。リセットゲートrは新しい入力を以前のメモリとどのように合わせるかを決定することができる。アップデートゲートzは、以前のメモリをどの程度反映するかを決定することができる。LSTMレイヤーとは異なり、GRUレイヤーではセル状態と出力とが区分されないこともある。
【0137】
例示的に、リセットゲートrは数学式15を利用してリセットパラメーターrを計算することができる。
【0138】
【0139】
数学式15において、σはシグモイド(sigmoid)関数を意味する。Uはxに対する加重値を意味し、Wはst−1に対する加重値を意味する。
【0140】
例示的に、アップデートゲートzは、数学式16を利用してアップデートパラメーターzを計算することができる。
【0141】
【0142】
数学式16において、σはシグモイド(sigmoid)関数を意味する。Uはxに対する加重値を意味し、Wはst−1に対する加重値を意味する。
【0143】
GRUレイヤーは新しい隠れベクトルに対する推定値hを数学式17により計算することができる。
【0144】
【0145】
数学式17において、σはシグモイド(sigmoid)関数を意味する。Uはxに対する加重値を意味し、Wはst−1およびrの積st−1orに対する加重値を意味する。
【0146】
GRUレイヤーは、数学式17で計算したhを利用してxに対する隠れベクトルsを計算することができる。例えば、GRUレイヤーは数学式18を利用してxに対する隠れベクトルsを計算することができる。
【0147】
【0148】
GRUニューラルネットワークは、レイヤーのそれぞれの構成上の差を除いては、LSTMニューラルネットワークと類似に動作することができる。例えば、図11図13に示したLSTMニューラルネットワークの実施例がGRUニューラルネットワークにも類似に適用され得る。GRUニューラルネットワークの場合、それぞれのレイヤーの動作が図15に示したように動作することの他に、LSTMニューラルネットワークと類似する原理で動作することができる。
【0149】
【0150】
【0151】
プロセッサ110は、数学式13を利用して第1表現ベクトルシーケンスと第2表現ベクトルシーケンスを比較することによって、セッションの異常可否を判断することができる。
【0152】
【0153】
【0154】
図16は、本発明の例示的な実施例に係る装置100で遂行される異常セッション感知方法の変形例を示したフローチャートである。
【0155】
図16の実施例の説明において、図2と重複する内容は省略する。
【0156】
図16を参照すると、S100段階で、プロセッサ110はコンボリューショナルニューラルネットワークおよびLSTM(またはGRU)ニューラルネットワークをトレーニングさせることができる。
【0157】
例示的に、プロセッサ110は非指導学習方式でコンボリューショナルニューラルネットワークをトレーニングすることができる。他の例として、メッセージとメッセージにラベルリングされた出力表現ベクトルを含む訓練データが存在する場合、プロセッサ110は指導学習方式でコンボリューショナルニューラルネットワークをトレーニングすることもできる。
【0158】
非指導学習の場合、プロセッサ110はコンボリューショナルニューラルネットワークに対して対称的構造を有する対称ニューラルネットワークをコンボリューショナルニューラルネットワークに連結することができる。プロセッサ110はコンボリューショナルニューラルネットワークの出力を対称ニューラルネットワークに入力させることができる。
【0159】
図17は、コンボリューショナルニューラルネットワークのトレーニング過程を示した概念図である。
【0160】
図17を参照すると、プロセッサ110はコンボリューショナルニューラルネットワークの出力を対称ニューラルネットワークに入力させることができる。対称ニューラルネットワークは、前記コンボリューショナルニューラルネットワークの全体連結レイヤーに対応する逆方向全体連結レイヤー(backward fully connected layer)と、前記コンボリューショナルニューラルネットワークのコンボリューションレイヤーおよびプーリングレイヤーに対応するテコンボリューションレイヤーおよびアンプーリングレイヤーを含むことができる。対称ニューラルネットワークの具体的な動作についての説明は韓国特許出願(10−2015−183898)で代替する。
【0161】
プロセッサ110は、対称ニューラルネットワークの出力とコンボリューショナルニューラルネットワークに入力される入力との間の差に基づいて、コンボリューショナルニューラルネットワークの加重値パラメーターを更新することができる。例えば、プロセッサ110は、対称ニューラルネットワークの出力とコンボリューショナルニューラルネットワークに入力される入力との間の再構成エラー(reconstruction error)および平均二乗エラー(mean squared error)のうち少なくとも一つに基づいて、費用関数を決定することができる。プロセッサ110は、前述した方式によって決定された費用関数を最小化する方向に加重値パラメーターを更新することができる。
【0162】
例示的に、プロセッサ110は非指導学習方式でLSTM(GRU)ニューラルネットワークをトレーニングすることができる。
【0163】
LSTM(GRU)ニューラルネットワークがLSTM(GRU)エンコーダおよびLSTM(GRU)デコーダを含む場合、プロセッサ110はLSTM(GRU)エンコーダに入力される表現ベクトルらとLSTM(GRU)デコーダで出力される表現ベクトルとを比較することによって、費用関数を計算することができる。例えば、プロセッサ110は数学式19を利用して費用関数を計算することができる。
【0164】
【0165】
【0166】
プロセッサ110は、数学式19に示した費用関数J(θ)を最小化する方向にθに含まれた加重値パラメーターを更新することができる。
【0167】
以上、図1図17と数学式1〜数学式19を参照して本発明の実施例に係る異常セッション感知方法について説明した。前述した実施例によると、コンボリューショナルニューラルネットワークを利用してセッションに含まれたメッセージを低い次元の表現ベクトルに変換することができる。また、LSTMまたはGRUニューラルネットワークを利用してセッションに含まれた表現ベクトルシーケンスを分析し、これからセッションの異常可否を判断することができる。実施例によると、受動的な作業が介入されることなく人工ニューラルネットワークを利用してセッションの異常可否を容易に判断することができる。
【0168】
本発明の実施例に係る肩幅測定方法の動作は、コンピュータ読み取り可能記録媒体にコンピュータ読み取り可能プログラムまたはコードとして具現することが可能である。コンピュータ読み取り可能記録媒体はコンピュータシステムによって読み込まれ得るデータが保存されるすべての種類の記録装置を含む。また、コンピュータ読み取り可能記録媒体は、ネットワークに連結されたコンピュータシステムに分散されて分散方式でコンピュータ読み取り可能プログラムまたはコードが保存され実行され得る。
【0169】
また、コンピュータ読み取り可能記録媒体は、ロム(rom)、ラム(ram)、フラッシュメモリ(flash memory)などのように、プログラム命令を保存して遂行するように特別に構成されたハードウェア装置を含むことができる。プログラム命令は、コンパイラ(compiler)によって作られるような機械語コードだけでなく、インタープリタ(interpreter)などを使ってコンピュータによって実行され得る高級言語コードを含むことができる。
【0170】
方法段階の一部又は全部は例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって(または利用して)遂行され得る。一部の実施例において、最も重要な方法段階の少なくとも一つはこのような装置によって遂行され得る。
【0171】
実施例において、プログラム可能なロジック装置(例えば、フィールドプログラマブルゲートアレイ)が、ここで説明された方法の機能の一部又は全部を遂行するために使われ得る。実施例において、フィールドプログラマブルゲートアレイは、ここで説明された方法のうち一つを遂行するためのマイクロプロセッサとともに作動することができる。一般に、方法は何らかのハードウェア装置によって遂行されることが好ましい。
【0172】
上記では本発明の好ましい実施例を参照して説明したが、該当技術分野の熟練した当業者は下記の特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更し得ることが理解できるであろう。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17