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

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

▶ エヌイーシー ラボラトリーズ アメリカ インクの特許一覧

特許6972389システム状態を解析及び修正するための時系列の検索
<>
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000087
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000088
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000089
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000090
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000091
  • 特許6972389-システム状態を解析及び修正するための時系列の検索 図000092
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6972389
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】システム状態を解析及び修正するための時系列の検索
(51)【国際特許分類】
   G06N 20/00 20190101AFI20211111BHJP
   G05B 23/02 20060101ALI20211111BHJP
   G06N 3/02 20060101ALI20211111BHJP
【FI】
   G06N20/00
   G05B23/02 302Y
   G06N3/02
【請求項の数】16
【全頁数】22
(21)【出願番号】特願2020-560870(P2020-560870)
(86)(22)【出願日】2019年1月14日
(65)【公表番号】特表2021-512437(P2021-512437A)
(43)【公表日】2021年5月13日
(86)【国際出願番号】US2019013429
(87)【国際公開番号】WO2019156777
(87)【国際公開日】20190815
【審査請求日】2020年7月22日
(31)【優先権主張番号】62/627,922
(32)【優先日】2018年2月8日
(33)【優先権主張国】US
(31)【優先権主張番号】16/245,740
(32)【優先日】2019年1月11日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】504080663
【氏名又は名称】エヌイーシー ラボラトリーズ アメリカ インク
【氏名又は名称原語表記】NEC Laboratories America, Inc.
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】ソン、 ドンジン
(72)【発明者】
【氏名】シャー、 ニン
(72)【発明者】
【氏名】チェン、 ハイフォン
【審査官】 北川 純次
(56)【参考文献】
【文献】 米国特許出願公開第2016/0103724(US,A1)
【文献】 米国特許出願公開第2016/0299938(US,A1)
【文献】 ZHAO, F, et al.,Deep Semantic Ranking Based Hashing for Multi-Label Image Retrieval,arXiv [online],2015年,[retrieved on 2021.07.29], Retrieved from the Internet: <URL: https://arxiv.org/abs/1501.06272v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00−20/20
G05B 23/02
G06N 3/02−3/10
(57)【特許請求の範囲】
【請求項1】
異常な動作を検出し、修正するための方法であって、
複数の過去の時系列シーケンスのジョイントバイナリ埋め込みをそれぞれ生成し、
新しい時系列シーケンスのジョイントバイナリ埋め込みを生成し、
それぞれのジョイントバイナリ埋め込みに基づいて、前記新しい時系列シーケンスに対する前記過去の各時系列シーケンスの類似性に応じた複数の前記過去の時系列シーケンスのランク付きリストを生成し、
前記ランク付きリストにおける最上位ランクの過去の時系列シーケンスのラベルに基づいて前記新しい時系列シーケンスに関連するシステムの異常な動作を判定し、
前記異常な動作を修正する修正動作を実行し、
複数の前記過去の時系列シーケンス及び前記新しい時系列シーケンスのジョイントバイナリ埋め込みを生成することは、
時間的ダイナミクスの第1の表記を生成するために、長短期メモリユニットを用いて時系列シーケンスを符号化し、
同じ時間セグメント内の時系列の異なるペア間の相関関係に関する第2の表記を生成するために、畳み込みニューラルネットワークを用いて時系列シーケンスのペアを符号化することを含む、方法。
【請求項2】
複数の前記過去の時系列シーケンス及び前記新しい時系列シーケンスのジョイントバイナリ埋め込みを生成することは、
前記第1の表記と前記第2の表記とを結び付け、
該結び付きを1と−1との間の値にマップすることを含む、請求項に記載の方法。
【請求項3】
前記ランク付きリストを生成することは、
前記新しい時系列シーケンスに対する複数の前記過去の各時系列シーケンスの類似性を、それぞれのジョイントバイナリ埋め込み間のハミング距離に基づいて判定することを含む、請求項1に記載の方法。
【請求項4】
前記ランク付きリストを生成することは、
ランキング損失の項及び正則化の項を含む目的関数を最適化することを含む、請求項1に記載の方法。
【請求項5】
前記目的関数を最適化することは、
近似された目的関数
【数1】
を最適化することを含み、
tripletはセグメントのトリプレットであり、Wはパラメータ行列であり、Mはトリプレットの総選択肢であり、sはトリプレットにおける異なるセグメントの数であり、
【数2】
はクエリyに関する過去の時系列yのソフト近似ランクであり、λはランキング損失と最適化とのトレードオフを制御するパラメータである、請求項に記載の方法。
【請求項6】
前記目的関数が、確率的勾配降下法に基づく近似目的関数である、請求項に記載の方法。
【請求項7】
各時系列シーケンスが、時間の順に記録されたセンサ値のセットを示す、請求項1に記載の方法。
【請求項8】
前記修正動作は、
被監視システムのアプリケーションまたはハードウェアコンポーネントのセキュリティ設定の変更、前記被監視システムのアプリケーションまたはハードウェアコンポーネントの動作パラメータの変更、前記被監視システムのアプリケーションの停止または再起動、前記被監視システムのハードウェアコンポーネントの停止または再起動、前記被監視システムの環境条件の変更、並びに前記被監視システムのネットワークインタフェースの状態の変更からなるグループから選択される、請求項1に記載の方法。
【請求項9】
異常な動作を検出し、修正するためのシステムであって、
複数の過去の時系列シーケンスのジョイントバイナリ埋め込みをそれぞれ生成し、新しい時系列シーケンスのジョイントバイナリ埋め込みを生成するように構成されたプロセッサを備えるジョイント埋め込みモジュールと、
それぞれのジョイントバイナリ埋め込みに基づいて、前記新しい時系列シーケンスに対する前記過去の各時系列シーケンスの類似性に応じた複数の前記過去の時系列シーケンスのランク付きリストを生成するように構成されたランキングモジュールと、
前記ランク付きリストにおける最上位ランクの過去の時系列シーケンスのラベルに基づいて前記新しい時系列シーケンスに関連するシステムの異常な動作を判定し、前記異常な動作を修正する修正動作を実行するように構成された修正モジュールと、
を有し、
前記ジョイント埋め込みモジュールが、
時間的ダイナミクスの第1の表記を生成するために、長短期メモリユニットを用いて時系列シーケンスを符号化し、
同じ時間セグメント内の時系列の異なるペア間の相関関係に関する第2の表記を生成するために、畳み込みニューラルネットワークを用いて時系列シーケンスのペアを符号化するようにさらに構成された、システム。
【請求項10】
前記ジョイント埋め込みモジュールが、
前記第1の表記と前記第2の表記とを結び付け、
該結び付きを1と−1との間の値にマップするようにさらに構成された、請求項に記載のシステム。
【請求項11】
前記ランキングモジュールが、
前記新しい時系列シーケンスに対する複数の前記過去の各時系列シーケンスの類似性を、それぞれのジョイントバイナリ埋め込み間のハミング距離に基づいて判定するようにさらに構成された、請求項に記載のシステム。
【請求項12】
前記ランキングモジュールが、
ランキング損失の項及び正則化の項を含む目的関数を最適化するようにさらに構成された、請求項に記載のシステム。
【請求項13】
前記ランキングモジュールが、
近似された目的関数
【数3】
を前記目的関数として最適化するようにさらに構成され、
tripletはセグメントのトリプレットであり、Wはパラメータ行列であり、Mはトリプレットの総選択肢であり、sはトリプレットにおける異なるセグメントの数であり、
【数4】
はクエリyに関する過去の時系列yのソフト近似ランクであり、λはランキング損失と最適化とのトレードオフを制御するパラメータである、請求項12に記載のシステム。
【請求項14】
前記目的関数が、確率的勾配降下法に基づく近似目的関数である、請求項12に記載のシステム。
【請求項15】
各時系列シーケンスが、時間の順に記録されたセンサ値のセットを示す、請求項に記載のシステム。
【請求項16】
前記修正動作が、被監視システムのアプリケーションまたはハードウェアコンポーネントのセキュリティ設定の変更、前記被監視システムのアプリケーションまたはハードウェアコンポーネントの動作パラメータの変更、前記被監視システムのアプリケーションの停止または再起動、前記被監視システムのハードウェアコンポーネントの停止または再起動、前記被監視システムの環境条件の変更、並びに前記被監視システムのネットワークインタフェースの状態の変更からなるグループから選択される、請求項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2018年2月8日に出願された米国特許出願第62/627,922号及び2019年1月11日に出願された米国特許出願第16/245,740号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【0002】
本発明は、複雑なシステムにおける多変量時系列の検索に関し、特に、システムの状態を判定し、修正する、上記の検索のためのランク監視付きジョイントバイナリ埋め込み(rank supervised joint binary embedding)に関する。
【背景技術】
【0003】
多変量時系列データは、例えば、発電所モニタリング、ヘルスケア、ウェアラブル装置、自動車モニタリング、IoT(Internet of Things)アプリケーション等を含む、多くの実用的なアプリケーションにおける共通事項である。多変量時系列の検索は、最新の多変量時系列セグメントが与えられると、過去のデータから関連する時系列セグメントをどのように取得するかを特徴とする。すなわち、特定の既知の時系列を用いて、過去のデータの中から一致する時系列を見つけ出すことは、特に異なる時系列のセット間の相互作用だけでなく、時間的ダイナミクスを符号化する必要性のために、容易ではない。
【発明の概要】
【0004】
異常な動作を検出し、修正する方法は、過去の時系列シーケンスのセットのジョイントバイナリ埋め込みをそれぞれ生成することを含む。新しい時系列シーケンスのジョイントバイナリ埋め込みが生成される。複数の過去の時系列シーケンスのランク付きリストは、それぞれのジョイントバイナリ埋め込みに基づいて、新しい時系列シーケンスに対する過去の各時系列シーケンスの類似性に応じて生成される。新しい時系列シーケンスに関連するシステムの異常な動作は、ランク付きリスト内の最上位ランクの過去の時系列シーケンスのラベルに基づいて判定される。異常な動作を修正する修正動作が実行される。
【0005】
異常な動作を検出し、修正するためのシステムは、複数の過去の時系列シーケンスのジョイントバイナリ埋め込みをそれぞれ生成し、新しい時系列シーケンスのジョイントバイナリ埋め込みを生成するように構成されたプロセッサを有するジョイント埋め込みモジュールを含む。ランキングモジュールは、それぞれのジョイントバイナリ埋め込みに基づいて、新しい時系列シーケンスに対する過去の各時系列シーケンスの類似性に応じた複数の過去の時系列シーケンスのランク付きリストを生成するように構成される。修正モジュールは、ランク付きリストにおける最上位ランクの過去の時系列シーケンスのラベルに基づいて、新しい時系列シーケンスに関連するシステムの異常な動作を判定し、前記異常な動作を修正する修正動作を実行するように構成される。
【0006】
これら及び他の特徴並びに利点は、以下の典型的な実施形態の詳細な説明を添付の図面と併せて読むことで明らかになるであろう。
【0007】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【図面の簡単な説明】
【0008】
図1図1は、本発明の一実施形態による、異常検出及び修正を伴う被監視システムのブロック図である。
【0009】
図2図2は、本発明の一実施形態による、被監視システムにおける異常な動作を検出し、修正するブロック/フロー図である。
【0010】
図3図3は、本発明の一実施形態による、例示的なニューラルネットワークの図である。
【0011】
図4図4は、本発明の一実施形態による、例示的なニューラルネットワークアーキテクチャの図である。
【0012】
図5図5は、本発明の一実施形態による、被監視システムにおける異常動作を検出及び修正するように構成された異常検出システムのブロック図である。
【0013】
図6図6は、本発明の一実施形態による、処理システムのブロック図である。
【発明を実施するための形態】
【0014】
多変量時系列の検索を実行するために、r乗根(rth-root)ランク監視付きジョイントバイナリ埋め込みを使用する。未加工の(raw)多変量時系列セグメントが与えられると、本実施形態では、時間的ダイナミクスを符号化するためにLSTM(long short term memory:長短期メモリ)ユニットを使用し、時系列が異なるペア間の相関関係を符号化するために畳み込みニューラルネットワーク(CNN:convolutional neural network)を使用する。未加工の時系列セグメントにおける時間的ダイナミクス及び相関関係は、2つの個別の特徴ベクトルで表される。時間的ダイナミクス及び相関関係の両方を組み込むため、ジョイントバイナリ埋め込みが生成される。ハミング距離ランク付きリストの上位の正確さを最適化して出力を生成するために、r乗根ランキング損失(rth-root ranking loss)を用いる。
【0015】
ランキング損失は、位置がずれているセグメントが同じクラスに属する場合、それらが類似のバイナリ埋め込みを共有するようにできる。埋め込み関数を得るために、本発明のいくつかの実施形態では、連続置換を(continuous replacement)を用いてオリジナルの離散対象を変換し、確率勾配降下法を用いて置き換え対象を最適化する。
【0016】
図1を参照すると、異常検出システム106が被監視システム102と共に示されている。被監視システム102には、製造ライン及び物的設備の運転等の物理システム、コンピュータまたはその他のコンピュータ装置等の電子システム、ウェアラブル装置、車両、IoT装置、並びにオペレーティングシステム及びアプリケーション等のソフトウェアシステムを含む、任意の適切なシステムがなり得る。
【0017】
1つまたは複数のセンサ104は、被監視システム102の状態に関する情報を記録する。センサ104には、例えば、温度、湿度、振動、圧力、電圧、電流、磁場、電場、光センサ等の物理センサと、コンピュータシステムにインストールされた、該コンピュータシステムで動作するオペレーティングシステム及びアプリケーションの状態及び動作に関する情報を記録するためのログユーティリティ等のソフトウェアセンサとを含む、任意の適切なタイプのセンサがなり得る。センサ104によって生成される情報は、任意の適切なフォーマットとすることが可能であり、異なるフォーマットで生成されたセンサログ情報を含むことができる。センサ104は、特にレコードの順序リストで示される時系列データを生成することが考えられる。時系列データには、それぞれのレコードが生成された時刻を示す、関連するタイムスタンプを有していてもよく、有していなくてもよい。
【0018】
センサ104は、無線通信及び有線通信を含む任意の適切な通信媒体及びプロトコルによってログされたセンサ情報を異常検出システム106に送信できる。異常検出システム106は、新しく測定された時系列データのシーケンスを先に記録されたデータセットの主要部と比較し、1つまたは複数の一致する過去のインスタンスを取り出す。これらの取り出したインスタンスは、該取り出したインスタンスに関連する期間において、被監視システム102の状態または動作を記述する関連ラベルを有していてもよい。場合によっては、取り出したインスタンスのラベルは、被監視システム102が、異常な、すなわち好ましくない状態で動作していることを示していてもよい。
【0019】
異常な動作が検出されると、異常検出システム106は、システム制御ユニット108と通信し、異常な動作を修正するために、被監視システム102の1つまたは複数のパラメータを変更する。典型的な修正動作としては、アプリケーションまたはハードウェアコンポーネントのセキュリティ設定の変更、アプリケーションまたはハードウェアコンポーネントの動作パラメータの変更(例えば、動作速度)、アプリケーションの停止及び/または再起動、ハードウェアコンポーネントの停止及び/または再起動、環境条件の変更、ネットワークインタフェースの状態または設定の変更等が含まれる。これにより、異常検出システム106は、異常な動作を自動的に修正または軽減する。
【0020】
多変量時系列セグメント、例えば、Tがウィンドウサイズの長さであるn個の時系列
【数1】
が与えられると、
【数2】
項は、長さtの時系列を表す。
【数3】
項は、特定の時間tにおけるn個の入力系列のベクトルを表す。さらに、フロベニウスノルムは
【数4】
で示され、ベクトルxのハミングノルムは
【数5】
で示される。ハミングノルムは、ベクトル内の非ゼロエントリの数である。ベクトルxの
【数6】
ノルムは
【数7】
として示され、xにおけるエントリの絶対値の総和を提供する。
【0021】
T時間ステップだけ続く、n個の時系列のスライスを示す多変量時系列セグメント
【数8】
が与えられると、本実施形態は過去のデータベースのセットにおいて最も類似する時系列セグメントを見つけ出す。これは、以下の
【数9】
で表される。ここで、
【数10】
はセグメントの集合であり、pは
【数11】
における第pセグメントの添え字を示し、Nは集合内のセグメントの総数を示し、
【数12】
は類似性測度関数(similarity measure function)を表す。
【0022】
次に、図2を参照すると、図2には、異常な動作を検出し、修正する方法が示されている。多変量時系列の検索を実行するため、本実施形態は時間的ダイナミクスを捉える未加工の多変量時系列セグメントの表記(representation)を取得する。多変量時系列セグメント
【数13】
が与えられると、Xからhまでのマッピングが
【数14】
として示される。ここで、
【数15】
は特徴ベクトルであり、mはhの次元であり、
【数16】
は非線形マッピング関数である。
【0023】
ブロック202は、
【数17】
に実装し、Xにおける時間的ダイナミクス及び長期依存性を捉えるためにLSTMユニットを用いる。LSTMユニットにおいて、セル状態は、勾配消失問題を克服することが可能であり、時系列の長期依存性をより良く捉えることができる、時間の経過に伴うアクティビティを合計する。各LSTMユニットは、時刻tにおける状態sを備えるメモリセルを有する。メモリセルに対するアクセスは、忘却(forget)ゲートf、入力ゲートi、出力ゲートoの3つのシグモイドゲートによって制御される。LSTMユニットの更新は、以下のように要約できる。
【数18】
ここで、
【数19】
は、先の状態ht−1と現在の入力xとを結び付けたものである。
【数20】
項及び
【数21】
項は、訓練中に学習されるパラメータである。関数
【数22】
及び
【数23】
は、ロジスティックシグモイド関数であり、要素毎の乗算演算子(例えば、アダマール積)である。
【0024】
ブロック204は、多変量時系列セグメントにおける、時系列が異なるペア間の相関関係を表すためにCNNを用いる。ブロック202及び204は、任意の順序で実行されてもよく、同時に実行されてもよいことが理解されるべきである。ブロック204は、例えば、ピアソンの相関係数を用いてn×nの相関マップを構築する。2つの時系列
【数24】
及び
【数25】
が与えられると、ピアソンの相関係数は、以下のように計算できる。
【数26】
ここで、
【数27】
及び
【数28】
は、2つの時系列の標本平均値を表す。
【0025】
CNNは、ブロック204において、相関マップ
【数29】
のコンパクトな表記を生成するために使用される。典型的なCNNアーキテクチャは、4つの畳み込み層及び2つの全結合層を含む。バッチ正規化(batch normalization)及び正規化線形ユニット(rectifier linear unit)に続く各畳み込み層は、サイズh×w×dの3次元アレイである。ここで、h及びwは空間次元であり、dは特徴またはチャネル次元である。全結合層は、畳み込み特徴マップをベクトルに変換し、それを固定された次元mに投影する。このCNNアーキテクチャは、純粋に例示したものであり、限定するものとして解釈されるべきではないと理解されるべきである。CNNの出力は、
【数30】
であり、多変量時系列セグメントにおける時系列が異なるペア間の相関関係を符号化するために使用される。
【0026】
未加工の多変量時系列セグメントhの表記と、同じセグメントl内の様々な時系列ペア間の相関関係の表記が与えられると、ブロック206は、それらの表記を
【数31】
で結び付け、2m次元の浮動小数点入力
【数32】
がvビットバイナリコード
【数33】
へ圧縮されるように、マッピング
【数34】
のグループを含むジョイントバイナリ埋め込みを学習する。これは、バイナリ埋め込みまたはハッシュ関数を表し、以下のように定式化できる。
【数35】
ここで、
【数36】
は、入力変数が0より大きい場合は1を返し、そうでない場合は−1を返す符号関数であり、
【数37】
は適切な予測関数である。特定のデータ領域及び実際のアプリケーションで役立てるために、(例えば、線形及び非線形)に関する種々の数学的形式
【数38】
が用いられる。本実施形態では、線形予測関数に焦点を当てているが、代わりに、任意の適切な予測関数が使用できることを理解されたい。したがって、
【数39】
である。ここで、
【数40】
であり、
【数41】
である。
【数42】
に関して、生成された各バイナリビット
【数43】
となる平均ベクトル
【数44】
で用いるバイアス項
【数45】
はバランスがとれており、最大のエントロピーを示す。バイナリ埋め込み関数
【数46】
全体は、行列
【数47】
によってパラメータ化できる、v個の個別のバイナリ埋め込み関数
【数48】
の機能を含むようにさらに定義される。符号関数は要素毎に適用される。
【0027】
ブロック208は、XとXとが同じクラスにあり、XとXとが異なるクラスにあるように、トリプレットDtriplet={X,X,X}の形式における相対的なセグメントの類似性を活用するためにランキング損失を決定する。ここで、トリプレットにおける各セグメントペア{X,X}はセグメントペア{X,X}よりも類似する。これらの相対的に類似する関係は、良好なバイナリ埋め込み関数
【数49】
によってハミング空間内で保存される。これは、埋め込み
【数50】

【数51】
との間のハミング距離よりも短い、埋め込み
【数52】

【数53】
との間のハミング距離となる。
【0028】
がクエリ(query)セグメントを示し、yが類似セグメントを示し、yが異種セグメントを示す場合、yが投影ハミング空間内にあるよりもクエリyに近い異種セグメントyの数として、クエリyに関するyの「ランク」を定義できる。すなわち、ランクは以下のように定義できる。
【数54】
ここで、
【数55】
は、括弧内の条件が満たされた場合は1を返し、そうでない場合は0を返す指示関数である。関数R(y,y)は、ハミング距離に関して、類似セグメントyよりもクエリyに近い、誤ってランク付けされた異種セグメントyの数を明確に分ける。そのため、R(y,y)は、クエリyに関するハミング距離ランク付きリストにおけるyの位置を示す。
【0029】
r重根ランキング損失は、ランク付きリストの最上位位置で検索の正確さを明確に最適化し、以下のように定義される。
【数56】
ここで、r>1である。この損失は、ハミング距離ランク付きリストの最上位に誤ってランク付けされたセグメントを、最下位にランク付けされたセグメントよりもペナルティを科す。これは、Rが直線的に増加するにつれて、
【数57】
のインクリメントが徐々に減少するからである。
【数58】
は、ゼロより大きい1階微分値
【数59】
及びゼロより小さい2階微分値
【数60】
を備える1対1の単調増加関数である。
【数61】
は、その勾配の積分として見ることができるため、
【数62】
は、リストの最下部よりも最上部でより重くRにペナルティを科すことでランクを保存する。
【0030】
学習目標は以下のように定式化される。
【数63】
ここで、第1項はランキング損失であり、第2項は正則化を実行させ、λ>0はランキング損失と正則化項との間のトレードオフを制御する正のパラメータである。パラメータr>1は、より大きいrが、より重いペナルティを項に科すように、どの程度のペナルティがランキングリストの最上位に置かれるかを決定する。Wに関してこの目的関数を最適化することで、ハミング距離ランク付きリストの最上位位置における正確さが最適化される。
【0031】
ランキング損失は、連続的であり、Rに関して微分可能であるが、上述した目的関数を最適化することは依然として困難である。これは、バイナリ埋め込み関数が離散マッピングであり、ハミングノルムが離散空間にあるためである。したがって、ブロック210は、最適化を実行する前に、オリジナルの離散対象を連続的でかつ微分可能なサロゲート(surrogate)に変換(relax)する。ターゲットバイナリ埋め込み関数
【数64】
は、以下のように変換できる。
【数65】
これは、連続的かつ微分可能である。
【数66】
関数は、括弧内の値を−1と+1との間で変換するため、
【数67】
関数の良好な近似である。ハミングノルムは、変換元(conv ex)である
【数68】
ノルムに変換される。指示関数はシグモイド関数によって変換される。指示関数は、次式で近似できる。
【数69】
ここで、
【数70】
は上述したシグモイド関数であり、uは平均ベクトルである。
【0032】
これらの変換に基づいて、目的関数は以下のように近似できる。
【数71】
ここで、
【数72】
は、クエリyに関するyのソフト近似ランクであり、次式で与えられる。
【数73】
ここで、Vqi
【数74】
で表され、Vqj
【数75】
で表される。
【0033】
目的関数を最適化するために確率的勾配降下法が導き出される。クエリXは類似セグメントXでランダムに選択される。そして、X及びXが固定され、トリプレット
【数76】
のセットを形成するためにs個の異なるXが設定される。ここで、jの総選択肢はMである。違反例が一様分布であると仮定すると、
【数77】
は、
【数78】
で近似できる。ここで、
【数79】
はフロア関数である。
【0034】
それにより、目的関数はさらに以下で近似される。
【数80】
関連する勾配は、以下で与えられる。
【数81】
【0035】
この勾配に基づいて、ネットワークパラメータを最適化するために、Adamオプティマイザを含むミニバッチ確率勾配降下法を用いて、ネットワーク全体にわたる逆伝播を実行できる。このようにして、ブロック210は目的関数の近似を最適化する。
【0036】
結果は、最も類似するセグメントがリストの最上位にある、セグメントのランク付きリストである。次に、ブロック212は、リストからマッチングセグメントを決定する。いくつかの実施形態において、ブロック212は、リストから最も類似するセグメント(例えば、最上位ランクのセグメント)をマッチングセグメントとして選択する。他の実施形態において、ブロック212は、例えば上位n個のマッチングセグメントを選択する、または類似性閾値に基づいて複数のセグメントを選択する等、複数のマッチングセグメントを選択してもよい。
【0037】
ブロック214は、マッチングセグメントのラベルを決定し、該セグメントが異常な動作とみなすかどうかを判定する。他の実施形態において、ブロック214は、任意の種類のシステム動作について選択してもよい。例えば、ウェアラブルデバイスにおいて、ブロック214は、現在のセンサ情報が示す身体的なユーザの動きの種類を判定してもよい。他の種類の検出される動作には、コンピュータセキュリティ侵入イベント、危険な環境条件、健康状態等を含めてもよい。次に、ブロック216は、ブロック214の判定結果に基づいて修正動作を行う異常な動作に対応する修正動作としては、例えば、アプリケーションまたはハードウェアコンポーネントのセキュリティ設定の変更、アプリケーションまたはハードウェアコンポーネントの動作パラメータの変更(例えば動作速度)、アプリケーションの停止及び/または再起動、ハードウェアコンポーネントの停止及び/または再起動、環境条件の変更、ネットワークインタフェースの状態または設定の変更等を含む。これにより、ブロック216は、異常な動作を自動的に修正または軽減する。
【0038】
本明細書で記載する実施形態は、全てハードウェアで実現してもよく、全てソフトウェアで実現してもよく、ハードウェアとソフトウェアの両方の要素を含んでいてもよい。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェアでも実現可能である。
【0039】
実施形態には、コンピュータもしくは任意の命令実行システムによって使用される、または関連して使用されるプログラムコードを提供する、コンピュータで使用可能な、またはコンピュータで読み取り可能な媒体からアクセスできる、コンピュータプログラム製品を含んでもいてよい。コンピュータで使用可能な、またはコンピュータで読み取り可能な媒体には、命令実行システム、機器、もしくは装置によって使用される、または関連して使用されるプログラムを格納、伝達、伝搬または転送する任意の機器を含んでいてもよい。該媒体は、磁気媒体、光学媒体、電子媒体、電磁気媒体、赤外線媒体または半導体システム(または機器もしくは装置)、あるいは伝搬媒体であってもよい。該媒体には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク及び光ディスク等のコンピュータで読み取り可能な媒体を含んでいてもよい。
【0040】
各コンピュータプログラムは、汎用または特別な目的を持つプログラム可能なコンピュータで読み取ることができる、機械で読み取り可能なストレージメディアまたは装置(例えば、プログラムメモリまたは磁気ディスク)に格納される。該コンピュータプログラムは、ストレージメディアまたは装置から本明細書に記載された手順を実行するコンピュータで読み出される、該コンピュータの設定及び制御動作のためのものである。本発明のシステムには、本明細書に記載した機能を実行する、特定の及び事前に定義された方法をコンピュータに動作させるように構成されたコンピュータプログラムを含む、コンピュータで読み取り可能なストレージメディアも考慮される。
【0041】
プログラムコードを記憶及び/または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された少なくとも1つのプロセッサを備えていてもよい。このメモリ要素には、処理の実行中にバルク記憶装置からコードが検索される回数を減らすために、プログラムコードによって実際の実行中に用いられるローカルメモリ、バルク記憶装置及び少なくともいくつかのプログラムコードを一時的に記憶するキャッシュメモリを備えていてもよい。入出力またはI/O装置(限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む)は、直接またはI/Oコントローラを介してシステムに接続されてもよい。
【0042】
ネットワークアダプタは、データ処理システムが、プライベートネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたはリモートプリンタもしくは記憶装置と接続することを可能にするために、上記システムと接続されていてもよい。モデム、ケーブルモデム及びイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタの一例に過ぎない。
【0043】
本実施形態は、人工ニューラルネットワーク(ANN:artificial neural network)用いて、特定のオペレーションを実行する。ANNは、脳のような生体神経系から発想を得た情報処理システムである。ANNの重要な要素は、情報処理システムの構造であり、この情報処理システムは、特定の問題を解決するために並列に動作する、高度に相互接続された多数の処理要素(「ニューロン」と呼ばれる)を含む。ANNは、さらにニューロン間に存在する重みの調整を含む学習を用いて運用中に訓練される。ANNは、そのような学習プロセスを通してパターン認識またはデータ分類等の特定のアプリケーションのために構成される。
【0044】
ここで図3を参照すると、図3には、ニューラルネットワークの一般化された図が示されている。ANNは、複雑な、または不明確なデータから意味を導き出す能力を示し、パターンを抽出し、人またはその他のコンピュータベースのシステムで検出するには複雑すぎるトレンドを検出するために使用できる。ニューラルネットワークの構成は、一般に、1つまたは複数の「隠れ」ニューロン304に情報を提供する入力ニューロン302を有することが知られている。入力ニューロン302と隠れニューロン304との間のコネクション308は、重み付けされ、これらの重み付けされた入力は層間の重み付けされたコネクション308と共に、隠れニューロン304における幾つかの関数に基づいて隠れニューロン304によって処理される。任意の数の層の隠れニューロン304及び異なる関数を実行するニューロンが存在し得る。畳み込みニューラルネットワーク、maxoutネットワーク等の異なるニューラルネットワークの構成も存在する。最後に、出力ニューロン306のセットは、隠れニューロン304の最後のセットからの重み付けされた入力を受け入れて処理する。
【0045】
これは、情報が入力ニューロン302から出力ニューロン306へ伝播する「フィードフォワード」計算を示す。フィードフォワード計算が終了すると、出力は訓練データから利用可能な所望の出力と比較される。訓練データに対する誤差は、「フィードバック」計算で処理され、隠れニューロン304及び入力ニューロン302は出力ニューロン306から逆方向に伝播する誤差に関する情報を受け取る。誤差の逆伝播が終了すると、重み付けされたコネクション308は、受信した誤差を考慮するために更新され、重み付けされた更新が実行される。これは、単に1つの種類のANNを示す。
【0046】
ここで、同じ数字が同一または同様の要素を表す図面、まず図4を詳細に参照すると、図4にはANNアーキテクチャ400が示されている。本アーキテクチャは、純粋に例示的なものであり、その他のアーキテクチャまたはタイプのニューラルネットワーク代わりに使用できることを理解されたい。本明細書で説明するANNの実施形態は、一般論の高レベルでニューラルネットワーク計算の一般原理を示すことを目的として含まれるものであり、決して制限するものとして解釈されるべきではない。
【0047】
さらに、以下に記載されるニューロンの層及びそれらを接続する重みは、一般的な様式で記載され、任意の適切な次数(degree)またはタイプの相互接続性を有するどのようなタイプのニューラルネットワーク層に置き換えることができる。例えば、層には、畳み込み層、プーリング層、全結合層、ストップマックス層または任意のその他の適切なタイプのニューラルネットワーク層を含むことができる。さらに、必要に応じて層を追加または削除してもよく、相互接続性のより複雑な形態のために重みを省略してもよい。このようにして、示された一般的なANN構造は、上述のLSTM及びCNNネットワークに適合させることができる。
【0048】
フィードフォワード動作の間、入力ニューロン402のセットは、重み404の行と並列に入力信号をそれぞれ提供する。本明細書で記載するハードウェアの実施形態において、重み404は設定可能な値をそれぞれ有し、隠れニューロン406に対する重み付き入力を表すように、重み出力が重み404からそれぞれの隠れニューロン406に渡される。ソフトウェアの実施形態において、重み404は、関連する信号に単に乗算される係数値として表される。各重みからの信号は、列毎に加算され、隠れニューロン406へ流れる。
【0049】
隠れニューロン406は、重み404のアレイからの信号を用いて何らかの計算を実行する。隠れニューロン406は、続いて自身の信号を重み404の別のアレイへ出力する。このアレイは、行ごとに加算し、出力ニューロン408に供給される、重み付き信号出力を生成するために、それぞれの隠れニューロン406から信号を受信する重み404の列で、同じように実行する。
【0050】
アレイ及び隠れニューロン406の追加層を間に置くことで、任意の数のこれらのステージを実行できることを理解されたい。また、いくつかのニューロンは、アレイに一定の出力を提供する一定ニューロン409であってもよいことに注意すべきである。一定ニューロン409は、入力ニューロン402及び/または隠れニューロン406の間に存在可能であり、フィードフォワード動作中でのみ使用される。
【0051】
逆伝播の間、出力ニューロン408は、重み404のアレイを越えて戻る信号を提供する。出力層は、生成されたネットワーク応答を訓練データと比較し、誤差を計算する。誤差信号は、誤差の値に比例させることができる。この実施例において、重み404の行は、それぞれの出力ニューロン408から並列に信号を受信し、隠れニューロン406に入力を提供するために、列ごとに加算して出力を生成する。隠れニューロン406は、重み付けされたフィードバック信号をそのフィードフォワード計算の微分係数と結合し、フィードバック信号をそれぞれの重み404の列に出力する前に誤差の値を保存する。この逆伝播は、全ての隠れニューロン406及び入力ニューロン402が誤差の値を保存するまで、ネットワーク400全体の始めから終わりまで進行する。
【0052】
重みの更新の間、保存された誤差の値は、重み404の設定可能な値を更新するために使用される。このようにして、ニューラルネットワーク400がその処理における誤差に適応するように、重み404を訓練できる。3つの動作モード、フィードフォワード、逆伝播及び重みの更新は、互いに重複しないことに留意されたい。
【0053】
次に、図5を参照すると、図5には、異常検出及び修正システム106が示されている。システム106は、ハードウェアプロセッサ502及びメモリ504を含む。ネットワークインタフェース506は、センサ104から情報を受信し、任意の適切な有線または無線通信媒体によって、及び任意の適切なプロトコルによって、システム制御108に制御情報を送信する。システム106は、いくつかの実施形態において、メモリ504に記憶され、ハードウェアプロセッサ502で実行される、ソフトウェアとして実装できる、1つ以上の機能モジュールをさらに含む。他の実施形態において、機能モジュールのうちの1つまたは複数は、例えば特定用途向け集積チップまたはフィールドプログラマブルゲートアレイの形態で、1つまたは複数の個別のハードウェア構成要素として実装されてもよい。
【0054】
LSTMネットワークユニット508は、時系列シーケンスの時間的ダイナミクスを捉え、CNN510は、異なるセンサ104に由来する、異なる時系列のペア間の相関関係を捉える。ジョイント埋め込みモジュール512は、LSTMネットワークユニット508及びCNN510の出力を用いてジョイントバイナリ埋め込みを生成する。ランキングモジュール514は、センサ104からの新しい時系列との類似性に応じてランク付きマッチング時系列のリストを生成する。
【0055】
修正モジュール516は、ランク付きリストを用いて、類似するシーケンスに関連するラベルを評価することで、被監視システム102の現在の状態を判定する。このようにして、修正モジュール516は、異常な動作を特定する。次に、修正モジュール516は、異常な動作に応答して採用すべき適切な修正動作を決定し、その動作を実行する。
【0056】
次に、図6を参照すると、図6には、異常検出システム106を表す例示的な処理システム600が示されている。処理システム600は、システムバス602を介して他の構成要素が動作可能に接続された、少なくとも1つの処理装置(CPU)604を含む。システムバス602には、キャッシュ606、リードオンリメモリ(ROM)608、ランダムアクセスメモリ(RAM)610、入力/出力(I/O)アダプタ620、サウンドアダプタ630、ネットワークアダプタ640、ユーザインタフェースアダプタ650及びディスプレイアダプタ660が動作可能に接続されている。
【0057】
第1の記憶装置622及び第2の記憶装置624は、I/Oアダプタ620によってシステムバス602に動作可能に接続されている。記憶装置622及び629は、ディスク記憶装置(例えば、磁気または光ディスク記憶装置)、固体磁気装置等のうちのいずれであってもよい。記憶装置622及び624は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
【0058】
スピーカ632は、サウンドアダプタ630によってシステムバス602に動作可能に接続されている。トランシーバ642は、ネットワークアダプタ640によってシステムバス602に動作可能に接続されている。ディスプレイ装置662は、ディスプレイアダプタ660によってシステムバス602に動作可能に接続されている。
【0059】
第1のユーザ入力装置652、第2のユーザ入力装置654及び第3のユーザ入力装置656は、ユーザインタフェースアダプタ650によってシステムバス602に動作可能に接続されている。ユーザ入力装置652、654及び656は、キーボード、マウス、キーパッド、イメージキャプチャ装置、モーション感知装置、マイクロホン、あるいはこれらの装置のうちの少なくとも2つの装置の機能を組み込んだ装置等のいずれであってもよい。本原理の趣旨を維持する限りにおいて、他のタイプの入力装置を使用することも可能である。ユーザ入力装置652、654及び656は、同じタイプのユーザ入力装置であってもよく、異なるタイプのユーザ入力装置であってもよい。ユーザ入力装置652、654及び656は、システム600に情報を入力し、システム600から情報を出力するために使用される。
【0060】
処理システム600は、当業者であれば容易に思いつくような他の要素(図示せず)を含んでもよく、特定の要素を省略することも可能である。例えば、当業者であれば容易に理解できるが、処理システム600には、その詳細な実装に応じて他の様々なタイプの入力装置及び/または出力装置を含むことができる。例えば、無線及び/または有線による様々な入力装置及び/または出力装置を使用できる。さらに、当業者であれば容易に理解できるが、様々な構成の追加プロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム600の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【0061】
上記は、あらゆる観点において説明的(illustrative)かつ典型的(exemplary)であって限定的でないものと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書中に図示及び記載されている実施形態は、本発明の原理を説明するものにすぎず、本発明の範囲及び主旨から逸脱することなく当業者は様々な変更を実施することができることを理解されたい。当業者は、本発明の範囲及び精神から逸脱することなく、様々な他の特徴の組み合わせを実施できる。以上、本発明の態様について、特許法で要求される細部及び詳細な事項と共に説明したが、特許証で保護されることを要求する特許請求の範囲は、添付の特許請求の範囲に示されている。
図1
図2
図3
図4
図5
図6