(57)【要約】      （修正有）【課題】実運用前により精度の高い異常検知モデルを生成できる技術を提供する。【解決手段】異常検知システムのモデル生成部２０は、状態値格納部１４から提供される状態値から複数の特徴量を生成する手段２２と、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段２４と、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段２６と、追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価する手段２８とを含む。【選択図】図１
2019159902.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御演算を実行する制御演算部と、
前記制御演算部により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、
前記制御演算部により収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部と、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部とを備え、
前記モデル生成部は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成する手段と、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段と、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段と、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価する手段とを含む、異常検知システム。
【請求項２】
前記選択された組合せの特徴量のデータ系列の一部が前記学習データセットとして用いられるとともに、当該データ系列の残りが評価データセットとして用いられ、
前記検知精度を評価する手段は、前記追加学習データセットからなるモデルに前記評価データセットを適用したときの誤検知の確率を算出する、請求項１に記載の異常検知システム。
【請求項３】
前記モデル生成部は、前記評価データセットに統計的に生成された仮想の特徴量のデータ系列を追加して追加評価データセットを生成する手段をさらに含み、
前記検知精度を評価する手段は、前記追加評価データセットを用いて誤検知の確率を算出する、請求項２に記載の異常検知システム。
【請求項４】
前記モデル生成部は、前記追加される仮想の特徴量のデータ系列の統計的特性の設定を受付ける手段をさらに含む、請求項２または３に記載の異常検知システム。
【請求項５】
前記モデル生成部は、任意の特徴量が追加で選択されることで、前記検知精度が向上すると、当該任意の特徴量を前記モデルとして登録する手段をさらに含む、請求項１〜４のいずれか１項に記載の異常検知システム。
【請求項６】
前記モデル生成部は、前記生成された複数の特徴量のデータ系列の特定範囲に対して、正常および異常の少なくとも一方のラベルを付与する手段をさらに含む、請求項１〜５のいずれか１項に記載の異常検知システム。
【請求項７】
前記モデル生成部は、前記生成された特徴量の各々の重要度を算出する手段をさらに含み、
前記特徴量の組合せを選択する手段は、重要度の高い特徴量を優先的に選択する、請求項１〜６のいずれか１項に記載の異常検知システム。
【請求項８】
前記モデル生成部により決定された異常検知用パラメータおよび学習データセットを前記第１の異常検知部に設定する手段をさらに備える、請求項１〜７のいずれか１項に記載の異常検知システム。
【請求項９】
制御対象を制御するための制御装置に接続されるサポート装置であって、前記制御装置は、収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、前記収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部とを備え、前記サポート装置は、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部とを備え、
前記モデル生成部は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成する手段と、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段と、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段と、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価する手段とを含む、サポート装置。
【請求項１０】
異常検知システムにおけるモデル生成方法であって、前記異常検知システムは、
制御対象を制御するための制御演算を実行する制御演算部と、
前記制御演算部により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、
前記制御演算部により収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部と、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部とを備え、
前記モデル生成方法は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成するステップと、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択するステップと、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成するステップと、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価するステップとを含む、モデル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、監視対象に生じ得る異常を検知するための異常検知システム、異常検知システムに接続されるサポート装置、および異常検知システムにおけるモデル生成方法に関する。
【背景技術】
【０００２】
様々な生産現場において、機械や装置に対する予知保全により設備稼働率を向上させたいというニーズが存在する。予知保全とは、機械や装置に生じる何らかの異常を検知して、設備を停止しなければ状態になる前に、整備や交換などの保守作業を行うような保全形態を意味する。
【０００３】
このような予知保全を実現するために、機械や装置の状態値を収集するとともに、収集された状態値に基づいて、当該機械や装置に何らかの異常が生じているか否かを判断するような仕組みが提案されている。
【０００４】
例えば、特開２０１０−１９１５５６号公報（特許文献１）は、観測データの異常を検知するための正常事例の学習データを取捨選択して精度をあげる学習データの生成方法により、ユーザ負荷を軽減し、さらに早期に異常を高感度に検知することが可能な異常検知方法および異常検知システムを開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９１５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実際の生産現場への予防保全の適用を考えると、実運用の開始前に、未だ異常が発生したことのない機械や装置の異常を検知できるようにモデルを構築する必要がある。そのため、特開２０１０−１９１５５６号公報（特許文献１）に開示される方法において入力される、観測データの異常・正常情報を適切に用意できない場合もある。
【０００７】
そのため、実運用前に、可能な限り精度の高い異常検知モデルを用意しておきたいというニーズがある。
【０００８】
本技術は、実運用前により精度の高い異常検知モデルを生成できる技術を提供する。
【課題を解決するための手段】
【０００９】
本開示の一例に従う異常検知システムは、制御対象を制御するための制御演算を実行する制御演算部と、制御演算部により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、制御演算部により収集される状態値のうち少なくとも監視対象に関連する状態値を格納する状態値格納部と、状態値格納部から提供される状態値を用いて、第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、第２の異常検知部による検知結果に基づいて、異常検知用パラメータおよび学習データセットを決定するモデル生成部とを含む。モデル生成部は、状態値格納部から提供される状態値から複数の特徴量を生成する手段と、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段と、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段と、追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価する手段とを含む。
【００１０】
この開示によれば、統計的に生成された仮想の特徴量のデータ系列が追加された追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価できるので、実際に収集された状態値が少ない場合であっても、検知精度の評価をより適切に実施できる。
【００１１】
上述の開示において、選択された組合せの特徴量のデータ系列の一部が学習データセットとして用いられるとともに、当該データ系列の残りが評価データセットとして用いられ、検知精度を評価する手段は、追加学習データセットからなるモデルに評価データセットを適用したときの誤検知の確率を算出してもよい。
【００１２】
この開示によれば、追加学習データセットからなるモデルに対して、評価データセットを適用することで、実運用において予測される誤検知の確率を事前に算出できる。
【００１３】
上述の開示において、モデル生成部は、評価データセットに統計的に生成された仮想の特徴量のデータ系列を追加して追加評価データセットを生成する手段をさらに含んでいてもよい。検知精度を評価する手段は、追加評価データセットを用いて誤検知の確率を算出してもよい。
【００１４】
この開示によれば、評価データセットに対しても統計的に生成された仮想の特徴量のデータ系列を追加して追加評価データセットを用いることで、実際に収集された状態値が少ない場合であっても、検知精度の評価をより適切に実施できる。
【００１５】
上述の開示において、モデル生成部は、追加される仮想の特徴量のデータ系列の統計的特性の設定を受付ける手段をさらに含んでいてもよい。
【００１６】
この開示によれば、算出される検知精度などをユーザが実際に確認しながら、適切な程度で仮想の特徴量のデータ系列を追加できる。
【００１７】
上述の開示において、モデル生成部は、任意の特徴量が追加で選択されることで、検知精度が向上すると、当該任意の特徴量をモデルとして登録する手段をさらに含んでいてもよい。
【００１８】
この開示によれば、複数の特徴量のうち、実際に検知精度を向上させることができたものだけをモデルとして登録することで、最終的なモデルの検知精度を高めることができる。
【００１９】
上述の開示において、モデル生成部は、生成された複数の特徴量のデータ系列の特定範囲に対して、正常および異常の少なくとも一方のラベルを付与する手段をさらに含んでいてもよい。
【００２０】
この開示によれば、正常および異常のラベルを特徴量に付与することで、検知精度の向上およびモデル精度の向上を実現できる。
【００２１】
上述の開示において、モデル生成部は、生成された特徴量の各々の重要度を算出する手段をさらに含んでいてもよく、特徴量の組合せを選択する手段は、重要度の高い特徴量を優先的に選択するようにしてもよい。
【００２２】
この開示によれば、モデル精度を向上させることができる蓋然性の高い特徴量を優先的に評価できるので、効率的にモデルを構築できる。
【００２３】
上述の開示において、異常検知システムは、モデル生成部により決定された異常検知用パラメータおよび学習データセットを第１の異常検知部に設定する手段をさらに含んでいてもよい。
【００２４】
この開示によれば、第２の異常検知部を利用して決定された異常検知用パラメータおよび学習データセットを第１の異常検知部に反映でき、第１の異常検知部と第２の異常検知部との間で、状態値の収集、ならびに、異常検知用パラメータおよび学習データセットの決定または更新を繰返し実行できる。
【００２５】
本開示の別の一例に従えば、制御対象を制御するための制御装置に接続されるサポート装置が提供される。制御装置は、収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、収集される状態値のうち少なくとも監視対象に関連する状態値を格納する状態値格納部とを含む。サポート装置は、状態値格納部から提供される状態値を用いて、第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、第２の異常検知部による検知結果に基づいて、異常検知用パラメータおよび学習データセットを決定するモデル生成部とを含む。モデル生成部は、状態値格納部から提供される状態値から複数の特徴量を生成する手段と、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段と、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段と、追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価する手段とを含む。
【００２６】
この開示によれば、統計的に生成された仮想の特徴量のデータ系列が追加された追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価できるので、実際に収集された状態値が少ない場合であっても、検知精度の評価をより適切に実施できる。
【００２７】
本開示のさらに別の一例に従えば、異常検知システムにおけるモデル生成方法が提供される。異常検知システムは、制御対象を制御するための制御演算を実行する制御演算部と、制御演算部により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部と、制御演算部により収集される状態値のうち少なくとも監視対象に関連する状態値を格納する状態値格納部と、状態値格納部から提供される状態値を用いて、第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部と、第２の異常検知部による検知結果に基づいて、異常検知用パラメータおよび学習データセットを決定するモデル生成部とを含む。モデル生成方法は、状態値格納部から提供される状態値から複数の特徴量を生成するステップと、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択するステップと、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成するステップと、追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価するステップとを含む。
【発明の効果】
【００２８】
本技術によれば、実運用前により精度の高い異常検知モデルを生成できる。
【図面の簡単な説明】
【００２９】
【図１】本実施の形態に係る異常検知システムの機能的な構成例を示す模式図である。
【図２】本実施の形態に係る異常検知システムの全体構成例を示す模式図である。
【図３】本実施の形態に係る異常検知システムを運用するための処理手順の概要を示す模式図である。
【図４】本実施の形態に係る異常検知システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図５】本実施の形態に係る異常検知システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
【図６】本実施の形態に係る異常検知システムのソフトウェア構成例を示すブロック図である。
【図７】図６に示す解析ツールに含まれる機能モジュールの概要を示すブロック図である。
【図８】本実施の形態に係る異常検知システムの異常検知処理の基本的な考え方を説明するための模式図である。
【図９】本実施の形態に係る異常検知システムの異常検知処理における処理手順を概略した模式図である。
【図１０】図３に示す処理手順に含まれる解析処理（ＳＴ２）の内容を示す模式図である。
【図１１】図１０に示される（ａ）〜（ｅ）の処理の概要を視覚的に示す模式図である。
【図１２】本実施の形態に係るモデル生成処理におけるユーザによる設定操作の手順例を示すフローチャートである。
【図１３】図１２のステップＳ１０においてユーザに提供されるユーザインターフェイス画面の一例を示す模式図である。
【図１４】図１２のステップＳ１２においてユーザに提供されるユーザインターフェイス画面の一例を示す模式図である。
【図１５】本実施の形態に係るサポート装置の解析ツールが実行する処理手順を示すフローチャートである。
【図１６】本実施の形態に係るサポート装置の解析ツールが実行する特徴量の重要度を評価する処理を説明するための模式図である。
【図１７】本実施の形態に係るサポート装置の解析ツールによる学習データセットへの仮想データを追加する処理を説明するための模式図である。
【図１８】本実施の形態に係るサポート装置の解析ツールにより生成される仮想データの一例を示す模式図である。
【発明を実施するための形態】
【００３０】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３１】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００３２】
本実施の形態に係る異常検知機能を有する制御システムの機能的な構成例について説明する。以下の説明においては、主として、制御システムが有している異常検知機能に注目して説明するので、制御システム全体を「異常検知システム」とも称する。
【００３３】
図１は、本実施の形態に係る異常検知システム１の機能的な構成例を示す模式図である。図１を参照して、異常検知システム１は、制御演算部１０と、異常検知部１２と、状態値格納部１４とを含む。これらの構成は、基本的には、ＰＬＣ（プログラマブルコントローラ）などの制御装置に実装される。
【００３４】
制御演算部１０は、制御対象を制御するための制御演算を実行する。異常検知部１２は、制御演算部１０により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する。
【００３５】
本明細書において、「状態値」は、任意の制御対象（含む：監視対象）にて観測できる値を包含する用語であり、例えば、任意のセンサにより測定できる物理値や、リレーやスイッチなどのＯＮ／ＯＦＦ状態、ＰＬＣがサーボドライバに与える位置、速度、トルクなどの指令値、ＰＬＣが演算に用いる変数値などを含み得る。
【００３６】
本明細書において、「異常検知用パラメータ」および「学習データセット」は、監視対象に生じ得る異常を検知するためのモデルを定義するものであり、詳細については後述する。
【００３７】
状態値格納部１４は、制御演算部１０により収集される状態値のうち少なくとも監視対象に関連する状態値１６を格納する。状態値格納部１４には、基本的には、所定のサンプリング周期で収集される時系列データが格納される。すなわち、状態値格納部１４には、状態値１６のデータ系列が格納されることになる。
【００３８】
異常検知システム１は、さらに、モデル生成部２０および異常検知部３０を含む。これらの構成は、基本的には、制御装置に接続されるサポート装置に実装される。
【００３９】
異常検知部３０は、状態値格納部１４から提供される状態値１６を用いて、異常検知部１２と実質的に同一の検知処理を実行する。
【００４０】
モデル生成部２０は、異常検知部３０による検知結果に基づいて、異常検知用パラメータおよび学習データセットを決定する。
【００４１】
モデル生成部２０は、状態値格納部１４から提供される状態値１６から複数の特徴量を生成する特徴量生成機能２２と、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する特徴量選択機能２４と、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する特徴量追加機能２６と、追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価する検知精度評価機能２８とを含む。
【００４２】
特徴量追加機能２６において、収集された状態値から生成される特徴量のデータ系列に、統計的に生成された仮想の特徴量のデータ系列を追加することで、追加学習データが生成される。この追加学習データを用いて、各特徴量の組合せの検知精度を事前に評価することで、運用前に、検知精度の高いモデルを構成できる。
【００４３】
＜Ｂ．システムの全体構成例＞
まず、本実施の形態に係る異常検知システム１の全体構成例について説明する。図２は、本実施の形態に係る異常検知システム１の全体構成例を示す模式図である。
【００４４】
図２を参照して、本実施の形態に係る異常検知システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続されるサポート装置２００とを含む。図２には、異常検知システム１が包装機６００を異常検知の対象（以下、「監視対象」とも称す。）とする構成例を示す。
【００４５】
制御装置１００は、ＰＬＣなどの、一種のコンピュータとして具現化されてもよい。制御装置１００は、フィールドネットワーク２を介して制御対象に配置された１または複数のフィールドデバイスと接続されるとともに、別のフィールドネットワーク４を介して１または複数の操作表示装置４００と接続される。
【００４６】
制御装置１００は、さらに、上位ネットワーク６を介してデータベースサーバ３００に接続されてもよい。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。なお、データベースサーバ３００および操作表示装置４００はオプショナルな構成であり、異常検知システム１の必須の構成ではない。
【００４７】
フィールドネットワーク２およびフィールドネットワーク４は、産業用ネットワークを採用することが好ましい。このような産業用ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００４８】
制御装置１００は、制御対象を制御するための制御演算を実行する制御演算部（以下、「ＰＬＣエンジン１３０」とも称す。）に加えて、任意の監視対象について異常の有無を監視する処理部（以下、「異常検知エンジン１５０」とも称す。）を有している。異常検知エンジン１５０に関して、制御装置１００は、（１）監視対象から状態値を収集する処理、（２）収集した状態値から１または複数の特徴量を生成する処理、（３）生成した特徴量に基づいて異常検知する処理、を実行する。
【００４９】
制御装置１００において検知精度の高い異常検知エンジン１５０を実現するためには、監視対象の特性に応じた特徴量やしきい値などを適切に設定する必要がある。本実施の形態に係る異常検知システム１では、統計的な手法を用いて、収集された状態値が通常とは異なる特徴を示すと判断されるときに、監視対象が異常であると検知する。
【００５０】
このような異常検知エンジン１５０を実現するために、（１）異常検知に用いる特徴量および異常であるか否かを判断するためのしきい値を含む異常検知用パラメータと、（２）監視対象が正常であるときに現れる１または複数の状態値および／または特徴量を含む学習データセットとが用意される。
【００５１】
異常検知用パラメータおよび学習データセットの用意は、いずれの装置で実施してもよいが、図２に示す構成においては、制御装置１００により収集された状態値（収集データ）がサポート装置２００に与えられ、サポート装置２００が後述するような解析処理を実行することで、異常検知用パラメータおよび学習データセットを決定する。そして、サポート装置２００から制御装置１００に対して、異常検知用パラメータおよび学習データセットが与えられる。すなわち、サポート装置２００は、決定された異常検知用パラメータおよび学習データセットを制御装置１００の異常検知エンジン１５０に設定する。
【００５２】
なお、制御装置１００およびサポート装置２００を一体化した構成を採用してもよく、その場合には、単一の装置において異常検知用パラメータおよび学習データセットの決定、ならびに、異常検知処理の両方が実行されることになる。
【００５３】
図３は、本実施の形態に係る異常検知システム１を運用するための処理手順の概要を示す模式図である。図３を参照して、まず、制御装置１００において生データを収集する処理が実行される（ＳＴ１）。以下の説明において、「生データ」は、監視対象から収集された状態値の時系列データを意味する。基本的に、「生データ」は、監視対象から収集されたそのままの状態値を含むものであり、状態値から生成される特徴量などは含まれない。この生データの収集は、制御装置１００に実装される時系列データベース（以下、「ＴＳＤＢ」とも略称する。）に状態値を順次書込むことで実現される。
【００５４】
収集された生データは、サポート装置２００へ与えられ、解析処理が実行される（ＳＴ２）。この解析処理においては、異常検知用パラメータおよび学習データセットが生成される。以下の説明においては、監視対象に応じた異常検知用パラメータおよび学習データセットを生成する処理を「モデル生成処理」と称することもある。
【００５５】
生成された異常検知用パラメータおよび学習データセットは、制御装置１００へ与えられる。制御装置１００は、サポート装置２００からの異常検知用パラメータおよび学習データセットに基づいて、異常検知の運用を開始する（ＳＴ３）。このとき、制御装置１００（異常検知エンジン１５０）は、与えられた異常検知用パラメータに従って、監視対象から収集される状態値に基づいて特徴量を生成し、生成した特徴量に基づいて異常検知を実行する。
【００５６】
このように、異常検知エンジン１５０は、ＰＬＣエンジン１３０により収集される状態値のうち監視対象に関連する状態値を、異常検知用パラメータおよび学習データセットにより規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する異常検知部に相当する。
【００５７】
以上のような異常検知に係るより詳細な処理および機能などについては後述する。
再度図２を参照して、図２に示す構成における監視対象である包装機６００は、所定の搬送方向に搬送される包装体６０４に対するシール処理および／または切断処理を実行する。包装機６００は、同期して回転する一対のロータ６１０，６２０を有している。各ロータは、包装体６０４に接する位置での外周の接線方向が搬送方向と一致するように配置されており、ロータの表面が包装体６０４に接触することで、包装体６０４をシールおよび／または切断する。
【００５８】
包装機６００のロータ６１０，６２０は、サーボモータ６１８，６２８によって、それぞれ回転軸６１２，６２２を中心に同期して回転駆動される。ロータ６１０，６２０の表面には、それぞれ処理機構６１４，６２４が設けられており、処理機構６１４は、円周方向（回転方向）に前後して配置されたヒータ６１５，６１６と、ヒータ６１５とヒータ６１６との間に配置されたカッター６１７とを含む。同様に、処理機構６２４は、円周方向に前後して配置されたヒータ６２５，６２６と、ヒータ６２５とヒータ６２６との間に配置されたカッター６２７とを含む。ロータ６１０，６２０は、その外周面上に配置された、包装体６０４を切断するためのカッター６１７，６２７を含む。
【００５９】
ロータ６１０，６２０が包装体６０４の搬送速度と同期して回転することで、ヒータ６１５とヒータ６２５とによって、包装体６０４の紙面右側の位置において対向する面同士（上面と下面）がシール（接着）されるとともに、ヒータ６１６とヒータ６２６とによって、包装体６０４の紙面左側の位置において対向する面同士（上面と下面）がシール（接着）される。これらのシール処理と並行して、カッター６１７とカッター６２７とによって包装体６０４が切断される。このような一連の処理が繰返されることで、被包装物６０５を含む包装体６０４に対して、シールおよび切断が繰返し実行されて、個別包装体６０６が順次生成される。
【００６０】
ロータ６１０，６２０を回転駆動するサーボモータ６１８，６２８は、ドライバ（駆動装置）の一例である、サーボドライバ６１９，６２９によって回転速度やトルクなどが制御される。制御装置１００は、サーボドライバ６１９，６２９ならびにＩ／Ｏユニット１６から、包装機６００の状態値を収集できる。包装機６００の状態値としては、（１）ロータ６１０，６２０の回転位置（位相／回転角度）、（２）ロータ６１０，６２０の速度、（３）ロータ６１０，６２０の加速度、（４）サーボモータ６１８，６２８のトルク値、（５）サーボドライバ６１９，６２９の電流値、（６）サーボドライバ６１９，６２９の電圧値、などを含む。
【００６１】
制御装置１００は、包装機６００からの状態値に基づいて、包装機６００に対する異常検知を行う。異常検知を実行するにあたって、包装機６００からは複数の状態値を収集可能であり、いずれの状態値を用いるべきかを事前に決定する必要がある。また、各収集される状態値（時系列データ）をそのまま用いることも可能であるし、状態値の時系列データから何らかの特徴量を抽出して用いることも可能である。
【００６２】
本実施の形態に係るモデル生成処理においては、監視対象から収集される１または複数の状態値のうち、いずれの状態値を用いるのか、および／または、収集される状態値のどのような特徴量を用いるのか、といった内容を異常検知用パラメータとして決定する。
【００６３】
＜Ｃ．ハードウェア構成例＞
次に、本実施の形態に係る異常検知システム１を構成する主要な装置のハードウェア構成例について説明する。
【００６４】
（ｃ１：制御装置１００のハードウェア構成例）
図４は、本実施の形態に係る異常検知システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図４を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、上位ネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４−１，１２４−２，…とを含む。
【００６５】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、ＰＬＣエンジン１３０および異常検知エンジン１５０を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントとの間のデータ伝送などを制御する。
【００６６】
二次記憶装置１０８には、ＰＬＣエンジン１３０を実現するためのシステムプログラムに加えて、ＰＬＣエンジン１３０を利用して実行されるユーザプログラムが格納される。さらに、二次記憶装置１０８には、異常検知エンジン１５０を実現するためのプログラムも格納される。
【００６７】
上位ネットワークコントローラ１１０は、上位ネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００６８】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００６９】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００７０】
フィールドバスコントローラ１１８は、フィールドネットワーク２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、フィールドネットワーク４を介した他の装置との間のデータの遣り取りを制御する。
【００７１】
図４には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００７２】
（ｃ２：サポート装置２００のハードウェア構成例）
本実施の形態に係るサポート装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００７３】
図５は、本実施の形態に係る異常検知システム１を構成するサポート装置２００のハードウェア構成例を示すブロック図である。図５を参照して、サポート装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、光学ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、上位ネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのコンポーネントはバス２２０を介して接続される。
【００７４】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するようなモデル生成処理を含む各種処理を実現する。
【００７５】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、サポート装置２００において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム２２２と、制御装置１００との間で異常検知機能に関するデータを遣り取りするためのＰＬＣインターフェイスプログラム２２４と、本実施の形態に係るモデル生成処理を実現するための解析プログラム２２６と、ＯＳ２２８とが格納される。二次記憶装置２０８には、図５に示すプログラム以外の必要なプログラムが格納されてもよい。
【００７６】
サポート装置２００は、光学ドライブ２０４を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られて二次記憶装置２０８などにインストールされる。
【００７７】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能な記録媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７８】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。上位ネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００７９】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。表示部２１８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ２０２からの処理結果などを出力する。
【００８０】
図５には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８１】
＜Ｄ．ソフトウェア構成例／機能構成例＞
次に、本実施の形態に係る異常検知システム１を構成する主要な装置のソフトウェア構成例および機能構成例について説明する。図６は、本実施の形態に係る異常検知システム１のソフトウェア構成例を示すブロック図である。
【００８２】
図６を参照して、制御装置１００は、主要な機能構成として、ＰＬＣエンジン１３０と、時系列データベース（ＴＳＤＢ：Time Series Data Base）１４０と、異常検知エンジン１５０とを含む。
【００８３】
ＰＬＣエンジン１３０は、ユーザプログラム１３２を逐次解釈して、指定された制御演算を実行する。ＰＬＣエンジン１３０は、フィールドから収集される状態値を変数１３８の形で管理しており、変数１３８は予め定められた周期で更新される。ＰＬＣエンジン１３０は、制御装置１００のプロセッサ１０２がシステムプログラムを実行することで実現されてもよい。
【００８４】
本実施の形態に係る異常検知システム１を実現するにあたって、ユーザプログラム１３２は、特徴量生成命令１３４および書込命令１３６を含む。
【００８５】
特徴量生成命令１３４は、予め定められた状態値について、予め定められた処理に従って特徴量（例えば、所定時間に亘る平均値、最大値、最小値など）を生成する命令を含む。生成された特徴量が異常検知エンジン１５０における異常検知処理に用いられる。
【００８６】
書込命令１３６は、収集された状態値（変数１３８）を時系列データベース１４０に書込む命令を含む。
【００８７】
時系列データベース１４０に順次書込まれる状態値が生データ１４２として出力される。後述するように、時系列データベース１４０に格納される生データ１４２の一部は、サポート装置２００におけるモデル生成処理においても利用される。このように、時系列データベース１４０は、ＰＬＣエンジン１３０により収集される状態値のうち少なくとも監視対象に関連する状態値を格納する状態値格納部に相当する。
【００８８】
異常検知エンジン１５０は、予め与えられた学習データセット１６０を、監視対象を示すモデルとして用いて、異常検知用パラメータ１６２に従って、監視対象の異常の有無を監視する。異常検知エンジン１５０において、監視対象に何らかの異常が発生したと判断されると、異常の発生をＰＬＣエンジン１３０へ通知し、あるいは、予め定められた変数１３８に異常を示す値に更新する。
【００８９】
一方、サポート装置２００は、主要な機能構成として、解析ツール２３０と、ＰＬＣインターフェイス２３２と、可視化モジュール２３４と、イベント管理モジュール２３６とを含む。
【００９０】
解析ツール２３０は、制御装置１００において収集された状態値からなる生データ１４２を解析して、学習データセット１６０および異常検知用パラメータ１６２を決定する。解析ツール２３０は、典型的には、サポート装置２００のプロセッサ２０２が解析プログラム２２６を実行することで実現される。
【００９１】
ＰＬＣインターフェイス２３２は、制御装置１００から生データ１４２を取得する処理、および、決定した学習データセット１６０および異常検知用パラメータ１６２を制御装置１００へ送信する処理などを担当する。ＰＬＣインターフェイス２３２は、典型的には、サポート装置２００のプロセッサ２０２が解析プログラム２２６を実行することで実現される。
【００９２】
可視化モジュール２３４は、解析ツール２３０により提供される情報を画面ユーザインターフェイスとして可視化するとともに、ユーザからの操作を受付ける。
【００９３】
イベント管理モジュール２３６は、サポート装置２００の内部または外部で発生するイベントに応じて、各モジュールに必要な処理を実行させる。
【００９４】
可視化モジュール２３４およびイベント管理モジュール２３６は、典型的には、ＯＳに含まれる機能として提供される。
【００９５】
図７は、図６に示す解析ツール２３０に含まれる機能モジュールの概要を示すブロック図である。図７を参照して、サポート装置２００の解析ツール２３０は、主要な機能構成として、ユーザインターフェイス２４０と、ファイル管理モジュール２５０と、画面生成モジュール２６０と、解析モジュール２７０と、解析ライブラリ２８０とを含む。
【００９６】
ユーザインターフェイス２４０は、ユーザからの設定を受付けるとともに、ユーザに対して各種情報を提供するための統括的な処理を実行する。具体的な実装形態として、ユーザインターフェイス２４０は、スクリプトエンジン２４２を有しており、必要な処理を記述したスクリプトを含む設定ファイル２４４を読込んで、設定された処理を実行する。
【００９７】
ファイル管理モジュール２５０は、指定されたファイルなどからデータを読込むデータ入力機能２５２と、生成したデータなどを含むファイルを生成するデータ生成機能２５４とを含む。
【００９８】
画面生成モジュール２６０は、入力されたデータなどに基づいて折れ線グラフを生成する折れ線グラフ生成機能２６２、および、ユーザの操作を受けて各種パラメータを変更するパラメータ調整機能２６４を含む。パラメータの変更に伴って、折れ線グラフ生成機能２６２は折れ線を更新することもある。折れ線グラフ生成機能２６２およびパラメータ調整機能２６４は、グラフライブラリ２６６を参照して必要な処理を実行する。
【００９９】
解析モジュール２７０は、解析ツール２３０の主要な処理を実現するモジュールであり、特徴量生成機能２７２と、特徴量選択機能２７４と、パラメータ決定機能２７６とを有している。
【０１００】
特徴量生成機能２７２は、生データ１４２に含まれる任意の状態値の時系列データから特徴量を生成する。特徴量選択機能２７４は、異常検知処理に用いる特徴量を選択する処理および特徴量の選択を受付ける処理を実行する。パラメータ決定機能２７６は、異常検知処理に必要なパラメータを決定する処理を実行する。
【０１０１】
解析ライブラリ２８０は、解析モジュール２７０に含まれる各機能が処理を実行するためのライブラリを含む。より具体的には、解析ライブラリ２８０は、特徴量生成機能２７２が利用する特徴量生成ライブラリ２８２と、特徴量選択機能２７４が利用する特徴量選択ライブラリ２８４と、パラメータ決定機能２７６が利用する異常検知エンジン２８６とを含む。
【０１０２】
解析モジュール２７０に含まれる特徴量生成機能２７２が実行する処理は、制御装置１００のユーザプログラム１３２に記述される特徴量生成命令１３４（図６参照）に従って実行される処理と実質的に同一である。また、解析ライブラリ２８０に含まれる異常検知エンジン２８６は、制御装置１００の異常検知エンジン１５０（図６参照）が実行する処理と実質的に同一である。
【０１０３】
このように、サポート装置２００の異常検知エンジン２８６は、制御装置１００の時系列データベース１４０から提供される状態値（生データ１４２）を用いて、制御装置１００の異常検知エンジン１５０と実質的に同一の検知処理を実行する異常検知部に相当する。
【０１０４】
本実施の形態に係る異常検知システム１には、制御装置１００とサポート装置２００との両方において、同一の異常検知処理を実現できる環境が提供されている。このような環境によって、制御装置１００における異常検知処理をサポート装置２００において再現することができ、この結果、制御装置１００で実行させるべき異常検知処理を、サポート装置２００において事前に決定できる。
【０１０５】
より具体的には、サポート装置２００の解析モジュール２７０は、モデル生成部に相当し、解析ライブラリ２８０に含まれる異常検知エンジン２８６による検知結果に基づいて、異常検知用パラメータ１６２および学習データセット１６０を決定する。
【０１０６】
＜Ｅ．異常検知処理の概要＞
次に、本実施の形態に係る異常検知システム１が採用する異常検知処理の概要について説明する。
【０１０７】
本実施の形態においては、統計的に得られるデータ集合に対して、監視対象のデータが外れ値であると評価される場合に、異常値として検知する。
【０１０８】
図８は、本実施の形態に係る異常検知システム１の異常検知処理の基本的な考え方を説明するための模式図である。図８を参照して、まず、監視対象から収集される１または複数の状態値（監視対象は「正常」のラベルが付与されているとする）から特徴量１，２，３，・・・，ｎを生成し、生成された各特徴量を次元とする超空間上の対応する位置を順次プロットする。監視対象は「正常」のラベルが付与された状態値に対応する座標値群を正常値群として予め規定する。
【０１０９】
そして、任意のサンプリングタイミングで監視対象から収集された１または複数の状態値から対応する特徴量１，２，３，・・・，ｎを生成し、当該生成されたそれぞれの特徴量に対応する座標（図８の「入力値」に相当する。）を設定する。
【０１１０】
最終的に、超空間上における正常値群に対する入力値の外れ度合いに基づいて、当該入力値に対応するサンプリングタイミングにおける監視対象の異常の有無を判断する。図８に正常値群が、監視対象を示す「モデル」に相当する。
【０１１１】
このような外れ度合いに基づく異常検知の手法としては、各点から正常値群までの最短距離に基づいて異常を検知する手法（ｋ近傍法）、正常値群を含むクラスタを含めて距離を評価する局所外れ値因子（ＬｏＦ：local outlier factor）法、パス長さから算出される異常スコアを用いるｉＦｏｒｅｓｔ（isolation forest）法などが知られている。
【０１１２】
図９は、本実施の形態に係る異常検知システム１の異常検知処理における処理手順を概略した模式図である。図９を参照して、任意のサンプリングタイミングにおいて監視対象から状態値のセットを収集したとする。このサンプリングタイミングにおける監視対象の異常の有無を判断することになる。
【０１１３】
まず、監視対象から収集可能な複数の状態値のうち、予め定められた状態値１，２，３，・・・ｎを用いて、特徴量１，２，３，・・・，ｎを生成する。
【０１１４】
なお、同一の状態値から複数の特徴量が生成されることもある。説明の便宜上、少なくとも４個の特徴量を用いる構成を示すが、本実施の形態に係る異常検知処理においては、少なくとも１つの特徴量があればよい。
【０１１５】
続いて、１または複数の特徴量から異常スコアが算出される。異常スコアは、評価対象の１または複数の特徴量の組が、外れ値または異常値である可能性を示す値であり、値が大きいほど異常値である可能性が高い（但し、異常値である可能性が高くなるほど異常スコアが小さな値を示すようにしてもよい）。
【０１１６】
最終的に、算出された異常スコアと予め定められたしきい値とを比較して、監視対象に異常が生じているか否かを判断する。
【０１１７】
本実施の形態に係るモデル生成処理は、異常スコアの算出に用いる特徴量の選択処理、および、当該選択によって算出される異常スコアに対するしきい値の決定処理を含む。
【０１１８】
＜Ｆ．モデル生成処理の概略手順＞
次に、本実施の形態に係るモデル生成処理の概略手順について説明する。
【０１１９】
図１０は、図３に示す処理手順に含まれる解析処理（ＳＴ２）の内容を示す模式図である。図１１は、図１０に示される（ａ）〜（ｅ）の処理の概要を視覚的に示す模式図である。
【０１２０】
図１０を参照して、本実施の形態に係るモデル生成処理に相当する解析処理（ＳＴ２）は、主として、（ａ）データ入力処理、（ｂ）特徴量生成処理、（ｃ）可視化・ラベル付け処理、（ｄ）特徴量選択処理、（ｅ）しきい値決定処理の計５つを含む。
【０１２１】
図１１を参照して、制御装置１００にて収集された状態値の時系列データである生データ１４２がサポート装置２００へ与えられる（（ａ）データ入力処理）。生データ１４２は、サンプリングタイミング毎に１または複数の状態値を含む。図１１に示す例では、生データ１４２は、包装機６００での処理の回数を示すサイクルカウントと、状態値の一例として、軸１トルク、軸１速度、シリンダ１オンオフ状態とを含む。
【０１２２】
サポート装置２００は、入力された生データ１４２を用いて、１または複数の特徴量を生成する（（ｂ）特徴量生成）。図１１に示す例では、特徴量は、軸１トルクに関する特徴量として、軸１トルク平均、軸１トルク標準偏差、軸１トルク最大、軸１トルク最小を含み、軸１速度に関する特徴量として、軸１速度平均、軸１速度標準偏差、軸１速度最大、軸１速度最小を含む。また、生成される特徴量には、シリンダ１動作時間を含む。
【０１２３】
続いて、サポート装置２００では、特徴量の可視化および各サンプリングタイミングの特徴量の組に対するラベル付けが実施される（（ｃ）可視化・ラベル付け処理）。特徴量の可視化は、基本的には、サポート装置２００によって実行され、ラベル付けの全部または一部はユーザが実行してもよい。
【０１２４】
より具体的な一例として、ユーザは、グラフなどの形で可視化された特徴量を参照しつつ、監視対象の状態が「正常」および「異常」のいずれであるかを、サンプリングタイミング毎に設定する。なお、現実の監視対象が異常な状態になることは少ないと考えられ、多くの場合には、「正常」のラベルが付与されることになる。
【０１２５】
続いて、収集された状態値から生成される複数の特徴量のうち、異常検知に用いる１または複数の特徴量を選択する（（ｄ）特徴量選択）。図１１に示す例では、軸１トルク平均、軸１速度平均、軸１速度最大、シリンダ１動作時間の４つが選択されている。
【０１２６】
上述のように選択された１または複数の特徴量に基づいて異常スコアを算出するとともに、算出された異常スコアを参照して、異常と判断するためのしきい値を決定する（（ｅ）しきい値決定）。
【０１２７】
以上のような手順によって、学習データセット１６０および異常検知用パラメータ１６２が生成される。生成された学習データセット１６０および異常検知用パラメータ１６２は、サポート装置２００から制御装置１００へ与えられ、制御装置１００は、サポート装置２００からの設定に従って異常検知処理を実行する。
【０１２８】
図１１に示す（ａ）〜（ｅ）の処理は、適宜繰返し実行することが可能であり、監視対象を示すモデルを順次更新することも可能である。
【０１２９】
＜Ｇ．モデル生成処理におけるユーザ設定操作の手順例＞
次に、本実施の形態に係るモデル生成処理におけるユーザによる設定操作の手順例について説明する。
【０１３０】
図１２は、本実施の形態に係るモデル生成処理におけるユーザによる設定操作の手順例を示すフローチャートである。図１２を参照して、まず、ユーザは、サポート装置２００上で解析ツール２３０を起動させ（ステップＳ２）、サポート装置２００上で実行されている解析ツール２３０に生データ１４２を読込ませる（ステップＳ４）。
【０１３１】
続いて、ユーザは、読込んだ生データ１４２に対するデータクレンジングを実行する（ステップＳ６）。データクレンジングは、生データ１４２に含まれるモデル生成に不要なデータを削除する処理である。例えば、生データ１４２に含まれる時系列データのうち、分散がゼロである状態値（すなわち、何ら変動していない状態値）を削除する。データクレンジングの処理は、解析ツール２３０が自動的に実行してもよいし、解析ツール２３０が削除対象の状態値の候補を提示し、ユーザが明示的に削除対象を選択するようにしてもよい。
【０１３２】
さらに、可視化された状態値などを参照して、ユーザが不要または不正なデータであると判断した状態値を手動で削除できるようにしてもよい。すなわち、サポート装置２００には、制御装置１００の時系列データベース１４０から提供される状態値（生データ１４２）のうち特徴量の生成から除外すべき状態値の選択を受付けるようにしてもよい。
【０１３３】
その後、解析ツール２３０は、データクレンジング後の生データ１４２に含まれる状態値に基づいて、１または複数の特徴量を生成する（ステップＳ８）。より具体的には、解析ツール２３０の特徴量生成機能２７２が、制御装置１００の時系列データベース１４０から提供される状態値（生データ１４２）から複数の特徴量を生成する。ステップＳ８においては、可能な限り多くの種類の特徴量が生成されるようにしてもよい（図１１の（ｂ）特徴量生成に対応）。
【０１３４】
続いて、解析ツール２３０は、ユーザの選択操作に応じて特徴量の変化を可視化するとともに、ユーザは、可視化された特徴量の変化に対して正常範囲および／または異常範囲を設定する（ステップＳ１０）（図１１の（ｃ）可視化・ラベル付け処理に対応）。
【０１３５】
図１３は、図１２のステップＳ１０においてユーザに提供されるユーザインターフェイス画面５００の一例を示す模式図である。図１３を参照して、ユーザインターフェイス画面５００は、ステップＳ８において生成された特徴量の変化を可視化する。典型的には、ユーザインターフェイス画面５００においては、特徴量の時間的な変化がグラフ化されており、ユーザは、このグラフを参照することで、各特徴量の優位性を評価する。さらに、ユーザは、ユーザインターフェイス画面５００に表示される特徴量の変化に対して、異常範囲および正常範囲を設定する。なお、ユーザが設定する異常範囲および正常範囲は、監視対象が実際に異常になっているか、正常に動作しているかの情報に基づいて設定してもよいし、ユーザが異常として検知したい特徴量の変化を任意に設定するようにしてもよい。すなわち、ユーザインターフェイス画面５００において設定される異常範囲および正常範囲は、本実施の形態に係る異常検知処理が出力する「異常」または「正常」である状態を規定するものであり、監視対象が実際に異常であるか正常であるかとは、必ずしも一致しなくてもよい。
【０１３６】
より具体的には、ユーザインターフェイス画面５００は、特徴量に対する選択受付エリア５０２と、グラフ表示エリア５０６と、ヒストグラム表示エリア５１２とを含む。
【０１３７】
選択受付エリア５０２には、予め生成された特徴量の内容を示すリストが表示されており、ユーザは、選択受付エリア５０２に表示されたリスト上で任意の特徴量を選択する。
【０１３８】
グラフ表示エリア５０６には、選択受付エリア５０２においてユーザが選択した特徴量の変化を示すグラフ５０８が表示される。グラフ５０８は、サンプリング毎の時系列データ、あるいは、監視対象の処理単位（例えば、処理ワーク単位）などで区切られてもよい。
【０１３９】
ヒストグラム表示エリア５１２には、選択受付エリア５０２においてユーザが選択した特徴量の変化の分布を示すヒストグラムが表示される。ヒストグラム表示エリア５１２に表示されるヒストグラムを確認することで、選択した特徴量の主たる範囲などを知ることができる。
【０１４０】
ユーザは、グラフ表示エリア５０６に表示される特徴量の変化（グラフ５０８）に対して、データの正常範囲および／または異常範囲を設定できる。より具体的には、ユーザインターフェイス画面５００は、ラベル付与ツール５１４を含む。ラベル付与ツール５１４は、正常ラベル設定ボタン５１６と、異常ラベル設定ボタン５１７と、ラベル設定範囲指定ボタン５１８とを含む。
【０１４１】
ユーザは、付与するラベルが正常または異常のいずれであるかに応じて、正常ラベル設定ボタン５１６または異常ラベル設定ボタン５１７を選択した後、ラベル設定範囲指定ボタン５１８を選択し、続けて、グラフ表示エリア５０６の対象となる領域を指定する操作（例えば、ドラッグ操作）を行う。これによって、指定された領域に対して、設定されたラベルが付与される。
【０１４２】
図１３には、異常範囲５１０が設定されている例を示す。異常範囲５１０に含まれるサンプリングタイミングの特徴量に対しては、「異常」のラベルが付与され、それ以外の特徴量に対しては、「正常」のラベルが付与される。このように、解析ツール２３０は、ユーザ操作に従って、生成された複数の特徴量のデータ系列の特定範囲に対して、「正常」および「異常」の少なくとも一方のラベルを付与する機能を有していてもよい。
【０１４３】
なお、ヒストグラム表示エリア５１２に表示されるヒストグラムに対しても、データの正常範囲および／または異常範囲を設定できるようにしてもよい。
【０１４４】
再度図１２を参照して、次に、解析ツール２３０は、ユーザ操作に従って、異常検知用パラメータの決定処理を実行する（ステップＳ１２）。ステップＳ１２の処理は、図１１に示す（ｄ）特徴量選択処理および（ｅ）しきい値決定処理に対応する。
【０１４５】
このステップＳ１２においては、解析ツール２３０の特徴量選択機能２７４（図７参照）によって、デフォルトのパラメータ（使用される特徴量およびしきい値）が予め設定されている。ユーザは、表示される検知率などを確認しながら、必要なパラメータを調整する。
【０１４６】
図１４は、図１２のステップＳ１２においてユーザに提供されるユーザインターフェイス画面５２０の一例を示す模式図である。図１４を参照して、ユーザインターフェイス画面５２０は、主として、異常検知処理に用いる１または複数の特徴量の選択を受付けるとともに、異常検知処理に用いるしきい値の選択を受付ける。
【０１４７】
より具体的には、ユーザインターフェイス画面５２０は、特徴量に対する選択受付エリア５２２と、グラフ表示エリア５２６とを含む。
【０１４８】
ユーザインターフェイス画面５２０の選択受付エリア５２２は、生成された複数の特徴量のうち、異常検知用パラメータおよび学習データセットの決定に用いられる１または複数の特徴量の選択を受付けるユーザインターフェイスに相当する。より具体的には、選択受付エリア５２２には、予め生成された特徴量の内容を示すリストが表示されており、ユーザは、表示されたリスト上で任意の特徴量に対応するチェックボックス５２４をチェックすることで、異常スコアの算出に用いる特徴量を決定する。
【０１４９】
選択受付エリア５２２に表示される特徴量は、解析ツール２３０の特徴量選択機能２７４（図７参照）によって事前に解析された結果に基づいて、重要度が高いと推定されるものがより上位になるようにリストされていてもよい。すなわち、選択受付エリア５２２には、後述するような手順で決定されたランクに従って、生成された複数の特徴量の表示順序が決定されてもよい。
【０１５０】
また、初期の選択受付エリア５２２には、解析ツール２３０の特徴量選択機能２７４（図７参照）によって予め選択された特徴量が、デフォルト値として選択されていてもよい。すなわち、選択受付エリア５２２においては、決定されたランクに従って、生成された複数の特徴量のうち予め定められた数の特徴量が選択された状態で表示されてもよい。図１４には、異常スコアの算出に２つの特徴量が使用されることが選択されている状態を示す。
【０１５１】
グラフ表示エリア５２６には、選択受付エリア５２２のチェックボックス５２４に対するチェックによって選択された１または複数の特徴量に基づいて算出された異常スコアの変化を示すグラフ５２８が表示される。このように、グラフ表示エリア５２６には、選択された１または複数の特徴量のデータ系列に基づいて算出される異常スコアのデータ系列が表示される。
【０１５２】
グラフ表示エリア５２６に関連付けて、しきい値設定スライダ５３４が配置されている。しきい値設定スライダ５３４に対するユーザ操作に連動して、設定されているしきい値が更新されるとともに、グラフ表示エリア５２６に表示されるしきい値表示バー５３５の位置が変動する。このように、しきい値設定スライダ５３４は、グラフ表示エリア５２６に表示された異常スコアに対するしきい値の設定を受付ける。
【０１５３】
初期のしきい値としては、解析ツール２３０の特徴量選択機能２７４およびパラメータ決定機能２７６（図７参照）によって予め算出されたしきい値が初期値（デフォルト値）として設定されてもよい。
【０１５４】
グラフ表示エリア５２６には、検知率を示す数値表示５３０、および、設定されているしきい値を示す数値表示５３２が配置されている。しきい値設定スライダ５３４に対するユーザ操作に連動して、数値表示５３２の値も更新される。
【０１５５】
数値表示５３０が示す検知率は、現在選択されている１または複数の特徴量と、現在設定されているしきい値とにより、どの程度正確な検知が可能かを示す値が示される。より具体的には、検知率は、現在の設定によれば、ユーザにより設定された正常範囲に含まれる特徴量（すなわち、「正常」のラベルが付与されている特徴量）と、ユーザにより設定された異常範囲に含まれる特徴量（すなわち、「異常」のラベルが付与されている特徴量）とをどの程度正確に区別できるのかを示す。
【０１５６】
ユーザは、グラフ表示エリア５２６に表示されるグラフ５２８の形状や、数値表示５３０が示す検知率の値を確認しながら、異常検知に用いる特徴量の選択、および／または、しきい値の設定を適宜実施する。
【０１５７】
ユーザインターフェイス画面５２０は、後述するような学習データセットに追加する仮想データの分布範囲を調整するスライダ５４０、および、仮想データの数を調整するスライダ５５０を含む。ユーザは、特徴量やしきい値の選択・設定に加えて、グラフ表示エリア５２６に表示されるグラフ５２８の形状や、数値表示５３０が示す検知率の値を確認しながら、学習データセットに追加する仮想データを調整できる。
【０１５８】
ユーザインターフェイス画面５２０のリセットボタン５３６が選択されると、解析ツール２３０の特徴量選択機能２７４によって予め選択された特徴量が選択されている状態（デフォルト状態）にリセットされる。
【０１５９】
ユーザインターフェイス画面５２０の学習データ生成ボタン５３８が選択されると、当該時点において設定されている内容に従って、学習データセット１６０および異常検知用パラメータ１６２が生成される。
【０１６０】
再度図１２を参照して、ユーザは、図１３に示すユーザインターフェイス画面５００、および、図１４に示すユーザインターフェイス画面５２０を適宜操作して、ユーザインターフェイス画面５２０の学習データ生成ボタン５３８が選択すると（ステップＳ１４においてＹＥＳ）、解析ツール２３０は、監視対象を示すモデル（学習データセット１６０および異常検知用パラメータ１６２）を生成する（ステップＳ１６）。すなわち、解析ツール２３０は、ユーザが調整したパラメータに基づいて、監視対象についてのモデルを生成する。
【０１６１】
そして、サポート装置２００から制御装置１００に対して、ステップＳ１６において生成されたモデル（学習データセット１６０および異常検知用パラメータ１６２）が送信され（ステップＳ１８）、実運用が開始される（ステップＳ２０）。
【０１６２】
なお、実運用開始後に、実運用における検知率などを定期的に確認し、検知率が悪い（監視対象が正常な状態であるのに異常と検知してしまった頻度が相対的に多い、および／または、正常と検知したのに監視対象が正常な状態ではなかった頻度が相対的に多い）場合には、制御装置１００において収集された状態値を用いて、再度モデル生成を行ってもよい。
【０１６３】
＜Ｈ．解析ツール２３０の機能および処理＞
次に、本実施の形態に係るサポート装置２００に含まれる解析ツール２３０が提供する機能および処理について説明する。以下に説明する機能および処理は、図１３および図１４に示されるユーザインターフェイス画面が表示される前段階で実行される。すなわち、解析ツール２３０による処理結果を用いて、図１３および図１４に示されるユーザインターフェイス画面が提供される。
【０１６４】
図１５は、本実施の形態に係るサポート装置２００の解析ツール２３０が実行する処理手順を示すフローチャートである。図１５のフローチャートに含まれる処理は、解析ツール２３０の特徴量生成機能２７２、特徴量選択機能２７４およびパラメータ決定機能２７６（図７参照）によって実行される。図１５には、各機能が担当するステップを示す。
【０１６５】
図１５を参照して、サポート装置２００は、入力された生データ１４２に基づいて特徴量を生成する（ステップＳ１００）。この特徴量の生成は、解析ツール２３０の特徴量生成機能２７２を用いて実現される。通常、複数種類の特徴量が生成される。
【０１６６】
続いて、サポート装置２００は、ステップＳ１０２〜Ｓ１０６，Ｓ１２４およびＳ１２６の処理を実行する。これらの処理は、解析ツール２３０の特徴量選択機能２７４を用いて実現される。図１５のステップＳ１０２〜Ｓ１０６，Ｓ１２４およびＳ１２６の処理は、特徴量選択機能２７４による変数重要度の推定機能に相当する。
【０１６７】
具体的には、サポート装置２００は、生成された特徴量は「正常」のラベルが付与されたもののみであるか否かを判断する（ステップＳ１０２）。
【０１６８】
生成された特徴量が「正常」のラベルが付与されたもののみであれば（ステップＳ１０２においてＹＥＳ）、ステップＳ１２４およびＳ１２６の処理が実行される。これに対して、生成された特徴量が、「正常」のラベルが付与されたもの、および「異常」のラベルが付与されたもの、を含めば（ステップＳ１０２においてＮＯ）、ステップＳ１０２〜Ｓ１０６の処理が実行される。
【０１６９】
ステップＳ１０２において、サポート装置２００は、ステップＳ１００において生成された各特徴量の重要度を複数の手法でそれぞれ算出する（ステップＳ１０４）。そして、サポート装置２００は、各特徴量について、それぞれの手法で算出された重要度を統合してランク付けする（ステップＳ１０６）。
【０１７０】
ステップＳ１２４において、サポート装置２００は、ステップＳ１００において生成された各特徴量の重要度を複数の手法でそれぞれ算出する（ステップＳ１２４）。そして、サポート装置２００は、各特徴量について、それぞれの手法で算出された重要度を統合してランク付けする（ステップＳ１２６）。
【０１７１】
ステップＳ１０６およびステップＳ１２６においては、いずれも特徴量の重要度が算出されるが、「異常」のラベルが付与された特徴量が存在しないステップＳ１２６においては、算出できる重要度に制限がある。そのため、ステップＳ１０６およびＳ１２６においては、状況においては、生成された特徴量の各々について、一つの手法でのみ重要度を算出するようにしてもよい。
【０１７２】
以上のような処理によって、ステップＳ１００において生成された複数の特徴量について、重要度の高い順にランク付けされる。
【０１７３】
上述したステップＳ１０２〜Ｓ１０６，Ｓ１２４およびＳ１２６の処理は、解析ツール２３０の特徴量選択機能２７４が担当する。より具体的には、ステップＳ１０４およびＳ１２４において、解析ツール２３０の特徴量選択機能２７４は、生成された複数の特徴量の各々について、複数の手法に従って、それぞれ異常検知に有効な度合いを示す重要度をそれぞれ算出する。そして、ステップＳ１０６において、解析ツール２３０の特徴量選択機能２７４は、生成された複数の特徴量の各々について、複数の手法に従ってそれぞれ算出された複数の重要度を統合して、生成された複数の特徴量の間の重要度のランクを決定する。これらの詳細については、後述する。
【０１７４】
続いて、サポート装置２００は、ステップＳ１０８〜Ｓ１１８またはステップＳ１２８，Ｓ１３０の処理を実行する。これらの処理は、解析ツール２３０のパラメータ決定機能２７６を用いて実現される。図１５のステップＳ１０８〜Ｓ１１８（ステップＳ１１０を除く）またはステップＳ１２８，Ｓ１３０の処理は、特徴量選択機能２７４による異常検知適用（異常スコア算出）の機能に相当し、図１５のステップＳ１１０の処理は、特徴量選択機能２７４による仮想データ生成の機能に相当する。
【０１７５】
まず、ステップＳ１０６の実行後、サポート装置２００は、ランクの高い順に特徴量を異常スコアの算出対象に追加する（ステップＳ１０８）。すなわち、重要度の高い特徴量が優先的に選択されてもよい。
【０１７６】
ここで、サポート装置２００は、学習データセットに仮想データを追加する（ステップＳ１１０）。ステップＳ１１０の学習データセットに仮想データを追加する処理の詳細については、後述する。
【０１７７】
続いて、サポート装置２００は、仮想データが追加された学習データセットを用いて、ステップＳ１０８において追加された特徴量を含む１または複数の特徴量に基づいて、異常スコアを算出する（ステップＳ１１２）。そして、サポート装置２００は、算出した異常スコアに基づいて、異常の検知精度を算出する（ステップＳ１１４）。サポート装置２００は、ステップＳ１１４において算出した異常の検知精度が前回算出された異常の検知精度より向上しているか否かを判断する（ステップＳ１１６）。前回算出された異常の検知精度より向上していれば（ステップＳ１１６においてＹＥＳ）、今回の処理において追加した特徴量を異常検知に用いる特徴量として登録する（ステップＳ１１８）。一方、前回算出された異常の検知精度より向上していなければ（ステップＳ１１６においてＮＯ）、今回の処理において追加した特徴量は、異常検知に用いる特徴量としては登録されない。
【０１７８】
ステップＳ１１０〜Ｓ１１８の処理は、異常検知に用いる特徴量として登録された特徴量の数が予め定められた数に到達するまで繰返される。
【０１７９】
一方、ステップＳ１２８の実行後、サポート装置２００は、ランクの高い順に予め定められた数の特徴量を、異常検知に用いる特徴量として登録する（ステップＳ１２８）。そして、サポート装置２００は、ステップＳ１２８において登録された、予め定められた数の特徴量に基づいて異常スコアを算出する（ステップＳ１３０）。
【０１８０】
最終的に、サポート装置２００は、いずれの場合であっても、算出された異常スコアに基づいて、しきい値を決定する（ステップＳ１４０）。そして、処理は終了する。
【０１８１】
上述のステップＳ１０８およびＳ１２８において、解析ツール２３０のパラメータ決定機能２７６は、生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する。
【０１８２】
ステップＳ１１０において、解析ツール２３０の特徴量選択機能２７４（仮想データ生成機能）は、選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する。なお、追加学習データセットの生成に加えて、解析ツール２３０の特徴量選択機能２７４（仮想データ生成機能）は、評価データセットに統計的に生成された仮想の特徴量のデータ系列を追加して追加評価データセットを生成してもよい。
【０１８３】
ここで、「評価データセット」は、学習データセットを用いて生成したモデルの異常検知能力、検知精度、識別能力などの評価に用いられるデータ系列を意味する。そのため、「評価データセット」は、予めラベルが付与されているデータ系列が好ましい。
【０１８４】
ステップＳ１１２，Ｓ１１４において、解析ツール２３０のパラメータ決定機能２７６は、ステップＳ１１０において生成された追加学習データセットを用いて、選択された組合せの特徴量に対応するモデルの検知精度を評価する。そして、ステップＳ１１６，Ｓ１１８において、解析ツール２３０のパラメータ決定機能２７６は、任意の特徴量が追加で選択されることで、検知精度が向上すると、当該任意の特徴量をモデルとして登録する。
【０１８５】
＜Ｉ．特徴量の重要度の算出およびランク付け＞
次に、図１５に示す解析ツール２３０の特徴量選択機能２７４が担当する処理（ステップＳ１０４，Ｓ１０６およびステップＳ１２４，Ｓ１２６）の詳細について説明する。
【０１８６】
図１６は、本実施の形態に係るサポート装置２００の解析ツール２３０が実行する特徴量の重要度を評価する処理を説明するための模式図である。図１６を参照して、解析ツール２３０の特徴量選択機能２７４は、各特徴量の重要度を複数の手法でそれぞれ算出する。図１６には、一例として、尖度、ロジスティック回帰、決定木の３つの手法でそれぞれ評価する例を示す。
【０１８７】
評価値コラム７０２に格納される尖度は、対象の特徴量７００のデータ系列についての頻度分布の鋭さを評価した値である。尖度が大きいほど、頻度分布のピークが鋭く、分布の裾が広いことを示す。異常検知に用いる統計量としては、尖度が大きいほど有益、すなわち重要であるとみなすことができる。
【０１８８】
また、対象の特徴量のデータ系列についての頻度分布の標準偏差を評価値として用いてもよい。この場合、標準偏差が大きいほど、特徴量に変化があり異常検知の能力が高い（すなわち、重要である）と判断できる。
【０１８９】
評価値コラム７０４に格納されるロジスティック回帰は、任意のロジスティック関数を対象の特徴量のデータ系列に適用して、尤度を最大化するロジスティック関数を規定するパラメータを探索する。最終的に探索されたパラメータに対応する尤度を重要度とみなす。すなわち、任意のロジスティック関数でより精度の高い推定ができる特徴量ほど、優先度が高いとみなすことができる。
【０１９０】
典型的には、ロジスティック回帰は、特徴量毎にパラメータの探索および尤度の算出を行うことができる。
【０１９１】
評価値コラム７０６に格納される決定木は、対象の特徴量のデータ系列に対して分類木を適用し、その分類能力を重要度として用いるものである。決定木のアルゴリズムとしては、ＣＡＲＴ、Ｃ４．５，ＩＤ３などが知られており、いずれのアルゴリズムを用いてもよい。
【０１９２】
このように、典型例としては、重要度は、少なくとも、特徴量のデータ系列についての尖度、特徴量のデータ系列に対してロジスティック回帰の実行によって得られる尤度、決定木のアルゴリズムに従って算出される重要度を含む。
【０１９３】
以上のように、各特徴量について重要度を示す値を複数の手法でそれぞれ算出し、それぞれの結果を統合した結果が評価値コラム７０８に格納される。評価値コラム７０８に格納される各評価値に基づいて、それぞれの特徴量に対するランク付けがなされる（ランクコラム７１０）。
【０１９４】
図１５のステップＳ１０６およびＳ１２６においては、図１６の評価値コラム７０８に格納されるそれぞれの評価値に基づいて、特徴量に対するランク付けが実施される。
【０１９５】
図１５のステップＳ１０２においては、「正常」および「異常」のラベルが付与された状態値が得られるので、図１６に示す、尖度、ロジスティック回帰、決定木の各手法を適用できる。一方、図１５のステップＳ１２２においては、「正常」のラベルが付与された状態値のみが存在する状態であるので、図１６に示すロジスティック回帰および決定木の適用は難しく、尖度および標準偏差の手法が適用される。
【０１９６】
以上のような処理手順によって決定される各特徴量についてのランクに基づいて、図１５に示すステップＳ１０８以下の処理、および／または、ステップＳ１２８以下の処理が実行される。
【０１９７】
上述したように、本実施の形態に係る異常検知システム１においては、複数の手法を用いて各特徴量の重要度をそれぞれ算出した上で、複数の手法におけるそれぞれの特徴量を統合して、各特徴量を重要度の観点からランク付けする。
【０１９８】
＜Ｊ．学習データセットへの仮想データの追加＞
次に、図１５に示す解析ツール２３０のパラメータ決定機能２７６が担当する処理（ステップＳ１１０）の詳細について説明する。
【０１９９】
学習データセットに含まれるデータの分布が歪んでいる（あるいは、偏っている）場合には、異常検知の精度を高めることが難しい。このような場合において、学習データセットに仮想データを追加することで、異常検知の精度を高める。
【０２００】
図１７は、本実施の形態に係るサポート装置２００の解析ツール２３０による学習データセットへの仮想データを追加する処理を説明するための模式図である。図１７（Ａ）には、オリジナルの学習データセットの一例を示し、図１７（Ｂ）には、仮想データを追加した学習データセットの一例を示す。
【０２０１】
図１７（Ａ）には、オリジナルの学習データ８００を用いて生成したモデルに対して、評価データセット８０２を適用した場合に算出される異常スコア８０４を示す。
【０２０２】
評価データセット８０２は、ラベル付けされた特徴量のデータセットの一部を学習データ８００として採用し、残りを評価データセット８０２として採用することで作成してもよい。すなわち、モデル生成の際に選択された組合せの特徴量のデータ系列の一部が学習データセットとして用いられるとともに、当該データ系列の残りが評価データセット８０２として用いられてもよい。
【０２０３】
図１７（Ａ）に示す異常スコア８０４の変化が示すように、学習データ８００のデータの分布が歪んでいる場合には、異常検知の精度を高めることが難しい。また、図１７（Ａ）に示すように、異常領域８０６，８０８において、異常スコア８０４の値に変化がなく、分解能を得られない。
【０２０４】
図１７（Ｂ）には、オリジナルの学習データ８１０にノイズ８１１を仮想データとして追加した学習データセットを用いて生成したモデルに対して、評価データセット８１２を適用した場合に算出される異常スコア８１４を示す。
【０２０５】
図１７（Ｂ）に示す異常スコア８１４によれば、正常点（すなわち、学習データ）から離れるほど、より高い異常スコアを示すようになっており、学習データセットに含まれるデータの分布が歪んでいる（あるいは、偏っている）場合であっても、十分な異常検知できることが分かる。また、図１７（Ａ）と比較して、異常領域８１６，８１８において異常スコア８１４の値に変化が大きく、分解能が増加していることが分かる。
【０２０６】
このように、異常スコア８０４としては、学習データセットに仮想データを追加した追加学習データセットからなるモデルに評価データセット８１２を適用したときの誤検知の確率に相当する。
【０２０７】
なお、評価データセット８１２についても、同様に仮想データを追加することができる。この場合には、評価データセット８１２に仮想データを追加した追加評価データセットを用いて異常スコア８０４（誤検知の確率）が算出されることになる。
【０２０８】
次に、学習データ８１０に追加する仮想データの生成方法の一例について説明する。
仮想データとしては、ある範囲の一様分布から生成するノイズなどを用いることが好ましい。このような仮想データを生成する手順としては、以下のようになる。
【０２０９】
（１）追加すべき仮想データの分布範囲を決定する（例えば、生成された特徴量のデータセットの最小値から最大値までの範囲に対して、最小値から任意のオフセットを減じた下限値から最大値に任意のオフセットを加えた上限値までの範囲などに設定できる。）。
【０２１０】
（２）追加すべき仮想データのデータ点数Ｎを決定する（例えば、Ｎ＝学習データセットに含まれるデータ点数×５％など。）。
【０２１１】
（３）追加すべき仮想データの１次元（１つの特徴量）あたりのデータ点数Ｍを決定する（すなわち、追加すべきデータ点数Ｎ＝データ点数Ｍ＾次元数となる。）。
【０２１２】
（４）追加すべき仮想データの刻み幅Ｌを算出する（（１）で決定した仮想データの分布範囲をデータ点数Ｍで割った幅に相当する。）。
【０２１３】
（５）最終的に、１次元（１つの特徴量）あたりの仮想データを生成する（（１）で決定した仮想データの分布範囲で刻み幅Ｌ毎にデータを生成する。）。
【０２１４】
（６）各次元の仮想データ（１次元あたりＮ個）の順列組合せにより、Ｍ個の全次元の要素を含む仮想データを生成する。
【０２１５】
図１８は、本実施の形態に係るサポート装置２００の解析ツール２３０により生成される仮想データの一例を示す模式図である。図１８には、２次元の仮想データを生成する例を示す。各次元（特徴量１および特徴量２）は、それぞれ３つの要素を有している。すなわち、特徴量１＝［１０，２０，３０］、特徴量２＝［−２０，０，２０］である場合、組合せにより生成された仮想データは、図１８に示すようになる。
【０２１６】
このように生成された仮想データは、生データから生成された特徴量のデータセットに対して付加されることで、学習データセットおよび評価データセットの両方または一部に仮想データを追加できる。
【０２１７】
なお、図１４に示すユーザインターフェイス画面５２０に含まれるスライダ５４０を調整することで、追加すべき仮想データの分布範囲を調整することができ、また、図１４に示すユーザインターフェイス画面５２０に含まれるスライダ５５０を調整することで、追加すべき仮想データの数を適宜変更できるようにしてもよい。
【０２１８】
すなわち、図１４のユーザインターフェイス画面５２０に含まれるスライダ５４０，５５０は、追加される仮想の特徴量のデータ系列の統計的特性の設定を受付ける機能に相当する。
【０２１９】
以上のような処理手順によって、仮想データが生成される。
＜Ｋ．異常検知精度の評価＞
次に、図１５に示す解析ツール２３０のパラメータ決定機能２７６が担当する処理（ステップＳ１１２，Ｓ１１４，Ｓ１３０）の詳細について説明する。
【０２２０】
本実施の形態に従う異常検知システム１においては、例えば、ｉＦｏｒｅｓｔ法を用いた異常検知を実施する。ｉＦｏｒｅｓｔ法においては、モデル生成段階においては、学習データセットをランダムに設定されるパーティションで分割し、各パーティションをノードとする木構造を構成する。異常検知は、入力されたデータが予め作成されたモデルのルートノードまでの深さ（パス長さ、あるいは、経路上のパーティションの数）に基づいて、異常であるか否かを判断する。
【０２２１】
ｉＦｏｒｅｓｔ法を用いる場合には、ステップＳ１１２およびＳ１３０において算出される異常スコアは、学習データセットをパーティションに分割した場合のパス長さに基づいて算出できる。さらに、ステップＳ１１４における異常の検知精度の算出方法としては、ＴｒｕｅＰｏｓｉｔｉｖｅ軸とＦａｌｓｅＰｏｓｉｔｉｖｅ軸とにより規定されるＲＯＣ（Receiver Operating Characteristic）曲線に基づいて、ＡＵＣ（Under Area the Curve）を算出することで実現できる。
【０２２２】
すなわち、学習データセットに含まれる、「正常」のラベルが付与されているデータと、「異常」のラベルが付与されているデータとを用いて、誤検知（「正常」のラベルが付与されているデータを「異常」と判断する、あるいは、「異常」のラベルが付与されているデータを「正常」と判断する）する確率を評価する。
【０２２３】
このように、学習データセットとして用いる特徴量のデータ系列の各組合せについて、異常の検知精度を都度算出できる。
【０２２４】
＜Ｌ．変形例＞
図２に示す異常検知システム１においては、制御装置１００とサポート装置２００とがそれぞれ独立した構成となっているが、サポート装置２００の機能の全部または一部を制御装置１００に組み入れるようにしてもよい。例えば、サポート装置２００に実装される解析ツール２３０を、制御装置１００に実装することで、生データの伝送やモデル生成処理の繰返し実行をより容易に実現できる。
【０２２５】
上述の図６および図７に示すモジュール構成は一例であり、上述したような機能を提供できる限り、どのような実装を採用してもよい。例えば、ハードウェア上の制約や、プログラミング上の制約などによって、図６および図７に示す機能モジュールを複数の機能モジュールの集合として実装してもよいし、図６および図７に示す複数の機能モジュールを単一のモジュールとして実装してもよい。
【０２２６】
＜Ｍ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御対象を制御するための制御演算を実行する制御演算部（１０；１３０）と、
前記制御演算部により収集される状態値のうち監視対象に関連する状態値（１６：１４２）を、異常検知用パラメータ（１６２）および学習データセット（１６０）により規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部（１２：１５０）と、
前記制御演算部により収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部（１４：１４０）と、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部（３０：２８０）と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部（２０：２７０）とを備え、
前記モデル生成部は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成する手段（２２２：２７２）と、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段（２４：２７４）と、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段（２６：２７４）と、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価する手段（２８：２７６）とを含む、異常検知システム。
［構成２］
前記選択された組合せの特徴量のデータ系列の一部が前記学習データセット（８００）として用いられるとともに、当該データ系列の残りが評価データセット（８０２）として用いられ、
前記検知精度を評価する手段は、前記追加学習データセット（８１２）からなるモデルに前記評価データセットを適用したときの誤検知の確率を算出する、構成１に記載の異常検知システム。
［構成３］
前記モデル生成部は、前記評価データセットに統計的に生成された仮想の特徴量のデータ系列（８１１）を追加して追加評価データセット（８１２）を生成する手段をさらに含み、
前記検知精度を評価する手段は、前記追加評価データセットを用いて誤検知の確率を算出する、構成２に記載の異常検知システム。
［構成４］
前記モデル生成部は、前記追加される仮想の特徴量のデータ系列の統計的特性の設定を受付ける手段（５４０，５４２）をさらに含む、構成２または３に記載の異常検知システム。
［構成５］
前記モデル生成部は、任意の特徴量が追加で選択されることで、前記検知精度が向上すると、当該任意の特徴量を前記モデルとして登録する手段（２７６）をさらに含む、構成１〜４のいずれか１項に記載の異常検知システム。
［構成６］
前記モデル生成部は、前記生成された複数の特徴量のデータ系列の特定範囲に対して、正常および異常の少なくとも一方のラベルを付与する手段（２３０）をさらに含む、構成１〜５のいずれか１項に記載の異常検知システム。
［構成７］
前記モデル生成部は、前記生成された特徴量の各々の重要度を算出する手段（２７４）をさらに含み、
前記特徴量の組合せを選択する手段は、重要度の高い特徴量を優先的に選択する、構成１〜６のいずれか１項に記載の異常検知システム。
［構成８］
前記モデル生成部により決定された異常検知用パラメータおよび学習データセットを前記第１の異常検知部に設定する手段（２３２）をさらに備える、構成１〜７のいずれか１項に記載の異常検知システム。
［構成９］
制御対象を制御するための制御装置（１００）に接続されるサポート装置（２００）であって、前記制御装置は、収集される状態値のうち監視対象に関連する状態値（１６：１４２）を、異常検知用パラメータ（１６２）および学習データセット（１６０）により規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部（１２：１５０）と、前記収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部（１４：１４０）とを備え、前記サポート装置は、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部（３０：２８０）と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部（２０：２７０）とを備え、
前記モデル生成部は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成する手段（２２２：２７２）と、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択する手段（２４：２７４）と、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成する手段（２６：２７４）と、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価する手段（２８：２７６）とを含む、サポート装置。
［構成１０］
異常検知システム（１）におけるモデル生成方法であって、前記異常検知システムは、
制御対象を制御するための制御演算を実行する制御演算部（１０；１３０）と、
前記制御演算部により収集される状態値のうち監視対象に関連する状態値（１６：１４２）を、異常検知用パラメータ（１６２）および学習データセット（１６０）により規定される当該監視対象を示すモデルに与えることで、当該監視対象に生じ得る異常を検知する第１の異常検知部（１２：１５０）と、
前記制御演算部により収集される状態値のうち少なくとも前記監視対象に関連する状態値を格納する状態値格納部（１４：１４０）と、
前記状態値格納部から提供される前記状態値を用いて、前記第１の異常検知部と実質的に同一の検知処理を実行する第２の異常検知部（３０：２８０）と、
前記第２の異常検知部による検知結果に基づいて、前記異常検知用パラメータおよび前記学習データセットを決定するモデル生成部（２０：２７０）とを備え、
前記モデル生成方法は、
前記状態値格納部から提供される前記状態値から複数の特徴量を生成するステップ（Ｓ１００）と、
前記生成された複数の特徴量のうち１または複数の特徴量の組合せを選択するステップ（Ｓ１０８）と、
前記選択された組合せの特徴量のデータ系列の少なくとも一部と、統計的に生成された仮想の特徴量のデータ系列とからなる追加学習データセットを生成するステップ（Ｓ１１０）と、
前記追加学習データセットを用いて、前記選択された組合せの特徴量に対応するモデルの検知精度を評価するステップ（Ｓ１１２，Ｓ１１４）とを含む、モデル生成方法。
【０２２７】
＜Ｎ．利点＞
何らかの監視対象（任意の機械や装置）の異常を検知するための異常検知システムで用いられるモデルを生成するにあたっては、実際の監視対象で異常が発生したときに収集された状態値を用いてモデルの作成および更新を行っていた。そのため、モデル生成についての試行錯誤の回数が多く、検知精度を向上させるために多くの時間が必要であった。
【０２２８】
これに対して、本実施の形態に係る異常検知システムによれば、制御装置と同じ異常検知のアルゴリズムをサポート装置にも用意する。このような環境を利用して、実際の監視対象で異常が発生しなくても、制御装置とサポート装置との間で、モデルの作成および更新を繰返し実行できる。
【０２２９】
また、本実施の形態に係る異常検知システムにおいては、仮想の特徴量のデータ系列を学習データセットおよび／または評価データセットに追加して得られる追加データセットを用いて、検知精度が評価される。このような仮想の特徴量のデータ系列を追加することで、実際の監視対象から状態値を収集できなくても、実運用前に精度の高いモデルを構築できる。
【０２３０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２３１】
１  異常検知システム、２，４  フィールドネットワーク、６  上位ネットワーク、１０  制御演算部、１２，３０  異常検知部、１４  状態値格納部、１６，１２４  Ｉ／Ｏユニット、２０  モデル生成部、２２，２７２  特徴量生成機能、２４，２７４  特徴量選択機能、２６  特徴量追加機能、２８  検知精度評価機能、１００  制御装置、１０２，２０２  プロセッサ、１０４  チップセット、１０６，２０６  主記憶装置、１０８，２０８  二次記憶装置、１１０，２１４  上位ネットワークコントローラ、１１２，２１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１３０  ＰＬＣエンジン、１３２  ユーザプログラム、１３４  特徴量生成命令、１３６  書込命令、１３８  変数、１４０  時系列データベース、１４２  生データ、１５０，２８６  異常検知エンジン、１６０  学習データセット、１６２  異常検知用パラメータ、２００  サポート装置、２０４  光学ドライブ、２０５  記録媒体、２１６  入力部、２１８  表示部、２２０  バス、２２２  開発プログラム、２２４  ＰＬＣインターフェイスプログラム、２２６  解析プログラム、２２８  ＯＳ、２３０  解析ツール、２３２  ＰＬＣインターフェイス、２３４  可視化モジュール、２３６  イベント管理モジュール、２４０  ユーザインターフェイス、２４２  スクリプトエンジン、２４４  設定ファイル、２５０  ファイル管理モジュール、２５２  データ入力機能、２５４  データ生成機能、２６０  画面生成モジュール、２６２  折れ線グラフ生成機能、２６４  パラメータ調整機能、２６６  グラフライブラリ、２７０  解析モジュール、２７６  パラメータ決定機能、２８０  解析ライブラリ、２８２  特徴量生成ライブラリ、２８４  特徴量選択ライブラリ、３００  データベースサーバ、４００  操作表示装置、５００，５２０  ユーザインターフェイス画面、５０２，５２２  選択受付エリア、５０６，５２６  グラフ表示エリア、５０８，５２８  グラフ、５１０  異常範囲、５１２  ヒストグラム表示エリア、５１４  ラベル付与ツール、５１６  正常ラベル設定ボタン、５１７  異常ラベル設定ボタン、５１８  ラベル設定範囲指定ボタン、５２４  チェックボックス、５３０，５３２  数値表示、５３４  値設定スライダ、５３５  しきい値表示バー、５３６  リセットボタン、５３８  学習データ生成ボタン、５４０，５５０  スライダ、６００  包装機、６０４  包装体、６０５  被包装物、６０６  個別包装体、６１０，６２０  ロータ、６１２，６２２  回転軸、６１４，６２４  処理機構、６１５，６１６，６２５，６２６  ヒータ、６１７，６２７  カッター、６１８，６２８  サーボモータ、６１９，６２９  サーボドライバ、７０２，７０４，７０６，７０８  評価値コラム、７１０  ランクコラム、８００，８１０  学習データ、８０２，８１２  評価データセット、８０４，８１４  異常スコア、８０６，８０８，８１６，８１８  異常領域、８１１  ノイズ。
【図１】
2019159902.tif 000003
【図２】
2019159902.tif 000004
【図３】
2019159902.tif 000005
【図４】
2019159902.tif 000006
【図５】
2019159902.tif 000007
【図６】
2019159902.tif 000008
【図７】
2019159902.tif 000009
【図８】
2019159902.tif 000010
【図９】
2019159902.tif 000011
【図１０】
2019159902.tif 000012
【図１１】
2019159902.tif 000013
【図１２】
2019159902.tif 000014
【図１３】
2019159902.tif 000015
【図１４】
2019159902.tif 000016
【図１５】
2019159902.tif 000017
【図１６】
2019159902.tif 000018
【図１７】
2019159902.tif 000019
【図１８】
2019159902.tif 000020