(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】劣化検出方法、劣化検出プログラムおよび情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231024BHJP
【FI】
G06N20/00
(21)【出願番号】P 2021553247
(86)(22)【出願日】2019-10-24
(86)【国際出願番号】 JP2019041803
(87)【国際公開番号】W WO2021079481
(87)【国際公開日】2021-04-29
【審査請求日】2022-01-12
(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】
前記取得する処理は、
前記学習済みモデルに用いられた訓練データの数よりも少なく、かつ、訓練データの数がそれぞれ異なる各訓練データを用いて訓練された複数の検出モデルそれぞれに対して、前記
入力データを入力したときの各第二の出力結果を取得し、
前記検出する処理は、前記第一の出力結果と前記各第二の出力結果との
各合致率に基づいて、前記学習済みモデルの精度劣化を検出することを特徴とする請求項
1に記載の劣化検出方法。
【請求項4】
前記取得する処理は、前
記複数の検出モデルそれぞれに対して、前記
入力データを入力したときの各第二の出力結果を取得し、
前記検出する処理は、前記複数の検出モデルそれぞれの出力クラスごとに、前記第一の出力結果と前記第二の出力結果との合致率を算出し、閾値未満の合致率が発生した場合に、前記学習済みモデルの精度劣化を検出することを特徴とする請求項3に記載の劣化検出方法。
【請求項5】
前記学習済みモデルの精度劣化が検出された場合に、前記第二の出力結果を正解情報とする再学習データを生成し、
前記再学習データを用いて、前記学習済みモデルの再学習を実行する処理を前記コンピュータが実行することを特徴とする請求項1に記載の劣化検出方法。
【請求項6】
コンピュータに、
訓練データを用いて訓練された学習済みモデルに対して
入力データを入力したときの第一の出力結果を取得し、
前記
訓練データから訓練データの数よりも少ない数の訓練データを抽出し、抽出した訓練データを用いて訓練された検出モデルに対して
、前記入力データを入力したときの第二の出力結果を取得し、
前記第一の出力結果
と前記第二の出力結果
との合致率に基づいて、データの傾向の時間変化に起因する
前記学習済みモデルの精度劣化を検出する
処理を実行させることを特徴とする劣化検出プログラム。
【請求項7】
訓練データを用いて訓練された学習済みモデルに対して
入力データを入力したときの第一の出力結果を取得する第一取得部と、
前記
訓練データから訓練データの数よりも少ない数の訓練データを抽出し、抽出した訓練データを用いて訓練された検出モデルに対して
、前記入力データを入力したときの第二の出力結果を取得する第二取得部と、
前記第一の出力結果
と前記第二の出力結果
との合致率に基づいて、データの傾向の時間変化に起因する
前記学習済みモデルの精度劣化を検出する検出部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【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】
しかしながら、上記技術では、精度劣化の検出対象とする機械学習モデルに制限が多く、汎用的に使用することが難しい。
【0007】
例えば、元々の情報量が非常に大きい数千から数万次元の高次元データを処理対象とするモデルに適用した場合、主成分分析により数次元まで次元削減すると、ほとんどの情報が失われてしまう。このため、分類や判定に重要な情報である特徴量まで失われてしまい、異常データを上手く検知することができず、モデルの精度劣化検知を実現できない。
【0008】
また、T2統計量では、訓練データ群との主成分の距離を測定に利用しているので、訓練データ内に複数のカテゴリ(多クラス)のデータ群が混ざっている場合、正常データと判定される範囲が広くなってしまう。このため、異常データを検知することができず、モデルの精度劣化検知を実現できない。
【0009】
一つの側面では、高次元データの分類や多クラス分類を実行する機械学習モデルに対しても精度の劣化を検出することができる劣化検出方法、劣化検出プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、劣化検出方法は、コンピュータが、学習済みモデルに対してデータを入力したときの第一の出力結果を取得する処理を実行する。劣化検出方法は、コンピュータが、前記学習済みモデルのモデル適用領域を狭めた検出モデルに対してデータを入力したときの第二の出力結果を取得する処理を実行する。劣化検出方法は、コンピュータが、前記第一の出力結果および前記第二の出力結果に基づいて、データの傾向の時間変化に起因する学習済みモデルの精度劣化を検出する処理を実行する。
【発明の効果】
【0011】
一実施形態によれば、高次元データの分類や多クラス分類を実行する機械学習モデルに対しても精度の劣化を検出することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例1にかかる精度劣化検出装置を説明する図である。
【
図3】
図3は、実施例1にかかるインスペクターモデルを説明する図である。
【
図4】
図4は、実施例1にかかる精度劣化検出装置の機能構成を示す機能ブロック図である。
【
図5】
図5は、教師データDBに記憶される情報の例を示す図である。
【
図6】
図6は、入力データDBに記憶される情報の例を示す図である。
【
図7】
図7は、訓練データ数と適用範囲との関係を示す図である。
【
図8】
図8は、精度劣化の検出を説明する図である。
【
図9】
図9は、合致率の分布変化を説明する図である。
【
図11】
図11は、高次元データの精度劣化検出の比較結果を説明する図である。
【
図12】
図12は、多クラス分類の精度劣化検出の比較結果を説明する図である。
【
図13】
図13は、画像分類器を用いた具体例を説明する図である。
【
図15】
図15は、精度劣化検出の実行結果を説明する図である。
【
図16】
図16は、モデル適用領域の制御例を説明する図である。
【
図17】
図17は、実施例2によるインスペクターモデルの生成例を説明する図である。
【
図18】
図18は、validation accuracyの変化を説明する図である。
【
図19】
図19は、validation accuracyを用いたインスペクターモデルの生成を説明する図である。
【
図20】
図20は、機械学習モデルとインスペクターモデルの境界位置が変わらない例を説明する図である。
【
図21】
図21は、実施例3のインスペクターモデルを説明する図である。
【
図23】
図23は、その他クラス(クラス10)の教師データの例を説明する図である。
【発明を実施するための形態】
【0013】
以下に、本発明にかかる劣化検出方法、劣化検出プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0014】
[精度劣化検出装置の説明]
図1は、実施例1にかかる精度劣化検出装置10を説明する図である。
図1に示す精度劣化検出装置10は、学習済みの機械学習モデル(以下では、単に「モデル」と記載する場合がある)を用いて入力データの判定(分類)を実行する一方で、機械学習モデルの精度を監視して精度劣化を検出するコンピュータ装置の一例である。
【0015】
例えば、機械学習モデルは、学習時には、説明変数を画像データ、目的変数を衣料名とする教師データを用いて学習され、運用時には、入力データとして画像データが入力されると、「シャツ」などの判定結果を出力する画像分類器である。つまり、機械学習モデルは、高次元データの分類や多クラス分類を実行する画像分類器の一例である。
【0016】
ここで、機械学習や深層学習などで学習された機械学習モデルは、訓練データとラベル付けの組み合わせた教師データを元に学習されるので、教師データが含む範囲でのみ機能する。一方、機械学習モデルは、運用後に、学習時と同種のデータが入力されることが想定されているが、現実には入力されるデータの状態が変化して、機械学習モデルが適切に機能しなくなることがある。すなわち、「モデルの精度劣化」が発生する。
【0017】
図2は、精度劣化を説明する図である。
図2では、入力データの余計なデータを除いて整理した情報であり、機械学習モデルが入力された入力データを分類する、特徴量空間を示している。
図2では、クラス0、クラス1、クラス2に分類する特徴量空間を図示している。
【0018】
図2に示すように、システム運用初期(学習完了時)は、全ての入力データが正常な位置であり、各クラスの決定境界の内側に分類される。その後の時間経過が進むと、クラス0の入力データの分布が変化する。つまり、学習されたクラス0の特徴量では、クラス0と分類することが難しい入力データが入力されはじめる。さらにその後、クラス0の入力データが決定境界を跨ぎ、機械学習モデルの正解率が低下する。つまり、クラス0と分類すべき入力データの特徴量が変化する。
【0019】
このように、システム運用開始後に、入力データの分布が学習時から変化すると、結果として、機械学習モデルの正解率が低下し、機械学習モデルの精度劣化が発生する。
【0020】
そこで、
図1に示すように、実施例1にかかる精度劣化検出装置10は、監視対象の機械学習モデルと同様の問題を解く、DNN(Deep Neural Network)を用いて生成された少なくとも1つのインスペクターモデル(監視器、以下では単に「インスペクター」と記載する場合がある)を用いる。具体的には、精度劣化検出装置10は、機械学習モデルの出力と各インスペクターモデルの出力との合致率を、機械学習モデルの出力クラスごとに集計することで、合致率の分布変化、すなわち入力データ分布の変化を検出する。
【0021】
ここで、インスペクターモデルについて説明する。
図3は、実施例1にかかるインスペクターモデルを説明する図である。インスペクターモデルは、機械学習モデルとは異なる条件(異なるモデル適用領域(Applicability Domain))で生成される検出モデルの一例である。つまり、インスペクターモデルがクラス0、クラス1、クラス2と判定する各領域(各特徴量)は、機械学習モデルがクラス0、クラス1、クラス2と判定する各領域よりも狭い範囲となるように、インスペクターモデルが生成される。
【0022】
これは、モデル適用領域が狭いほど、入力データの小さな変化で出力が敏感に変化するためである。そのため、監視対象の機械学習モデルよりもインスペクターモデルのモデル適用領域の狭くすることで、入力データの小さな変化でインスペクターモデルの出力値が変動し、機械学習モデルの出力値との合致率でデータの傾向の変化を測定することができる。
【0023】
具体的には、
図3に示すように、入力データがインスペクターモデルのモデル適用領域の範囲内である場合、当該入力データに対して、機械学習モデルはクラス0と判定し、インスペクターモデルもクラス0と判定する。つまり、両方ともクラス0のモデル適用領域内となり、出力値は必ず合致するので、合致率は低下しない。
【0024】
一方、入力データがインスペクターモデルのモデル適用領域の範囲外である場合、当該入力データに対して、機械学習モデルはクラス0と判定するが、インスペクターモデルは各クラスのモデル適用範囲外の領域であることから、必ずしもクラス0と判定するとは限らない。つまり、出力値は必ずしも合致しないので、合致率が低下する。
【0025】
このように、実施例1にかかる精度劣化検出装置10は、機械学習モデルによるクラス判定に並行して、機械学習モデルのモデル適用領域より狭いモデル適用領域を有するように学習されたインスペクターモデルによるクラス判定を実行し、両クラス判定の合致率を計算する。そして、精度劣化検出装置10は、合致率の変化により、入力データの分布変化を検出するので、高次元データの分類や多クラス分類を実行する機械学習モデルの精度劣化を検出することができる。
【0026】
[精度劣化検出装置の機能構成]
図4は、実施例1にかかる精度劣化検出装置10の機能構成を示す機能ブロック図である。
図4に示すように、精度劣化検出装置10は、通信部11、記憶部12、制御部209を有する。
【0027】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者端末などから各種指示を受信する。また、通信部11は、各種端末から、判定対象の入力データを受信する。
【0028】
記憶部12は、データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、教師データDB13、入力データDB14、機械学習モデル15、インスペクターモデルDB16を記憶する。
【0029】
教師データDB13は、機械学習モデルの学習に利用された教師データであって、インスペクターモデルの学習にも利用される教師データを記憶するデータベースである。
図5は、教師データDB13に記憶される情報の例を示す図である。
図5に示すように、教師データDB13は、データIDと教師データとを対応付けて記憶する。
【0030】
ここで記憶されるデータIDは、教師データを識別する識別子である。教師データは、学習に利用される訓練データまたは学習時の検証に利用される検証データである。
図5の例では、データIDが「A1」である訓練データXと、データIDが「B1」である検証データYを図示している。なお、訓練データや検証データは、説明変数である画像データと、目的変数である正解情報(ラベル)とが対応付けられたデータである。
【0031】
入力データDB14は、判定対象の入力データを記憶するデータベースである。具体的には、入力データDB14は、機械学習モデルへ入力される画像データであって、画像分類を行う対象の画像データを記憶する。
図6は、入力データDB14に記憶される情報の例を示す図である。
図6に示すように、入力データDB14は、データIDと入力データとを対応付けて記憶する。
【0032】
ここで記憶されるデータIDは、入力データを識別する識別子である。入力データは、分類対象の画像データである。
図6の例では、データIDが「01」である入力データ1を図示している。入力データは、予め記憶する必要はなく、他の端末からデータストリームとして送信されてもよい。
【0033】
機械学習モデル15は、学習された機械学習モデルであり、精度劣化検出装置10による監視対象となるモデルである。なお、学習済みのパラメータが設定されたニューラルネットワークやサポートベクタマシンなどの機械学習モデル15を記憶することもでき、学習済みの機械学習モデル15が構築可能な学習済みのパラメータなどを記憶していてもよい。
【0034】
インスペクターモデルDB16は、精度劣化検出に利用する少なくとも1つのインスペクターモデルに関する情報を記憶するデータベースである。例えば、インスペクターモデルDB16は、5つのインスペクターモデルそれぞれを構築するためのパラメータであって、後述する制御部20によって機械学習によって生成(最適化)されたDNNの各種パラメータを記憶する。なお、インスペクターモデルDB16は、学習済みのパラメータを記憶することもでき、学習済みのパラメータが設定されたインスペクターモデルそのもの(DNN)を記憶することもできる。
【0035】
制御部20は、精度劣化検出装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、インスペクターモデル生成部21、閾値設定部22、劣化検出部23を有する。なお、インスペクターモデル生成部21、閾値設定部22、劣化検出部23は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【0036】
インスペクターモデル生成部21は、機械学習モデル15の精度劣化を検出する監視器や検出モデルの一例であるインスペクターモデルを生成する処理部である。具体的には、インスペクターモデル生成部21は、機械学習モデル15の学習に利用された教師データを用いた深層学習により、モデル適用範囲の異なる複数のインスペクターモデルを生成する。そして、インスペクターモデル生成部21は、深層学習によって得られた、モデル適用範囲が異なる各インスペクターモデル(各DNN)を構築するための各種パラメータをインスペクターモデルDB16に格納する。
【0037】
例えば、インスペクターモデル生成部21は、訓練データの数を制御することで、適用範囲の異なる複数のインスペクターモデルを生成する。
図7は、訓練データ数と適用範囲との関係を示す図である。
図7では、クラス0、クラス1、クラス2の3クラス分類の特徴量空間を図示している。
【0038】
図7に示すように、一般的には、訓練データの数が多いほど、多くの特徴量を多く学習することになるので、より網羅的な学習が実行され、モデル適用範囲が広いモデルが生成される。一方で、訓練データの数が少ないほど、学習する教師データの特徴量が少ないので、網羅できる範囲(特徴量)が限定的になり、モデル適用範囲が狭いモデルが生成される。
【0039】
そこで、インスペクターモデル生成部21は、訓練回数は同じにして、訓練データの数を変更することで、複数のインスペクターモデルを生成する。例えば、機械学習モデル15が訓練回数(100エポック)、訓練データ数(1000個/1クラス)で学習された状態で、5つのインスペクターモデルを生成する場合を考える。この場合、インスペクターモデル生成部21は、インスペクターモデル1の訓練データ数を「500個/1クラス」、インスペクターモデル2の訓練データ数を「400個/1クラス」、インスペクターモデル3の訓練データ数を「300個/1クラス」、インスペクターモデル4の訓練データ数を「200個/1クラス」、インスペクターモデル5の訓練データ数を「100個/1クラス」と決定し、教師データDB13から教師データを無作為に選択して、それぞれを100エポックで学習する。
【0040】
その後、インスペクターモデル生成部21は、学習されたインスペクターモデル1、2、3、4、5それぞれの各種パラメータをインスペクターモデルDB16に格納する。このようにして、インスペクターモデル生成部21は、機械学習モデル15の適用範囲よりも狭いモデル適用範囲を有するとともに、それぞれのモデル適用範囲が異なる5つのインスペクターモデルを生成することができる。
【0041】
なお、インスペクターモデル生成部21は、誤差逆伝搬などの手法を用いて、各インスペクターモデルを学習することができ、他の手法を採用することもできる。例えば、インスペクターモデル生成部は、訓練データをインスペクターモデルに入力して得られる出力結果と、入力された訓練データのラベルとの誤差が小さくなるように、DNNのパラメータを更新することで、インスペクターモデル(DNN)の学習を実行する。
【0042】
図4に戻り、閾値設定部22は、機械学習モデル15の精度劣化を判定する閾値であって、合致率の判定に利用する閾値を設定する。例えば、閾値設定部22は、記憶部12から機械学習モデル15を読み出すとともに、インスペクターモデルDB16から各種パラメータを読み出して学習済みの5つのインスペクターモデルを構築する。そして、閾値設定部22は、教師データDB13に記憶される各検証データを読み出して、機械学習モデル15と各インスペクターモデルに入力して、それぞれの出力結果(分類結果)に基づくモデル適用領域への分布結果を取得する。
【0043】
その後、閾値設定部22は、検証データに対する機械学習モデル15とインスペクターモデル1と間の各クラスの合致率、機械学習モデル15とインスペクターモデル2と間の各クラスの合致率、機械学習モデル15とインスペクターモデル3と間の各クラスの合致率、機械学習モデル15とインスペクターモデル4と間の各クラスの合致率、機械学習モデル15とインスペクターモデル5と間の各クラスの合致率を算出する。
【0044】
そして、閾値設定部22は、各合致率を用いて閾値を設定する。例えば、閾値設定部22は、各合致率をディスプレイ等に表示して、ユーザから閾値の設定を受け付ける。また、閾値設定部22は、各合致率の平均値、各合致率の最大値、各合致率の最小値など、ユーザが検出を要求する劣化状態に応じて、任意に選択して設定することができる。
【0045】
図4に戻り、劣化検出部23は、分類部24、監視部25、報知部26を有し、入力データに対する機械学習モデル15の出力結果と各インスペクターモデルの出力結果とを比較し、機械学習モデル15の精度の劣化を検出する処理部である。
【0046】
分類部24は、入力データを機械学習モデル15と各インスペクターモデルとのそれぞれに入力して、それぞれの出力結果(分類結果)を取得する処理部である。例えば、分類部24は、各インスペクターモデルの学習が完了すると、各インスペクターモデルのパラメータをインスペクターモデルDB16から取得して各インスペクターモデルを構築するとともに、機械学習モデル15を実行する。
【0047】
そして、分類部24は、入力データを機械学習モデル15に入力してその出力結果を取得するとともに、当該入力データをインスペクターモデル1(DNN1)からインスペクターモデル5(DNN5)の5つのインスペクターモデルそれぞれに入力して各出力結果を取得する。その後、分類部24は、入力データと各出力結果とを対応付けて記憶部12に格納するとともに、監視部25に出力する。
【0048】
監視部25は、各インスペクターモデルの出力結果を用いて、機械学習モデル15の精度劣化を監視する処理部である。具体的には、監視部25は、クラスごとに機械学習モデル15の出力と、インスペクターモデルの出力との合致率の分布変化を測定する。例えば、監視部25は、各入力データに対する機械学習モデル15の出力結果と各インスペクターモデルの出力結果との合致率を算出し、合致率が低下した場合に、機械学習モデル15の精度劣化を検出する。なお、監視部25は、検出結果を報知部26に出力する。
【0049】
図8は、精度劣化の検出を説明する図である。
図8では、入力データに対する監視対象の機械学習モデル15の出力結果とインスペクターモデルの出力結果とを図示している。ここでは、説明を分かりやすくするため、1つのインスペクターモデルを例に、特徴量空間におけるモデル適用領域へのデータ分布を用いて、監視対象の機械学習モデル15の出力に対してインスペクターモデルの出力が合致する確率を説明する。
【0050】
図8に示すように、監視部25は、運用開始時、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0051】
つまり、監視部25は、機械学習モデル15とインスペクターモデルとの各クラスの合致率が一致することから合致率を100%と算出する。このタイミングでは、それぞれの分類結果が一致する。
【0052】
時間経過が進むと、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0053】
つまり、監視部25は、クラス0については合致率を50%((3/6)×100)と算出し、クラス1とクラス2については合致率を100%と算出する。すなわち、クラス0のデータ分布の変化が検出される。このタイミングでは、インスペクターモデルは、クラス0に分類されなかった3つの入力データに対して、クラス0に分類するとは限らない状態である。
【0054】
さらに時間経過が進むと、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には1つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。
【0055】
つまり、監視部25は、クラス0については合致率を33%((1/3)×100)と算出し、クラス1とクラス2については合致率を100%と算出する。すなわち、クラス0のデータ分布が変化したと判定される。このタイミングでは、機械学習モデル15では、クラス0と分類されるべき入力データがクラス0と分類されず、インスペクターモデルでは、クラス0に分類されなかった5つの入力データに対しては、クラス0に分類されるとは限らない状態である。
【0056】
ここで、合致率の分布の変化を説明する。
図9は、合致率の分布変化を説明する図である。
図9では、横軸が各インスペクターモデル、縦軸が合致率(合致した割合)であり、あるクラスに対する5つのインスペクターモデルそれぞれと機械学習モデル15との合致率の変化を示している。
【0057】
インスペクターモデル1、2、3、4、5のモデル適用領域の大きさをインスペクターモデル1が最も広く、インスペクターモデル5が最も狭いとする。この場合、運用開始の初期段階から時間経過が進むと、モデル適用領域が狭いインスペクターモデルほどデータの分布に敏感に反応するので、インスペクターモデル5や4の合致率が低下する。監視部25は、インスペクターモデル5や4の合致率が閾値を下回ったことを検出することで、精度劣化発生を検出することができる。また、監視部25は、ほとんどのインスペクターモデルの合致率が閾値を下回ったことを検出することで、入力データの傾向変化を検出することができる。
【0058】
図4に戻り、報知部26は、機械学習モデル15の精度劣化が検出された場合に、アラート等を所定装置に報知する処理部である。例えば、報知部26は、合致率が閾値を下回るインスペクターモデルが検出された場合、または、合致率が閾値を下回るインスペクターモデルが所定数以上検出された場合、アラートを報知する。
【0059】
また、報知部26は、クラスごとにアラートを報知することもできる。例えば、報知部26は、あるクラスについて、合致率が閾値を下回るインスペクターモデルの数が所定数以上検出された場合に、アラートを報知する。なお、監視項目は、クラスごとやインスペクターモデルごとなど任意に設定することができる。また、各インスペクターモデルについて、クラスごとの合致率の平均を各インスペクターモデルの合致率とすることもできる。
【0060】
[処理の流れ]
図10は、処理の流れを示すフローチャートである。
図10に示すように、処理が開始されると(S101:Yes)、インスペクターモデル生成部21は、各インスペクターモデル用の教師データを生成し(S102)、生成した教師データ内の訓練データを用いて、各インスペクターモデル用の訓練を実行して、各インスペクターモデルを生成する(S103)。
【0061】
続いて、閾値設定部22は、教師データ内の検証データを機械学習モデル15と各インスペクターモデルに入力して得られる出力結果の合致率を算出し(S104)、合致率に基づき閾値を設定する(S105)。
【0062】
その後、劣化検出部23は、入力データを機械学習モデル15に入力して出力結果を取得し(S106)、入力データを各インスペクターモデルに入力して出力結果を取得する(S107)。
【0063】
そして、劣化検出部23は、出力結果の比較、すなわち特徴量空間におけるモデル適用領域の分布を蓄積し(S108)、蓄積数が規定数に到達するまで(S109:No)、S106以降を繰り返す。
【0064】
その後、劣化検出部23は、蓄積数が規定数に到達すると(S109:Yes)、クラスごとに各インスペクターモデルと機械学習モデル15との合致率を算出する(S110)。
【0065】
ここで、合致率が検出条件を満たなさない場合(S111:No)、S106以降が繰り返され、合致率が検出条件を満たす場合(S111:Yes)、劣化検出部23は、アラートを報知する(S112)。
【0066】
[効果]
上述したように、精度劣化検出装置10は、モデル適用領域の範囲を監視対象の機械学習モデルより狭めた少なくとも1つ以上のインスペクターモデルを生成する。そして、精度劣化検出装置10は、クラスごとに機械学習モデルの出力と各インスペクターモデルの出力との合致率の分布変化を測定する。この結果、精度劣化検出装置10は、高次元データの多クラス分類問題に対しても、モデル精度劣化を検出することができ、機械学習モデル15出力の正誤情報を用いずに、入力データの傾向の時間変化に起因する学習済みモデルの機能劣化を検出することができる。
【0067】
図11は、高次元データの精度劣化検出の比較結果を説明する図である。
図11では、背景に緑色が多く利用される猫の画像データを訓練データに用いて機械学習モデル15を学習し、T
2統計量などの一般技術による精度劣化検出と、実施例1による手法(インスペクターモデルの利用)で精度劣化検出とを比較する。なお、
図11の各グラフの横軸、縦軸も特徴量を示している。
【0068】
図11に示すように、機械学習モデル15は、訓練データに緑の成分と白の成分とが多いことを特徴量として学習する。したがって、主成分分析を行う上記一般技術では、緑成分の多い犬の画像データが入力された場合でも、猫クラスと判定してしまう。さらに、白が異常に多い画像データの場合には、それが猫の画像であっても、白の特徴量が多すぎることから、猫クラスと検出できない。
【0069】
一方、実施例1によるインスペクターモデルは、機械学習モデル15よりもモデル適用領域が狭い。このため、インスペクターモデルは、緑成分の多い犬の画像データが入力された場合でも、猫クラスではない判定することができ、さらに、白が異常に多い猫の画像データであっても、猫の特徴量を正確に学習できているので、猫クラスと検出することができる。
【0070】
このように、精度劣化検出装置10のインスペクターモデルは、一般技術として比較して、学習データとは特徴量が異なる入力データを高精度に検出することができる。したがって、精度劣化検出装置10は、機械学習モデル15とインスペクターモデルとの合致率により、入力データの分布変化に追従することができ、機械学習モデル15の精度低下を検出することができる。
【0071】
図12は、多クラス分類の精度劣化検出の比較結果を説明する図である。
図12では、
図11と同様、T
2統計量などの一般技術による精度劣化検出と、実施例1による手法(インスペクターモデルの利用)で精度劣化検出とを比較する。
【0072】
図12に示す一般技術では、訓練データ群との主成分の距離を測定に利用しているため、訓練データ内に多クラスのデータ群が混ざっていると、正常データと判定される範囲が広くなってしまい、異常データを検知することができない。つまり、クラス0、クラス1、クラス2それぞれの正常データの範囲が決定されると、ほとんどデータがその範囲内に属してしまい、いずれにも属さないはずの異常値データを異常と判定することが難しい。このため、入力データが
図12に示す異常値データに変化したことを検出することができないので、モデルの精度劣化検知を実現できない。
【0073】
一方、実施例1によるインスペクターモデルは、機械学習モデル15よりもモデル適用領域が狭い。このため、クラス0のモデル適用領域、クラス1のモデル適用領域、クラス2のモデル適用領域を区別することができる。したがって、モデル適用領域以外に属するデータは、異常と正確に検出することができる。このため、入力データが
図12に示す異常値データに変化したことを検出することができるので、モデルの精度劣化検知を実現することができる。
【0074】
[具体例]
次に、機械学習モデル15として画像分類器を用いて、インスペクターモデルによる精度劣化を検出する具体例を説明する。画像分類器とは、入力した画像をクラス(カテゴリ)ごとに分類する機械学習モデルである。例えば、アパレルの通信販売サイトや個人間で衣料品を売買するオークションサイト等では、衣料品の画像をサイトにアップロードし、その衣料品のカテゴリをサイト上に登録する。サイトにアップロードした画像のカテゴリの自動登録を行うために、機械学習モデルを用いて、画像から衣料品のカテゴリの予測を行っている。システム運用中に、アップロードする衣料品の画像の傾向(データ分布)が変化すると、機械学習モデルの精度が劣化していく。一般技術では、手動で予測結果の正誤を確認し、正解率を算出して、モデル精度劣化を検知していた。そこで、実施例1による手法を適用することで、予測結果の正誤情報を用いることなく、モデル精度劣化を検知する。
【0075】
図13は、画像分類器を用いた具体例を説明する図である。
図13に示すように、具体例で示すシステムは、入力データを画像分類器、インスペクターモデル1、インスペクターモデル2のそれぞれに入力し、画像分類器と各インスペクターモデルとのモデル適用領域のデータ分布の合致率を用いて、画像分類器の精度劣化を検出して、アラートを出力するシステムである。
【0076】
次に、教師データを説明する。
図14は、教師データの具体例を説明する図である。
図14に示すように、
図13に示した具体例の教師データは、ラベルがクラス0であるT-シャツ、ラベルがクラス1であるズボン、ラベルがクラス2であるプロオーバー、ラベルがクラス3ではドレス、ラベルがクラス4であるコートの各画像データを用いる。また、ラベルがクラス5であるサンダル、ラベルがクラス6であるシャツ、ラベルがクラス7であるスニーカー、ラベルがクラス8ではバッグ、ラベルがクラス9であるアンクルブーツの各画像データを用いる。
【0077】
ここで、画像分類器は、10クラス分類を行うDNNを用いた分類器であり、教師データを1000個/1クラス、訓練回数を100エポックとして訓練されている。また、インスペクターモデル1は、10クラス分類を行うDNNを用いた検出器であり、教師データを200個/1クラス、訓練回数を100エポックとして訓練されている。インスペクターモデル2は、10クラス分類を行うDNNを用いた検出器であり、教師データを100個/1クラス、訓練回数を100エポックとして訓練されている。
【0078】
つまり、モデル適用領域は、画像分類器、インスペクターモデル1、インスペクターモデル2の順に狭くなっている。なお、教師データは、画像分類器の教師データの中から無作為に選択した。また、各クラスの合致率の閾値は、インスペクターモデル1、インスペクターモデル2のいずれも0.7とする。
【0079】
このような状態において、
図13に示すシステムの入力データは、教師データ同様、衣料品(10クラスのいずれか)の画像(グレースケール)を利用する。なお、入力画像はカラーでも良い。監視対象の画像分類器(機械学習モデル15)に合わせた入力データを用いる。
【0080】
このような状態において、精度劣化検出装置10は、監視対象の画像分類器に入力したデータを、各インスペクターモデルに入力して、出力の比較を実行し、画像分類器の出力クラスごとに、比較結果(合致または非合致)を蓄積する。そして、精度劣化検出装置10は、蓄積している比較結果(例えば、直近100個/クラス)から、各クラスの合致率を算出し、合致率が閾値未満か判定する。そして、精度劣化検出装置10は、閾値未満の場合、精度劣化検知のアラートを出力する。
【0081】
図15は、精度劣化検出の実行結果を説明する図である。
図15には、入力データのうち、クラス0(T-シャツ)の画像のみ、徐々に画像が回転していき、傾向が変化したケースの実行結果を示している。精度劣化検出装置10は、クラス0のデータが10度回転した時点で、インスペクターモデル2の合致率(0.69)が閾値(例えば0.7)を下回り、アラートを通知した。なお、クラス0のデータが15度回転した時点で、インスペクターモデル2だけではなくインスペクターモデル1の合致率も低下している。つまり、精度劣化検出装置10は、画像分類器の正解率がわずかに下がった段階で、モデルの精度劣化を検出できた。
【実施例2】
【0082】
ところで、実施例1では、モデル適用領域を拡大するために訓練データを増やす方法であるデータ拡張の反対である訓練データの削減を行うことによりモデル適用領域を縮小させた各インスペクターモデルを生成する例を説明した。しかし、訓練データ数を削減しても、必ずしもモデル適用領域が狭くならない場合がある。
【0083】
図16は、モデル適用領域の制御例を説明する図である。
図16の上図に示すように、実施例1では、インスペクターモデルの訓練データをランダムに削減し、インスペクターモデルごとに削減する訓練データ数を変更することで、モデル適用領域を縮小させた複数のインスペクターモデルを生成した。ところが、どの訓練データを削減すればモデル適用領域がどの程度狭くなるか未知であることから、モデルの適用領域を意図的に任意の広さに調整することが必ずしも成功するとか限らない。そのため、
図16の下図に示すように、訓練データを削減して生成したインスペクターモデルのモデル適用領域が狭くならないケースがある。このように、モデル適用領域が狭くならなかった場合、作り直しの工数がかかる。
【0084】
そこで、実施例2では、監視対象の機械学習モデルと同じ訓練データを用いて過学習させることで、モデル適用領域を確実に狭める。このとき、validation accuracy(検証データに対する正解率)の値でモデル適用領域の広さを任意に調整する。
【0085】
図17は、実施例2によるインスペクターモデルの生成例を説明する図である。
図17に示すように、実施例2では、訓練データを用いてインスペクターモデルの学習を30エポック実行したタイミングで、検証データを用いて、そのときのvalidation accuracyを算出して保持する。さらに、訓練データを用いてインスペクターモデルの学習を70エポック実行したタイミングで、検証データを用いてそのときのvalidation accuracyを算出して保持し、インスペクターモデルの学習を100エポック実行したタイミングで、そのときのvalidation accuracyを算出して保持する。そして、各validation accuracyのときのインスペクターモデルの状態(例えばDNNの特徴量)を保持する。
【0086】
このように、訓練データによる学習を実行する過程で、学習途中のインスペクターモデルのvalidation accuracyを監視し、任意のvalidation accuracyの値に低下するまで、意図的に過学習させることで、学習させすぎて汎化性能が低下する状態を発生させる。つまり、任意のvalidation accuracyの値のインスペクターモデルの状態を保持することで、モデル適用領域の広さを任意に調整したインスペクターモデルを生成する。
【0087】
図18は、validation accuracyの変化を説明する図である。
図18では、訓練回数と学習時の学習曲線の関係を示している。実施例2にかかる精度劣化検出装置10のインスペクターモデル生成部21は、監視対象の機械学習モデルと同じ訓練データを用いて過学習させることで、モデル適用領域を確実に狭める。一般的に、インスペクターモデルに用いるDNNは、過学習させるほど、訓練データに最適化し、モデル適用領域が縮小する。
【0088】
図18に示すように、正解率が0.9までは訓練回数を増やすほど、徐々に正解率が上がっていく。しかし、正解率が0.9となった訓練回数からさらに訓練回数を増やしていくと、training accuracy(訓練データに対する正解率)は徐々に上昇するが、過学習が進むので、validation accuracyは低下する。つまり、過学習するほどモデル適用領域が狭まり、入力データの小さな変化で正解率が下がる。これは、過学習により汎化性能が失われ、訓練データ以外のデータに対する正解率が低下するためである。このvalidation accuracyの値の低下によって、モデル適用領域が狭まっていることを確認できるので、validation accuracyの値を監視することで、モデル適用領域が異なる複数のインスペクターモデルを生成することができる。
【0089】
図19は、validation accuracyを用いたインスペクターモデルの生成を説明する図である。
図19では、訓練回数と学習時の学習曲線の関係を示している。上述したように、インスペクターモデルのモデル適用領域の大小は、validation accuracyの値の高低で測定できる。validation accuracyの値が異なるインスペクターモデルを複数作成することで、各インスペクターモデルのモデル適用領域が異なることを保証できる。
【0090】
図19に示すように、インスペクターモデル生成部21は、訓練データを用いて、インスペクターモデル(DNN)を学習していき、validation accuracyの値が0.9となった時点のDNN1の各種パラメータを取得して保持する。インスペクターモデル生成部21は、さらに訓練を続け、validation accuracyの値が0.8となった時点のDNN2の各種パラメータ、validation accuracyの値が0.6となった時点のDNN3の各種パラメータ、validation accuracyの値が0.4となった時点のDNN4の各種パラメータ、validation accuracyの値が0.2となった時点のDNN5の各種パラメータを取得して保持する。
【0091】
この結果、インスペクターモデル生成部21は、モデル適用領域が確実に異なるDNN1、DNN2、DNN3、DNN4、DNN5を生成することができる。入力データが、学習データと同じ分布の場合、「合致率≒(validation accuracy)×監視対象のモデルの正解率」となる。つまり、合致率の分布は、
図19の下図のグラフのように、インスペクターモデルのvalidation accuracyに比例した形になる。
【0092】
実施例2にかかる精度劣化検出装置10は、インスペクターモデルのモデル適用領域を必ず狭めることができるので、モデル適用領域が狭まらなかった場合に必要なインスペクターモデルの作り直しなどの工数を削減できる。また、精度劣化検出装置10は、モデル適用領域の大小を、validation accuracyの値の高低で測定できるので、validation accuracyの値を変えることで、必ず異なるモデル適用領域のインスペクターモデルを作成できるため、モデル精度劣化検知で求められる要件「異なるモデル適用領域の複数のインスペクターモデル」を必ず満たすことができる。
【0093】
また、実施例2にかかる精度劣化検出装置10は、上述した手法により生成した複数のインスペクターモデルを用いて、機械学習モデル15の精度劣化を検出することで、実施例1と比べて、より精度の高い検出を実現することができる。
【実施例3】
【0094】
ところで、実施例2では、過学習によりモデル適用領域を狭くする例を説明したが、モデル適用領域が狭くなっても、各クラスの決定境界の位置が変わらず、入力データの傾向の変化を検知できない事象が発生する可能性がある。
【0095】
例えば、各クラスの特徴がはっきり分かれている訓練データの場合、訓練データ数を減らして訓練しても、各クラスの決定境界の位置が変わらない場合がある。決定境界の位置が変わらない場合、つまり、モデル適用領域外でもインスペクターモデルの出力が監視対象の機械学習モデルの出力と全く同じになり全て合致してしまう状態の場合、入力データの傾向の変化を検出できない。
【0096】
図20は、機械学習モデルとインスペクターモデルの境界位置が変わらない例を説明する図である。
図20のOK例の場合、訓練データ数を削減して訓練すると、決定境界の位置が変わることから、合致率の変化でモデル精度劣化を検出できる。一方、
図20のNG例の場合、決定境界の位置が変わらないことから、全入力データの出力が合致してしまい、モデル精度劣化を検出できない。
【0097】
そこで、実施例3では、インスペクターモデルの分類クラスに「その他(unknown)クラス」を新設する。そして、監視対象の機械学習モデルと同じ訓練データセットに、その他クラスの訓練データを追加した教師データを用いて、インスペクターモデルを訓練する。その他クラスの訓練データは、元々の訓練データセットとは無関係なデータを利用する。具体的には、同形式であるが無関係なデータセットからランダムに抽出したデータ、あるいは、各項目にランダムな値を設定して自動生成したデータなどを採用する。インスペクターモデルの出力がその他クラスだった場合は、その入力データはモデル適用領域外と判定する。
【0098】
図21は、実施例3のインスペクターモデルを説明する図である。
図21に示すように、実施例1や実施例2で説明した通常のインスペクターモデルは、特徴量空間を、クラス0のモデル適用領域、クラス1のモデル適用領域、クラス2のモデル適用領域に分類したものである。このため、通常のインスペクターモデルは、これらのモデル適用領域に該当するデータについては、分類先のクラスを保証することができるが、これらのモデル適用領域に該当しないデータについては、どのクラスに分類するかを保証できない。例えば、クラス0に分類すべき入力データが、機械学習モデル15ではクラス1と分類され、インスペクターモデルにおいてもクラス1と分類されると、クラス1の分類結果として合致してしまい、合致率が低下しない。
【0099】
これに対して、実施例3のインスペクターモデルは、特徴量空間を、クラス0のモデル適用領域、クラス1のモデル適用領域、クラス2のモデル適用領域に分類するとともに、いずれのクラスにも属さない領域をクラス10のモデル適用領域(その他クラス)と分類する。このため、実施例3のインスペクターモデルは、各クラスのモデル適用領域に該当するデータについて、分類先のクラスを保証することができるとともに、各クラスのモデル適用領域に該当しないデータについて、クラス10に分類することを保証できる。
【0100】
上述したように、実施例3にかかる精度劣化検出装置10は、各インスペクターモデルに対して、監視対象である機械学習モデル15の出力クラスの他に、モデル適用領域外のデータを表すその他クラス(例えばクラス10)を新設する。実施例3にかかる精度劣化検出装置10は、その他クラスと判定された入力データを、モデル精度劣化検出の仕組みでは「非合致」と扱う。
【0101】
図22は、実施例3の劣化検出を説明する図である。
図22に示すように、劣化検出部23は、運用開始初期では、監視対象の機械学習モデル15とインスペクターモデルとのそれぞれについて、各入力データが各クラスのモデル適用範囲に属するので、合致率は高いままである。
【0102】
その後、時間が経過すると、入力データの分布が変化し始める。この場合、劣化検出部23は、監視対象の機械学習モデル15については、各入力データが各クラスのモデル適用範囲に属するが、インスペクターモデルについては、クラス10(その他クラス)に分類される入力データが出現する。ここで、クラス10に分類される入力データは、機械学習モデル15では分類されないクラスなので、合致することはない。つまり、合致率が徐々に低下する。
【0103】
その後、さらに時間が経過すると、入力データの分布がさらに変化し始める。この場合、劣化検出部23は、監視対象の機械学習モデル15については、各入力データが各クラスのモデル適用範囲に属するが、インスペクターモデルについては、クラス10(その他クラス)に分類される入力データが多発する。したがって、劣化検出部23は、合致率が閾値を下回り、精度劣化と検出することができる。
【0104】
ここで、
図14で説明した具体例を用いて、実施例3にかかるインスペクターモデルの生成例を説明する。
図23は、その他クラス(クラス10)の教師データの例を説明する図である。
図23に示すように、インスペクターモデル生成部21は、インスペクターモデルの教師データとして、
図14で説明した画像データ以外にも
図23に示した画像データを用いることで、クラス10のモデル適用領域をインスペクターモデルに学習させる。つまり、インスペクターモデル生成部21は、機械学習モデル15で利用された第一の訓練データとは異なる特徴をランダムに設定するとともに、機械学習モデル15で学習されていないデータを判定することを示すラベルを有する第二の訓練データを用いて、インスペクターモデルを学習により生成する。
【0105】
具体的には、クラス10用の教師データとして、インターネット上に公開されている1000種類のカテゴリの画像から、無作為に抽出した1000枚の画像を利用する。例えば、リンゴの画像、赤ちゃんの画像、熊の画像、ベッドの画像、自転車の画像、魚の画像のように、
図14に示した衣料品とは異なるカテゴリの画像データ、言い換えると衣料品には含まれないラベルが設定される画像データを用いることで、クラス10のモデル適用領域をインスペクターモデルに学習させる。
【0106】
実施例3では、画像分類器は、10クラス分類を行うDNNを用いた分類器であり、教師データを1000個/1クラス、訓練回数を100エポックとして訓練する。また、インスペクターモデルは、11クラス分類を行うDNNを用いた検出器であり、教師データを1000個/1クラスとその他クラス1000個、訓練回数を100エポックとして訓練する。なお、教師データは、画像分類器の教師データの中から無作為に選択した。
【0107】
このような状態において、精度劣化検出装置10は、監視対象の画像分類器に入力したデータをインスペクターモデルに入力して、出力の比較を実行し、画像分類器の出力クラスごとに、比較結果(合致または非合致)を蓄積する。そして、精度劣化検出装置10は、蓄積している比較結果(例えば、直近100個/クラス)から、各クラスの合致率を算出し、合致率が閾値未満か判定する。そして、精度劣化検出装置10は、閾値未満の場合、精度劣化検知のアラートを出力する。
【0108】
図24は、実施例3による効果を説明する図である。
図24には、入力データのうち、クラス0(T-シャツ)の画像のみ、徐々に画像が回転していき、傾向が変化したケースの実行結果を示している。精度劣化検出装置10は、クラス0のデータが5度回転した時点で、インスペクターモデルの合致率(0.68)が閾値(例えば0.7)を下回り、アラートを通知した。つまり、画像分類器の正解率がわずかに下がった段階で、モデルの精度劣化を検出できた。
【0109】
上述したように、実施例3にかかる精度劣化検出装置10は、各クラスの特徴がはっきり分かれている訓練データの場合でも、つまり決定境界が変わらない場合でも、精度劣化を検出可能な高精度なインスペクターモデルを生成することができる。また、実施例3にかかる精度劣化検出装置10は、その他クラスを検出可能なインスペクターモデルを用いることで、入力データの分布変化を鋭敏に検出することができる。なお、実施例3にかかる精度劣化検出装置10は、各クラスの合致率により精度劣化を検出することもでき、その他クラスの出現数が閾値を越えた場合に、精度劣化と検出することもできる。
【実施例4】
【0110】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0111】
[数値等]
また、上記実施例で用いたデータ例、数値、各閾値、特徴量空間、ラベル数、インスペクターモデル数、具体例等は、あくまで一例であり、任意に変更することができる。また、入力データや学習方法などもあくまで一例であり、任意に変更することができる。また、学習モデルには、ニューラルネットワークなど様々な手法を採用することができる。
【0112】
[モデル適用範囲等]
実施例1では、教師データの数を削減することで、モデル適用範囲の異なる複数のインスペクターモデルを生成する例を説明したが、これに限定されるものではなく、例えば訓練回数(エポック数)を削減することで、モデル適用範囲の異なる複数のインスペクターモデルを生成することもできる。また、教師データの数ではなく、教師データに含まれる訓練データの数を削減することで、モデル適用範囲の異なる複数のインスペクターモデルを生成することもできる。
【0113】
[合致率]
例えば、上記実施例では、各クラスのモデル適用領域に属する入力データの合致率を求める例を説明したが、これに限定されるものではない。例えば、機械学習モデル15の出力結果とインスペクターモデルの出力結果との合致率により精度劣化を検出することもできる。
【0114】
また、
図8の例では、クラス0に着目して合致率を算出したが、各クラスに着目することもできる。例えば、
図8の例では、時間経過後、監視部25は、監視対象の機械学習モデル15から、クラス0のモデル適用領域には6つの入力データが属し、クラス1のモデル適用領域には6つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。一方、監視部25は、インスペクターモデルから、クラス0のモデル適用領域には3つの入力データが属し、クラス1のモデル適用領域には9つの入力データが属し、クラス2のモデル適用領域には8つの入力データが属することを取得する。この場合、監視部25は、クラス0とクラス1のそれぞれについて、合致率の低下を検出することができる。
【0115】
[その他クラス]
実施例3では、その他クラスの訓練データには、元々の訓練データセットと同形式であるが無関係なデータセットからランダムに抽出した画像データを用いる具体例を説明したが、これに限定されるものではない。例えば、表などのデータの場合には、各項目にランダムな値を設定した、その他クラスの教師データを生成することもできる。
【0116】
[再学習]
また、精度劣化検出装置10は、精度劣化が検出された場合に、インスペクターモデルの判定結果を正解情報として、機械学習モデル15を再学習することもできる。例えば、精度劣化検出装置10は、各入力データを説明変数、各入力データに対するインスペクターモデルの判定結果を目的変数とした再学習データを生成して、機械学習モデル15を再学習することもできる。なお、インスペクターモデルが複数ある場合は、機械学習モデル15との合致率が低いインスペクターモデルを採用することができる。
【0117】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0118】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、機械学習モデル15を実行して入力データを分類する装置と、精度劣化を検出する装置とを別々の筐体で実現することもできる。
【0119】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0120】
[ハードウェア]
図25は、ハードウェア構成例を説明する図である。
図25に示すように、精度劣化検出装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図25に示した各部は、バス等で相互に接続される。
【0121】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図4に示した機能を動作させるプログラムやDBを記憶する。
【0122】
プロセッサ10dは、
図4に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図4等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、精度劣化検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、インスペクターモデル生成部21、閾値設定部22、劣化検出部23等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、インスペクターモデル生成部21、閾値設定部22、劣化検出部23等と同様の処理を実行するプロセスを実行する。
【0123】
このように、精度劣化検出装置10は、プログラムを読み出して実行することで精度劣化検出定方法を実行する情報処理装置として動作する。また、精度劣化検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、精度劣化検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0124】
10 精度劣化検出装置
11 通信部
12 記憶部
13 教師データDB
14 入力データDB
15 機械学習モデル
16 インスペクターモデルDB
20 制御部
21 インスペクターモデル生成部
22 閾値設定部
23 劣化検出部
24 分類部
25 監視部
26 報知部