以下、図面を参照して実施形態を説明する。
(構成)
図1は、本実施形態に係わる監視システムの構成図である。監視システム1は、監視装置11と、クラウド12a上のサーバ12と、監視装置11とサーバ12とを接続するインターネットなどのネットワーク13とを含んで構成される推論システムである。本実施形態の監視システム1は、推論モデルである機械学習モデルを用いて画像に写る対象あるいは対象の状態を推論し、その推論結果を出力するサービスのためのシステムである。
監視装置11は、パーソナルコンピュータ(以下、PCという)21と、撮像装置であるカメラ22と、表示装置であるモニタ23を含む。PC21には、カメラ22が接続され、カメラ14からの撮像信号が入力される。PC21は、ネットワーク13を介して撮像信号の画像データをサーバ12へ送信する。PC21には、マウス21aとキーボード21bが接続されている。マウス21a、キーボード21b及びモニタ23が、グラフィカル・ユーザ・インターフェース(以下、GUIという)を構成する。
サーバ12は、機械学習モデルを用いて、受信した画像データについての推論結果を出力することができる。本実施形態では、PC21から送信された画像データに対する推論結果は、ネットワーク13を介してサーバ12からPC21へ送信される。PC21は、推論結果をモニタ23に出力する。監視システム1のユーザは、モニタ23に表示される推論結果を知ることができる。
なお、以下の実施形態では、機械学習モデルの入力データは、画像データのみであるが、点線で示すような、温度、圧力、音などを検出する検出装置22aの検出データも画像データと併せて入力データとしてしてもよい。
さらになお、本実施形態では、監視システム1の、後述する学習機能、推論機能及び可視化機能は、サーバ12に設けられているが、監視装置11のPC21が、学習機能、推論機能及び可視化機能を有してもよい。
図2は、サーバ12の構成図である。サーバ12は、推論装置31と、ネットワーク13との通信インターフェース(以下、通信I/Fという)32とを有する。推論装置31は、通信I/F32によりネットワーク13を介して監視装置11と通信可能になっている。推論装置31は、プロセッサ33とメモリ34を含む。プロセッサ33は、中央処理装置(以下、CPUという)、ROM、RAMを含み、メモリ34及びROMに記憶されているソフトウエアプログラムを読み出してRAMに展開して実行することにより、所定の機能を実現する。所定の機能には、後述する学習機能、推論機能及び可視化機能が含まれる。
なお、プロセッサ33は、CPUに代えて、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、TPU(Tensor Processing Unit)などの他の処理装置により構成してもよく、あるいはCPU、GPU、FPGA、TPUなどの処理装置の少なくとも2つと組み合わせて構成してもよい。
また、本実施形態では、サーバ12は、クラウド12a上のサーバであるが、いわゆるオンプレミスのサーバでもよい。
メモリ34は、書き換え可能な不揮発性メモリであり、例えばハードディスクドライブである。メモリ34は、学習プログラム、推論プログラム、可視化処理プログラムなどの各種ソフトウエアプログラムが記憶されるプログラム領域34aを含む。さらに、メモリ34には、学習データ用のデータベース(以下、学習用データベースという)35と、機械学習モデル36の機械学習モデルパラメータ(以下、モデルパラメータという)を含む機械学習モデル36とが記憶されている。
学習用データベース35には、複数の学習データ(訓練データ)が格納されている。各学習データは、1つの入力データと、その入力データについての正解ラベルデータとを含む。ここでは、1つの入力データは、画像データであり、1つの正解ラベルは、識別クラス情報である。
なお、本実施形態では、入力データは、画像データであるが、IoT(Internet of Things)に関わるベクトルデータ、数値列データなどでもよく、さらに入力データは、画像データに加えて、ベクトルデータ、数値列データなどの他のデータも含んでいてもよい。正解ラベルデータは、目的変数、正常・異常などの分類クラス情報、などでもよい。
機械学習モデル36は、ディープラーニングによる推論モデルのモデルパラメータのデータを含む。機械学習モデル36は、入力データに基づく推論結果を出力する。例えば、モデルパラメータをθとし、データ数をNとしたとき、機械学習モデル36は、入力データxtに基づく推論結果yi(xt,θ)を出力する。
なお、機械学習モデル36は、ディープラーニングによる手法に限らず、ロジスティック回帰、サポートベクターマシン(SVM)などの手法によるものでもよい。
(学習)
サーバ12の学習機能について説明する。図3は、プロセッサ33におけるモデル学習フェーズの処理の流れを示す図である。図4は、学習用データベース35のデータ構造を示す図である。学習機能を実現する学習部41は、メモリ34のプログラム領域34aに格納された学習プログラムである。学習部41は、データ入力部41aと、データ前処理部41bと、推論実行部41cと、モデルパラメータ更新部41dとを含む。
データ入力部41aは、学習用データベース35からの学習データを取得し、データ前処理部41bに供給する。データ前処理部41bは、学習データである入力データに対して、前処理として所定の処理を実行して、入力データを変換する。例えば、データ前処理部41bでは、入力データの値が、平均が0で、分散が1となるような正規化処理を行う。データ前処理部41bは、水増し処理を行っても良い。水増しとは、入力データにノイズを付与したり、画像を並進・回転・拡縮のような変形を与えたりすることである。
図4に示すように、学習データは、複数の入力データを含み、各学習データは、識別番号(No.)と、リンク情報と、ラベル情報と、メタ情報を含むテーブルデータTBLにより構成されている。識別番号は、各学習データを特定するための識別子である。リンク情報は、入力データの格納されているメモリ領域を示す情報である。ラベル情報は、正解ラベルの情報である。
メタ情報は、入力データ中の学習対象部分を示す情報(以下、学習対象部分情報という)である。本実施形態では、入力データは画像データであるので、学習対象部分情報は、画像データ中の学習対象領域情報である。すなわち、メタ情報は、入力データ中、どの部分あるいはどの領域のデータを学習対象の入力データとして使用するかを示す情報である。
推論実行部41cは、データ前処理部41bにおいて前処理が行われた入力データに対して推論を実行する。ここでは、推論は、はじめに、画像データ中のメタ情報で指定された領域の画像データから所定の特徴量を抽出し、抽出された特徴量に対して、機械学習モデル36を用いて行われる。メタ情報は、例えば、デフォルトでは、画像データの全領域を学習対象領域すなわち注視領域とするが、後述するように、学習データの学習領域すなわち注視領域がユーザによって設定されると、メタ情報の注視領域は、その設定された注視領域(以下、指定注視領域という)に設定変更される。すなわち、メタ情報には、1つ又は2以上の注視領域(指定注視領域を含む)が設定可能である。
なお、メタ情報において、1つの画像データ中に複数の注視領域が設定されたとき、注視領域毎に重み付けをして、注視領域毎の推論結果の各確率を、重み付けに応じて変更するようにしてもよい。
推論実行部41cは、例えば、機械学習モデル36のモデルパラメータに基づき、メタ情報で指定された学習対象領域の入力データから所定の特徴量を抽出する。抽出された特徴量に基づき、推論実行部41cは、推論結果をモデルパラメータ更新部41dへ出力する。
モデルパラメータ更新部41dは、推論実行部41cの実行結果に基づいてモデルパラメータの更新を行う。ここでは、損失関数L(yt(xt,θ),zt)が定義される。損失関数は、正解ラベルzと、推論結果yが一致する程小さくなる関数である。例えば、回帰問題であれば、二乗誤差が用いられ、分類問題であれば、交差エントロピーが用いられる。
従って、N個の学習データt(=(1,2,・・・,N))についてのモデルパラメータの学習とは損失関数が最小になるモデルパラメータθの値θ
*を求めることであり、次の式(1)で表される。
ここでは、式(1)は、Λ(θ)の正則化項を含み、その正則化項を含めて最小化される。最小値は、勾配降下法などを用いて求められる。正則化項に特定の関数、例えばL2norm(全てのθの二乗和)、を選ぶと、θ
*を、入力データx
tの関数とみることが出来き、その結果、推論結果y(x,θ
*)を、x
tで微分可能となる。従って、後述するように、テストデータの推論結果に寄与した入力データの要素あるいは部分を求めることができる。多くの学習データに対して学習部41が実行されることにより、モデルパラメータが得られ、機械学習モデル36が生成される。
以上のように、学習部41は、学習データに基づいて機械学習モデル36の学習を実行するプログラムである。
(推論)
サーバ12は、機械学習モデル36を用いて、入力データについての推論機能を実現可能となる。よって、監視装置11は、画像データをサーバ12へ送信し、推論結果をサーバ12から受信することにより、監視システム1は、所望の監視を行うことができる。
例えば、監視システム1が動物の監視をするシステムである場合、カメラ22の画像データが監視装置11からサーバ12へリアルタイムであるいは所定の時間間隔で送信され、サーバ12は、その画像データの画像に写る動物を推論して、その推論結果を監視装置11へ送信する。監視装置11のモニタ23には、推論結果情報が表示され、監視システム1のユーザは、モニタ23に表示される推論結果情報を認識することができる。
(可視化)
推論結果に間違えがあったとき、ユーザは、推論結果に影響を及ぼした学習データの要素などを可視化して、推論結果に間違えを生じさせた学習データを修正し、推論結果が正しくなるように、いわゆる再学習によって、機械学習モデル36のモデルパラメータを修正する必要がある。
しかし、これまでは、ユーザは、どの学習データが推論結果に大きな影響を与えたかを知ることができても、その学習データのどの要素があるいはどの部分が推論結果に大きな影響を及ぼしたかを知ることはできなかった。本実施形態によれば、入力データをテストデータとしてサーバ12に供給することによって、学習データのどの要素あるいはどの部分が、テストデータについての推論結果に大きな影響を与えたかを、可視化してユーザに示すことができる。その結果、ユーザは、可視化された情報を見て推論結果を評価して、学習データの修正と、再学習を迅速に行うことができる。よって、サーバ12は、推論結果評価装置を構成する。
図5は、テストデータについて、学習データのどの要素あるいはどの部分が推論結果に大きな影響を与えたかを分析し、分析結果を表示する処理の流れの例を示す図である。図5の処理は、サーバ12で実行される。
ユーザは、複数の学習データの中の学習データのどの要素あるいはどの部分が、その画像データについての推論結果に大きな影響を与えたかを知りたい画像データを、テストデータとして、評価指示コマンドと共にサーバ12へ送信する。例えば、正しい推論結果が得られなかった画像データがテストデータとして選択されて、サーバ12へ送信される。
すなわち、ユーザは、監視装置11において、マウス21a及びキーボード21bを用いて、テストデータを指定して、サーバ12へ送信する。よって、監視装置11のマウス21a及びキーボード21bは、入力データであるテストデータを指定する入力データ指定部あるいは入力データ指定装置を構成する。
プロセッサ33は、推論処理と可視化処理を行う推論/可視化部51を含む。推論/可視化部51は、推論プログラムと可視化処理プログラムである。推論プログラムと可視化処理プログラムは、メモリ34のプログラム領域34aに格納されている。推論/可視化部51は、データ取得部52と、推論部53と、演算部54と、結果出力部55とを含む。
データ取得部52は、監視装置11からユーザによってアップロードされたテストデータを取得し、推論部53に供給する。
推論部53は、データ前処理部53aと推論実行部53bとを含む。データ前処理部53aは、所定の前処理を実行する。データ前処理部53aでは、水増し処理は行われない。
推論実行部53bは、機械学習モデル36を用いてテストデータに基づく推論を実行し、推論結果、すなわち、推論結果y(x、θ*)を算出する。推論実行部53bにおける推論には、上述した学習フェーズで得られたモデルパラメータθ*が用いられる。以上のように、推論部53は、テストデータに基づいて、機械学習モデル36を用いた推論を実行する。
図6は、推論実行部53bの処理の流れの例を示す図である。推論実行部53bは、特徴量抽出部61と、注視領域抽出部62と、推論処理部63を含む。データ前処理部53aからのテストデータは、特徴量抽出部61に入力される。
特徴量抽出部61は、テストデータの所定の特徴量を抽出し、特徴量情報を出力する。特徴量情報は、注視領域抽出部62と推論処理部63に供給される。
注視領域抽出部62は、特徴量情報からテストデータ中の注視領域を抽出し、注視領域情報を出力する。注視領域抽出部62は、テストデータから抽出された各特徴量に基づいて、どの領域の特徴量を重視すべきかを示す注視領域情報(以下、推論注視領域情報という)を生成する。画像データであるテストデータ中の各領域から抽出された特徴量に基づいて、どの領域の特徴量を重視するかのマスク情報に基づいて、推論注視領域情報として生成される。
例えば、画像の左上領域に顔の特徴量があり、右下領域に身体の特徴量があるなどの情報から、注視すべき領域を特定するための情報として、重視する領域以外の領域をマスクするマスク情報が生成される。この場合、マスク情報は、例えば、顔部分の領域をそのまま出力し、顔部分以外の領域の特徴量をゼロにするための情報である。言い換えれば、マスク情報は、特徴量のマップと、マスク領域のマップの掛け算、論理積などにより表現される。生成された推論注視領域情報は、注視領域抽出部62から推論処理部63に供給される。
推論処理部63は、機械学習モデル36を用いて、特徴量情報と注視領域情報に基づいて推論を実行し、推論結果を出力する。推論結果は、例えば、各クラスと、クラス毎の確率データを含む。例えば、機械学習モデル36が画像中の動物を推論するモデルの場合、推論結果は、「犬」のクラスの確率が90%で、「猫」のクラスの確率が10%、等である。
推論部53の処理は、上述した監視処理において実行される推論処理と同じである。
推論部53の出力する推論結果は、演算部54へ供給される。演算部54は、重要学習データ抽出部54aと、学習データ影響算出部54bとを含む。
重要学習データ抽出部54aは、テストデータ(x)、全学習データ(x1,x2,・・・,xN)、テストデータと各学習データの推論結果、特徴量情報などから、テストデータについての推論結果に寄与した重要な学習データを抽出する。言い換えれば、重要学習データ抽出部54aは、推定結果に大きな影響を及ぼしたと考えられる1又は2以上の学習データを抽出する。ここでは、重要学習データ抽出部54aは、推論結果に関わるクラス毎に1又は2以上の学習データを抽出する。すなわち、重要学習データ抽出部54aは、入力データであるテストデータについての推論部53の推論結果に寄与した1又は2以上の学習データを、抽出学習データとして、複数の学習データから抽出する学習データ抽出部を構成する。
重要学習データ抽出部54aにおける学習データの抽出は、データの類似度(例えば二乗誤差、特徴量の内積、画像類似指標など)を用いて行うことができる。
例えば、重要学習データ抽出部54aは、テストデータと、各学習データの類似度を算出し、類似度の高い順にソートして、類似度の高い、上位の所定数(1又は2以上)の学習データを出力する。
また、重要学習データ抽出部54aにおける学習データの抽出は、(-(∂y/∂yt))とテストデータの特徴量と各学習データの特徴量との内積を用いて行ってもよく、その抽出方法には、他の方法を用いてもよい。
さらにまた、重要学習データ抽出部54aは、影響関数(Influence Function)に基づいて、推論結果に大きな影響を与える上位の所定数(1又は2以上)の学習データを出力するようにしてもよい。
あるいは、重要学習データ抽出部54aは、クラスに属する複数の学習データの中から識別境界との距離が近い上位の所定数(1又は2以上)の学習データを出力するようにしてもよい。
重要学習データ抽出部54aは、テストデータについての推論結果が正しいとしたときの学習データを、推論結果に良い影響を与えたデータとして出力し、かつ、テストデータについての推論結果が誤っているとしたときの学習データを、推論結果に悪い影響を与えたデータとして出力するようにしてもよい。すなわち、重要学習データ抽出部54aは、推論結果に良い影響を与えた1又は2以上の学習データと、推論結果に悪い影響を与えた1又は2以上の学習データの両方を抽出するようにしてもよい。
学習データ影響算出部54bは、重要学習データ抽出部54aにより抽出された1又は2以上の学習データの各々において、どの要素が推論結果y(x,θ*)にどの程度の影響を与えたかを算出する。
学習データ影響算出部54bは、ここでは、推論結果の確率を各画素値で偏微分((∂y(x,θ*)/∂xt)を行うことによって、各画素についての影響度を算出する。すなわち、学習データ影響算出部54bは、推定結果に含まれる確率値を学習データの各要素又は各部分の値で偏微分して得られた値を、各要素又は各部分の影響度とする。ここでは、学習データ影響算出部54bは、推定結果に含まれる確率値を画像データの各画素値で偏微分して得られた値を、各画素の影響度とする。
各要素の影響度について簡単な例を挙げて説明する。例えば、2次元ベクトルの要素を持つ、2つの学習データ x1={x11,x12}とx2={x21,x22}があり、それらがラベルy1,y2を有しているとする。y1が「正常」で、y2が「異常」とする。このラベルy1,y2を判別する機械学習の分類モデルのパラメータθを、この2つの学習データx1,x2をそれぞれラベルy1とy2に分類するように、ある条件を与えて最適化すると、パラメータθは、θ=θ(x11,x12,x21,x22)の関数で表示される。
ここで、未知のデータxtをこの分類モデルに入力すると、y1(例えば正常)だと思われる確率p=p(xt,θ)を出力する。上記のθの関数から、p(xt,θ)=p(xt,x11,x12,x21,x22)なので、 pは学習データの各要素x11,x12,x21,x22で微分することが出来る。例えば、(∂p/∂x11)の値が、大きな正の値であれば、x11を少し増やすことによりデータxtがy1である確率が増加する。反対に、(∂p/∂x11)の値が小さい値のときは、データxtは、y1とはあまり関係ない。つまり、学習データのどの要素を学習したことが、この推論結果に影響を与えたかを評価できることになる。
別な例を挙げると、過去の営業日のデータから、今日の売上が高いか低いかを分類する売り上げ予測システムの推論モデルが得られた場合、ある日(例えば8月28日)の売上が高いと予測したとき、学習データの1つ(例えば、8月14日)の要素である気温が影響を与えている、ということを評価することができる。
上述した本実施形態では、推論結果の確率を各画素値で偏微分((∂y(x,θ
*)/∂x
t)を行うことによって、各画素についての影響度を算出しているが、例えばテストデータについての推論結果の確率の微分(すなわち感度)である((∂y(x,θ
*)/∂x)を、さらに学習データで微分して、次の式(2)を用いて影響度を算出するようにしてもよい。
さらになお、推論結果から逆伝搬演算により、各画素(すなわち各要素)の影響度を直接算出するようにしてもよく、学習データ影響算出には、他の方法を用いてもよい。よって、学習データ影響算出部54bは、抽出された学習データの要素毎または所定の部分毎に、推論結果に対する影響度を算出する影響度算出部を構成する。
結果出力部55は、学習データ影響算出部54bにより算出された、推論結果に影響を与えた要素の情報を、学習データに重畳した画像を含むGUIデータを生成して、ネットワーク13を介して監視装置11へ送信する。
(修正と再学習)
次に、学習データの修正について説明する。図7は、学習データの修正処理の流れを示す図である。本実施形態では、ユーザは、監視装置11から学習用データベース35の学習データの修正処理をサーバ12に行われることができる。
ユーザは、後述するように推論に寄与した学習データを見て、学習データの削除、指定注視領域の設定及び変更、等の修正を行うことができる。そのため、サーバ12は、学習用データベース35の学習データの修正プログラムを有している。修正プログラムは、メモリ34のプログラム領域34aに記憶されている。
修正には、適切な推論にとっての不適切な学習データの削除、学習データのラベルの付け間違いの修正、指定注視領域の設定変更、等が含まれる。例えば、ラベルが曖昧な学習データ、人にも認識するのが困難な学習データ、間違い易い背景が多く含まれている学習データ、等は、学習用データベース35から削除可能である。また、ラベル付けが間違っている学習データ等については、ラベル情報を正しいラベル情報に修正可能である。また、複数の被写体が含まれ、正しいラベルが付けられた根拠となった被写体以外の被写体を含む学習データについては、正しいラベルが付けられた根拠となった被写体以外の領域を、マスク領域とするように指定注視領域が設定可能である。
よって、修正部42は、学習データの修正をユーザに実行可能にするための処理部である。そして、修正部42は、学習データのラベル情報の変更、学習データの注視領域の設定、及び学習データの削除の少なくとも1つを実行可能である。
学習用データベース35が修正された後、学習部41は、ユーザからの再学習指示コマンドを受信すると、修正された学習用データベース35に基づいて、機械学習モデル36を再生成することができる。
上述したように、結果出力部55は、GUIデータを生成する。図8は、GUIデータに基づいて生成されたGUIの例を示す図である。図8は、結果出力部55により生成されたGUIデータに基づいて、監視装置11のモニタ23の画面23aに表示されたGUI例を示す。図8のGUI1は、テストデータ表示領域71、推論結果表示フィールド72、第1学習データ表示領域73、2つのボタン74a、74bを含む表示切替ボタン74、スライダ摘まみ75aを含むスライダ75、及び第2学習データ表示領域76を含む。
テストデータ表示領域71は、テストデータが表示されるウインドウである。推論結果表示フィールド72は、テストデータに対して行われた推論の結果を表示する。図8では、推論結果表示フィールド72に「分類結果:リス」と表示されている。すなわち、テストデータ表示領域71に表示されたテストデータの画像から、機械学習モデル36は、推論結果として、「リス」を出力したことが示されている。
第1学習データ表示領域73には、重要学習データ抽出部54aにおいて抽出された、推論結果に良い影響を与えた学習データが表示される。ここでは、第1学習データ表示領域73には、推論結果の中から最も確率の高いクラス(ここでは「リス」)の学習データが表示される。さらに、第1学習データ表示領域73には、最も確率の高いクラス(ここでは「リス」)の複数の学習データの中から、テストデータと類似度が最も高い学習データが、重要学習データとして表示される。
第1学習データ表示領域73中に、学習データ影響算出部54bにより算出された影響度が所定の閾値以上である1又は2以上の画素の領域が、所定の色で強調されて他の領域とは識別可能に表示される。図8では、2つの部分PA(斜線で示す部分)が、ユーザに他の領域とは識別可能なように表示された部分として示されている。よって、結果出力部55は、影響度が所定の閾値以上の各要素又は各部分を、他の要素又は他の部分と識別可能に表示する表示データを生成する。
ユーザは、第1学習データ表示領域73に表示された学習データの2つの部分PAが、テストデータ表示領域71に表示されたテストデータについての推論結果「リス」に大きな影響を与えたと認識することができる。
ボタン74aは、複数の学習データの中から、類似度のより高い他の学習データを第1学習データ表示領域73に表示させるときにクリックされる。ボタン74bは、複数の学習データの中から、次に高い類似度の学習データを第1学習データ表示領域73に表示させるときにクリックされる。
よって、類似度が最も高い学習データが第1学習データ表示領域73に表示されているときに、ユーザがマウス21aを用いてボタン74bをクリックすると、類似度が最も高い学習データの次に類似度が高い学習データ(すなわち類似度が2番目に高い学習データ)が第1学習データ表示領域73に表示される。さらにその表示状態で、ユーザがボタン74aをクリックすると、類似度が最も高い学習データが第1学習データ表示領域73に表示されるが、ユーザがボタン74bをクリックすると、類似度が3番目に高い学習データが第1学習データ表示領域73に表示される。
よって、ユーザは、第1学習データ表示領域73に表示された各重要学習データにおいて、推論結果表示フィールド72に表示された推論結果に大きな影響を与えた画素(要素)あるいは部分を認識することができる。
スライダ75は、上述した影響度の閾値を変更するために用いられる。ユーザは、マウス21aを用いてスライダ摘まみ75aを選択した状態で、左右に移動させることができる。閾値を小さくすると、その画素値の影響度が小さくても、その画素は識別可能に表示される。閾値を大きくすると、影響度が大きい画素だけが識別可能に表示される。よって、所定の閾値は、変更可能である。
なお、影響度が大きい画素だけを識別可能にする方法に代えて、影響度が大きい画素を、影響度の大小を色で視覚化するヒートマップ、影響度が大きい画素を囲む輪郭線、等で表示する方法を用いて、表示するようにしてもよい。
例えば、スライダ摘まみ75aを右に移動させると、閾値の幅が大きくなり、スライダ摘まみ75aを左に移動させると、閾値の幅が小さくなる。よって、ユーザは、スライダ摘まみ75aを移動させることで、識別可能表示される部分PAの大きさを変化させることができる。
また、画面23a中の第2学習データ表示領域76には、重要学習データ抽出部54aにおいて抽出された、推論結果に悪い影響を与えた重要学習データが表示される。第1学習データ表示領域73には、推論結果の中から最も確率の高いクラスの学習データが表示されるが、第2学習データ表示領域76には、推論結果の中から2番目に確率の高いクラス(例えば、後述する「ハムスター」)の学習データが表示される。さらに、第1学習データ表示領域73には、2番目に確率の高いクラスの複数の学習データの中から、テストデータと類似度が最も高い学習データが、重要学習データとして表示される。
ユーザは、図示しないスクロールバーなどを操作することにより、第1学習データ表示領域73と同様に、第2学習データ表示領域76の学習データを見ることができる。第2学習データ表示領域76の近傍にも、図示しないが、第2学習データ表示領域76に関する2つのボタン74a、74bを含む表示切替ボタン74、及びスライダ摘まみ75aを含むスライダ75が、表示される。
よって、ユーザは、第2学習データ表示領域76に関する表示切替ボタン74を操作して、推論結果に悪い影響を与えた他の重要学習データも表示させることができる。さらに、ユーザは、第2学習データ表示領域76に関するスライダ75を移動させることで、識別可能表示される部分PAの大きさを変化させることができる。スライダ75で閾値を高くするほど、より確信している根拠となる部分(すなわち影響度が高い部分)だけが識別可能に表示される。
よって、ユーザは、図8のGUI1を表示させることによって、推論結果に影響を与えた重要学習データのどの要素あるいはどの部分が、テストデータの推論結果に影響を及ぼしたかを認識することができる。従って、結果出力部55は、抽出された学習データにおける要素毎または所定の部分毎の影響度を可視化する影響度可視化部を構成する。言い換えれば、結果出力部55は、抽出された学習データにおける要素毎または所定の部分毎の影響度を可視化するための画像データを生成する影響度画像生成部を構成する。
図9は、結果出力部55により生成されたGUIの他の例を示す図である。図9において、図8と同じ構成要素については、同じ符号を用いて説明は省略する。ユーザは、GUI2を用いて、学習データのどの要素あるいはどの部分が、テストデータの推論結果に影響を及ぼしたかを認識することができると共に、学習データの修正を行うことができる。図9のGUI2は、テストデータ表示領域71と推論結果表示フィールド72を含む。
さらに、GUI2は、二点鎖線で示すように、第1学習データ表示領域81と、第2学習データ表示領域82とを有する。第1学習データ表示領域81は、複数(ここでは2つ)の学習データ表示領域である第1表示領域84aと第2表示領域84bを含む。第2学習データ表示領域82も、複数(ここでは2つ)の学習データ表示領域である第1表示領域85aと第2表示領域85bを含む。
第1学習データ表示領域81には、推論結果の中から最も確率の高いクラス(ここでは「リス」)の学習データが表示される。第2学習データ表示領域82には、推論結果の中から2番目に確率の高いクラス(ここでは「ハムスター」)の学習データが表示される。
GUI2は、第1学習データ表示領域81と第2学習データ表示領域82のそれぞれに表示される学習データの数を設定する表示数設定フィールド83を含む。ユーザは、マウス21aとキーボード21bを用いて、表示数設定フィールド83に、数を入力して設定することができる。図9では、「2」が表示数設定フィールド83に設定されているので、第1学習データ表示領域81と第2学習データ表示領域82のそれぞれには、2つの学習データが表示されている。
第1学習データ表示領域81の第1表示領域84aには、類似度が最も高い学習データが表示される。第1学習データ表示領域81の第2表示領域84bには、類似度が最も高い学習データの次に類似度が高い学習データが表示される。
第2学習データ表示領域82の第1表示領域85aには、類似度が最も高い学習データが表示される。第1学習データ表示領域81の第2表示領域84bには、類似度が最も高い学習データの次に類似度が高い学習データが表示される。
第1表示領域84aと第2表示領域84bの各々に対応して、スライダ75と推論結果表示フィールド86が設けられている。推論結果表示フィールド86には、対応する表示領域の学習データのラベル情報が表示される。ユーザは、マウス21aを用いてカーソル91を所望の推論結果表示フィールド86に移動させて、ラベル情報の変更をすることができる。ラベル情報の変更は、上述した修正部42により実行される。
さらに、各表示領域84a,84b,85a,85bには、対応する学習データを削除するための所定のマークの削除ボタン87が設けられている。削除ボタン87がクリックされると、削除ボタン87に関わる学習データは、学習用データベース35から削除される。
さらに、GUI2は、選択学習データ表示部88と、確定ボタン89と、再学習ボタン90を有している。
各表示領域84a,84bに表示された学習データについて、部分PAが重畳されている。部分PAは、推論結果表示フィールド72の推論結果に対して肯定的な影響を与えた要素あるいは部分を示している。
さらに、各表示領域84a,84bに表示された学習データについて、部分PBも重畳されている。部分PBは、推論結果表示フィールド72の推論結果に対して否定的な影響を与えた要素あるいは部分を示している。
同様に、各表示領域85a,85bに表示された画像についても、部分PAとPBが重畳されている。部分PAとPBの状態をみることにより、ユーザは、推定結果への影響を推定することができる。例えば、表示領域84bの学習データの場合、リスの尻尾の部分PAでリスと判断しているが、部分PBのリスの顔では、推定結果を疑問視していると考えられる。
なお、GUI2では、テストデータ表示領域71に表示されたテストデータについても部分PAとPBが表示されている。
図9は、推論結果表示フィールド72の推論結果が「リス」と表示されているが、「リス」の確率よりも低い確率で「ハムスター」の推論結果が得られている場合を示している。よって、ユーザは、各表示領域84a,84b,85a,85bにおいて、推論結果表示フィールド72の推論結果に対して肯定的な影響を与えている部分と、推論結果表示フィールド72の推論結果に対して否定的な影響を与えている部分とを直観的に理解することができる。
選択学習データ表示部88は、ユーザにより選択された学習データを拡大表示する領域である。ユーザは、選択学習データ表示部88に表示された学習データ中の注視する領域を設定することができる。例えば、ユーザは、マウス21aを用いて、GUI2上のカーソル91を移動させて表示領域84bに表示された学習データを選択すると、選択された学習データは、選択学習データ表示部88に表示される。
その後、ユーザは、選択学習データ表示部88に表示された画像に対して、所定のコマンドを選択して、自由が線を描画できるモード下で、仮想ペン92を用いて囲み線93を描画することができる。ユーザが確定ボタン89をクリックすると、線93で囲まれた内側の領域以外の領域は、マスク領域として設定される。この設定されたマスク領域に基づく指定注視領域が、テーブルデータTBLのメタ情報に登録される。図9では、表示領域84bに表示された学習データが選択されて、線93によりマスク領域が設定されていることが示されている。
また、推論結果表示フィールド72の推論結果が間違っていたときに、ユーザは、どの学習データが影響して推論結果が間違ったことが分かる場合がある。例えば、テストデータ表示領域71に表示されたテストデータが「リス」の画像であるにも拘わらず、推論結果表示フィールド72に「ハムスター」が表示されているような場合に、表示領域85aの画像が推論結果に影響していることが分かる場合がある。
そのような場合、ユーザは、表示領域85aの近傍の削除ボタン87をカーソル91で選択すると、表示領域85aに表示されている学習データ自体を、学習用データベース35から削除することができる。図9の場合、表示領域85aに表示されたハムスターの画像の顔部分の画像が大きく影響して、テストデータの推論結果に大きく影響していると考えられるので、ユーザは、表示領域85aに表示された学習データを学習用データベース35から削除する。
不適切な学習データの削除、学習データのラベルの付け間違いの修正、指定注視領域の設定変更、等のコマンドは、監視装置11からサーバ12へ伝えられ、サーバ12の修正部42は、表示領域85aに表示されている学習データを修正する。その後、ユーザは、再学習ボタン90にカーソル91を移動してクリックすると、再学習を指示するコマンドがサーバ12へ送信される。
その結果、サーバ12は、学習プログラムを実行する。学習プログラムは、修正された学習用データベース35を用いて学習を行う。
図10は、再学習後のGUI2の表示例を示す図である。学習データの削除により、表示領域85aには、図9において表示領域85bに表示されていた学習データが表示され、表示領域85bには、表示領域85aの次に類似度が高い学習データが表示される。
また、図10では、図9において線93により囲まれた領域を指定注視領域として指定されたため、テストデータ表示領域71において、リスの尻尾の部分PAが表示されなくなっている。さらに、図9では、表示領域84bでは部分PAが識別表示されていたが、図9の選択学習データ表示部88の部分PAは、マスク領域とされたため、学習には利用されないため、図10のテストデータ表示領域71においては、判断根拠としての部分PAとしては、表示されない。
図11は、テストデータをサーバ12へ供給してから学習データの再学習までの処理の流れを示すフローチャートである。監視システム1が稼働しているとき、監視装置11からの画像データに基づいて、機械学習モデル36を用いて推論が行われ、推論結果が監視装置11へ送信される監視処理が実行されている(ステップ(以下、Sと略す)1)。
推論結果に間違いがあった場合等、ユーザが推論結果の評価を行いたいとき、例えば推論結果が間違った画像データをテストデータとして、評価指示コマンドと共にサーバ12へ送信する。
テストデータが送信されなければ(S2:NO)、監視システム1は、監視処理を継続する。テストデータが送信されると(S2:YES)、サーバ12は、上述した学習データの分析処理を実行する(S3)。分析処理は、図5に示した推論/可視化部51の処理である。
ユーザが分析結果を見て、例えば図8あるいは図9のGUIを見て、再学習が必要ないと判断すると(S4:NO)、処理は、S1に戻る。ユーザが分析結果を見て、再学習が必要と判断すると(S4:YES)、上述した学習データの修正などを行い、再学習のコマンドをサーバ12へ送信する。その結果、サーバ12において、修正後の学習データを用いた再学習が実行される。学習時のモデルパラメータの更新は、推論結果が正解のラベル情報と一致するように、推論注視領域が指定注視領域と一致するという条件で、確率的勾配降下法等によってモデルパラメータを最適化することによって行われる。再学習により、機械学習モデル36が修正されるので、推論結果の精度は高まる。
以上のように、上述した実施形態によれば、テストデータについての推論結果に寄与した学習データが抽出され、かつその学習データのどの要素あるいはどの部分が、テストデータの推論結果に影響したかが可視化されるので、ユーザは、そのテストデータの推論結果に影響した、学習データの要素あるいは部分を直観的に理解することができる。例えば、上述した各GUI1,GUI2に示したように、学習データのどの要素あるいはどの部分を学習したことによって、その推論結果が得られたかを、ユーザは、直観的に理解することができる。その結果、再学習を迅速に行うことができる。
以上のように、上述した実施形態によれば、機械学習モデルにおいて、学習データのどの要素あるいはどの部分が、入力された入力データの推論結果に影響を及ぼしたかを可視化することができる推論結果評価システム、推論結果評価装置及び推論結果評価方法を提供することができる。
なお、上述した実施形態は、機械学習モデルを用いた推論を行う監視システムに応用した例であるが、監視システム以外の他のシステムにも適用可能である。
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD-ROM等の可搬媒体や、ハードディスク等の記憶媒体の非一時的なコンピュータ読み出し可能な媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールしたりすることで、容易に本実施の形態の推論結果評価システムを実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。