(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】劣化検出方法、劣化検出プログラムおよび情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231024BHJP
【FI】
G06N20/00
(21)【出願番号】P 2021553244
(86)(22)【出願日】2019-10-24
(86)【国際出願番号】 JP2019041792
(87)【国際公開番号】W WO2021079478
(87)【国際公開日】2021-04-29
【審査請求日】2022-01-20
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】横田 泰斗
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2016/152053(WO,A1)
【文献】坂本悠輔 ほか,教師なし学習における非データ分布依存型コンセプトドリフト検出手法の検証,情報処理学会研究報告[online],日本,一般社団法人情報処理学会,2015年02月24日,Vol.2015-MPS-102, No6,pp.1-6,[retrieved on 2019.12.20], Retrieved from the Internet: <URL: http://id.nii.ac.jp/1001/00113254>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
訓練データを用いて訓練された学習済みモデルに対して入力データを入力したときの第一の出力結果を取得し、
前記訓練データから前記訓練データの数よりも少ない数の訓練データを抽出し、抽出した訓練データを用いて訓練された検出モデルに対して、前記入力データを入力したときの第二の出力結果を取得し、
第一の期間における、前記第一の出力結果
と前記第二の出力結果
との第一の合致率を算出し、
前記第一の期間と異なる第二の期間における、前記第一の出力結果
と前記第二の出力結果
との第二の合致率を算出し、
前記第一の合致率と前記第二の合致率とを用いて、前記学習済みモデルの精度劣化の変化を出力する
処理を実行することを特徴とする劣化検出方法。
【請求項2】
前記算出する処理は、前記第一の
合致率として、前記学習済みモデルの出力クラスごとに、前記第一の出力結果と、前記第二の出力結果との合致率を算出し、
前記算出する処理は、前記第二の
合致率として、前記学習済みモデルの出力クラスごとに、前記第一の出力結果と、前記第二の出力結果との合致率を算出し、
前記出力する処理は、前記第一の期間に対応付けて、前記
出力クラスごとの前記合致率および各
出力クラスの
前記合致率の平均値を出力するとともに、前記第二の期間に対応付けて、前記
出力クラスごとの前記合致率および各
出力クラスの
前記合致率の平均値を出力することを特徴とする請求項1に記載の劣化検出方法。
【請求項3】
前記出力する処理は、いずれかの期間において、前記
出力クラスごとの合致率、または、前記各
出力クラスの
合致率の平均値が閾値未満の場合に、前記学習済みモデルの精度が劣化したことを示すアラートを出力することを特徴とする請求項2に記載の劣化検出方法。
【請求項4】
コンピュータに、
訓練データを用いて訓練された学習済みモデルに対して入力データを入力したときの第一の出力結果を取得し、
前記訓練データから前記訓練データの数よりも少ない数の訓練データを抽出し、抽出した訓練データを用いて訓練された検出モデルに対して、前記入力データを入力したときの第二の出力結果を取得し、
第一の期間における、前記第一の出力結果
と前記第二の出力結果
との第一の合致率を算出し、
前記第一の期間と異なる第二の期間における、前記第一の出力結果
と前記第二の出力結果
との第二の合致率を算出し、
前記第一の合致率と前記第二の合致率とを用いて、前記学習済みモデルの精度劣化の変化を出力する
処理を実行させることを特徴とする劣化検出プログラム。
【請求項5】
訓練データを用いて訓練された学習済みモデルに対して入力データを入力したときの第一の出力結果を取得する第一取得部と、
前記訓練データから前記訓練データの数よりも少ない数の訓練データを抽出し、抽出した訓練データを用いて訓練された検出モデルに対して、前記入力データを入力したときの第二の出力結果を取得する第一取得部と、
第一の期間における、前記第一の出力結果
と前記第二の出力結果
との第一の合致率を算出する第一算出部と、
前記第一の期間と異なる第二の期間における、前記第一の出力結果
と前記第二の出力結果
との第二の合致率を算出する第二算出部と、
前記第一の合致率と前記第二の合致率とを用いて、前記学習済みモデルの精度劣化の変化を出力する出力部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、劣化検出方法、劣化検出プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
企業等で利用されている情報システムに対して、データの判定や分類機能などへの機械学習モデル(以下では、単に「モデル」と記載する場合がある)の導入が進んでいる。機械学習モデルは、システム開発時に学習させた教師データの通りに判定や分類を行うので、システム運用中に入力データの傾向(データ分布)が変化すると、機械学習モデルの精度が劣化する。
【0003】
一般的に、システム運用中のモデル精度劣化検知は、定期的に手動で、モデルの出力結果の正誤を人間が確認することで正解率を算出し、正解率の低下から精度劣化を検知する手法が利用される。
【0004】
近年では、システム運用中の機械学習モデルの精度劣化を自動で検出する技術として、T2統計量(Hotelling’s T-squre)が知られている。例えば、入力データと正常データ(訓練データ)群を主成分分析し、標準化した各主成分の原点からの距離の二乗の合計である、入力データのT2統計量を算出する。そして、入力データ群のT2統計量の分布に基づき、異常値データの割合の変化を検出して、モデルの精度劣化を自動で検知する。
【先行技術文献】
【非特許文献】
【0005】
【文献】A. Shabbak and H.Midi,“An Improvement of the Hotelling Statistic in Monitoring Multivariate Quality Characteristics”, Mathematical Problems in Engineering (2012) 1-15.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記技術では、システム運用中のモデルの精度をリアルタイムに監視するためには、手動でT2統計量を算出して確認することになるので、処理負荷が高く、定期的にモニタリングすることは現実的に難しい。
【0007】
一つの側面では、システム運用中のモデルの精度をリアルタイムに監視することができる劣化検出方法、劣化検出プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の案では、劣化検出方法は、コンピュータが、学習済みモデルに対して入力データを入力したときの第一の出力結果を取得する処理を実行する。劣化検出方法は、コンピュータが、前記学習済みモデルの性能劣化を検出する検出モデルに対して、前記入力データを入力したときの第二の出力結果を取得する処理を実行する。劣化検出方法は、コンピュータが、第一の期間における、前記第一の出力結果および前記第二の出力結果を比較した第一の合致結果を算出する処理を実行する。劣化検出方法は、コンピュータが、前記第一の期間と異なる第二の期間における、前記第一の出力結果および前記第二の出力結果を比較した第二の合致結果を算出する処理を実行する。劣化検出方法は、コンピュータが、前記第一の合致結果および前記第二の合致結果を用いて、前記学習済みモデルの精度劣化の変化を出力する処理を実行する。
【発明の効果】
【0009】
一つの側面では、システム運用中のモデルの精度をリアルタイムに監視することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1にかかる精度劣化検出装置を説明する図である。
【
図3】
図3は、実施例1にかかるインスペクターモデルを説明する図である。
【
図4】
図4は、実施例1にかかる精度劣化検出装置の機能構成を示す機能ブロック図である。
【
図5】
図5は、教師データDBに記憶される情報の例を示す図である。
【
図6】
図6は、入力データDBに記憶される情報の例を示す図である。
【
図7】
図7は、精度劣化の検出を説明する図である。
【
図8】
図8は、精度状態のリアルタイム表示を説明する図である。
【
図9】
図9は、実施例1にかかる処理の流れを示すフローチャートである。
【
図12】
図12は、精度劣化検出の実行結果を説明する図である。
【
図13】
図13は、周期的に変化するデータの誤検出を説明する図である。
【
図14】
図14は、実施例2にかかる精度劣化検出装置の機能構成を示す機能ブロック図である。
【
図15】
図15は、実施例2にかかるインスペクターモデルの学習を説明する図である。
【
図16】
図16は、実施例2にかかる精度劣化の検出を説明する図である。
【
図17】
図17は、実施例2にかかる処理の流れを示すフローチャートである。
【
図20】
図20は、実施例3にかかる精度劣化検出装置の機能構成を示す機能ブロック図である。
【発明を実施するための形態】
【0011】
以下に、本発明にかかる劣化検出方法、劣化検出プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0012】
[精度劣化検出装置の説明]
図1は、実施例1にかかる精度劣化検出装置10を説明する図である。
図1に示す精度劣化検出装置10は、学習済みの機械学習モデル(以下では、単に「モデル」と記載する場合がある)を用いて入力データの判定(分類)を実行する一方で、機械学習モデルの精度を監視して精度状態をリアルタイムに表示するコンピュータ装置の一例である。
【0013】
例えば、機械学習モデルは、学習時には、説明変数を画像データ、目的変数を衣料名とする教師データを用いて学習され、運用時には、入力データとして画像データが入力されると、「シャツ」などの判定結果を出力する画像分類器である。つまり、機械学習モデルは、高次元データの分類や多クラス分類を実行する画像分類器の一例である。
【0014】
ここで、機械学習や深層学習などで学習された機械学習モデルは、訓練データとラベル付けとを組み合わせた教師データを元に学習されるので、教師データが含む範囲でのみ機能する。一方、機械学習モデルは、運用後に、学習時と同種のデータが入力されることが想定されているが、現実には入力されるデータの状態が変化して、機械学習モデルが適切に機能しなくなることがある。すなわち、「モデルの精度劣化」が発生する。
【0015】
図2は、精度劣化を説明する図である。
図2では、入力データの余計なデータを除いて整理した情報であり、機械学習モデルが入力された入力データを分類する、特徴量空間を示している。
図2では、クラス0、クラス1、クラス2に分類する特徴量空間を図示している。
【0016】
図2に示すように、システム運用初期(学習完了時)は、全ての入力データが正常な位置であり、各クラスの決定境界の内側に分類される。その後の時間経過が進むと、クラス0の入力データの分布が変化する。つまり、学習されたクラス0の特徴量では、クラス0と分類することが難しい入力データが入力されはじめる。さらにその後、クラス0の入力データが決定境界を跨ぎ、機械学習モデルの正解率が低下する。つまり、クラス0と分類すべき入力データの特徴量が変化する。
【0017】
このように、システム運用開始後に、入力データの分布が学習時から変化すると、結果として、機械学習モデルの正解率が低下し、機械学習モデルの精度劣化が発生する。
【0018】
そこで、
図1に示すように、実施例1にかかる精度劣化検出装置10は、監視対象の機械学習モデルと同様の問題を解く、DNN(Deep Neural Network)を用いて生成された少なくとも1つのインスペクターモデル(監視器、以下では単に「インスペクター」と記載する場合がある)を用いる。具体的には、精度劣化検出装置10は、機械学習モデルの出力と各インスペクターモデルの出力との合致率を、機械学習モデルの出力クラスごとに集計することで、合致率の分布変化、すなわち入力データ分布の変化を検出する。
【0019】
ここで、インスペクターモデルについて説明する。
図3は、実施例1にかかるインスペクターモデルを説明する図である。インスペクターモデルは、機械学習モデルとは異なる条件(異なるモデル適用領域(Applicability Domain))で生成される検出モデルの一例である。つまり、インスペクターモデルがクラス0、クラス1、クラス2と判定する各領域(各特徴量)は、機械学習モデルがクラス0、クラス1、クラス2と判定する各領域よりも狭い範囲となるように、インスペクターモデルが生成される。
【0020】
これは、モデル適用領域が狭いほど、入力データの小さな変化で出力が敏感に変化するためである。そのため、監視対象の機械学習モデルよりもインスペクターモデルのモデル適用領域の狭くすることで、入力データの小さな変化でインスペクターモデルの出力値が変動し、機械学習モデルの出力値との合致率でデータの傾向の変化を測定することができる。
【0021】
具体的には、
図3に示すように、入力データがインスペクターモデルのモデル適用領域の範囲内である場合、当該入力データに対して、機械学習モデルはクラス0と判定し、インスペクターモデルもクラス0と判定する。つまり、両方ともクラス0のモデル適用領域内となり、出力値は必ず合致するので、合致率は低下しない。
【0022】
一方、入力データがインスペクターモデルのモデル適用領域の範囲外である場合、当該入力データに対して、機械学習モデルはクラス0と判定するが、インスペクターモデルは各クラスのモデル適用範囲外の領域であることから、必ずしもクラス0と判定するとは限らない。つまり、出力値は必ずしも合致しないので、合致率が低下する。
【0023】
このように、実施例1にかかる精度劣化検出装置10は、機械学習モデルによるクラス判定に並行して、機械学習モデルのモデル適用領域より狭いモデル適用領域を有するように学習されたインスペクターモデルによるクラス判定を実行し、両クラス判定の合致判定結果を蓄積する。そして、精度劣化検出装置10は、モデルの信頼性を示す合致率を算出して、リアルタイムで合致率をモニタ等に表示することで、システム運用中のモデルの精度をリアルタイムに監視することができる。
【0024】
[精度劣化検出装置の機能構成]
図4は、実施例1にかかる精度劣化検出装置10の機能構成を示す機能ブロック図である。
図4に示すように、精度劣化検出装置10は、通信部11、記憶部12、制御部20を有する。
【0025】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者端末などから各種指示を受信する。また、通信部11は、各種端末から、判定対象の入力データを受信する。
【0026】
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、教師データDB13、入力データDB14、機械学習モデル15、インスペクターモデルDB16を記憶する。
【0027】
教師データDB13は、機械学習モデルの学習に利用された教師データであって、インスペクターモデルの学習にも利用される教師データを記憶するデータベースである。
図5は、教師データDB13に記憶される情報の例を示す図である。
図5に示すように、教師データDB13は、データIDと教師データとを対応付けて記憶する。
【0028】
ここで記憶されるデータIDは、教師データを識別する識別子である。教師データは、学習に利用される訓練データまたは学習時の検証に利用される検証データである。
図5の例では、データIDが「A1」である訓練データXと、データIDが「B1」である検証データYを図示している。なお、訓練データや検証データは、説明変数である画像データと、目的変数である正解情報(ラベル)とが対応付けられたデータである。
【0029】
入力データDB14は、判定対象の入力データを記憶するデータベースである。具体的には、入力データDB14は、機械学習モデルへ入力される画像データであって、画像分類を行う対象の画像データを記憶する。
図6は、入力データDB14に記憶される情報の例を示す図である。
図6に示すように、入力データDB14は、データIDと入力データとを対応付けて記憶する。
【0030】
ここで記憶されるデータIDは、入力データを識別する識別子である。入力データは、分類対象の画像データである。
図6の例では、データIDが「01」である入力データ1を図示している。入力データは、予め記憶する必要はなく、他の端末からデータストリームとして送信されてもよい。
【0031】
機械学習モデル15は、学習された機械学習モデルであり、精度劣化検出装置10による監視対象となるモデルである。なお、学習済みのパラメータが設定されたニューラルネットワークやサポートベクタマシンなどの機械学習モデル15を記憶することもでき、学習済みの機械学習モデル15が構築可能な学習済みのパラメータなどを記憶していてもよい。
【0032】
インスペクターモデルDB16は、精度劣化検出に利用する少なくとも1つのインスペクターモデルに関する情報を記憶するデータベースである。例えば、インスペクターモデルDB16は、インスペクターモデルを構築するためのパラメータであって、後述する制御部20によって機械学習によって生成(最適化)されたDNNの各種パラメータを記憶する。なお、インスペクターモデルDB16は、学習済みのパラメータを記憶することもでき、学習済みのパラメータが設定されたインスペクターモデルそのもの(DNN)を記憶することもできる。
【0033】
制御部20は、精度劣化検出装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、インスペクターモデル生成部21、設定部22、劣化検出部23、表示制御部26、報知部27を有する。なお、インスペクターモデル生成部21、設定部22、劣化検出部23、表示制御部26、報知部27は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【0034】
インスペクターモデル生成部21は、機械学習モデル15の精度劣化を検出する監視器や検出モデルの一例であるインスペクターモデルを生成する処理部である。具体的には、インスペクターモデル生成部21は、機械学習モデル15の学習に利用された教師データを用いた深層学習により、モデル適用範囲の異なるインスペクターモデルを生成する。そして、インスペクターモデル生成部21は、深層学習によって得られた、モデル適用範囲が異なるインスペクターモデル(DNN)を構築するための各種パラメータをインスペクターモデルDB16に格納する。
【0035】
例えば、インスペクターモデル生成部21は、訓練データの数を制御することで、適用範囲の異なる複数のインスペクターモデルを生成する。一般的には、訓練データの数が多いほど、多くの特徴量を多く学習することになるので、より網羅的な学習が実行され、モデル適用範囲が広いモデルが生成される。一方で、訓練データの数が少ないほど、学習する教師データの特徴量が少ないので、網羅できる範囲(特徴量)が限定的になり、モデル適用範囲が狭いモデルが生成される。
【0036】
なお、実施例1では、1つのインスペクターモデルを用いる例で説明するが、インスペクターモデル生成部21は、訓練回数は同じにして、訓練データの数を変更することで、複数のインスペクターモデルを生成することもできる。例えば、機械学習モデル15が訓練回数(100エポック)、訓練データ数(1000個/1クラス)で学習された状態で、5つのインスペクターモデルを生成する場合を考える。この場合、インスペクターモデル生成部21は、インスペクターモデル1の訓練データ数を「500個/1クラス」、インスペクターモデル2の訓練データ数を「400個/1クラス」、インスペクターモデル3の訓練データ数を「300個/1クラス」、インスペクターモデル4の訓練データ数を「200個/1クラス」、インスペクターモデル5の訓練データ数を「100個/1クラス」と決定し、教師データDB13から教師データを無作為に選択して、それぞれを100エポックで学習する。
【0037】
その後、インスペクターモデル生成部21は、学習されたインスペクターモデル1、2、3、4、5それぞれの各種パラメータをインスペクターモデルDB16に格納する。このようにして、インスペクターモデル生成部21は、機械学習モデル15の適用範囲よりも狭いモデル適用範囲を有するとともに、それぞれのモデル適用範囲が異なる5つのインスペクターモデルを生成することができる。
【0038】
なお、インスペクターモデル生成部21は、誤差逆伝搬などの手法を用いて、各インスペクターモデルを学習することができ、他の手法を採用することもできる。例えば、インスペクターモデル生成部は、訓練データをインスペクターモデルに入力して得られる出力結果と、入力された訓練データのラベルとの誤差が小さくなるように、DNNのパラメータを更新することで、インスペクターモデル(DNN)の学習を実行する。
【0039】
設定部22は、劣化判定のための閾値、合致率算出に用いるデータの規定数の設定を実行する処理部である。例えば、設定部22は、記憶部12から機械学習モデル15を読み出すとともに、インスペクターモデルDB16から各種パラメータを読み出して学習済みのインスペクターモデルを構築する。そして、設定部22は、教師データDB13に記憶される各検証データを読み出して、機械学習モデル15とインスペクターモデルに入力して、それぞれの出力結果(分類結果)に基づくモデル適用領域への分布結果を取得する。
【0040】
その後、設定部22は、検証データに対する機械学習モデル15とインスペクターモデル1と間の各クラスの合致率を算出する。そして、設定部22は、合致率を用いて閾値を設定する。例えば、設定部22は、合致率をディスプレイ等に表示して、ユーザから閾値の設定を受け付ける。また、複数のインスペクターモデルを用いる場合には、設定部22は、各合致率の平均値、各合致率の最大値、各合致率の最小値など、ユーザが検出を要求する劣化状態に応じて、任意に選択して設定することができる。
【0041】
また、設定部22は、設定画面などを表示して合致率算出の規定数の指定を受け付ける。例えば、100と設定された場合、100個の入力データに対する合致判定が完了後、合致率の算出が実行される。また、データ数に限らず、1時間や1か月ごとのように間隔を指定することもでき、この場合、設定された間隔おきに合致率の算出や合致率等の算出が実行される。
【0042】
なお、合致率算出に利用する入力データ数(規定数)は、ユーザが任意に定めることができる。規定数が多いほど、信頼性の誤差は小さくなるが、算出に必要なデータ数が大きくなる。
【0043】
図4に戻り、劣化検出部23は、分類部24、監視部25を有し、入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果とを比較し、機械学習モデル15の精度の劣化を検出する処理部である。
【0044】
分類部24は、入力データを機械学習モデル15とインスペクターモデルとのそれぞれに入力して、それぞれの出力結果(分類結果)を取得する処理部である。例えば、分類部24は、インスペクターモデルの学習が完了すると、インスペクターモデルのパラメータをインスペクターモデルDB16から取得してインスペクターモデルを構築するとともに、機械学習モデル15を実行する。
【0045】
そして、分類部24は、入力データを機械学習モデル15に入力してその出力結果を取得するとともに、当該入力データをインスペクターモデル(DNN)に入力して各出力結果を取得する。その後、分類部24は、入力データと各出力結果とを対応付けて記憶部12に格納するとともに、監視部25に出力する。
【0046】
監視部25は、インスペクターモデルの出力結果を用いて、機械学習モデル15の精度劣化を監視する処理部である。具体的には、監視部25は、クラスごとに、機械学習モデル15の出力と、インスペクターモデルの出力との合致率の分布変化を測定する。例えば、監視部25は、各入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致判定を実行して記憶部12等に蓄積する。
【0047】
そして、監視部25は、設定部22により設定された間隔で、機械学習モデル15の出力とインスペクターモデルの出力との合致判定結果を用いて、インスペクターモデルごとまたはクラスごとの合致率を算出する。例えば、監視部25は、設定値が100データの場合、100個の入力データの合致判定が完了すると、合致率の算出を実行する。また、監視部25は、設定値が1時間の場合、1時間おきに合致率の算出を実行する。その後、監視部25は、合致判定結果を記憶部12に格納したり、表示制御部26に出力したりする。
【0048】
図7は、精度劣化の検出を説明する図である。
図7では、入力データに対する監視対象の機械学習モデル15の出力結果とインスペクターモデルの出力結果とを図示している。ここでは、説明を分かりやすくするため、特徴量空間におけるモデル適用領域へのデータ分布を用いて、監視対象の機械学習モデル15の出力に対してインスペクターモデルの出力が合致する確率を説明する。
【0049】
図7に示すように、監視部25は、運用開始時、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0050】
つまり、監視部25は、機械学習モデル15とインスペクターモデルとの各クラスの合致率が一致することから合致率を100%と算出する。このタイミングでは、それぞれの分類結果が一致する。
【0051】
時間経過が進むと、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0052】
つまり、監視部25は、クラス0については合致率を50%((3/6)×100)と算出し、クラス1とクラス2については合致率を100%と算出する。すなわち、クラス0のデータ分布の変化が検出される。このタイミングでは、インスペクターモデルは、クラス0に分類されなかった3つの入力データに対して、クラス0に分類するとは限らない状態である。
【0053】
さらに時間経過が進むと、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には1つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0054】
つまり、監視部25は、クラス0については合致率を33%((1/3)×100)と算出し、クラス1とクラス2については合致率を100%と算出する。すなわち、クラス0のデータ分布が変化したと判定される。このタイミングでは、機械学習モデル15では、クラス0と分類されるべき入力データがクラス0と分類されず、インスペクターモデルでは、クラス0に分類されなかった5つの入力データに対しては、クラス0に分類されるとは限らない状態である。
【0055】
このように、監視部25は、入力データの予測(判定)処理が実行されるたびに、機械学習モデル15とインスペクターモデルとの合致判定を実行する。そして、監視部25は、定期的に合致率を算出する。
【0056】
図4に戻り、表示制御部26は、監視部25による合致率の算出結果をモニタ等の表示装置(図示しない)に出力する制御部である。例えば、表示制御部26は、ユーザにより指定されたタイミングで、監視部25により算出された合致率の変化を表示する。
【0057】
図8は、精度状態のリアルタイム表示を説明する図である。
図8では、1時間おきの合致率の変化を図示している。
図8に示すように、表示制御部26は、1時間おきに、クラス1の合致率1、クラス2の合致率2を表示するとともに、合致率1と合致率2の平均値である信頼性およびユーザにより設定された閾値を表示する。
【0058】
図8の例では、10時の時点で最も信頼性が高く、10時から12時まで信頼性が低下するが、12時以降は信頼性が回復している例を示している。つまり、10時か12時までの間では入力データの分布が学習時とは異なりつつあったが、全体としては、入力データが変化していないと判断することができる。
【0059】
なお、合致率の算出タイミングと合致率の変化の表示間隔(
図8に示す横軸)とは異なっていてもよい。例えば、監視部25は、100データごとに各クラスの合致率を算出し、表示制御部26は、1時間おきに、その時間内(1時間内)の合致率の平均値や最小値などを表示することもできる。この場合、表示制御部26は、各クラスの合致率のグラフが選択されると、監視部25により算出された100データごとの合致率を表示することもできる。
【0060】
図4に戻り、報知部27は、信頼性が低下した場合に、ユーザにアラートを報知する処理部である。例えば、報知部27は、信頼性がユーザにより指定された閾値未満となった場合に、信頼性が低下したことを示すメッセージなどをモニタに表示したり、メールで送信したりする。
【0061】
なお、アラートの報知条件は任意に設定変更することができる。例えば、報知部27は、合致率のいずれかが閾値未満となった場合、閾値未満の信頼性が連続して検出された場合、信頼性が閾値未満となった回数が閾値以上となった場合など、任意に指定したタイミングで、アラートを報知することができる。
【0062】
[処理の流れ]
図9は、実施例1にかかる処理の流れを示すフローチャートである。
図9に示すように、処理が開始されると(S101:Yes)、インスペクターモデル生成部21は、機械学習モデル15のデータ数よりもデータ数を削減するなどによりインスペクターモデル用の教師データを生成する(S102)。そして、インスペクターモデル生成部21は、生成した教師データ内の訓練データを用いて、インスペクターモデル用の訓練を実行して、インスペクターモデルを生成する(S103)。
【0063】
続いて、設定部22は、初期値を設定する(S104)。例えば、設定部22は、劣化判定のための閾値、合致率算出に用いるデータの規定数の設定を行う。
【0064】
その後、劣化検出部23は、入力データを機械学習モデル15に入力して出力結果を取得し(S105)、入力データをインスペクターモデルに入力して出力結果を取得する(S106)。
【0065】
そして、劣化検出部23は、出力結果の比較、すなわち入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致判定結果を蓄積する(S107)。そして、蓄積数や処理された入力データ数などが規定数に到達するまで(S108:No)、S105以降を繰り返す。
【0066】
その後、劣化検出部23は、処理数などが規定数に到達すると(S108:Yes)、クラスごとに各インスペクターモデルと機械学習モデル15との合致率を算出する(S109)。そして、表示制御部26は、合致率や信頼性を含む精度状態をモニタ等に表示する(S110)。
【0067】
ここで、信頼性が検出条件を満たさない場合(S111:No)、S105以降が繰り返され、信頼性が検出条件を満たす場合(S111:Yes)、報知部27は、アラートを報知する(S112)。
【0068】
[効果]
上述したように、精度劣化検出装置10は、監視対象の学習済みの機械学習モデル15の出力とインスペクターモデルの出力との合致率が、機械学習モデル15の出力の正解率に概ね比例するので、機械学習モデル15の信頼性の測定に合致率の値を用いる。このように、精度劣化検出装置10は、合致率を信頼性の測定に用いることで、機械学習モデル15の出力の正誤情報(人間の正誤の判断)が不要となり、自動で信頼性をモニタリングすることができる。
【0069】
また、精度劣化検出装置10は、各入力データの合致判定結果を蓄積しておくことで、任意のタイミングで直近の規定数の入力データに対する合致率を算出することができる。そのため、精度劣化検出装置10は、リアルタイムでモデルの信頼性を測定して出力することができる。
【0070】
図10は、効果を説明する図である。
図10には、T
2統計量などを用いた一般的なモニタリングと、実施例1によるモニタリングとの比較を図示している。
図10に示すように、一般技術では、T
2統計量の計算、表示、比較などを人手により行うので、工数(コスト)がかかる。このため、月に1回程度しか信頼性を測定できない。したがって、例えば5月2日から信頼性が低下した場合、6月1日まで信頼性低下を把握できない。
【0071】
一方、実施例の手法では、上述したようにより自動で合致率の算出、信頼性の表示を実行することができるので、リアルタイムで信頼性を測定できる。このため、精度劣化検出装置10は、信頼性が低下した瞬間にユーザに報知することができる。
【0072】
[具体例]
次に、機械学習モデル15として画像分類器を用いて、インスペクターモデルによる精度劣化を検出する具体例を説明する。画像分類器とは、入力した画像をクラス(カテゴリ)ごとに分類する機械学習モデルである。例えば、アパレルの通信販売サイトや個人間で衣料品を売買するオークションサイト等では、衣料品の画像をサイトにアップロードし、その衣料品のカテゴリをサイト上に登録する。サイトにアップロードした画像のカテゴリの自動登録を行うために、機械学習モデルを用いて、画像から衣料品のカテゴリの予測を行っている。システム運用中に、アップロードする衣料品の画像の傾向(データ分布)が変化すると、機械学習モデルの精度が劣化していく。一般技術では、手動で予測結果の正誤を確認し、正解率を算出して、モデル精度劣化を検知していた。そこで、実施例1による手法を適用することで、予測結果の正誤情報を用いることなく、モデル精度劣化を検知する。
【0073】
例えば、具体例で示すシステムは、入力データを画像分類器とインスペクターモデルのそれぞれに入力し、画像分類器とインスペクターモデルとのモデル適用領域のデータ分布の合致率を用いて、定期的に、画像分類器の信頼性を算出してモニタに表示するシステムである。
【0074】
次に、教師データを説明する。
図11は、教師データの具体例を説明する図である。
図11に示すように、教師データは、ラベルがクラス0であるT-シャツ、ラベルがクラス1であるズボン、ラベルがクラス2であるプロオーバー、ラベルがクラス3ではドレス、ラベルがクラス4であるコートの各画像データを用いる。また、ラベルがクラス5であるサンダル、ラベルがクラス6であるシャツ、ラベルがクラス7であるスニーカー、ラベルがクラス8ではバッグ、ラベルがクラス9であるアンクルブーツの各画像データを用いる。
【0075】
ここで、画像分類器は、10クラス分類を行うDNNを用いた分類器であり、教師データを1000個/1クラス、訓練回数を100エポックとして訓練されている。また、インスペクターモデルは、10クラス分類を行うDNNを用いた検出器であり、教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。つまり、モデル適用領域は、画像分類器、インスペクターモデルの順に狭くなっている。なお、教師データは、画像分類器の教師データの中から無作為に選択した。また、各クラスの合致率の閾値は、0.7とする。
【0076】
このような状態において、入力データは、教師データ同様、衣料品(10クラスのいずれか)の画像(グレースケール)を利用する。なお、入力画像はカラーでも良い。監視対象の画像分類器(機械学習モデル15)に合わせた入力データを用いる。
【0077】
このような状態において、精度劣化検出装置10は、監視対象の画像分類器に入力したデータを、インスペクターモデルに入力して、出力の比較を実行し、画像分類器の出力クラスごとに、比較結果(合致または非合致)を蓄積する。そして、精度劣化検出装置10は、蓄積している比較結果(例えば、直近100個/クラス)から、各クラスの合致率および信頼性を算出して、モニタに表示する。そして、精度劣化検出装置10は、信頼性が閾値未満の場合、精度劣化検知のアラートを出力する。
【0078】
図12は、精度劣化検出の実行結果を説明する図である。
図12には、入力データのうち、クラス0(T-シャツ)の画像のみ、徐々に画像が回転していき、傾向が変化したケースの実行結果を示している。精度劣化検出装置10は、クラス0のデータが10度回転した時点で、クラス0の合致率(0.61)が閾値未満に低下し、モデル全体の信頼性が閾値を下回り、アラートを通知した。なお、データが15度回転した時点で、クラス0の合致率(0.35)が非常に低下するが、精度劣化検出装置10は、画像分類器の正解率がわずかに下がった段階で、モデルの精度劣化を検出してモニタに表示することで、ユーザ通知を実行できた。
【0079】
この結果、精度劣化検出装置10は、モデルの信頼性モニタリングに必要だったシステム運用工数を削減できる。また、精度劣化検出装置10は、リアルタイムで信頼性の値を測定してモニタリングでき、モデルの信頼性が低下した状態でのシステム利用を防止できる。
【実施例2】
【0080】
ところで、判定(予測)対象の入力データは、いわゆるドメインシフトに限らず、時間や季節などにように周期的に変化することもある。上記インスペクターモデルによる厳密な合致率の判定を行った場合、このように周期的にデータ分布が変化するデータに対しては、モデル精度劣化を誤検知してしまう恐れがある。
【0081】
図13は、周期的に変化するデータの誤検出を説明する図である。
図13には、季節性のある入力データの分布を示している。ここでの入力データとしては、各季節で撮像された画像データや各季節で測定されたセンサ値などである。つまり、季節ごとに、光量やノイズなどが異なる撮像環境で収集されたデータである。
【0082】
図13に示すように、生成したインスペクターモデルは、夏の入力データに対しては、正しくクラス分類できる分類器である。このようなインスペクターモデルを秋のデータに対して適用した場合、夏のデータとは特徴量が異なることが想定できるので、秋のデータに対しては正しくクラス分類を実行できず、クラス0やクラス1で誤検出を実行する場合がある。
【0083】
また、冬のデータに対しても、インスペクターモデルは、正しくクラス分類を実行できず、クラス0、クラス1、クラス2のそれぞれで誤検出を実行する場合があり、春のデータに対してもクラス0やクラス1で誤検出を実行する場合がある。
【0084】
このように、実施例1にかかるインスペクターモデルでは、入力データのデータ分布の変化によって合致率が変化し、モデル精度劣化を検知しているので、周期的なデータ分布の変化のように問題のないデータ分布の変化に対しても合致率が変化してしまい、誤検知する恐れがある。
【0085】
そこで、実施例2にかかる精度劣化検出装置10は、周期を任意の数で分割した期間内の訓練データを抽出して、各期間に対応した各インスペクターモデルを生成し、1個以上のインスペクターモデルの合致率が高い場合は、精度劣化発生と判定せず、全てのインスペクターモデルの合致率が低下して、初めて精度劣化発生と判定する。このようにすることで、実施例2にかかる精度劣化検出装置10は、入力データの分布が周期的に変化する機械学習モデルの精度劣化を自動で検知することができる。
【0086】
[精度劣化検出装置50の機能構成]
図14は、実施例2にかかる精度劣化検出装置50の機能構成を示す機能ブロック図である。
図14に示すように、精度劣化検出装置50は、通信部51、記憶部52、制御部60を有する。
【0087】
通信部51は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部51は、管理者端末などから各種指示を受信する。また、通信部51は、各種端末から、判定(予測)対象の入力データを受信する。
【0088】
記憶部52は、データや制御部60が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部52は、教師データDB53、入力データDB54、機械学習モデル55、インスペクターモデルDB56を記憶する。なお、教師データDB53、入力データDB54、機械学習モデル55、インスペクターモデルDB56は、
図4で説明した教師データDB13、入力データDB14、機械学習モデル15、インスペクターモデルDB16と同様の構成を有するので、詳細な説明は省略する。
【0089】
制御部60は、精度劣化検出装置50全体を司る処理部であり、例えばプロセッサなどである。この制御部60は、周期特定部61、インスペクターモデル生成部62、設定部63、劣化検出部64、報知部65を有する。なお、周期特定部61、インスペクターモデル生成部62、設定部63、劣化検出部64、報知部65は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【0090】
周期特定部61は、監視対象の機械学習モデル15の入力データの分布変化の周期を確認し、1周期をインスペクターモデルの数で分割した期間内の入力データを抽出し、各インスペクターモデルの訓練データとする処理部である。例えば、周期としては、季節に限らず、朝(6:00から11:00)、昼(12:00から15:00)、夕方(15:00から18:00)、夜(19:00から6:00)など、様々な周期を採用することができる。
【0091】
ここでは、季節を例にして説明する。
図15は、実施例2にかかるインスペクターモデルの学習を説明する図である。
図15に示すように、周期特定部61は、教師データDB53に格納される教師データのうち、6月から8月に撮像された教師データを抽出し、9月から11月に撮像された教師データを抽出し、12月から2月に撮像された教師データを抽出し、3月から5月に撮像された教師データを抽出する。そして、周期特定部61は、抽出した各データを記憶部52に格納したり、インスペクターモデル生成部62に出力したりする。
【0092】
インスペクターモデル生成部62は、周期的に変化する入力データの分布に対応させるために、1周期内のそれぞれのタイミングにおいてのデータ分布に対してモデル精度劣化検知を行うインスペクターモデルを生成する処理部である。
【0093】
上記例で説明すると、インスペクターモデル生成部62は、6月から8月に撮像された教師データを用いた教師有学習により、インスペクターモデル(夏用)生成し、9月から11月に撮像された教師データを用いた教師有学習により、インスペクターモデル(秋用)生成する。また、インスペクターモデル生成部62は、12月から2月に撮像された教師データを用いた教師有学習により、インスペクターモデル(冬用)生成し、3月から5月に撮像された教師データを用いた教師有学習により、インスペクターモデル(春用)生成する。なお、インスペクターモデル生成部62は、各インスペクターモデルの学習結果(生成結果)をインスペクターモデルDB56に格納する。
【0094】
設定部63は、劣化判定のための閾値、合致率算出に用いるデータの規定数の設定を実行する処理部である。例えば、設定部63は、実施例1の
図4で説明した設定部22と同様の手法により、各閾値等を設定する。
【0095】
劣化検出部64は、入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果とを比較し、機械学習モデル15の精度の劣化を検出する処理部である。具体的には、劣化検出部64は、実施例1の分類部24と監視部25と同様の処理を実行して、機械学習モデル15の精度劣化を検出する。
【0096】
例えば、劣化検出部64は、分類部24と同様、入力データを機械学習モデル15とインスペクターモデルとのそれぞれに入力して、それぞれの出力結果(分類結果)を取得する。そして、劣化検出部64は、監視部25と同様、各入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致判定を実行して記憶部12等に蓄積する。その後、劣化検出部64は、予め指定したタイミングで、機械学習モデル15と各インスペクターモデルの合致率を算出して、報知部65に出力する。
【0097】
報知部65は、実施例1と同様、信頼性が低下した場合に、ユーザにアラートを報知する処理部である。例えば、報知部65は、劣化検出部64により算出された各インスペクターモデルの合致率に基づく精度劣化の判定を実行し、精度劣化を検出した場合にアラートを報知する。
【0098】
図16は、実施例2にかかる精度劣化の検出を説明する図である。
図16に示すように、劣化検出部64は、機械学習モデル15の出力結果とインスペクターモデル(夏用)とを比較して合致率を算出し、機械学習モデル15の出力結果とインスペクターモデル(秋用)とを比較して合致率を算出する。同様に、劣化検出部64は、機械学習モデル15の出力結果とインスペクターモデル(冬用)とを比較して合致率を算出し、機械学習モデル15の出力結果とインスペクターモデル(春用)とを比較して合致率を算出する。
【0099】
そして、報知部65は、閾値判定を実行する。周期的に入力データの分布が変化するため、特定のインスペクターモデルの合致率が低下した場合でも、モデル精度劣化が発生したとは限らない。そこで、報知部65は、各合致率と閾値とを比較し、すべての合致率が閾値未満の場合に、精度劣化を検出し、アラートを報知する。
【0100】
[処理の流れ]
図17は、実施例2にかかる処理の流れを示すフローチャートである。
図17に示すように、処理が開始されると(S201:Yes)、周期特定部61は、教師データの周期を特定し(S202)、周期ごとの教師データを抽出する(S203)。例えば、周期特定部61は、ユーザ指定や教師データが撮像された日時を参照することで、季節や時間帯などに区分して教師データを抽出する。
【0101】
続いて、インスペクターモデル生成部62は、各周期に対応する教師データ内の訓練データを用いて、各周期用のインスペクターモデル用の訓練を実行して、各インスペクターモデルを生成する(S204)。続いて、設定部63は、初期値を設定する(S205)。
【0102】
その後、劣化検出部64は、入力データを機械学習モデル15に入力して出力結果を取得し(S206)、入力データをインスペクターモデルに入力して出力結果を取得する(S207)。
【0103】
そして、劣化検出部64は、入力データに対する機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致判定結果を蓄積する(S208)。そして、蓄積数や処理された入力データ数などが規定数に到達するまで(S209:No)、S206以降を繰り返す。
【0104】
その後、劣化検出部64は、処理数などが規定数に到達すると(S209:Yes)、クラスごとに各インスペクターモデルと機械学習モデル15との合致率を算出する(S210)。ここで、合致率が検出条件を満たさない場合(S211:No)、S206以降が繰り返され、合致率が検出条件を満たす場合(S211:Yes)、報知部65は、アラートを報知する(S212)。
【0105】
[効果]
上述したように、実施例2にかかる精度劣化検出装置50は、監視対象の機械学習モデル15の入力データの分布変化の周期を確認し、1周期をインスペクターモデル数で分割した期間内の入力データを抽出し、各インスペクターモデルの訓練データとする。実施例2にかかる精度劣化検出装置50は、上記訓練データを学習した各期間のインスペクターモデルをモデル精度劣化検知に利用し、合致率を算出する。実施例2にかかる精度劣化検出装置50は、合致率が低下した場合でも、1個以上のインスペクターモデルの合致率が高い場合は、精度劣化発生と判定せず、全てのインスペクターモデルの合致率が低下して、初めて精度劣化発生と判定する。
【0106】
この結果、実施例2にかかる精度劣化検出装置50は、入力データの分布が周期的に変化する機械学習モデルの精度劣化を自動で検出でき、季節性のあるデータ等の周期的に分布が変化するデータでの誤検知を防止できる。
【0107】
図18は、実施例2の効果を説明する図である。
図18の上図に示すように、1つのインスペクターモデルのみを用いて精度劣化を検出する場合、夏の入力データに対しては、正しくクラス分類できるが、夏のデータとは特徴量が異なる秋、冬、春の各データに対しては正しくクラス分類を実行できず、クラス0やクラス1で誤検出を実行する場合がある。
【0108】
一方、
図18の下図に示すように、季節ごとに異なる訓練データで学習させた各インスペクターモデルは、特徴量空間の決定領域が異なっており、各季節に適したモデル適用領域が学習により生成される。したがって、実施例2にかかる精度劣化検出装置50は、各季節に適したインスペクターモデルを用いることで、季節の影響によって入力データの特徴量が少し変化したとしても、いずれかのインスペクターモデルの合致率を閾値以上で維持することができる。そして、実施例2にかかる精度劣化検出装置50は、入力データが季節に関係なく大きく変化した場合には、すべてのインスペクターモデルの合致率を閾値未満となるので、機械学習モデル15の再学習のタイミングを正確に検出することができる。
【0109】
[具体例]
次に、実施例2の具体例を説明する。画像分類器として利用する機械学習モデル15は、10クラス分類を行うDNNを用いた分類器であり、教師データを1000個/1クラス、訓練回数を100エポックとして訓練されている。また、インスペクターモデル(夏用)は、10クラス分類を行うDNNを用いた検出器であり、6月から8月に取得された教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。
【0110】
インスペクターモデル(秋用)は、10クラス分類を行うDNNを用いた検出器であり、9月から11月に取得された教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。インスペクターモデル(冬用)は、10クラス分類を行うDNNを用いた検出器であり、12月から2月に取得された教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。インスペクターモデル(春用)は、10クラス分類を行うDNNを用いた検出器であり、3月から5月に取得された教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。
【0111】
このような条件において、実施例1と同様の画像分類を実行する。季節に対応したインスペクターモデルを用いたときに、入力データに季節性の変化のみが発生した場合の合致率の変化と、入力データに季節性以外の変化が発生した場合の合致率の変化とを比較する。
図19は、実施例2の具体例を説明する図である。
図19では、季節に応じて、衣料品の傾向が変化した検出結果である。
【0112】
図19に示すように、季節性の変化のみの場合は、各季節において全てのインスペクターモデルの合致率が閾値を同時に下回ることはなく、誤検知を抑制することができた。一方、季節性以外の変化の場合は、冬の入力データに対して全てのインスペクターモデルの合致率が閾値を同時に下回り、正しく精度劣化を検出した。したがって、精度劣化検出装置50は、季節性のあるデータ等の周期的に分布が変化するデータでの誤検出を防止できる。
【実施例3】
【0113】
ところで、実施例2では、季節性など周期が予め既知である場合に、各周期のデータを抽出して、各周期に対応するインスペクターモデルを生成する例を説明したが、実施例1の手法を用いてデータの周期を特定することができる。
【0114】
図20は、実施例3にかかる精度劣化検出装置80の機能構成を示す機能ブロック図である。
図20に示すように、精度劣化検出装置80は、通信部81、記憶部82、制御部90を有する。
【0115】
通信部81は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部81は、管理者端末などから各種指示を受信する。また、通信部81は、各種端末から、判定(予測)対象の入力データを受信する。
【0116】
記憶部82は、データや制御部90が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部82は、教師データDB83、入力データDB84、機械学習モデル85、インスペクターモデルDB86を記憶する。なお、教師データDB83、入力データDB84、機械学習モデル85、インスペクターモデルDB86は、
図4で説明した教師データDB13、入力データDB14、機械学習モデル15、インスペクターモデルDB16と同様の構成を有するので、詳細な説明は省略する。
【0117】
制御部90は、精度劣化検出装置80全体を司る処理部であり、例えばプロセッサなどである。この制御部90は、第1処理部91、周期判定部92、第2処理部93を有する。なお、第1処理部91、周期判定部92、第2処理部93は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【0118】
ここで、第1処理部91は、実施例1で説明したインスペクターモデル生成部21、設定部22、劣化検出部23、表示制御部26、報知部27と同様の機能を実行する。また、第2処理部93は、実施例2で説明した周期特定部61、インスペクターモデル生成部62、設定部63、劣化検出部64、報知部65と同様の機能を実行する。
【0119】
実施例1-2と異なる点は、周期判定部92が、第1処理部91の結果に基づいて、入力データの周期を特定して第2処理部93に通知し、第2処理部93は、通知された周期を用いて各インスペクターモデルの再学習を実行する点である。
【0120】
例えば、周期判定部92は、第1処理部91が表示した1時間おきの精度状態のリアルタイム表示を参照する。そして、周期判定部92は、すべてのインスペクターモデルが同時に閾値未満である状態がないことを検出すると、入力データに周期があると判定する。
【0121】
すると、周期判定部92は、7時から10時の間ではインスペクターモデル1の精度が最もよく、11時から14時の間ではインスペクターモデル2の精度が最もよく、15時から18時の間ではインスペクターモデル3の精度が最もよく、19時から6時の間ではインスペクターモデル4の精度が最もよいことを特定する。
【0122】
この場合、周期判定部92は、周期1:7時から10時、周期2:11時から14時、周期3:15時から18時、周期4:19時から6時を特定し、第2処理部93に通知する。
【0123】
この通知を受信した第2処理部93は、教師データを撮像時間で上記4つの周期に分割して抽出する。そして、第2処理部93は、周期1の教師データを用いてインスペクターモデル1を再学習し、周期2の教師データを用いてインスペクターモデル2を再学習し、周期3の教師データを用いてインスペクターモデル3を再学習し、周期4の教師データを用いてインスペクターモデル4を再学習する。このようにして、周期を自動で特定し、各周期に対応するインスペクターモデルを生成することができる。
【0124】
なお、最初から存在するインスペクターモデルの数と周期の数とが一致せず、インスペクターモデルの数が多い場合には、いずれかのインスペクターモデルを使用しないようにし、周期の数が多い場合には、新たなインスペクターモデルを生成する。また、再学習する教師データは、一度学習に使用したデータであってもよく、新たに収集したデータでもよく、機械学習モデル15により判定された入力データを使用してもよい。また、判定済みの入力データは、ラベルが付与されていないデータなので、機械学習モデル15の判定結果をラベルとして付与することもできる。
【実施例4】
【0125】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0126】
[数値等]
また、上記実施例で用いたデータ例、数値、各閾値、特徴量空間、ラベル数、インスペクターモデル数、具体例、周期等は、あくまで一例であり、任意に変更することができる。また、入力データや学習方法などもあくまで一例であり、任意に変更することができる。また、学習モデルには、ニューラルネットワークなど様々な手法を採用することができる。
【0127】
[合致率]
例えば、上記実施例では、各クラスのモデル適用領域に属する入力データの合致率を求める例を説明したが、これに限定されるものではない。例えば、機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致率により精度劣化を検出することもできる。
【0128】
また、
図7の例では、クラス0に着目して合致率を算出したが、各クラスに着目することもできる。例えば、
図7の例では、時間経過後、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には9つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。この場合、監視部25は、クラス0とクラス1のそれぞれについて、合致率の低下を検出することができる。
【0129】
[再学習]
また、各精度劣化検出装置は、精度劣化が検出された場合に、インスペクターモデルの判定結果を正解情報として、機械学習モデル15を再学習することもできる。例えば、各精度劣化検出装置は、各入力データを説明変数、各入力データに対するインスペクターモデルの判定結果を目的変数とした再学習データを生成して、機械学習モデル15を再学習することもできる。なお、インスペクターモデルが複数ある場合は、機械学習モデル15との合致率が低いインスペクターモデルを採用することができる。
【0130】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0131】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、機械学習モデル15を実行して入力データを分類(判定)する装置と、精度劣化を検出する装置とを別々の筐体で実現することもできる。
【0132】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0133】
[ハードウェア]
図21は、ハードウェア構成例を説明する図である。ここでは、実施例1の精度劣化検出装置10を例にして説明するが、他の実施例の精度劣化検出装置も同様のハードウェア構成を有する。
図21に示すように、精度劣化検出装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図21に示した各部は、バス等で相互に接続される。
【0134】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図4に示した機能を動作させるプログラムやDBを記憶する。
【0135】
プロセッサ10dは、
図4に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図4等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、精度劣化検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、インスペクターモデル生成部21、設定部22、劣化検出部23、表示制御部26、報知部27等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、インスペクターモデル生成部21、設定部22、劣化検出部23、表示制御部26、報知部27等と同様の処理を実行するプロセスを実行する。
【0136】
このように、精度劣化検出装置10は、プログラムを読み出して実行することで精度劣化検出定方法を実行する情報処理装置として動作する。また、精度劣化検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、精度劣化検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0137】
10 精度劣化検出装置
11 通信部
12 記憶部
13 教師データDB
14 入力データDB
15 機械学習モデル
16 インスペクターモデルDB
20 制御部
21 インスペクターモデル生成部
22 設定部
23 劣化検出部
24 分類部
25 監視部
26 表示制御部
27 報知部