(57)【要約】      （修正有）【課題】不正操作されている機器の動作の異常を検知することができる異常検知装置、異常検知方法及びプログラムを提供する。【解決手段】異常検知装置３は、記憶部３７と、所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する動作学習部３１を備える。また、異常検知装置は、複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として特定し、特定したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出部３３を備える。そして、複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。【選択図】図２
2019101895.tif 000002
【特許請求の範囲】
【請求項１】
所定空間内に設置された複数の機器と接続され、前記複数の機器のそれぞれに対して操作がされたことを示すイベント情報を通信部を介して取得する異常検知装置であって、
記憶部と、
前記所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、前記通信部で取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして前記記憶部に格納する動作学習部と、
前記複数の状況のそれぞれごとに、前記通信部で取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として特定し、特定した前記イベント順序が前記記憶部に格納された前記動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出部とを備え、
前記複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される
異常検知装置。
【請求項２】
前記複数の時間区間は、一日を一定時間で分割して得られる時間区間である
請求項１に記載の異常検知装置。
【請求項３】
異常検知装置は、さらに、前記通信部を介して前記所定空間内に設置された環境センサと接続され、前記環境センサからセンサ値を取得し、
前記複数の状況は、前記通信部で取得されたセンサ値が予め定められた複数のセンサ値区間のいずれに属するかを示す情報と、前記時間区間との組み合わせによって特定される
請求項１又は２に記載の異常検知装置。
【請求項４】
前記動作学習部は、前記組み合わせによって特定される前記複数の状況のうち、１の状況で特定した前記イベント順序を、前記１の状況に隣接する状況のそれぞれごとに、前記複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして前記記憶部に格納する
請求項３に記載の異常検知装置。
【請求項５】
前記異常検知装置は、さらに、前記通信部を介して人が外部から前記所定空間に入ったことを示すイベント情報を取得し、
前記動作学習部は、前記複数の機器に対する操作に加えて、人が外部から前記所定空間に入ったことを含めたイベント順序を学習し、学習した結果を動作モデルとして前記記憶部に格納し、
前記異常検出部は、前記複数の機器に対する操作に加えて、人が外部から前記所定空間に入ったことを含めたイベント順序を特定し、特定した前記イベント順序が前記記憶部に格納された前記動作モデルと一致するか否かを判断する
請求項１〜４のいずれか１項に記載の異常検知装置。
【請求項６】
前記動作学習部は、前記複数の状況のそれぞれごとに、前記操作の順序を、操作をノードとする木構造として表現することで、前記イベント順序を学習し、学習したイベント順序を示す木構造を動作モデルとして前記記憶部に格納し、
前記異常検出部は、前記複数の状況のそれぞれごとに、前記操作の順序を、操作をノードとする木構造として表現して特定し、特定した前記木構造が前記記憶部に格納された動作モデルに含まれる木構造のいずれかに一致するか否かを判断し、いずれとも一致しない場合に、異常を示す情報を出力する
請求項１〜５のいずれか１項に記載の異常検知装置。
【請求項７】
前記動作学習部及び前記異常検出部は、一の操作と次の操作とが規定時間以内に発生した場合に、それらの操作をリンクで接続されたノードとする木構造を生成し、一の操作と次の操作とが規定時間を超えて発生した場合に、前記次の操作を、前記一の操作が属する木構造とは別の木構造のノードとして木構造を生成する
請求項６に記載の異常検知装置。
【請求項８】
前記動作学習部は、前記木構造の生成において、前記一の操作と前記次の操作とが規定時間以内に発生した場合には、前記一の操作に対応するノードの全てを親ノードとして前記次の操作に対応する子ノードをリンクで接続して追加する、又は、当該子ノードが存在する場合は、当該子ノードと親ノードとを接続するリンクを１増やすことを、前記通信部で取得されるイベント情報ごとに繰り返すことによって学習し、
前記異常検出部は、前記動作モデルに含まれる木構造において、所定閾値以上のリンクだけで構成される部分木を用いることで、前記判断をする
請求項７に記載の異常検知装置。
【請求項９】
所定空間内に設置された複数の機器と接続され、前記複数の機器のそれぞれに対して操作がされたことを示すイベント情報を取得する通信ステップと、
前記所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、前記通信ステップで取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部に格納する動作学習ステップと、
前記複数の状況のそれぞれごとに、前記通信ステップで取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として特定し、特定した前記イベント順序が前記記憶部に格納された前記動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出ステップとを含み、
前記複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される
異常検知方法。
【請求項１０】
請求項９に記載の異常検知方法に含まれるステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
近年では、パソコン及びスマートフォンといった機器だけでなく、家電といった機器がネットワークに接続されるようになり、これらの機器を対象としたサイバー攻撃が発生するようになっている。特に機器の不正操作については、生命の危機に直結する可能性があり、重大な問題となっている。
【０００２】
そこで、例えば、ユーザの行動データを収集する行動検知部と、ユーザの行動データと、ユーザの行動を評価するための基準データを記憶するデータ記憶部と、行動データ、基準データ及び行動データに基づいて、ユーザの行動が異常か否かを判定し、判定結果を出力する異常判定部とを備える異常検知装置が開示されている（例えば特許文献１参照）。
【０００３】
この異常検知装置では、ユーザの行動を長時間に亘って記録すると共に、その行動が異常か否かを判定することができる。
【０００４】
また、ユーザの微動を検知したセンサ信号をセンサパターンとして収集及び蓄積するデータ収集部と、センサパターンに基づいてマルコフ連鎖の推移回数行列及び所要時間分布等を算出するマルコフ連鎖演算部と、推移回数行列及び所要時間分布等に基づいて、日常行動に対するサンプル行動の特徴量を算出し、一定のしきい値と比較する比較部とを備える異常検知装置が開示されている（例えば特許文献２参照）。
【０００５】
この異常検知装置では、異常事態を検知する対象物や事象の種類及び数等に依存することなく、異常事態の発生を検知することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３２７１３４号公報
【特許文献２】特開２００３−２５６９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、従来のそれぞれの異常検知装置では、ユーザの行動データを収集して蓄積することでユーザの行動が異常か否かを判定している。これらの人の行動をもとにした従来の異常検知装置では、センサ等により、人の行動及び人の状態の変化が随時観測可能な環境下で、通常とは異なる状態への変化を検知できる。しかし、複数の機器の操作は、断続的であり、頻繁に発生するものではないため、これらの状態の変化を観測することによる異常検知装置では、発生した機器操作が正常か不正かを精度よく判定することができない。
【０００８】
このため、本開示は、不正操作されている機器の動作の異常を検知することができる異常検知装置、異常検知方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本開示の一態様に係る異常検知装置は、所定空間内に設置された複数の機器と接続され、前記複数の機器のそれぞれに対して操作がされたことを示すイベント情報を通信部を介して取得する異常検知装置であって、記憶部と、前記所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、前記通信部で取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして前記記憶部に格納する動作学習部と、前記複数の状況のそれぞれごとに、前記通信部で取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として特定し、特定した前記イベント順序が前記記憶部に格納された前記動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出部とを備え、前記複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。
【００１０】
また、本開示の一態様に係る異常検知方法は、所定空間内に設置された複数の機器と接続され、前記複数の機器のそれぞれに対して操作がされたことを示すイベント情報を取得する通信ステップと、前記所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、前記通信ステップで取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部に格納する動作学習ステップと、前記複数の状況のそれぞれごとに、前記通信ステップで取得されるイベント情報に基づいて、前記複数の機器に対する操作の順序をイベント順序として特定し、特定した前記イベント順序が前記記憶部に格納された前記動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出ステップとを含み、前記複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。
【００１１】
また、本開示の一態様に係るプログラムは、異常検知方法に含まれるステップをコンピュータに実行させる。
【発明の効果】
【００１２】
本開示によれば、不正操作されている機器の動作の異常を検知することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態に係る異常検知装置を含む異常検知システムを示す模式図である。
【図２】図２は、実施の形態に係る異常検知システムを示すブロック図である。
【図３】図３は、実施の形態に係る異常検知装置が複数の状況に応じた動作モデルを示す説明図である。
【図４】図４は、実施の形態に係る異常検知装置が取得したイベント順序を示す説明図である。
【図５】図５は、実施の形態に係る異常検知装置の動作学習部の動作を示すフロー図である。
【図６】図６は、実施の形態に係る異常検知装置の異常検出部の動作を示すフロー図である。
【図７】図７は、実施の形態に係る異常検知装置の動作学習部の動作を示すフロー図である。
【図８】図８は、実施の形態に係る異常検知装置の異常検出部の動作を示すフロー図である。
【図９】図９は、実施の形態に係る異常検知装置が学習したイベント順序を示す説明図である。
【図１０】図１０は、異常検知装置の検知率の評価の設定を示す説明図である。
【図１１】図１１は、異常検知装置の評価結果を示す説明図である。
【図１２】図１２は、実施の形態に係る異常検知装置の検知率と誤検知率との関係を示す説明図である。
【発明を実施するための形態】
【００１４】
（概要）
近年、パソコン及びスマートフォンのみならず、冷蔵庫及びエアコンといった家電等の日常生活で使用する機器がインターネットに接続するようになっている。冷蔵庫及びエアコンといった家電等の機器は、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）機器と呼ばれる。ユーザは、スマートフォン等を使ってＩｏＴ機器を操作したり、ＩｏＴ機器の稼働状況や周辺状況をチェックしたりすることができる。このような機器では、ネットワークに接続することによって機器用途の可能性が広がっている。
【００１５】
しかし、家庭内では、インターネットに接続する機器が増えるにつれ、それらの機器を狙ったサイバー攻撃を受けるリスクが高まっている。すでに、家庭内のＩｏＴ機器を狙った攻撃は観測されており、ＩｏＴ機器を狙ったマルウェアも出現している。現在発生しているＩｏＴ機器を狙った攻撃は、その多くがＩｏＴ機器に侵入し、ＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ  ａｔｔａｃｋ）攻撃等の攻撃の踏み台として利用するものである。しかしながら、ＩｏＴ機器は、現実の生活に密接に関係する機器であり、現実社会に大きな影響を及ぼすような、従来のパソコン及びスマートフォン等を対象とした攻撃とは異なる種類の攻撃を受けるリスクがある。
【００１６】
特に、ＩｏＴ機器の不正操作は、ユーザが意図する動作とは異なる動作を機器にさせることにより、ユーザの不安感を煽るだけではなく、例えば空調の設定温度を変更したり、ヘルスケア機器の設定を変更したりする等、人命に直結するような攻撃も考えられる。このことから、ＩｏＴ機器の不正操作の防止は、重要な課題となっている。
【００１７】
従来、ネットワークを介した攻撃は、セキュリティソフト及びＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）の導入による対策が取られてきた。セキュリティソフト及びＩＤＳでは、既知の不正パケットをパターンマッチングしたり、トラヒックの統計情報に対して外れ値を検知したりすることにより、異常の検知を行うことができる。しかしながら、不正操作時の通信は、ユーザが機器操作を行う際と同じプロトコルに従った通信である。このため、パケットの特徴量及び通信手順からは、不正操作を検知することは困難である。また、機器の操作に必要なパケットは少数であるため、トラヒックの統計情報を用いても不正操作の検知は困難である。さらに、ユーザが実際に利用しているスマートフォンが、感染したマルウェアによって踏み台として不正操作が行われる可能性もあり、操作元の端末情報を用いたとしても、不正操作とユーザの操作との区別は困難である。
【００１８】
以上のことから、ユーザによる複数の機器の操作に関する行動を学習し、学習結果に基づいて、ネットワークに接続された機器への不正操作を検知する異常検知装置、異常検知方法及びプログラムが求められている。
【００１９】
本開示では、全ての機器が接続しているホームゲートウェイにおいて、不正操作の検知を行うことを対象とする。ホームゲートウェイでは、ＩｏＴ機器の他、環境センサ及びスマートフォンとも接続しており、計時部から得た時間情報、及び室温、湿度等をセンシングした環境センサから得られるセンサ値、及びスマートフォンの接続、及び離脱といった情報から、ユーザの在室及び不在といった情報を把握することができる。さらに、ホームゲートウェイは、住宅外のネットワーク及び住宅内のスマートフォンから、ＩｏＴ機器を操作する通信を中継するため、ＩｏＴ機器へのネットワーク経由の操作も把握することができる。
【００２０】
まず、ユーザのＩｏＴ機器の操作に関する行動を学習することについて考える。各々の家庭内に存在する各々のユーザには、状況に応じて、自身の行動パターンが存在する。例えば、帰宅時に室温が低ければ、ユーザは、まずヒータを操作し、次の操作として加湿器をつけるといった行動をとる。しかし、室温が高い場合には、ユーザがヒータを操作することはほとんどない。また、複数の機器を操作する順序についても、ヒータを先につける、加湿器を先につけるといったユーザごとの特性があると考えられる。このことから、この異常検知システムでは、ユーザの家庭内の行動パターン、つまり、部屋への入室、複数の機器の操作、退室といった情報を、室内に設置されている、計時部から得た時間情報、温度、湿度等を示すセンサ値等を環境センサから得ることで学習する。
【００２１】
また、環境センサから得られるセンサ値と時刻とに基づいて、住宅内の状況を定義する。以降、住宅内の状況を、ｘ１，・・・，ｘｎのｎ種類のデータにより定義する。この場合、住宅内の１つの状況は、ｎ次元空間上の点としてあらわすことができる。本開示では、ｎ次元空間を、各次元に対して複数の閾値を定め、各々の状況ごとに格子状に分割する。すなわち、各々のデータｘｊについて、基準値ｘｊ（１），・・・，ｘｊ（ｋｊ）を用いて複数の状況を分割すると、ｘｊ（ｉ）≦ｘｊ＜ｘｊ（ｉ＋１）の場合、ｊ番目のデータに関してｉ番目の状況に分類される状況となる。
【００２２】
ユーザの１以上の操作は、上記で定義した住宅内の各々の状況に対応したイベント順序となる。この異常検知装置は、ユーザの操作に応じた複数の機器操作を学習する。イベントは、ホームゲートウェイで把握可能なユーザの入退室、ユーザの機器の操作を一つずつのイベントとしてみなす。そして、一のイベント発生から規定時間以内に発生した次のイベントは、連続したイベントとみなし、イベント順序を生成する。イベント順序は、最初に発生したイベントを根、最後のイベントを葉とする木構造としてモデル化（学習）される。このようにモデル化することにより、異常検知装置がイベント順序を取得した場合、イベント順序に含まれる一連のイベント順序が根から葉まで到達できる経路が、蓄積された木構造に含まれていることを調べることにより、蓄積されたイベント順序に含まれているか否かを確認する。
【００２３】
このように、本開示では、環境センサの観測内容に基づいて、住宅内の状況を分類する。そして、各々の状況において、機器操作、ユーザの入退室等といった発生したイベント順序を学習する。異常検知装置では、機器操作が行われた場合、現在の住宅内の状況に対応する学習されているイベント順序を確認する。そして、異常検知装置は、発生した機器操作が学習されたイベント順序と異なる場合に、操作を異常として検知する。これにより本開示では、不正操作されている機器の動作の異常を検知することができる。
【００２４】
以下、本開示の実施の形態について、図面を参照しながら説明する。以下に説明する実施の形態は、いずれも本開示の好ましい一具体例を示すものである。したがって、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であって本開示を限定する主旨ではない。よって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００２５】
なお、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略又は簡略化する。
【００２６】
以下、本開示の実施の形態に係る異常検知装置、異常検知方法及びプログラムについて説明する。
【００２７】
（実施の形態）
［構成］
［異常検知システム］
図１は、実施の形態に係る異常検知装置３を含む異常検知システム１を示す模式図である。
【００２８】
図１に示すように、異常検知システム１は、機器５が異常な動作を行った場合に、異常であることをユーザが有するスマートフォン、タブレット端末等の端末機器９等に出力するシステムである。ここでいう機器５は、パソコン及びスマートフォンだけでなく、インターネット１１と接続することが可能なＩｏＴ機器をも含み、例えば、パソコン、スマートフォン、冷蔵庫、エアコン、プリンタ、デジタルカメラ、照明装置等の機器である。また、本実施の形態におけるＩｏＴ機器は、冷蔵庫、エアコン、プリンタ、デジタルカメラ、照明装置等の機器であり、パソコン、スマートフォン等を含まない機器である。本実施の形態では、住宅内で異常検知システム１を用いた場合を想定しているが、これに限定されない。ユーザは、人の一例である。
【００２９】
図２は、実施の形態に係る異常検知システム１を示すブロック図である。図２に示すように、異常検知システム１は、第１無線アクセスポイントと、１以上の機器５と、環境装置７とを備える。
【００３０】
［第１無線アクセスポイント］
第１無線アクセスポイント２は、例えばパソコン、スマートフォン等の無線ＬＡＮクライアントを相互に接続したり、他のネットワークに接続したりする無線機である。本実施の形態では、第１無線アクセスポイント２は、インターネット１１、ゲートウェイを介したユーザが所有するスマートフォン等に接続している。
【００３１】
第１無線アクセスポイント２は、異常検知装置３と、通信部１３とを有する。
【００３２】
［異常検知装置］
異常検知装置３は、パソコン、スマートフォン、及びＩｏＴ機器の機器５等の動作を学習し、学習結果に基づいて、機器５への不正操作を検知して、異常を示す情報を出力することが可能な装置である。異常検知装置３は、例えば、ホームゲートウェイに設けられている。本実施の形態では、異常検知装置３は、ユーザの日常生活習慣で行われる機器５の動作を学習し、学習した内容と異なる動作を機器５が行った場合に、異常であることをユーザに報知する。例えば、異常検知装置３は、ユーザが所有する端末機器９に、異常を示す情報を送信するといったことを行う。本実施の形態では、異常検知装置３には、３つの機器５、及び環境装置７が無線通信可能に接続されている。
【００３３】
本実施の形態では、異常検知装置３は、１の第２無線アクセスポイントを介して機器５に接続している。また、他の第２無線アクセスポイントを介して端末機器９に接続している。なお、異常検知装置３は、第２無線アクセスポイントを介さず機器５及び端末機器９に接続してもよい。また、異常検知装置３は、通信部１３を有していてもよい。
【００３４】
異常検知装置３は、動作学習部３１と、異常検出部３３と、記憶部３７と、計時部３９とを備えている。
【００３５】
動作学習部３１は、所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器５に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する。複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。
【００３６】
状況について図３を用いて説明する。図３は、実施の形態に係る異常検知装置３が複数の状況に応じた動作モデルを示す説明図である。
【００３７】
図３で示すように、所定空間に存在するユーザが複数の機器を操作した場合において、所定空間における所定期間と温度範囲との関係を示す。図３では、所定期間を複数の時間区間に分割し、さらに、温度範囲を複数の温度区間に分割することで、時間と温度との関係が格子状に表される。この１つ１つに区切られた領域が、状況を示している。このため、動作学習部３１は、所定空間内に存在している各々の機器をユーザが操作することによって、各々の状況に応じて各々の機器操作の順序をイベント順序として学習する。例えば、機器Ａを操作した後に機器Ｂを操作する場合、機器Ａ、Ｂのこの順序がイベント順序となる。なお、ここでいう所定空間は、例えば、住宅、住宅内の部屋等である。本実施の形態では、複数の時間区間のそれぞれは１０分であり、複数の温度区間のそれぞれは５℃である。
【００３８】
図２及び図３に示すように複数の時間区間は、一日を一定時間で分割して得られる時間区間である。このため、各々の時間区間は、例えば１の時刻から他の時刻までの期間で表される。本実施の形態では、時間区間は５分間である。なお、複数の時間区間は、一日に限定されず、一分間、一時間等であってもよく、一日に限定されない。このような時間区間は、動作学習部３１が計時部３９から時刻及び日付を示す情報を取得することで、所定期間を複数の時間区間に分割される。
【００３９】
動作学習部３１の説明に戻る。動作学習部３１は、複数の機器に対する操作に加えて、ユーザが外部から所定空間に入ったことを含めたイベント順序を学習し、学習した結果を動作モデルとして記憶部３７に格納する。つまり、動作学習部３１は、ユーザが部屋に入室するという動作についても、イベント順序に含める。このため、ユーザが部屋に入室するときは、入室という動作が１つのイベント順序の最初のイベントとなり、ユーザが部屋から退室するときは、退室という動作が他のイベント順序の最後のイベントとなる。
【００４０】
一例を挙げると、パターンＸでは、ユーザが入室、機器Ａの操作、機器Ｂの操作のこの順序がイベント順序となるが、パターンＺでは、ユーザが入室、機器Ｂの操作、機器Ａの操作のこの順序がイベント順序となる。つまり、気温、入室した時間等の状況によっては、イベント順序が異なることがある。
【００４１】
なお、イベント順序に入室を含むことは絶対条件ではない。また、動作モデルに関しても同様に、入室を含むことは絶対条件ではない。このため、イベント順序及び動作モデルは、複数の機器の操作だけで構成されていてもよい。
【００４２】
さらに、動作学習部３１は、複数の状況のそれぞれごとに、ユーザが複数の機器の操作の順序を、操作をノードとする木構造として表現することで、イベント順序を学習し、学習したイベント順序を示す木構造を動作モデルとして記憶部３７に格納する。つまり、ユーザは、入室後に所定空間内にある複数の機器を操作する順序がいつも同一とは限らない。なぜなら、時間帯、室温、湿度等の状況が同じでも、ユーザが選択する操作が異なる場合があるからである。
【００４３】
具体的には、ユーザが部屋に入室した後に、機器Ａを操作して、機器Ｂを操作した後に、機器Ｃを操作するという、各々の機器の一連の操作を第１のイベント順序とする。また、ユーザが部屋に入室した後に、機器Ａを操作し、機器Ｃを操作するという、第２のイベント順序とする。この場合に、入室、機器Ａの操作までは同一のイベント順序であるため、機器Ａで分岐して、機器Ｂを操作する場合と機器Ｃを操作する場合とに分岐する。この場合では、機器Ａの操作をノードとして、状況によってユーザのイベント順序が、木構造のように枝分かれ的に変化する。このことから、木構造として表現されたイベント順序をユーザの行動モデルとする。
【００４４】
また、動作学習部３１は、ユーザが複数の機器を操作することで、環境装置７によって観測された機器の操作であることを示すイベントを、イベント発生から規定時間以内に発生したイベントを連続したイベントとみなすことにより、イベント順序を作成する。そして、動作学習部３１は、イベント順序を動作モデルとして記憶部３７に記憶する。なお、動作モデルは、ユーザの動作パターンごとにイベント順序が構成されるため、１つのイベント順序に限定されない。
【００４５】
例えば、機器Ａを操作した場合で、機器Ａを操作してから規定時間以内に機器Ｂを操作した場合に、機器Ａの操作と機器Ｂの操作とが連続したイベントとみなすことで、機器Ａ、Ｂのこの順序がイベント順序となる。つまり、動作学習部３１は、ユーザが複数の機器を操作することで、複数の機器が動作する順序を学習する。本実施の形態では、規定時間は、例えば５分である。
【００４６】
動作学習部３１は、一の操作と次の操作とが規定時間以内に発生した場合に、それらの操作をリンクで接続されたノードとする木構造を生成する。そして、動作学習部３１は、一の操作と次の操作とが規定時間を超えて発生した場合に、次の操作を、一の操作が属する木構造とは別の木構造のノードとして木構造を生成する。
【００４７】
一例を挙げると、動作学習部３１は、学習対象となる温度範囲と所定期間とからなる第１の状況を選択後、図３のパターンＸのように第１の状況に対応する木構造を更新することを繰り返すことにより、イベント順序を学習する。この学習では、生成された各々のイベント順序に対して、リンクで接続されたノードを動作学習部３１が追加することで、イベント順序の先頭が根、イベント順序の最後が葉となるような経路を持つ木構造を動作学習部３１が生成して、生成した木構造を動作モデルとして動作学習部３１が記憶部３７に格納する。そして、動作学習部３１は、学習対象となる複数の状況から第１の状況を選択後、第１の状況を超えて機器が操作された場合、第１の状況以外の第２の状況以内でユーザが操作した複数の機器の順序に基づいて、別の木構造を新たに生成する。
【００４８】
第１の状況を超えて機器が操作された場合とは、第１の状況で定められる期間（例えば図３ではａ０の時刻ｔ２〜ｔ３）を経過して、次の状況で定められる期間（例えば図３ではａ４の時刻ｔ３〜ｔ４）となった場合である。この場合では、次の状況で定められる期間に移るため、新たな木構造を生成される。
【００４９】
次に、動作学習部３１が別のユーザの行動を、イベント順序から除去する方法について、一例を挙げて説明する。
【００５０】
一般的に住宅内には複数のユーザが存在するため、生成されたイベント順序には、あるユーザが行う一連の行動に起因するイベントの間に、別のユーザの行動がノイズとして混入することも考えられる。そのため、このようなノイズを除去し、本質的なイベント順序を学習することが必要となる。このため、連続して発生したイベント順序に対して、別ユーザの行動がノイズとして混入することを考慮して、混入したイベントを除去することにより、イベント順序を生成する。
【００５１】
動作学習部３１は、木構造の生成において、一の操作と次の操作とが規定時間以内に発生した場合には、一の操作に対応するノードの全てを親ノードとして次の操作に対応する子ノードをリンクで接続して追加する、又は、子ノードが存在する場合は、子ノードと親ノードとを接続するリンクを１増やすことを、通信部１３で取得されるイベント情報ごとに繰り返すことによって学習する。なお、リンクを１増やすとは、リンクの数を１増やすことである。
【００５２】
具体的には、動作学習部３１は、木構造の生成において、最初に操作した機器又は入室を親ノードとする。動作学習部３１は、所定期間以内にユーザが次の操作を行った場合に、親ノードに対応する子ノードを追加し、親ノードと子ノードとをリンクで接続する。そして、動作学習部３１は、子ノードが存在する場合は、子ノードと親ノードとを接続するリンクを１増やす。このように、動作学習部３１は、通信部１３で取得されるイベント情報ごとに繰り返すことによって学習する。
【００５３】
また、この手順を繰り返すことにより、木構造のノードのうち、頻繁に操作されたノードは、対応するリンクの値が大きくなり、ノイズとして混入した別ユーザの行動に起因するイベントに関するノードは、頻繁に発生しないため、対応するリンクは小さいままとなる。これにより、生成された木構造のうち、リンクの小さなノードを除去した木構造を用いることにより、ユーザの一連の行動に起因するイベント順序を記録した木構造を生成する。ただし、本実施の形態では、短いイベント順序は生成されやすく、長い順序は生成されにくいという点を考慮する必要がある。そこで、リンクに対する所定閾値は、ノードの深さに応じて変える。ここでは、深さｄのノードのリンクに対する所定閾値をｎｄとし、異常検知した場合に、リンクｎｄよりも小さいノードを除外する。なお、本実施の形態では、木構造の根から葉まで到達できるかが判定の基準となる。そのため、ノードを除外した結果、ノード除外前に葉となっていたノードが配下に含まれていないノードについても除外する。
【００５４】
つまり、リンクの使用頻度が大きいものほど、リンクの数が上昇し、リンクに対する所定閾値以上となり、リンクの使用頻度が小さいものは、リンクに対する所定閾値以下となる。こうすることで、木構造の動作モデルからリンクの使用頻度が小さいものをノイズとして除去することができる。これにより、後述する、所定閾値以上のリンクだけで構成される部分木となる。
【００５５】
図４は、実施の形態に係る異常検知装置３が取得したイベント順序を示す説明図である。
【００５６】
図４に示すように、この例では、機器Ａの操作、機器Ｂの操作、機器Ｃの操作というイベントが連続して観測されている。この場合、動作学習部３１が図４に示すようなイベント順序を生成することにより、各々のイベントが別ユーザの行動に起因するノイズであった場合を考慮したイベント順序を生成することができる。例えば、機器Ａ〜Ｃの操作がこの順序のイベント順序である場合、ノイズがあれば、このイベント順序からノイズを除去したイベント順序を生成する。
【００５７】
動作学習部３１が生成する木構造の説明に戻る。動作学習部３１は、組み合わせによって特定される複数の状況のうち、１の状況で特定したイベント順序を、１の状況に隣接する状況のそれぞれごとに、複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する。
【００５８】
具体的には、動作学習部３１は、生成されたイベント順序を、現在の状況に合致している領域の学習のみではなく、周辺の領域の学習に用いる。つまり、現在の状況を表す各々の観測値ｘｉに対して、ｘｉ−αｉ以上ｘｉ＋αｉ以下に該当する状況であれば、現在のイベント順序を用いた学習を行う対象である領域とみなす。これにより、例えば、時刻ｔ２〜ｔ３かつ温度がＴ３〜Ｔ４の状況で発生したイベント順序を、隣接する状況といった類似した環境の学習に用いることが可能となり、少ないイベント順序で、各々の状況に対応したイベント順序を学習することが可能となる。図３で示す、時刻ｔ２〜ｔ３かつ温度がＴ３〜Ｔ４の状況に隣接する状況ａ０とは、時刻ｔ２〜ｔ３かつ温度がＴ２〜Ｔ３の状況ａ１、時刻ｔ２〜ｔ３かつ温度がＴ４〜Ｔ５の状況ａ２、時刻ｔ１〜ｔ２かつ温度がＴ３〜Ｔ４の状況ａ３、時刻ｔ３〜ｔ４かつ温度がＴ３〜Ｔ４の状況ａ４である。ここでいうαｉは、例えば、状況ａ１〜状況ａ４に対応する。
【００５９】
異常検出部３３は、異常判定時に用いるイベント順序も、動作学習部３１が学習用のイベント順序を生成する場合と同様に、前のイベント発生から所定時間以内に発生したイベントを連続したイベントとみなしつつ、別ユーザの行動に起因するノイズとなるイベントの混入を考慮する。ただし、異常検出部３３が異常検出を行う際には、この機器操作のイベントが異常か正常かを見分けるといった、正常か異常かの判断を行う対象のイベントが明確に決まっている。そのため、イベント順序を生成した際には、対象のイベントを含むイベント順序のみを生成する。例えば、機器Ａの操作、機器Ｂの操作、機器Ｃの操作というそれぞれのイベントが連続して発生した場合を想定する。機器Ａの操作、機器Ｂの操作についてそれぞれがノイズである場合には、機器Ｃの操作だけのイベント順序が生成される。
【００６０】
このように、異常検出部３３は、複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として特定し、検知により特定したイベント順序（検知したイベント順序）が記憶部３７に格納された動作モデルと一致するか否かを判断する。異常検出部３３は、検知したイベント順序が動作モデルと一致しない場合に、異常を示す情報を出力する。異常検出部３３がこのような判断を行うためには、学習した結果を動作モデルがすでに記憶部３７に記憶されていることが前提となる。
【００６１】
例えば、動作モデルが機器Ａの操作、機器Ｂの操作のこの順序のイベント順序である場合において、機器操作のイベント順序を検知する場合に、異常検出部３３は、検知したイベント順序が動作モデルと一致しているか否かを判断する。例えば、特定したイベント順序が動作モデルと一致している場合は、検知したイベント順序に異常は見られないため、ユーザの端末機器９に何ら報知を行わない。なお、異常検出部３３は、通信部１３を介して正常を示す情報を端末機器９に送信してもよい。検知したイベント順序が動作モデルと一致していない場合は、検知したイベント順序が異常であるため、異常検出部３３は、異常を示す情報を、端末機器９に出力する。
【００６２】
また、異常検出部３３は、複数の機器に対する操作に加えて、ユーザが外部から所定空間に入ったことを含めたイベント順序を検知し、検知したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断する。この場合では、例えば、ユーザの入室、機器Ａの操作、機器Ｂの操作のこの順序のイベント順序が動作モデルとなる。
【００６３】
また、異常検出部３３は、複数の状況のそれぞれごとに、操作の順序を、操作をノードとする木構造として表現して検知し、検知した木構造が記憶部３７に格納された動作モデルに含まれる木構造のいずれかに一致するか否かを判断し、いずれとも一致しない場合に、異常を示す情報を出力する。
【００６４】
具体的には、異常検出部３３は、生成された各々のイベント順序について、現在の状況に対応する領域を選択し、選択した領域に対応する木構造を記憶部３７から探索する。各々のイベント順序を用いた探索は、木構造の根から行い、イベント順序の先頭に対応する木構造の根を持つ木の根に移動する。その後、イベント順序の確認対象となる次のイベントに対応するノードが、現在位置の子ノードにあるかを調べ、子ノードに存在する場合は、そのノードに遷移する。この手順を繰り返し、木の葉まで到達できた場合は、学習したユーザの行動と一致するとみなすことができる。
【００６５】
このような探索を、生成された全てのイベント順序に対して行う。一つでも根から葉まで到達できる順序が存在すれば、その操作は正常な操作であると判定する。また、全てのイベント順序において、順序の先頭から最後までのイベントに該当する遷移が木構造の中に存在しない場合は、異常と判定する。
【００６６】
異常検出部３３も、一の操作と次の操作とが規定時間以内に発生した場合に、それらの操作をリンクで接続されたノードとする木構造を生成する。そして、異常検出部３３は、一の操作と次の操作とが規定時間を超えて発生した場合に、次の操作を、一の操作が属する木構造とは別の木構造のノードとして木構造を生成する。つまり、異常検出部３３は、第１の規定時間以内にユーザが操作した複数の機器の順序から、第１の木構造を生成する。異常検出部３３は、第１の規定時間の範囲を超えて機器が操作された場合、第１の所定期間の範囲以外の第２の所定期間以内でユーザが操作した複数の機器の順序から木構造を生成する。このため、異常検出部３３が生成したこの木構造が、動作モデルと一致しているか否かを判断する材料となる、検知した木構造となる。
【００６７】
具体的には、イベント順序の先頭から最後までの遷移が木構造の中にはあるものの、最後まで到達することができなかった場合は、その後のイベントを待たなければ、機器操作が正常であったか異常であったかを判定することができない。この場合、規定時間待機し、新たなイベントが発生しない場合は、学習した順序でのイベントが発生していないので、異常として検出する。また、規定時間待機し、新たなイベントが発生した場合は、イベントを含むイベント順序を再度生成し、木構造の探索を行うことにより、正常か異常かの判定を行う。
【００６８】
異常検出部３３は、動作モデルに含まれる木構造において、所定閾値以上のリンクだけで構成される部分木を用いることで、判断をする。つまり、異常検出部３３は、子ノードと親ノードとのリンクのそれぞれ所定閾値以上であるか否かを判断する。異常検出部３３は、リンクが所定閾値以上であれば、所定閾値以上となっている木構造における、部分木となるイベント順序を選択する。異常検出部３３は、選択された部分木におけるイベント順序と、検知したイベント順序とが一致するか否かを判断する。
【００６９】
なお、この異常検知装置３では、動作学習部３１が複数の機器に対する操作の順序をイベント順序として学習してから、異常検出部３３が異常検知を行ってもよいが、新しいイベント順序が発生することもあるため、動作学習部３１が複数の機器に対する操作の順序をイベント順序として学習しながら、異常検出部３３が異常検知を行ってもよい。イベント順序として学習しながら異常検出部３３が異常検知を行う場合について説明する。例えば、ユーザの端末機器９に異常を示す信号を送信しても、ユーザが異常でないと判断して、正常を示す情報を端末機器９から異常検知装置３が受信すると、記憶部３７に格納していた正常を示す情報として判断されたイベント順序を動作モデルとして追加する。こうすることで、新しく発生したイベント順序を反映することができる。
【００７０】
記憶部３７は、学習したイベント順序を、学習した結果とした動作モデルとして記憶する。つまり、記憶部３７は、複数の状況に対応したイベント順序を動作モデルとして記憶する。記憶部３７は、不揮発性のメモリであってもよく、例えば、ＳＲＡＭ等の揮発性のメモリであってもよい。
【００７１】
計時部３９は、環境センサ７１から取得したセンサ値に時刻及び日付を示す情報を付加する。計時部３９は、時刻及び日付を示す情報を動作学習部３１に出力する。計時部３９は、例えば、リアルタイムクロックなどのクロック回路である。なお、動作学習部３１がセンシングしたセンサ値に時刻及び日付を示す情報を付加してもよい。
【００７２】
［通信部］
通信部１３は、インターネット１１と異常検知装置３とに接続され、外部の機器等から情報を受信することが可能な装置である。通信部１３は、所定空間内に設置された複数の機器と接続され、複数の機器のそれぞれに対して操作がされたことを示すイベント情報を取得し、異常検知装置３に出力する。つまり、通信部１３は、各々の機器から機器自身が動作した内容を示すイベント情報を取得し、異常検知装置３に出力する。
【００７３】
また、通信部１３は、所定空間内に設置された環境装置７と接続され、環境装置７からセンサ値を取得する。通信部１３は、例えば、無線通信モジュールとアンテナ等によって構成される。
【００７４】
さらに、通信部１３は、ユーザが外部から所定空間に入ったことを示すイベント情報を取得し、異常検知装置３に出力する。つまり、通信部１３は、環境装置７がセンシングしたユーザのイベント情報を、環境装置７から受信し、異常検知装置３に出力する。また、通信部１３は、環境装置７がセンシングした複数の機器の状況をセンシングし、センシングした情報からセンサ値を受信してもよい。
【００７５】
［環境装置］
環境装置７は、所定空間内に設置され、所定空間内の湿度、温度、時刻等をセンシングする。環境装置７は、環境センサ７１と、通信部７５とを有する。
【００７６】
環境センサ７１は、センシングしたセンサ値を生成し、通信部７５を介して異常検知装置３に送信する。環境センサ７１からセンサ値を取得する場合における複数の状況は、通信部７５で取得されたセンサ値が予め定められた複数のセンサ値区間のいずれに属するかを示す情報と、時間区間との組み合わせによって特定される。
【００７７】
環境センサ７１は、湿度センサ、温度センサ等である。なお、環境センサ７１は、これに限定されず、人感センサ等であってもよく、これらセンサを複数組み合わせていてもよい。本実施の形態では、環境センサ７１は、少なくとも温度センサ及び人感センサを有する。
【００７８】
なお、環境装置７が計時部３９を有していてもよい。この場合、センサ値にセンシングした時刻及び日付を示す情報を付加する。
【００７９】
［動作］
次に、異常検知装置３の動作について説明する。
【００８０】
図５は、実施の形態に係る異常検知装置３の動作学習部３１の動作を示すフロー図である。
【００８１】
所定空間は、ユーザの住宅内の部屋を想定している。部屋の内部には複数の機器が設けられている。図３では、パターンＸで示すように、ユーザが室内に入室した後に、機器Ａを操作して機器Ｂを操作する場合を想定する。ここでは、異常検知装置３の動作学習部３１がユーザの行動を学習する場合について説明する。
【００８２】
図５に示すように、動作学習部３１は、複数の機器に対する操作の順序をイベント順序として学習する（Ｓ１１）。具体的には、ユーザが室内に入室した場合、環境センサ７１は、ユーザが外部から入室したことを検知する。環境センサ７１は、入室したことを示すイベント情報を異常検知装置３に送信する。
【００８３】
次に、異常検知装置３の動作学習部３１は、通信部１３を介してイベント情報を受信する（通信ステップ）。動作学習部３１は、入室をイベント順序の最初のイベントとして学習し、学習した結果を動作モデルとして記憶部３７に格納する（Ｓ１２：動作学習ステップ）。
【００８４】
次に、動作学習部３１は、一の操作と次の操作とが規定時間以内に発生したか否かを判断する（Ｓ１３）。つまり、動作学習部３１は、入室してから規定時間以内に、複数の機器の少なくともいずれかを操作したか否かを判断する。
【００８５】
図３及び図５に示すように、ここではユーザは、複数の機器のうち１の機器Ａを操作する。機器Ａは、操作によるイベント情報を異常検知装置３に送信する。これにより、異常検知装置３は、機器Ａからイベント情報を取得する。このため、ステップＳ１３でＹＥＳとなり、ステップＳ１１に戻る。動作学習部３１は、機器Ａの操作をイベント順序の２番目のイベントとして学習（Ｓ１１）し、学習した結果を動作モデルとして更新して記憶部３７に格納する（Ｓ１２）。
【００８６】
さらに、別の機器Ｂを操作する。別の機器Ｂは、イベント情報を異常検知装置３に送信する。これにより、異常検知装置３は、別の機器Ｂからイベント情報を取得する。このため、ステップＳ１３でＹＥＳとなり、ステップＳ１１に戻る。動作学習部３１は、別の機器Ｂが操作をイベント順序の３番目のイベントとして学習（Ｓ１１）し、学習した結果を動作モデルとして更新して記憶部３７に格納する（Ｓ１２）。そして、ユーザが所定期間にいずれかの機器の操作を行わなければ（Ｓ１３でＮＯ）、入室、機器Ａ及び機器Ｂのこの順序を示すイベント順序が動作モデルとなる。
【００８７】
図５に示すように、次に、動作学習部３１は、学習したイベント順序を動作モデルとする（Ｓ１４）。そして、動作学習部３１による学習は終了する。これにより、異常検知装置３は、ユーザの行動を学習することができる。
【００８８】
ここでは、機器の動作が異常であるか正常であるかの異常検出部３３による判断の動作を説明する。
【００８９】
図６は、実施の形態に係る異常検知装置３の異常検出部３３の動作を示すフロー図である。
【００９０】
図６に示すように、まず、異常検出部３３は、検知したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断する（Ｓ２１）。
【００９１】
検知したイベント順序が動作モデルと一致する場合（Ｓ２１でＹＥＳ）に、異常検出部３３は、正常なイベント順序であると判断する。そして、この場合では、検知したイベント順序が正常であるため、この処理を終了する。
【００９２】
一方、検知したイベント順序が動作モデルと一致しない場合（Ｓ２１でＮＯ）に、異常検出部３３は、検知したイベント順序が異常であると判断する。異常検出部３３は、異常を示す情報を生成して、通信部１３を介して、ユーザの端末機器９に出力する（Ｓ２２：異常検出ステップ）。そして、この処理を終了する。これにより、ユーザは、機器が異常な動作を行っている可能性があることを認知することができる。
【００９３】
ここでは、異常検知装置３の動作学習部３１が学習したイベント順序を示す木構造を動作モデルとすることについて説明する。
【００９４】
図７は、実施の形態に係る異常検知装置３の動作学習部３１の動作を示すフロー図である。
【００９５】
図７に示すように、ユーザが行う動作は、同じ時間帯、同じ温度等であっても状況に応じて変動することがある。このため、本実施の形態では、動作学習部３１が学習したイベント順序を示す木構造を動作モデルとする。ユーザが室内に入室した後に、機器Ａだけを操作する場合を想定する。また、異常検知装置３がユーザの行動を学習しつつ、複数の機器の動作を取得する場合を想定する。
【００９６】
なお、図７で示す条件は図５で示す条件と同様であり、同一の内容については適宜その説明を省略する。
【００９７】
図７に示すように、まず、動作学習部３１は、複数の状況のそれぞれごとに、操作の順序を、操作をノードとする木構造として表現することで、イベント順序を学習する（Ｓ３１）。具体的には、ユーザが室内に入室した場合、環境センサ７１は、ユーザが外部から入室したことを検知する。環境センサ７１は、入室したことを示すイベント情報を異常検知装置３に送信する。この入室が親ノードとなる。
【００９８】
次に、異常検知装置３の動作学習部３１は、通信部１３を介してイベント情報を受信する（通信ステップ）。動作学習部３１は、入室をイベント順序の最初のイベントとして学習し、学習した結果を動作モデルとして記憶部３７に格納する（Ｓ３２：動作学習ステップ）。
【００９９】
次に、動作学習部３１は、一の操作と次の操作とが規定時間以内に発生したか否かを判断する（Ｓ３３）。つまり、動作学習部３１は、入室してから、複数の機器の少なくともいずれかを操作したか否かを判断する。
【０１００】
図３及び図７に示すように、ここではユーザは、複数の機器のうち１の機器Ａを操作する。機器Ａは、イベント情報を異常検知装置３に送信する。これにより、異常検知装置３は、機器Ａからイベント情報を取得する。このため、ステップＳ３３でＹＥＳとなり、ステップＳ３１に戻る。動作学習部３１は、機器Ａが操作をイベント順序の２番目のイベントとして学習（Ｓ３１）し、学習した結果を動作モデルとして更新して記憶部３７に格納する（Ｓ３２）。この機器Ａの操作が子ノードとなる。そして、ユーザが所定期間にいずれかの機器の操作を行わなければ（Ｓ３３でＮＯ）、入室、機器Ａのこの順序を示すイベント順序が、図３で示された動作モデルに付加された木構造として表現される。この木構造が、動作モデルとなる。
【０１０１】
図７に示すように、次に、動作学習部３１は、学習したイベント順序を示す木構造を動作モデルとする（Ｓ３４）。
【０１０２】
次に、動作学習部３１は、木構造の生成において、子ノードが存在する場合は、子ノードと親ノードとを接続するリンクを１増やし、動作モデルを更新する（Ｓ３５）。つまり、機器からイベント情報を取得することで、動作学習部３１は、ノード間の動作回数に応じてリンクを増加させる。そして、動作学習部３１は学習を終了する。これにより、異常検知装置３は、ユーザの行動を学習することができる。
【０１０３】
ここでは、木構造における、異常検出部３３による異常であるか正常であるかの判断の動作を説明する。
【０１０４】
図８は、実施の形態に係る異常検知装置３の異常検出部３３の動作を示すフロー図である。
【０１０５】
図８に示すように、まず、異常検出部３３は、動作モデルに含まれる木構造において、所定閾値以上のリンクだけで構成される部分木を、動作モデルとする（Ｓ４１）。
【０１０６】
次に、異常検出部３３は、検知したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断する（Ｓ４２）。
【０１０７】
検知したイベント順序が動作モデルと一致する場合（Ｓ４２でＹＥＳ）に、異常検出部３３は、正常なイベント順序であると判断する。そして、この場合では、検知したイベント順序が正常であるため、この処理を終了する。
【０１０８】
一方、検知したイベント順序が動作モデルと一致しない場合（Ｓ４２でＮＯ）、異常検出部３３は、検知したイベント順序が異常であると判断する。
【０１０９】
次に、異常検出部３３は、異常を示す情報を生成して、通信部１３を介して、ユーザの端末機器９に出力する（Ｓ４３：異常検出ステップ）。例えば、図３のパターンＸにおいて、異常検知装置３がユーザの入室、機器Ａの操作、機器Ｃの操作となるイベント順序を所得した場合、入室、機器Ａまでは同一であるため、異常検出部３３が異常と判定しないが、機器Ｃの操作がされると、木構造に当該イベント順序が含まれていないため、異常検出部３３は、異常を示す情報を生成して、通信部１３を介して、ユーザの端末機器９に出力する。そして、この処理を繰り返す。これにより、ユーザは、ＩｏＴ機器が異常な動作を行っている可能性があることを認知することができる。
【０１１０】
図３及び図８に示すように、パターンＹで示すように、同じ時間帯、かつ同じ気温の状況であっても、異なるイベント順序が存在することもある。例えば、機器Ｂの動作を停止させる操作を行い、後に機器Ａの動作を停止させる操作を行い、ユーザが退室する。この場合では、パターンＸとは状況が異なるため、動作学習部３１は、新たな動作モデルを記憶部３７に格納する。
【０１１１】
［評価結果］
次に、異常検知装置３の評価結果について説明する。
【０１１２】
この評価結果では、評価用データを取得するため、研究室内に、ネットワーク接続可能な冷蔵庫、ヒータ、コーヒーメーカ等の全１５種類のＩｏＴ機器を設置し、図１のような仮想ホームネットワーク環境を構築した。ホームネットワーク上のユーザとして４人の被験者を用意し、機器の操作用のタブレット端末を４人の被験者のそれぞれに配布した。被験者のそれぞれには、自由に機器を使用しながら、１か月間自然に生活してもらった。この間、ホームネットワーク上を流れる全ての通信パケットをＰＣでキャプチャし、機器宛のパケットの有無から機器を操作したタイミング、操作用タブレット端末のネットワークへの参加離脱のタイミングからユーザの入退室のタイミングといったデータを作成した。また、実験環境内に配置したセンサから温度、湿度、騒音に関するデータを取得した。ただし、本データの取得期間は、１か月と短いため、室温及び湿度が大きく変化しなかったことから、状況にはセンサデータは用いず、時刻のみ用いることとした。そして、図９で示すようなユーザのイベント順序を学習した。図９は、実施の形態に係る異常検知装置３が学習したイベント順序を示す説明図である。図９は、学習されたイベント順序と、そのイベント順序が学習内容に含まれる時間帯の関係を示している。
【０１１３】
本評価では、ユーザの行動を学習した後に、正常なユーザの操作を誤検知するか否か、あるいは、疑似的に混入した不正操作を判別するか否かを評価した。
【０１１４】
まず、誤検知率の評価について説明する。
【０１１５】
本評価では、正常なユーザの操作が誤って不正操作と判別されないか否かを確認する。本評価を行うためには、正常なユーザの挙動に関するデータセットを、学習用データセットとテスト用データセットに分け、学習用データセットで学習を行ったのちに、テスト用データセットを入力とした際の誤検知について調べる。本評価に用いることができる機器使用のデータが限られているため、ＬＯＯＣＶ（Ｌｅａｖｅ−Ｏｎｅ−Ｏｕｔ  Ｃｒｏｓｓ−Ｖａｌｉｄａｔｉｏｎ）により、誤検知率の評価を行った。ＬＯＯＣＶでは、データを一定間隔に分割し、分割されたデータのうち、特定の一個分以外を学習データ、残りの一個分のデータをテストデータとして検証を行い、それを全ての分割された各々のデータに対してそれぞれ評価を行う。本評価では、１か月分のデータを１日単位で分割し、ある１日以外の日時のデータを学習用データ、残りの１日間のデータをテストデータとして利用した。そして、テストデータ中に含まれる機器操作のうち、誤って異常であると判定されてしまった操作数と、テストデータに含まれる総操作数をカウントした。そして、ＬＯＯＣＶにおける全評価結果において、テストデータに含まれる総操作数に対する誤って異常であると判定されてしまった操作数の割合を誤検知率とした。
【０１１６】
次に、検知率の評価について説明する。
【０１１７】
本評価では、テストデータに対して加えた不正操作を提案手法により検知できたか否かを確認する。本評価にあたり、誤検知率の評価とそろえるために、１か月分のデータを１日単位で分割し、ある１日以外の日時のデータを学習用データ、残りの１日間のデータをテストデータとして利用した。そして、攻撃者は特定の一台の機器にしか、不正操作を試みないと仮定し、各々の１日間のテストデータに対して不正操作パケットを１００回分ランダムな時刻に混入し、学習用データから学習した行動パターンに基づいて、テストデータの検証を行った。検証では、混入した全不正操作のうち、不正操作であると判定できたものの割合を検知率と定義し、評価に用いた。
【０１１８】
次に、評価結果について説明する。
【０１１９】
図１０は、異常検知装置３の検知率の評価の設定を示す説明図である。図１０は、図９に示したパラメータで提案手法を動作させた際に学習されたヒータの操作を含むイベント順序を示す。
【０１２０】
本評価では、設置した機器のうち、不正操作によって火災が発生する等の最も深刻な脅威が考えられるヒータに焦点を当てた。図９に示すように、４つの行動パターンとその行動パターンが行われる時間帯を確認することができる。多くの時間帯で確認された動作は、加湿器の操作後にヒータを操作するという行動パターンである。被験者は、ヒータをつける前に加湿器をつけるという習慣があるとする。本実施の形態により、被験者の習慣を学習することができていると想定する。また、昼から夕方にかけては、加湿器を操作後、ヒータを操作という行動や、ヒータを操作後、ユーザ０１が退室するという行動が学習されている。これは、加湿器やヒータを操作しているのがユーザ０１であり、ユーザ０１が昼の休憩や帰宅時に、ヒータの電源を切ったのちに加湿器の電源を切るという習慣があり、異常検知装置３がこの習慣を学習していると想定する。また、この帰宅時と思われる行動パターンは、１２時半以降にしか観測されていない。このため、異常検知装置３は、午前中に同様のイベントが発生したとしても、異常であると検知することが可能となっている。
【０１２１】
図１１は、異常検知装置３の評価結果を示す説明図である。図１１は、図１０に示したパラメータにおける、検知率、誤検知率を示す。図１１に示すように、誤検知を６．２５％に抑えて９９．６％の不正操作を検知することができたことが分かる。これは、異常検知装置３がユーザの機器操作に起因するイベントの発生順を学習することができ、学習した順序に従った機器操作がされていない限り、不正操作として検知することができる。次にパラメータが検知率、誤検知率に与える影響について評価を行った。パラメータの中でも、αｉの値は、各々の状況の学習用データ数や状況認識の粒度に影響を与え、検知性能への影響も大きいと考えられる。また、ｎｉの値も学習されるイベント順序に影響を与え、ｎｉの値が小さいと、多くの種類のイベント順序が学習結果に残り、誤検知を減らすことができる反面、正常と判定されるパターンが増え、検知率の悪化を招く可能性がある。逆に、ｎｉの値が大きいと、ノイズ的に混入したイベントは除去されるため、頻繁に発生するイベント順序のみを残した学習結果を得ることができる。しかし、ユーザが通常の操作で発生させる頻度の少ない操作手順は学習結果から除外されるため、誤検知を増やしてしまう可能性がある。そこで、本実施の形態では、αｉの値、ｎｉの値を変化させて、検知率、誤検知率を評価した。
【０１２２】
図１２は、実施の形態に係る異常検知装置３の検知率と誤検知率との関係を示す説明図である。
【０１２３】
図１２の（ａ）、及び図１２の（ｂ）にｎ１の値、及びαｉの値を変化させた場合の検知率と、誤検知率との関係を示している。また、図１２の（ｃ）及び図１２の（ｄ）にｎｉ（ｉ≧２）、及びαｉの値を変化させた場合の検知率と誤検知率との関係を示している。いずれの図も横軸がαｉの値、縦軸が検知率、あるいは誤検知率を示し、ｎ１やｎｉ（ｉ≧２）を異なる値に設定した複数の線を描画している。いずれの評価においても、規定時間は３００秒とし、ｎ１を変化させる場合は、ｎｉ（ｉ≧２）は３とし、ｎｉ（ｉ≧２）を変化させる場合は、ｎ１を９とした。また、ｎｉ（ｉ≧２）を変化させる際には、ｎｉ（ｉ≧２）は全て同一の値に設定した。
【０１２４】
図１２の（ａ）に示すように、ｎ１が小さい場合は、検知率が著しく低下することが分かる。これは、学習時に生成されたヒータの操作のみからなるイベント順序も学習結果として反映されるためである。その結果、機器の操作順に関係なく、ヒータが操作されたことのある時間帯の操作は全て正常と検知してしまうためである。それに対して、ｎ１が７以上の場合、９９％以上の高い検知率を達成可能である。ｎ１を大きくすることにより、単一の機器操作しか含まないイベント順序は学習結果に残らず、学習された順での機器操作が行われないと、不正操作として検知できる。
【０１２５】
図１２の（ｃ）、及び図１２の（ｄ）に示すように、ｎｉ（ｉ≧２）が大きくなるにつれ、検知率が上がる一方、誤検知率も上がることが分かる。これは、ｎｉ（ｉ≧２）が大きくなるにつれ、頻繁に観測されたイベント順序のみ、不正操作の検知に用いられるようになるためである。その結果、機器の操作の頻度が低い時間帯での機器操作の発生、及び、あまり行われない順序での機器操作の発生を不正操作と検知しやすくなる一方、実際のユーザが行った、頻度の低い操作順での操作も不正操作として検知されるようになる。
【０１２６】
また、図１２の（ａ）、及び図１２の（ｄ）に示すように、αｉの値も検知率、誤検知率に大きく影響を与え、αｉの値を大きくすると、検知率、誤検知率ともに下がることが分かる。これは、αｉを大きくすることにより、観測された各々のイベント順序が、より多くの時間帯での学習に利用されるためである。その結果、αｉが小さい場合は、限られた時間帯の機器操作しか正常と判定しなかったのに対して、αｉが大きくなると、時間帯によらず、学習されたイベントの発生順と合致さえしていれば、正常であると判定されるようになる。以上の評価結果より、提案手法は適切にパラメータを設定することにより、誤検知を６．２５％に抑えて９９．６％の不正操作を検知でき、高い検知性能を達成することが分かった。ただし、検知性能はパラメータに依存し、適切なパラメータは、機器の使用頻度等の環境に依存する可能性がある。
【０１２７】
このように、異常検知装置３では、時刻、及びセンサ等で観測された温度等の状況ごとに、ユーザが機器操作を行う順を学習する。機器操作が行われた際には、学習したその状況下で、機器操作の順序と照合し、不一致であれば不正操作と検知する。このようにして、異常検知装置３では、ホームネットワークに接続された機器に対する不正操作を検知する。
【０１２８】
［作用効果］
次に、本実施の形態おける異常検知装置３、異常検知方法及びプログラムの作用効果について説明する。
【０１２９】
上述したように、本実施の形態に係る異常検知装置３は、所定空間内に設置された複数の機器と接続され、複数の機器のそれぞれに対して操作がされたことを示すイベント情報を通信部１３を介して取得する異常検知装置であって、記憶部３７と、所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する動作学習部３１と、複数の状況のそれぞれごとに、通信部１３で取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として特定し、特定したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出部３３とを備える。そして、複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。
【０１３０】
このように、動作学習部３１は、所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、複数の機器に対する操作の順序をイベント順序として学習する。異常検出部３３は、複数の状況のそれぞれごとに、複数の機器に対する操作の順序をイベント順序として検知し、検知したイベント順序が動作モデルと一致するか否かを判断する。異常検出部３３は、学習した動作モデルが検知したイベント順序と一致しない場合に、異常を示す情報を出力する。そして、複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。このため、時間区間で特定される状況ごとに機器の操作順序を判断することで、精度よく複数の機器の動作が異常か否かを検知することができる。
【０１３１】
したがって、この異常検知装置３によれば、不正操作されている機器の動作の異常を検知することができる。
【０１３２】
また、本実施の形態に係る異常検知方法は、所定空間内に設置された複数の機器と接続され、複数の機器のそれぞれに対して操作がされたことを示すイベント情報を取得する通信ステップと、所定空間内の状況を分類して得られる複数の状況のそれぞれごとに、通信ステップで取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する動作学習ステップと、複数の状況のそれぞれごとに、通信ステップで取得されるイベント情報に基づいて、複数の機器に対する操作の順序をイベント順序として特定し、特定したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断し、一致しない場合に、異常を示す情報を出力する異常検出ステップとを含む。そして、複数の状況は、少なくとも、所定期間を分割して得られる複数の時間区間によって特定される。
【０１３３】
また、本実施の形態に係るプログラムは、異常検知方法に含まれるステップをコンピュータに実行させる。
【０１３４】
これらにおいても、上述と同様の作用効果を奏する。
【０１３５】
また、本実施の形態に係る異常検知装置３において、複数の時間区間は、一日を一定時間で分割して得られる時間区間である。
【０１３６】
これによれば、動作学習部３１が一日の内の特定の時間区間に対応した動作モデルを用意することができるため、異常検出部３３が時間区間に対応した動作モデルごとに検知したイベント順序が一致しているか否かを判断することができる。このため、この異常検知装置３では、１日のうちの特定の時間区間ごとに、精度よく複数の機器の状況を検知することができる。
【０１３７】
また、本実施の形態に係る異常検知装置３は、さらに、通信部１３を介して所定空間内に設置された環境センサ７１と接続され、環境センサ７１からセンサ値を取得する。また、複数の状況は、通信部１３で取得されたセンサ値が予め定められた複数のセンサ値区間のいずれに属するかを示す情報と、時間区間との組み合わせによって特定される。
【０１３８】
これによれば、複数のセンサ値区間と複数の時間区間との関係から、１のセンサ値区間に対応する１の時間区間で示される状況が特定される。このため、より適切に、特定された状況に応じた動作モデルをそれぞれ生成することができる。
【０１３９】
また、本実施の形態に係る異常検知装置３において、動作学習部３１は、組み合わせによって特定される複数の状況のうち、１の状況で特定したイベント順序を、１の状況に隣接する状況のそれぞれごとに、複数の機器に対する操作の順序をイベント順序として学習し、学習した結果を動作モデルとして記憶部３７に格納する。
【０１４０】
これによれば、動作学習部３１は、複数のセンサ値区間と複数の時間区間との関係から、格子状に表現された複数の状況のうち、１の状況で特定したイベント順序を、１の状況に隣接する状況のそれぞれごとに、複数の機器に対する操作の順序をイベント順序として学習する。これにより、動作学習部３１は、１の状況で特定したイベント順序に隣接する他の状況も、同様のイベント順序として学習して、学習した結果を動作モデルとして記憶部３７に格納する。このため、例えば、２０時台に発生したイベント順序を１９時台又は２１時台といった類似した状況の学習に用いることができるため、イベント順序を学習する機会が少ない環境であっても、状況に対応したイベント順序を学習することができる。
【０１４１】
また、本実施の形態に係る異常検知装置３はさらに、通信部１３を介して人が外部から所定空間に入ったこと（入室）を示すイベント情報を取得する。また、動作学習部３１は、複数の機器に対する操作に加えて、人が外部から所定空間に入ったことを含めたイベント順序を学習し、学習した結果を動作モデルとして記憶部３７に格納する。そして、異常検出部３３は、複数の機器に対する操作に加えて、人が外部から所定空間に入ったことを含めたイベント順序を特定し、特定したイベント順序が記憶部３７に格納された動作モデルと一致するか否かを判断する。
【０１４２】
これによれば、動作学習部３１は、複数の機器に対する操作に加えて、人が外部から所定空間に入室することを含めたイベント順序を学習する。異常検出部３３は、複数の機器に対する操作に加えて、人が外部から所定空間に入室することを含めたイベント順序を検知し、検知したイベント順序が動作モデルと一致するか否かを判断する。このように、人が所定空間に入室するという必須のイベントを複数の機器に対する操作に加えることで、入室というイベントの発生が無く機器が動作した場合は、異常な動作を行っている可能性が高いと考えられる。このため、異常検知装置３は、複数の機器の動作が正常であるか、又は異常であるかを、より精度よく検知することができる。
【０１４３】
また、本実施の形態に係る異常検知装置３において、動作学習部３１は、複数の状況のそれぞれごとに、操作の順序を、操作をノードとする木構造として表現することで、イベント順序を学習し、学習したイベント順序を示す木構造を動作モデルとして記憶部３７に格納する。そして、異常検出部３３は、複数の状況のそれぞれごとに、操作の順序を、操作をノードとする木構造として表現して特定し、特定した木構造が記憶部３７に格納された動作モデルに含まれる木構造のいずれかに一致するか否かを判断し、いずれとも一致しない場合に、異常を示す情報を出力する。
【０１４４】
これによれば、動作学習部３１は、複数の状況のそれぞれごとに、操作の順序を、操作をノードとする木構造として表現することで、イベント順序を学習する。異常検出部３３は、複数の状況のそれぞれごとに、特定した木構造が動作モデルに含まれる木構造のいずれかに一致するか否かを判断する。異常検出部３３は、いずれとも一致しない場合に、異常を示す情報を出力する。このため、この異常検知装置３では、ユーザの１以上ある行動パターンを木構造として学習しておくことで、複数の機器の動作が正常であるか、又は異常であるかを、より精度よく検知することができる。
【０１４５】
また、本実施の形態に係る異常検知装置３において、動作学習部３１及び異常検出部３３は、一の操作と次の操作とが規定時間以内に発生した場合に、それらの操作をリンクで接続されたノードとする木構造を生成し、一の操作と次の操作とが規定時間を超えて発生した場合に、次の操作を、一の操作が属する木構造とは別の木構造のノードとして木構造を生成する。
【０１４６】
ここで、イベント順序は、短いイベント順序ほど生成されやすく、長いイベント順序ほど生成されにくいという性質がある。仮に、学習した動作モデルが長かれば、検知したイベント順序が動作モデルと一致しなくなるといったことが頻発してしまう。しかし、本実施の形態に係る異常検知装置３によれば、動作学習部３１及び異常検出部３３は、一の操作と次の操作とが規定時間を超えて発生した場合に、次の操作を、一の操作が属する木構造とは別の木構造のノードとして木構造を生成する。このため、学習した動作モデルが長くなり過ぎることで、検知したイベント順序と動作モデルとが一致しないといった誤検知の発生を抑制することができる。その結果、この異常検知装置３では、複数の機器の動作が正常であるか、又は異常であるかを、より精度よく検知することができる。
【０１４７】
また、本実施の形態に係る異常検知装置３において、動作学習部３１は、木構造の生成において、一の操作と次の操作とが規定時間以内に発生した場合には、一の操作に対応するノードの全てを親ノードとして次の操作に対応する子ノードをリンクで接続して追加する、又は、子ノードが存在する場合は、子ノードと親ノードとを接続するリンクを１増やすことを、通信部１３で取得されるイベント情報ごとに繰り返すことによって学習する。そして、異常検出部３３は、動作モデルに含まれる木構造において、所定閾値以上のリンクだけで構成される部分木を用いることで、判断をする。
【０１４８】
これによれば、動作学習部３１は、木構造の生成において、一の操作と次の操作とが規定時間以内に発生した場合に、親ノードに子ノードをリンクで接続して追加する。また、動作学習部３１は、子ノードが存在する場合に、子ノードと親ノードとを接続するリンクを１増やす。異常検出部３３は、所定閾値以上のリンクだけで構成される部分木を用いて、動作モデルに含まれる木構造のいずれかに一致するか否かを判断する。このため、木構造が生成されても、ノイズとして混入した別ユーザの行動に起因するイベントを除外することができる。つまり、ノイズを含んだイベント順序は、ほとんど起こりえることはないため、リンクの低い部分を除去することで、複数の機器の動作が正常であるか、又は異常であるかを、より精度よく検知することができる。
【０１４９】
（その他変形例等）
以上、本開示について、実施の形態に基づいて説明したが、本開示は、上記実施の形態に限定されるものではない。
【０１５０】
例えば、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムでは、複数の所定空間が存在する場合に、所定空間ごとに、検知したイベント順序が動作モデルと一致するか否かを判断してもよい。
【０１５１】
また、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムでは、図３に示す場合に、例えば動作モデルから機器Ｂの操作を消去すると、入室、機器Ａの操作及び機器Ｂの操作のこの順序のイベント順序を消去し、入室、機器Ａの操作のみのイベント順序が残る。なぜなら、機器Ｂの操作を消去すると、入室、機器Ａの操作及び機器Ｂの操作のこの順序のイベント順序の存在意味がなくなるためである。
【０１５２】
また、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムでは、複数の機器の操作に対してイベント順序が作成されるが、イベント順序は、１つの機器のイベントで構成されていてもよい。また、イベント順序は、ユーザが所定空間に入室又は退室というイベントで構成されていてもよい。
【０１５３】
また、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムは、機器の動作を実現するソフトウェアの異常検知を行ってもよい。このため、機器はハードウェアに限定されず、異常検知装置、異常検知方法及びプログラムが異常を検知する対象は、機器が備えるソフトウェアであってもよい。
【０１５４】
また、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムにおいて、環境装置から異常検知装置がセンサ値を取得する構成であるが、これには限定されず、各々の機器からセンサ値を取得してもよい。例えば、各々の機器が温度湿度、温度等をセンシングするセンサを有している場合、機器のセンサからセンサ値を取得してもよい。このため、異常検知システムにおいて、環境装置は、必須の構成要件ではない。また、計時部においても同様であり、機器が計時部を有する場合は、機器からセンサ値に関連付けられた時間情報を取得してもよい。このため、異常検知装置において計時部は、必須の構成要件ではない。
【０１５５】
また、上記実施の形態に係る異常検知装置、異常検知方法及びプログラムに含まれる各処理部は典型的に集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。
【０１５６】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１５７】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵ又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０１５８】
また、上記で用いた数字は、全て本開示を具体的に説明するために例示するものであり、本開示の実施の形態は例示された数字に制限されない。
【０１５９】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【０１６０】
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０１６１】
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態、本開示の趣旨を逸脱しない範囲で実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本開示に含まれる。
【産業上の利用可能性】
【０１６２】
本開示は、１以上の機器が異常な動作を行ったことを、ユーザが認知することが可能であり、特に遠隔地のユーザに対して１以上の機器の異常行動をユーザが認知することが可能である。
【符号の説明】
【０１６３】
３  異常検知装置
５  機器
１３  通信部
３１  動作学習部
３３  異常検出部
３７  記憶部
７１  環境センサ
【図１】
2019101895.tif 000003
【図２】
2019101895.tif 000004
【図３】
2019101895.tif 000005
【図４】
2019101895.tif 000006
【図５】
2019101895.tif 000007
【図６】
2019101895.tif 000008
【図７】
2019101895.tif 000009
【図８】
2019101895.tif 000010
【図９】
2019101895.tif 000011
【図１０】
2019101895.tif 000012
【図１１】
2019101895.tif 000013
【図１２】
2019101895.tif 000014