(57)【要約】【課題】異常を高精度に検出可能とする。【解決手段】監視システムは、記憶部と、取得部と、算出部と、判定部と、出力制御部と、を備える。記憶部は、学習モデルに第１入力データを入力して得られる第１出力データ、および、第１出力データから得られる第１統計情報、の少なくとも一方を記憶する。算出部は、第１統計情報に対する第２出力データの統計情報の変化の度合い、第１出力データから算出される第２統計情報に対する第２出力データの統計情報の変化の度合い、および、第１統計情報から算出される第３統計情報に対する第２出力データの統計情報の変化の度合い、の少なくとも１つを表す異常度を算出する。判定部は、異常度に基づいて、学習モデルに異常が生じたか否かを判定する。出力制御部は、異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する。【選択図】図１
2020113119.tif 000002
【特許請求の範囲】
【請求項１】
学習された学習モデルに第１入力データを入力して得られる複数の第１出力データ、および、複数の前記第１出力データから得られる第１統計情報、の少なくとも一方を記憶する記憶部と、
前記学習モデルに第２入力データを入力して得られる複数の第２出力データを取得する取得部と、
複数の前記第１統計情報に対する前記第２出力データの統計情報の変化の度合い、複数の前記第１出力データから算出される第２統計情報に対する前記第２出力データの統計情報の変化の度合い、および、複数の前記第１統計情報から算出される第３統計情報に対する前記第２出力データの統計情報の変化の度合い、の少なくとも１つを表す異常度を算出する算出部と、
前記異常度に基づいて、前記学習モデルに異常が生じたか否かを判定する判定部と、
異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する出力制御部と、
を備える監視システム。
【請求項２】
異常が生じたと判定された場合に、複数の前記第２出力データのうち、異常の原因となった第２出力データである異常データを抽出する抽出部をさらに備え、
前記出力制御部は、さらに、前記学習モデルが前記異常データをどのように処理したかを示す情報を出力する、
請求項１に記載の監視システム。
【請求項３】
前記学習モデルは、ニューラルネットワークである、
請求項１に記載の監視システム。
【請求項４】
前記第１出力データおよび前記第２出力データは、前記ニューラルネットワークが出力するロジットまたは確率値である、
請求項３に記載の監視システム。
【請求項５】
学習された学習モデルに第１入力データを入力して得られる複数の第１出力データ、および、複数の前記第１出力データから得られる第１統計情報、の少なくとも一方を記憶する記憶ステップと、
前記学習モデルに第２入力データを入力して得られる複数の第２出力データを取得する取得ステップと、
複数の前記第１統計情報に対する前記第２出力データの統計情報の変化の度合い、複数の前記第１出力データから算出される第２統計情報に対する前記第２出力データの統計情報の変化の度合い、および、複数の前記第１統計情報から算出される第３統計情報に対する前記第２出力データの統計情報の変化の度合い、の少なくとも１つを表す異常度を算出する算出ステップと、
前記異常度に基づいて、前記学習モデルに異常が生じたか否かを判定する判定ステップと、
異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する出力制御ステップと、
を含む監視方法。
【請求項６】
学習された学習モデルに第１入力データを入力して得られる複数の第１出力データ、および、複数の前記第１出力データから得られる第１統計情報、の少なくとも一方を記憶する記憶部を備えるコンピュータを、
前記学習モデルに第２入力データを入力して得られる複数の第２出力データを取得する取得部と、
複数の前記第１統計情報に対する前記第２出力データの統計情報の変化の度合い、複数の前記第１出力データから算出される第２統計情報に対する前記第２出力データの統計情報の変化の度合い、および、複数の前記第１統計情報から算出される第３統計情報に対する前記第２出力データの統計情報の変化の度合い、の少なくとも１つを表す異常度を算出する算出部と、
前記異常度に基づいて、前記学習モデルに異常が生じたか否かを判定する判定部と、
異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する出力制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、監視システム、監視方法およびプログラムに関する。
【背景技術】
【０００２】
過去のデータを用いて学習した機械学習モデルに新たなデータを入力して分類または推定などの処理を行う場合、入力データの傾向の変化によって機械学習モデルが期待通りの精度を出せなくなることがある。このような精度の低下に気付かずに運用を継続することでユーザが誤った判断を行うおそれがある。これを防ぐために、例えば機械学習モデルの出力の確からしさを人手で確認することは非現実的であり、入力データの傾向の変化を異常として検知する技術が望まれる。
【０００３】
例えば、機械学習モデルと、別の方法で作られたモデルと、を並行して運用し、それら２つのモデルの出力に相違が発生した際に、異常として判定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１１９９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、異常を高精度に検出できない場合があった。例えば、上記のように２つのモデルを用いる技術では、２つのモデルが同時に性能劣化を起こした場合には異常を検知することができない。
【課題を解決するための手段】
【０００６】
実施形態の監視システムは、記憶部と、取得部と、算出部と、判定部と、出力制御部と、を備える。記憶部は、学習モデルに第１入力データを入力して得られる第１出力データ、および、第１出力データから得られる第１統計情報、の少なくとも一方を記憶する。算出部は、第１統計情報に対する第２出力データの統計情報の変化の度合い、第１出力データから算出される第２統計情報に対する第２出力データの統計情報の変化の度合い、および、第１統計情報から算出される第３統計情報に対する第２出力データの統計情報の変化の度合い、の少なくとも１つを表す異常度を算出する。判定部は、異常度に基づいて、学習モデルに異常が生じたか否かを判定する。出力制御部は、異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態にかかる監視システムのブロック図。
【図２】第１の実施形態にかかる監視システムのブロック図。
【図３】第１の実施形態における学習処理のフローチャート。
【図４】第１の実施形態における監視処理のフローチャート。
【図５】第２の実施形態にかかる監視システムのブロック図。
【図６】第２の実施形態における監視処理のフローチャート。
【図７】表示情報に基づく表示画面の例を示す図。
【図８】表示情報に基づく表示画面の他の例を示す図。
【図９】第１または第２の実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この発明にかかる監視システムの好適な実施形態を詳細に説明する。
【０００９】
（第１の実施形態）
上記のように、機械学習により学習されたモデル（以下、学習モデルという）は、入力データの傾向の変化によって出力の精度が低下する場合がある。このような場合に、入力データの傾向の変化を検知して変化の原因を排除すること、変化した入力データに対しても精度よく機能するように学習モデルを修正すること、および、その時に得られた出力の取り扱いに注意すること、などが学習モデルを運用する上で重要となる。
【００１０】
上記のような２つのモデルを用いる技術では、２つのモデルが同時に性能劣化を起こした場合に異常が検知できない。また、システム全体として高い精度を実現するためには、すべてのモデルが高い精度になっている必要がある。しかし、高精度のモデルを複数作成することは処理負荷が高く、コストが増加するおそれがある。
【００１１】
第１の実施形態にかかる監視システムは、基準となる期間に入力された入力データに対する学習モデルの出力データまたは出力データの統計情報（統計量）を記憶しておき、その後の入力データに対する学習モデルの出力データの統計情報と、記憶したデータから得られる統計情報とを比較することにより、学習モデルの異常を検出する。これにより、より簡単な構成で、入力データの傾向の変化を把握し、学習モデルの異常を高精度に検出することができる。
【００１２】
図１は、第１の実施形態にかかる監視システムの構成の一例を示すブロック図である。図１に示すように、第１の実施形態の監視システムは、情報処理装置１００と、監視装置２００と、情報処理装置３００と、を備えている。
【００１３】
情報処理装置１００、監視装置２００、および、情報処理装置３００は、ＬＡＮ（ローカルエリアネットワーク）およびインターネットなどのネットワーク、または、接続ケーブルなどの任意の接続形態で接続される。
【００１４】
情報処理装置１００は、学習モデルの学習、および、学習済みの学習モデルを用いた処理などを行う装置である。学習モデルは、どのようなモデルであってもよいが、例えば、ニューラルネットワーク、サポートベクターマシン（ＳＶＭ）、決定木、ランダムフォレスト、および、ＧＢＤＴ（Gradient  Boosting  Decision  Tree）などである。
【００１５】
情報処理装置１００は、処理制御部１０１と、通信制御部１０２と、記憶部１２１と、を備えている。
【００１６】
記憶部１２１は、情報処理装置１００で実行される各種処理で用いられる各種情報を記憶する。例えば記憶部１２１は、学習モデルを定める情報（例えばニューラルネットワークの場合、重みおよびバイアスなどのパラメータ）、学習に用いる学習データ、および、学習モデルの検証に用いる検証データなどを記憶する。
【００１７】
処理制御部１０１は、学習モデルの学習を制御する。処理制御部１０１は、適用する学習モデルに応じた学習方法により、学習処理を制御する。例えば学習モデルとしてニューラルネットワークを用いる場合、処理制御部１０１は、誤差逆伝播法などの学習方法による学習処理を行う。
【００１８】
また処理制御部１０１は、学習済みの学習モデルを用いた処理を制御する。学習モデルを用いた処理はどのような処理であってもよいが、例えば入力データを複数のクラスのいずれかに分類する分類処理、および、入力データから何らかの値を推定する推定処理などである。処理制御部１０１は、例えば、処理対象となる入力データを学習済みの学習モデルに入力し、学習モデルから出力データを得る。入力データはどのような方法で取得されてもよい。例えば、後述する通信制御部１０２を介して入力データが取得されてもよい。
【００１９】
通信制御部１０２は、監視装置２００などの外部装置との間の通信を制御する。例えば通信制御部１０２は、学習済みの学習モデルを定める情報、および、学習モデルが出力する出力データを、監視装置２００に送信する。
【００２０】
上記各部（処理制御部１０１、および、通信制御部１０２）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２１】
次に、監視装置２００について説明する。監視装置２００は、学習済みの学習モデルを用いた処理を監視する装置である。監視装置２００は、取得部２０１と、算出部２０２と、判定部２０３と、出力制御部２０４と、記憶部２２１と、を備えている。
【００２２】
記憶部２２１は、監視装置２００で実行される各種処理で用いられる各種情報を記憶する。例えば記憶部２２１は、後述する判定部２０３が学習モデルの異常を判定するときに参照する参照情報を記憶する。参照情報は、学習された学習モデルに、基準となる期間に入力された入力データ（第１入力データ）を入力して得られる複数の出力データ（第１出力データ）の統計情報（第１統計情報）、および、この複数の出力データの統計情報の算出に用いられる情報、の少なくとも一方である。統計情報の算出に用いられる情報は、例えば、複数の出力データ自体である。
【００２３】
記憶部２２１が出力データ自体を記憶する場合、後述する算出部２０２は、記憶された出力データを用いて出力データの統計情報（第２統計情報）を算出し、算出した統計情報をさらに異常度の算出などに使用する。出力データの更新頻度が低い場合は、出力データから算出した統計情報を記憶部２２１に記憶し、異常度の算出などに使用する方が、算出処理の負荷を軽減することができる。
【００２４】
基準となる期間に入力された入力データは、例えば、学習モデルが正常に機能する状態で入力した入力データである。正常に機能する状態とは、例えば、学習モデルを運用することを決定した際に確認していた精度と同等以上の精度で機能する状態である。運用するか否かは、例えば、学習データとは別の検証データで性能を確認することで決定される。従って、学習モデルを運用することを決定した際に確認していた精度とは、運用することを決定したときの検証データに対する精度である。
【００２５】
なお、基準となる期間に入力された入力データは、学習モデルが正常に機能する状態で入力した入力データに限られるものではない。すなわち、基準とする期間は、学習モデルが正常に機能する状態に相当する期間に限られず、どのような期間であってもよい。例えば、過去の一定期間を基準とする期間とし、この期間に入力された入力データに対する参照情報を用いてもよい。この場合、参照情報と比較する対象となる出力データ（第２出力データ）は、過去の一定期間よりも後の期間に出力された出力データとすればよい。
【００２６】
また、記憶部２２１は、取得部２０１により取得された出力データであって、第１入力データの後に入力された入力データ（第２入力データ）に対する複数の出力データ（第２出力データ）を記憶する。
【００２７】
記憶部２２１は、物理的または論理的に分離される複数の記憶部により構成してもよい。例えば、参照情報を記憶する記憶部と、取得部２０１により取得された出力データを記憶する記憶部とに分けられてもよい。
【００２８】
ここで、統計情報の例を説明する。複数の出力データを、（ｖ１，ｖ２，・・・，ｖｎ）（ｎは２以上の整数）とすると、統計情報は、例えば（１）式で算出される相加平均ｕ、および、（２）式で算出される標準偏差σなどである。
【数１】
2020113119.tif 000003
【数２】
2020113119.tif 000004
【００２９】
統計情報は（１）式および（２）式に限られず、中央値および分散などの他の統計情報を用いてもよい。
【００３０】
取得部２０１は、参照情報に対応する入力データ（第１入力データ）の後に入力された入力データ（第２入力データ）を学習モデルに入力して得られる複数の出力データ（第２出力データ）を取得する。例えば取得部２０１は、情報処理装置１００から送信された出力データを取得する。出力データの取得方法はどのような方法であってもよい。例えば取得部２０１は、情報処理装置１００が学習モデルを用いた処理を実行するごとに出力データを取得してもよいし、情報処理装置１００内で一定数の出力データが得られたときにこの一定数の出力データを情報処理装置１００から取得してもよいし、一定期間が経過するごとにその期間内に得られた出力データを情報処理装置１００から取得してもよい。取得部２０１は、取得した出力データを記憶部２２１に記憶する。
【００３１】
出力データは、監視する学習モデルによって異なる。例えば学習モデルが多クラス分類を行う場合には、出力データは、各クラスに対するロジットまたは確率値（事後確率）である。例えば学習モデルが何らかの値を推定する場合には、出力データは、推定された推定値である。例えば学習モデルが入力を再構成し、その再構成誤差の大きさにより異常を検知する場合には、出力データは、再構成誤差の値である。
【００３２】
算出部２０２は、参照情報に基づいて得られる複数の出力データ（第１出力データ）の統計情報に対する、取得部２０１により取得された出力データ（第２出力データ）の統計情報の変化の度合いを表す異常度を算出する。上記のように、参照情報は、出力データそのもの、または、複数の出力データの統計情報である。以下では主に複数の出力データの統計情報を算出することを前提に説明するが、出力データの統計情報を複数用いて、さらに平均値等の統計情報（第３統計情報）を算出してもよい。例えば、記憶部２２１に記憶されている平均値をすべて用いて初期状態からの統計情報の平均値をさらに算出してもよい。初期状態から処理時点までの平均値と、処理時点での平均値とを比較することによって、初期状態からの状態の変化を知ることが可能となる。
【００３３】
なお取得部２０１で取得する個々の出力データは、学習モデルが正常に機能している時でもある程度のばらつきを持つ場合が多い。従って、１つの出力データではなく、取得した出力データの統計情報が、記憶部２２１に記憶された統計情報との比較に用いられる。これにより、個々の出力データのばらつきの影響を抑制可能となる。
【００３４】
まず算出部２０２は、取得部２０１により取得されて記憶部２２１に記憶された複数の出力データを読み出し、読み出した出力データの統計情報を算出する。算出部２０２で算出する統計情報は、例えば相加平均などである。取得部２０１により取得された出力データをｘ０、その前までに取得されて記憶部２２１に記憶された出力データを（ｘ１，ｘ２，・・・，ｘｎ）とすると、算出部２０２は、例えば以下の（３）式により相加平均ｍを算出する。なお、記憶された出力データの個数を、統計情報の算出に用いる出力データの個数と同じｎとしたが、両者の個数を異なる値としてもよい。
【数３】
2020113119.tif 000005
【００３５】
このような統計情報を用いることによって、取得された出力データのばらつきによって異常度が大きくなり、実際には異常ではないのに異常と判定されることを防ぐことができる。統計情報を用いることで抑えられるばらつきの大きさおよび特性は、記憶部２２１に記憶しておく出力データの個数、および、統計情報の算出方法によって異なる。従って、統計情報の算出方法、並びに、要求されるばらつきの大きさおよび特性などに応じて、記憶部２２１に記憶する出力データの個数が調整されてもよい。
【００３６】
次に算出部２０２は、算出した統計情報と、記憶部２２１に記憶された参照情報から得られる統計情報とを比較して、学習モデルの出力データの時間的な変化の度合いを表す異常度を算出する。例えば算出部２０２は、以下の（４）式により表されるマハラノビス距離を異常度ｄとして算出する。
【数４】
2020113119.tif 000006
【００３７】
異常度の算出方法は（４）式に限られるものではない。例えば算出部２０２は、出力データ間の距離（ユークリッド距離など）を異常度として算出してもよい。
【００３８】
出力データが複数の要素を含むベクトルで表される場合は、複数の要素のうちいずれか１つの要素を用いて上記各式の演算が実行されてもよい。例えば学習モデルが他クラス分類モデルであり、事後確率ベクトルを出力データとして出力する場合、値（事後確率）が最大である要素を用いて上記各式の演算が実行される。
【００３９】
出力データが複数の要素を含むベクトルで表される場合は、ベクトル同士の距離を算出するように構成してもよい。例えば、記憶部２２１は、基準となる期間に入力された入力データに対する複数の出力データ（ベクトル）の要素ごとの平均値を要素とするベクトルｕを参照情報として記憶する。また算出部２０２は、取得部２０１により取得されて記憶部２２１に記憶された複数の出力データ（ベクトル）の要素ごとの平均値を要素とするベクトルｍを算出する。そして算出部２０２は、ベクトルｍ、ベクトルｕ、および、共分散行列Σを用いて、以下の（５）式により表されるマハラノビス距離を異常度ｄとして算出する。
【数５】
2020113119.tif 000007
【００４０】
判定部２０３は、算出部２０２により算出された異常度に基づいて、学習モデルに異常が生じたか否かを判定する。例えば判定部２０３は、算出された異常度と、予め定められた閾値とを比較し、異常度が閾値を超えた場合に、学習モデルに異常が生じたと判定する。比較に用いる閾値は、例えば１などの定数である。閾値を小さくすると小さな変化も異常と判定される。閾値を大きくすると大きな変化が生じた場合にのみ異常と判定される。そこで、精度低下によるリスクが大きく、細かな精度低下を見逃したくない場合は閾値を小さくする。精度低下によるリスクが小さく多少の見逃しを許容できる、または、精度低下を見つけてもすぐに対応できないような場合は閾値を大きくする。このように、閾値は、監視する学習モデルの特性および運用方法に合わせて調整すればよい。
【００４１】
出力制御部２０４は、異常が生じたと判定された場合に、異常が生じたことを示す情報を出力する。例えば出力制御部２０４は、学習モデルの異常が生じたことを示す情報を含む、表示装置などに表示するための表示情報を情報処理装置３００などに送信する。出力制御部２０４は、監視装置２００が備える、または、監視装置２００に接続された、表示装置（液晶ディスプレイなど）、音声出力装置（スピーカなど）、および、警告用の表示灯などの出力装置に対して、異常が生じたことを出力してもよい。
【００４２】
上記各部（取得部２０１、算出部２０２、判定部２０３、および、出力制御部２０４）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００４３】
次に、情報処理装置３００について説明する。情報処理装置３００は、例えば監視装置２００から送信された情報の出力（表示）などを実行する装置である。情報処理装置３００は、表示制御部３０１と、通信制御部３０２と、表示部３２１と、を備えている。
【００４４】
表示部３２１は、情報を表示するための装置であり、例えば、液晶ディスプレイなどにより構成される。
【００４５】
通信制御部３０２は、監視装置２００などの外部装置との間の通信を制御する。例えば通信制御部３０２は、監視装置２００から、学習モデルの異常が生じたことを示す情報を含む表示情報を受信する。
【００４６】
表示制御部３０１は、表示部３２１に対する情報の表示を制御する。例えば表示制御部３０１は、監視装置２００から受信した表示情報を表示部３２１に表示させる。
【００４７】
上記各部（表示制御部３０１、および、通信制御部３０２）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００４８】
なお、上記の各記憶部（記憶部１２１、記憶部２２１）は、フラッシュメモリ、メモリカード、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００４９】
図１に示す監視システムの構成は一例であり、これに限られるものではない。例えば、情報処理装置１００、監視装置２００、および、情報処理装置３００は、それぞれ物理的に独立した装置とする必要はなく、一部または全部を物理的に１つの装置に統合してもよい。また、例えば情報処理装置１００および監視装置２００の少なくとも一方を、クラウド環境上で処理を実行するサーバ装置として実現してもよい。
【００５０】
図２は、クラウド環境上で監視システムを実現する場合の構成例を示すブロック図である。図２に示すように、各装置は、インターネットなどのネットワーク４００により接続される。例えば監視装置２００は、ネットワーク４００を介してアクセスできるクラウド環境上のサーバ装置として実現することができる。
【００５１】
次に、このように構成された第１の実施形態にかかる監視システムによる学習処理について説明する。学習処理は、監視対象となる学習モデルを学習するための処理である。図３は、第１の実施形態における学習処理の一例を示すフローチャートである。
【００５２】
情報処理装置１００の処理制御部１０１は、学習データを用いて学習モデルを学習する（ステップＳ１０１）。処理制御部１０１は、さらに、学習済みの学習モデルの精度を、検証データを用いて検証する（ステップＳ１０２）。検証データにより精度が検証されない（学習モデルを運用できないと判定するなど）場合、ステップＳ１０１に戻りさらに別の学習データ等で学習を実行してもよい。
【００５３】
検証データにより精度が検証された場合、処理制御部１０１は、検証データに対する学習モデルの出力データを例えば通信制御部１０２を介して監視装置２００に送信する。監視装置２００は、送信された出力データ、または、送信された出力データの統計情報（相加平均ｕ、標準偏差σなど）を参照情報として記憶部２２１に記憶する（ステップＳ１０３）。また監視装置２００は、判定部２０３が異常の判定に用いる閾値を例えば記憶部２２１に記憶する（ステップＳ１０４）。記憶する閾値は、例えば監視装置２００を利用するユーザにより指定された値が設定されてもよいし、情報処理装置１００などから送信された値が設定されてもよい。
【００５４】
次に、第１の実施形態にかかる監視システムによる監視処理について説明する。監視処理は、学習処理により学習された学習モデルを用いた処理の結果（出力データ）などを用いて、学習モデルの運用時の異常を監視する処理である。図４は、第１の実施形態における監視処理の一例を示すフローチャートである。
【００５５】
取得部２０１は、運用時の入力データに対する学習モデルの出力データを情報処理装置１００から取得する（ステップＳ２０１）。算出部２０２は、取得された出力データ、および、それ以前に取得されて記憶部２２１に記憶された複数の出力データの統計情報（相加平均ｍ）を算出する（ステップＳ２０２）。
【００５６】
算出部２０２は、算出された統計情報（相加平均ｍなど）と、記憶部２２１に事前に記憶された統計情報（相加平均ｕ、標準偏差σなど）とを用いて、例えば上記（４）式により異常度を算出する（ステップＳ２０３）。
【００５７】
判定部２０３は、算出された異常度が閾値を超えたか否かを判定する（ステップＳ２０４）。閾値を超えた場合（ステップＳ２０４：Ｙｅｓ）、出力制御部２０４は、学習モデルの異常が生じたことを示す情報を含む表示情報を情報処理装置３００に送信（通知）する（ステップＳ２０５）。
【００５８】
異常度が閾値を超えていない場合（ステップＳ２０４：Ｎｏ）、および、異常を通知した後、取得部２０１は、取得した出力データを記憶部２２１に記憶する（ステップＳ２０６）。このとき取得部２０１は、最も古い出力データを記憶部２２１から削除してもよい。これにより、統計情報の算出に必要な個数の出力データのみを記憶部２２１に記憶することができる。
【００５９】
なお、図４の例では、取得部２０１により出力データが１件取得されるごとに異常度が算出され、異常が判定されている。取得部２０１が予め定められた件数の出力データを取得するごとに、または、予め定められた期間が経過するごとに、異常度の算出および異常の判定などが実行されてもよい。
【００６０】
このように、第１の実施形態にかかる監視システムでは、基準となる期間に入力された入力データに対する学習モデルの複数の出力データまたは複数の出力データの統計情報と、その後の入力データに対する学習モデルの出力データまたは出力データの統計情報とを比較することにより、学習モデルの異常を検出する。これにより、学習モデルの異常を高精度に検出することができる。
【００６１】
（第２の実施形態）
第２の実施形態にかかる監視システムは、異常が生じたと判定された場合に、異常の原因などを示す情報を出力する。図５は、第２の実施形態にかかる監視システムの構成の一例を示すブロック図である。図５に示すように、第２の実施形態にかかる監視システムは、情報処理装置１００と、監視装置２００−２と、情報処理装置３００と、を備えている。
【００６２】
第２の実施形態では、監視装置２００−２内に抽出部２０５−２および生成部２０６−２をさらに備えたこと、並びに、出力制御部２０４−２の機能が第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかる監視システムのブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【００６３】
抽出部２０５−２は、異常が生じたと判定された場合に、取得部２０１により取得された複数の出力データ（過去に取得部２０１により取得されて記憶部２２１に記憶された出力データを含む）のうち、異常の原因となった出力データを異常データとして抽出する。例えば抽出部２０５−２は、以下の（６）式を満たす出力データｘを、異常データとして抽出する。出力データｘは、取得部２０１により取得された出力データｘ０、または、記憶部２２１に記憶されている出力データ（ｘ１，ｘ２，・・・，ｘｎ）のいずれかを示す。相加平均ｕおよび標準偏差σは、記憶部２２１で記憶された値を用いることができる。ｔは予め定められた定数であり、例えば異常の判定に用いる閾値と同じ値（例えば１）とする。
【数６】
2020113119.tif 000008
【００６４】
抽出部２０５−２は、このような処理により、統計情報の代わりに各出力データを用いて異常度を算出した場合に、異常と判定される出力データを、異常データとして抽出することができる。
【００６５】
抽出部２０５−２による異常データの抽出方法は上記に限られるものではない。例えば、異常度の大きい順にＮ個（Ｎは１以上の整数）を抽出する方法などを用いてもよい。
【００６６】
また抽出部２０５−２は、抽出した出力データに対応する入力データを取得する。例えば取得部２０１、出力データとともに、この出力データに対応する入力データを情報処理装置１００から取得し、出力データと対応づけて記憶部２２１に記憶しておく。抽出部２０５−２は、記憶部２２１から、出力データに対応する入力データを取得することができる。
【００６７】
生成部２０６−２は、抽出された出力データに対応する入力データが学習モデルの内部でどのように処理されたかを示す情報（内部情報）を生成する。生成部２０６−２は、適用する学習モデルに応じた内部情報を生成する。
【００６８】
例えば学習モデルが畳み込みニューラルネットワーク（ＣＮＮ：Convolutional  Neural  Network）であれば、生成部２０６−２は、誘目度マップ（Saliency  Map）などを内部情報として生成する。学習モデルが決定木であれば、生成部２０６−２は、決定されたリーフまでのパスなどを内部情報として生成する。学習モデルがランダムフォレストであれば、生成部２０６−２は、出力データに近い結果を投票した木の数などを内部情報として生成する。その他の分類モデルを用いる場合、生成部２０６−２は、分類するクラス間の境界と、異常データとの関係を可視化した情報を内部情報として生成してもよい。
【００６９】
生成部２０６−２が内部情報の生成に必要な情報は、例えば取得部２０１が出力データとともに情報処理装置１００から取得し、記憶部２２１に記憶しておけばよい。
【００７０】
出力制御部２０４−２は、生成された内部情報を出力する機能をさらに備える点が、第１の実施形態の出力制御部２０４と異なっている。例えば出力制御部２０４−２は、異常が生じたと判定された場合に、抽出部２０５−２により抽出された出力データおよび対応する入力データと、生成部２０６−２により生成された内部情報と、を表示するための表示情報を情報処理装置３００に送信する。
【００７１】
次に、このように構成された第２の実施形態にかかる監視システムによる監視処理について図６を用いて説明する。図６は、第２の実施形態における監視処理の一例を示すフローチャートである。
【００７２】
ステップＳ３０１からステップＳ３０４までは、第１の実施形態にかかる監視システムにおけるステップＳ２０１からステップＳ２０４までと同様の処理なので、その説明を省略する。
【００７３】
異常度が閾値を超えた場合（ステップＳ３０４：Ｙｅｓ）、抽出部２０５−２は、異常の原因となる出力データを抽出する（ステップＳ３０５）。抽出部２０５−２は、例えば上記（６）式を満たす出力データｘを、異常データとして抽出する。抽出部２０５−２は、抽出した出力データ（異常データ）に対応する入力データを、例えば記憶部２２１から抽出する（ステップＳ３０６）。
【００７４】
生成部２０６−２は、抽出された入力データを用いて、入力データが学習モデルの内部でどのように処理されたかを示す内部情報を含む表示情報を生成する（ステップＳ３０７）。例えば生成部２０６−２は、入力データを学習モデルに入力して処理を実行し、実行時の内部情報を取得し、取得した内部情報を含む表示情報を生成する。出力制御部２０４−２は、生成された表示情報を情報処理装置３００に送信する（ステップＳ３０８）。
【００７５】
異常度が閾値を超えていない場合（ステップＳ３０４：Ｎｏ）、および、表示情報を送信した後、取得部２０１は、取得した出力データを記憶部２２１に記憶する（ステップＳ３０９）。
【００７６】
次に、表示情報に基づく表示画面の例について図７および図８を用いて説明する。図７は、表示情報に基づき表示される表示画面７０１の例を示す図である。
【００７７】
図７は、学習モデルが、入力された画像（入力データの一例）を複数のクラスのいずれかに分類する畳み込みニューラルネットワークである場合の表示画面７０１の例を示す。表示画面７０１の左上部は、表示時点までに算出部２０２により算出された異常度の推移を示すグラフである。このようなグラフにより、異常データが増加した時期、すなわち、学習モデルの精度が悪化した時期を把握できる。また、異常度の値が表示されるため、異常の程度が把握できる。このような情報は、異常の原因調査、および、異常に対する対応の優先度の決定などの参考とすることができる。
【００７８】
表示画面７０１の右上部は、抽出部２０５−２により抽出された異常データ（ロジット）の一覧（リスト）を示す。このリストには、異常データを識別する番号、処理された時刻（日、時間など）、および、分類されたクラスなどが含まれる。リストは、例えば異常度が大きい順、または、時刻順にソートされて表示されてもよい。リストに表示する対象とする異常データの範囲（期間など）を指定可能としてもよい。
【００７９】
リストに含まれる複数の異常データから、例えばユーザが１つの異常データを選択すると、選択された異常データについての内部情報等が表示される。例えば、表示画面７０１の左下部は、選択された異常データが分類されたクラス（図７の例ではクラス０）について、このクラスに分類された複数の出力データ（ロジット）の分布を示す。例えば記憶部２２１は、学習モデルが正常に機能する時の出力データを分類クラスとともに記憶しておく。生成部２０６−２は、記憶部２２１に記憶された情報を参照して図７に示すような分布を生成する。
【００８０】
分布内の矩形部は、予め定められた第１の範囲に含まれるロジットの値を示す。第１の範囲は、多くの出力データが含まれる範囲として定められる範囲であり、例えば全ロジットの値の２５％から７５％の値に相当する範囲である。矩形の上下に付された縦線は、第１の範囲以外の第２の範囲に含まれるロジットの値を示す。矩形部内の横線は、例えばロジットの中央値または平均値を示す。白丸は、選択された異常データに対するロジットの値を示す。図７では、異常データは、クラス０に分類されているが、クラス０に対する第１の範囲から大きく外れた値となっていることが示されている。
【００８１】
表示画面７０１の左下部に示す情報により、異常データの詳細情報、および、異常度の算出の根拠などを把握することができる。
【００８２】
表示画面７０１の右下部は、選択された異常データについて生成部２０６−２により生成された内部情報の例を示す。図７の例では、選択された異常データに対する内部情報として誘目度マップが表示されている。誘目度マップには、対応する入力データ（画像）が並べて表示されている。これにより、異常と判定された原因をより把握しやすくなり、例えば、学習モデルの修正方法を検討するときの参考とすることができる。
【００８３】
なお、図７では、人の画像が入力データとして入力されたときに、標識を表すクラスであるクラス０に分類されたために、この入力データに対する出力データが異常データと判定された例が示されている。誘目度マップだけでなく入力データの画像を表示することで、例えば人の画像が入力データとして入力されたことが異常の原因であると推測することができる。
【００８４】
また、図７では、異常データの下に、正常に機能する状態で入力した入力データの例と、この入力データに対応する誘目度マップが表示されている。この誘目度マップを異常データに対応する誘目度マップと比較することにより、例えば、学習モデルが人の顔を標識と誤認識していると推測することができる。
【００８５】
図８は、表示情報に基づく表示画面の他の例を示す図である。図８は、生成部２０６−２が、分類するクラス間の境界と、異常データとの関係を可視化した情報を内部情報として生成した場合の表示画面の例を示す。図８に示すように、表示画面は、分類される３つのクラスの境界と、出力データとを含む。出力データ８０１は、正常に機能する状態で入力した入力データに対応する出力データを示す。出力データ８０２は、異常データとして抽出された出力データを示す。図８に示す表示画面により、異常データである出力データ８０２は、クラス間の境界付近に分布することが把握できる。
【００８６】
このように、第２の実施形態にかかる監視システムでは、異常が生じたと判定された場合に、異常の原因などを示す情報を出力することができる。
【００８７】
以上説明したとおり、第１から第２の実施形態によれば、機械学習により学習される学習モデルを運用するときの異常をより高精度に検出可能となる。
【００８８】
次に、第１または第２の実施形態にかかる各装置（情報処理装置、監視装置）のハードウェア構成について図９を用いて説明する。図９は、第１または第２の実施形態にかかる装置のハードウェア構成例を示す説明図である。
【００８９】
第１または第２の実施形態にかかる装置は、ＣＰＵ５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００９０】
第１または第２の実施形態にかかる装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００９１】
第１または第２の実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００９２】
さらに、第１または第２の実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００９３】
第１または第２の実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００９４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９５】
１００  情報処理装置
１０１  処理制御部
１０２  通信制御部
１２１  記憶部
２００、２００−２  監視装置
２０１  取得部
２０２  算出部
２０３  判定部
２０４  出力制御部
２０５−２  抽出部
２０６−２  生成部
２２１  記憶部
３００  情報処理装置
３０１  表示制御部
３０２  通信制御部
３２１  表示部
４００  ネットワーク
【図１】
2020113119.tif 000009
【図２】
2020113119.tif 000010
【図３】
2020113119.tif 000011
【図４】
2020113119.tif 000012
【図５】
2020113119.tif 000013
【図６】
2020113119.tif 000014
【図７】
2020113119.tif 000015
【図８】
2020113119.tif 000016
【図９】
2020113119.tif 000017