以下に、本願の開示する作成方法、作成プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例の説明を行う前に、機械学習モデルの精度劣化を検知する参考技術について説明する。参考技術では、異なる条件でモデル適用領域を狭めた複数の監視器を用いて、機械学習モデルの精度劣化を検知する。以下の説明では、監視器を「インスペクター」と表記する。
図1は、参考技術を説明するための図である。機械学習モデル10は、教師データを用いて機械学習した機械学習モデルである。参考技術では、機械学習モデル10の精度劣化を検知する。たとえば、教師データには、訓練データと、検証データとが含まれる。訓練データは、機械学習モデル10のパラメータを機械学習する場合に用いられるものであり、正解ラベルが対応付けられる。検証データは、機械学習モデル10を検証する場合に用いられるデータである。
インスペクター11A,11B,11Cは、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有する。インスペクター11A~11Cは、それぞれ決定境界が異なるため、同一の入力データを入力しても、出力結果が異なる場合がある。参考技術では、インスペクター11A~11Cの出力結果の違いを基にして、機械学習モデル10の精度劣化を検知する。図1に示す例では、インスペクター11A~11Cを示すが、他のインスペクターを用いて、精度劣化を検知してもよい。インスペクター11A~11CのモデルにはDNN(Deep Neural Network)を利用する。
図2は、監視対象の機械学習モデルの精度劣化を検知する仕組みを説明するための図である。図2では、インスペクター11A,11Bを用いて説明を行う。インスペクター11Aの決定境界を決定境界12Aとし、インスペクター11Bの決定境界を決定境界12Bとする。決定境界12Aと、決定境界12Bとの位置はそれぞれ異なっており、モデル適用領域が異なる。
入力データがモデル適用領域4Aに位置する場合には、入力データは、インスペクター11Aによって、第1クラスに分類される。入力データがモデル適用領域5Aに位置する場合には、入力データは、インスペクター11Aによって、第2クラスに分類される。
入力データがモデル適用領域4Bに位置する場合には、入力データは、インスペクター11Bによって、第1クラスに分類される。入力データがモデル適用領域5Bに位置する場合には、入力データは、インスペクター11Bによって、第2クラスに分類される。
たとえば、運用初期の時間T1において、入力データDT1をインスペクター11Aに入力すると、入力データDT1はモデル適用領域4Aに位置するため、「第1クラス」に分類される。入力データDT1をインスペクター11Bに入力すると、入力データDT1はモデル適用領域4Bに位置するため、「第1クラス」に分類される。入力データDT1を入力した場合の分類結果が、インスペクター11Aと、インスペクター11Bとで同一であるため「劣化なし」と判定される。
運用初期から時間経過した時間T2において、入力データの傾向が変化して、入力データDT2となる。入力データDT2をインスペクター11Aに入力すると、入力データDT2はモデル適用領域4Aに位置するため、「第1クラス」に分類される。一方、入力データDT2をインスペクター11Bに入力すると、入力データDT2はモデル適用領域4Bに位置するため、「第2クラス」に分類される。入力データDT2を入力した場合の分類結果が、インスペクター11Aと、インスペクター11Bとで異なるため「劣化あり」と判定される。
ここで、参考技術では、異なる条件でモデル適用領域を狭めたインスペクターを作成する場合、訓練データの数を削減する。たとえば、参考技術では、各インスペクターの訓練データをランダムに削減する。また、参考技術では、インスペクター毎に削減する訓練データの数を変更する。
図3は、参考技術によるモデル適用領域の一例を示す図(1)である。図3に示す例では、訓練データの分布20A,20B,20Cを示す。分布20Aは、インスペクター11Aを作成する場合に用いる訓練データの分布である。分布20Bは、インスペクター11Bを作成する場合に用いる訓練データの分布である。分布20Cは、インスペクター11Cを作成する場合に用いる訓練データの分布である。
星印は、正解ラベルが第1クラスの訓練データである。三角印は、正解ラベルが第2クラスの訓練データである。丸印は、正解ラベルが第3クラスの訓練データである。
各インスペクターを作成する場合に用いる訓練データの数は、数の多い順に、インスペクター11A、インスペクター11B、インスペクター11Cの順となる。
分布20Aにおいて、第1クラスのモデル適用領域は、モデル適用領域21Aとなる。第2クラスのモデル適用領域は、モデル適用領域22Aとなる。第3クラスのモデル適用領域は、モデル適用領域23Aとなる。
分布20Bにおいて、第1クラスのモデル適用領域は、モデル適用領域21Bとなる。第2クラスのモデル適用領域は、モデル適用領域22Bとなる。第3クラスのモデル適用領域は、モデル適用領域23Bとなる。
分布20Cにおいて、第1クラスのモデル適用領域は、モデル適用領域21Cとなる。第2クラスのモデル適用領域は、モデル適用領域22Cとなる。第3クラスのモデル適用領域は、モデル適用領域23Cとなる。
しかしながら、訓練データの数を削減しても、必ずしも、図3で説明したように、モデル適用領域が狭くならない場合がある。図4は、参考技術によるモデル適用領域の一例を示す図(2)である。図4に示す例では、訓練データの分布24A,24B,24Cを示す。分布24Aは、インスペクター11Aを作成する場合に用いる訓練データの分布である。分布24Bは、インスペクター11Bを作成する場合に用いる訓練データの分布である。分布24Cは、インスペクター11Cを作成する場合に用いる訓練データの分布である。星印、三角印、丸印の訓練データの説明は、図3で行った説明と同様である。
各インスペクターを作成する場合に用いる訓練データの数は、数の多い順に、インスペクター11A、インスペクター11B、インスペクター11Cの順となる。
分布24Aにおいて、第1クラスのモデル適用領域は、モデル適用領域25Aとなる。第2クラスのモデル適用領域は、モデル適用領域26Aとなる。第3クラスのモデル適用領域は、モデル適用領域27Aとなる。
分布24Bにおいて、第1クラスのモデル適用領域は、モデル適用領域25Bとなる。第2クラスのモデル適用領域は、モデル適用領域26Bとなる。第3クラスのモデル適用領域は、モデル適用領域27Bとなる。
分布24Cにおいて、第1クラスのモデル適用領域は、モデル適用領域25Cとなる。第2クラスのモデル適用領域は、モデル適用領域26Cとなる。第3クラスのモデル適用領域は、モデル適用領域27Cとなる。
上記のように、図3で説明した例では、訓練データの数に応じて、各モデル適用領域が狭くなっているが、図4で説明した例では、訓練データの数によらず、各モデル適用領域が狭くなっていない。
参考技術では、どの訓練データを削除すれば、モデル適用領域がどの程度狭くなるのか未知であるため、モデル適用領域を、意図的に分類クラスを指定しながら任意の広さに調整することが困難である。そのため、訓練データを削除して作成したインスペクターのモデル適用領域が狭くならないケースがある。インスペクターのモデル適用領域が狭くならなかった場合、作り直しの工数がかかる。
すなわち、参考技術では、指定した分類クラスのモデル適用領域を狭めた複数のインスペクターを作成することができていない。
次に、本実施例に係る情報処理装置の処理について説明する。情報処理装置は、監視対象の機械学習モデルと同じ訓練データのデータセットから、スコアの低い訓練データを分類クラス毎に除外して学習させることで、モデル適用領域を狭める。以下の説明では、訓練データのデータセットを「訓練データセット」と表記する。訓練データセットには、複数の訓練データが含まれる。
図5は、本実施例に係る情報処理装置の処理を説明するための図(1)である。図5では、説明の便宜上、訓練データの正解ラベル(分類クラス)が、第1クラスまたは第2クラスである場合について説明する。丸印は、正解ラベルが第1クラスの訓練データである。三角印は、正解ラベルが第2クラスの訓練データである。
分布30Aは、インスペクター11Aを作成する訓練データセットの分布を示す。インスペクター11Aを作成する訓練データセットは、監視対象の機械学習モデルを学習する場合に用いる訓練データセットと同じであるものとする。第1クラスのモデル適用領域31Aと、第2クラスのモデル適用領域32Aとの決定境界を、決定境界33Aとする。
インスペクター11Aに、既存の学習モデル(DNN)を用いた場合、各訓練データに対するスコアの値は、その学習モデルの決定境界に近いほど、小さな値となる。従って、複数の訓練データのうち、スコアの小さな訓練データを訓練データセットから除外することで、学習モデルの適用領域を狭めたインスペクターを生成することができる。
分布30Aにおいて、領域34に含まれる各訓練データは、決定境界33Aから離れているため、スコアが高い。領域35に含まれている各訓練データは、決定境界33Aから近いため、スコアが低い。情報処理装置は、分布30Aに含まれる訓練データセットから、領域35に含まれる各訓練データを削除した、新たな訓練データセットを作成する。
情報処理装置は、新たな訓練データセットによって、学習モデルを学習することで、インスペクター11Bを作成する。分布30Bは、インスペクター11Bを作成する訓練データセットの分布を示す。第1クラスのモデル適用領域31Bと、第2クラスのモデル適用領域32Bとの決定境界を、決定境界33Bとする。新たな訓練データセットでは、決定境界33Aに近い領域35の各訓練データが除外されているため、決定境界33Bの位置が移動し、第1クラスのモデル適用領域31Bが、第1クラスのモデル適用領域31Aよりも狭くなっている。
図6は、本実施例に係る情報処理装置の処理を説明するための図(2)である。本実施例に係る情報処理装置は、特定の分類クラスのモデル適用範囲を狭めたインスペクターを作成することが可能である。情報処理装置は、訓練データから分類クラスを指定して、スコアの低いデータを除外することで、特定のクラスのモデル適用領域を狭めることができる。
ここで、各訓練データには、分類クラスを示す正解ラベルが対応付けられている。情報処理装置が、第1クラスに対応するモデル適用領域を狭めたインスペクター11Bを作成する処理について説明する。情報処理装置は、正解ラベル「第1クラス」に対応する訓練データのうち、スコアの低い訓練データを除外した第1訓練データセットを用いて、学習を行う。
分布30Aは、インスペクター11Aを作成する訓練データセットの分布を示す。インスペクター11Aを作成する訓練データセットは、監視対象の機械学習モデルを学習する場合に用いる訓練データセットと同じものとする。第1クラスのモデル適用領域31Aと、第2クラスのモデル適用領域32Aとの決定境界を、決定境界33Aとする。
情報処理装置は、分布30Aに含まれる訓練データセットにおいて、正解ラベル「第1クラス」に対応する訓練データのスコアを算出し、スコアが閾値未満となる訓練データを特定する。情報処理装置は、特定した訓練データを、分布30Aに含まれる訓練データセットから除外した新たな訓練データセット(第1訓練データセット)を作成する。
情報処理装置は、第1訓練データセットによって、学習モデルを学習することで、インスペクター11Bを作成する。分布30Bは、インスペクター11Bを作成する訓練データの分布を示す。第1クラスのモデル適用領域31Bと、第2クラスのモデル適用領域32Bとの決定境界を、決定境界33Bとする。第1訓練データセットでは、決定境界33Aに近い各訓練データが除外されているため、決定境界33Bの位置が移動し、第1クラスのモデル適用領域31Bが、第1クラスのモデル適用領域31Aよりも狭くなっている。
続いて、情報処理装置が、第2クラスに対応するモデル適用領域を狭めたインスペクター11Cを作成する処理について説明する。情報処理装置は、正解ラベル「第2クラス」に対応する訓練データのうち、スコアの低い訓練データを除外した第2訓練データセットを用いて、学習を行う。
情報処理装置は、分布30Aに含まれる訓練データセットにおいて、正解ラベル「第2クラス」に対応する訓練データのスコアを算出し、スコアが閾値未満となる訓練データを特定する。情報処理装置は、特定した訓練データを、分布30Aに含まれる訓練データセットから除外した新たな訓練データセット(第2訓練データセット)を作成する。
情報処理装置は、第2訓練データセットによって、学習モデルを学習することで、インスペクター11Cを作成する。分布30Cは、インスペクター11Cを作成する訓練データの分布を示す。第1クラスのモデル適用領域31Cと、第2クラスのモデル適用領域32Cとの決定境界を、決定境界33Cとする。第2訓練データ群では、決定境界33Aに近い各訓練データが除外されているため、決定境界33Cの位置が移動し、第2クラスのモデル適用領域32Cが、第2クラスのモデル適用領域32Aよりも狭くなっている。
上記のように、本実施例に係る情報処理装置は、監視対象の機械学習モデルと同じ訓練データから、スコアの低い訓練データを分類クラス毎に除外して学習させることで、モデル適用領域を狭めることができる。
図7は、本実施例に係る情報処理装置の効果を説明するための図である。参考技術および本実施例に係る情報処理装置は、機械学習モデル10の学習で使用した訓練データセットを用いて学習モデルを学習することで、インスペクター11Aを作成する。
参考技術では、機械学習モデル10の学習で使用した訓練データセットから、訓練データをランダムに除外した新たな訓練データセットを作成する。参考技術では、作成した新たな訓練データセットを用いて学習モデルを学習することで、インスペクター11Bを作成する。参考技術のインスペクター11Bにおいて、第1クラスのモデル適用領域は、モデル適用領域25Bとなる。第2クラスのモデル適用領域は、モデル適用領域26Bとなる。第3クラスのモデル適用領域は、モデル適用領域27Bとなる。
ここで、モデル適用領域25Aと、モデル適用領域25Bとを比較すると、モデル適用領域25Bが狭くなっていない。同様に、モデル適用領域26Aと、モデル適用領域26Bとを比較すると、モデル適用領域26Bが狭くなっていない。モデル適用領域27Aと、モデル適用領域27Bとを比較すると、モデル適用領域27Bが狭くなっていない。
一方、本実施例に係る情報処理装置は、機械学習モデル10の学習で使用した訓練データセットから、スコアの低い訓練データを除外した新たな訓練データセットを作成する。情報処理装置は、作成した新たな訓練データセットを用いて学習モデルを学習することで、インスペクター11Bを作成する。本実施例に係るインスペクター11Bにおいて、第1クラスのモデル適用領域は、モデル適用領域35Bとなる。第2クラスのモデル適用領域は、モデル適用領域36Bとなる。第3クラスのモデル適用領域は、モデル適用領域37Bとなる。
ここで、モデル適用領域25Aと、モデル適用領域35Bとを比較すると、モデル適用領域35Bが狭くなっている。
上記のように、本実施例に係る情報処理装置によれば、機械学習モデル10の学習で使用した訓練データセットから、スコアの低い訓練データを除外した新たな訓練データセットを作成することで、インスペクターのモデル適用領域を必ず狭めることができる。これにより、モデル適用領域が狭まらなかった場合に必要なインスペクターの作り直しなどの工程を削減できる。
また、本実施例に係る情報処理装置によれば、特定の分類クラスのモデル適用範囲を狭めたインスペクターを作成することが可能となる。削減する訓練データのクラスを変えることで、必ず異なるモデル適用領域のインスペクターを作成できるため、モデル精度劣化の検知で求められる要件「異なるモデル適用領域の複数のインスペクター」をそれぞれ作成することができる。また、作成したインスペクターを用いることで、検知した精度劣化の原因を説明することが可能となる。
次に、本実施例に係る情報処理装置の構成の一例について説明する。図8は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図8に示すように、この情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、ネットワークを介して、外部装置(図示略)とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。
入力部120は、情報処理装置100に対して各種の情報を入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
記憶部140は、教師データ141、機械学習モデルデータ142、インスペクターテーブル143、訓練データテーブル144、運用データテーブル145、出力結果テーブル146を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
教師データ141は、訓練データセット141aと、検証データ141bを有する。訓練データセット141aは、訓練データに関する各種の情報を保持する。
図9は、訓練データセットのデータ構造の一例を示す図である。図9に示すように、この訓練データセットは、レコード番号と、訓練データと、正解ラベルとを対応付ける。レコード番号は、訓練データと、正解ラベルとの組を識別する番号である。訓練データは、メールスパムのデータ、電気需要予測、株価予測、ポーカーハンドのデータ、画像データ等に対応する。正解ラベルは、第1クラス、第2クラス、第3クラスの各分類クラスのうち、いずれかの分類クラスを一意に識別する情報である。
検証データ141bは、訓練データセット141aによって学習された機械学習モデルを検証するためのデータである。検証データ141bは、正解ラベルが付与される。たとえば、検証データ141bを、機械学習モデルに入力した場合に、機械学習モデルから出力される出力結果が、検証データ141bに付与される正解ラベルに一致する場合、訓練データセット141aによって、機械学習モデルが適切に学習されたことを意味する。
機械学習モデルデータ142は、機械学習モデルのデータである。図10は、機械学習モデルの一例を説明するための図である。図10に示すように、機械学習モデル50は、ニューラルネットワークの構造を有し、入力層50a、隠れ層50b、出力層50cを持つ。入力層50a、隠れ層50b、出力層50cは、複数のノードがエッジで結ばれる構造となっている。隠れ層50b、出力層50cは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。以下の説明では、バイアス値、重みを「パラメータ」と表記する。
入力層50aに含まれる各ノードに、データ(データの特徴量)を入力すると、隠れ層50bを通って、出力層50cのノード51a,51b,51cから、各クラスの確率が出力される。たとえば、ノード51aから、第1クラスの確率が出力される。ノード51bから、第2クラスの確率が出力される。ノード51cから、第3クラスの確率が出力される。各クラスの確率は、出力層50cの各ノードから出力される値を、ソフトマックス(Softmax)関数に入力することで、算出される。本実施例では、ソフトマックス関数に入力する前の値を「スコア」と表記する。
たとえば、正解ラベル「第1クラス」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51aから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。正解ラベル「第2クラス」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51bから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。正解ラベル「第3クラス」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51cから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。
機械学習モデル50は、教師データ141の訓練データセット141aと、検証データ141bとを基にして、学習済みであるものとする。機械学習モデル50の学習では、訓練データセット141aの各訓練データを入力層50aに入力した場合、出力層50cの各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、機械学習モデル50のパラメータが学習(誤差逆伝播法による学習)される。
図8の説明に戻る。インスペクターテーブル143は、機械学習モデル50の精度劣化を検知する複数のインスペクターのデータを保持するテーブルである。図11は、インスペクターテーブルのデータ構造の一例を示す図である。図11に示すように、このインスペクターテーブル143は、識別情報と、インスペクターとを対応付ける。識別情報は、インスペクターを識別する情報である。インスペクターは、モデル識別情報に対応するインスペクターのデータである。インスペクターのデータは、図10で説明した機械学習モデル50と同様にして、ニューラルネットワークの構造を有し、入力層、隠れ層、出力層を持つ。また、各インスペクターには、それぞれ異なるパラメータが設定される。
以下の説明では、識別情報「M0」のインスペクターを、「インスペクターM0」と表記する。識別情報「M1」のインスペクターを、「インスペクターM1」と表記する。識別情報「M2」のインスペクターを、「インスペクターM2」と表記する。識別情報「M3」のインスペクターを、「インスペクターM3」と表記する。
訓練データテーブル144は、各インスペクターを学習するための複数の訓練データセットを有する。図12は、訓練データテーブルのデータ構造の一例を示す図である。図12に示すように、訓練データテーブル144は、データ識別情報と、訓練データセットとを有する。データ識別情報は、訓練データセットを識別する情報である。訓練データセットは、各インスペクターを学習する場合に用いられる訓練データセットである。
データ識別情報「D1」の訓練データセットは、訓練データセット141aから、スコアの低い、正解ラベル「第1クラス」の訓練データを除外した訓練データセットである。以下の説明では、データ識別情報「D1」の訓練データセットを、「訓練データセットD1」と表記する。
データ識別情報「D2」の訓練データセットは、訓練データセット141aから、スコアの低い、正解ラベル「第2クラス」の訓練データを除外した訓練データセットである。以下の説明では、データ識別情報「D2」の訓練データセットを、「訓練データセットD2」と表記する。
データ識別情報「D3」の訓練データセットは、訓練データセット141aから、スコアの低い、正解ラベル「第3クラス」の訓練データを除外した訓練データセットである。以下の説明では、データ識別情報「D3」の訓練データセットを、「訓練データセットD3」と表記する。
運用データテーブル145は、時間経過に伴って、追加される運用データセットを有する。図13は、運用データテーブルのデータ構造の一例を示す図である。図13に示すように、運用データテーブル145は、データ識別情報と、運用データセットとを有する。データ識別情報は、運用データセットを識別する情報である。運用データセットは、複数の運用データが含まれる。運用データは、メールスパムのデータ、電気需要予測、株価予測、ポーカーハンドのデータ、画像データ等に対応する。
データ識別情報「C0」の運用データセットは、運用開始時(t=0)において収集された運用データセットである。以下の説明では、データ識別情報「C0」の運用データセットを、「運用データセットC0」と表記する。
データ識別情報「C1」の運用データセットは、運用開始時からT1時間経過後に収集された運用データセットである。以下の説明では、データ識別情報「C1」の運用データセットを、「運用データセットC1」と表記する。
データ識別情報「C2」の運用データセットは、運用開始時からT2(T2>T1)時間経過後に収集された運用データセットである。以下の説明では、データ識別情報「C2」の運用データセットを、「運用データセットC2」と表記する。
データ識別情報「C3」の運用データセットは、運用開始時からT3(T3>T2)時間経過後に収集された運用データセットである。以下の説明では、データ識別情報「C3」の運用データセットを、「運用データセットC3」と表記する。
図示を省略するが、運用データセットC0~C3に含まれる各運用データには、運用データを一意に識別する「運用データ識別情報」が付与されるものとする。運用データセットC0~C3は、外部装置から情報処理装置100にデータストリームされ、情報処理装置100は、データストリームされた運用データセットC0~C3を、運用データテーブル145に登録する。
出力結果テーブル146は、各インスペクターM0~M3に、各運用データセットC0~C3を入力した際の、各インスペクターM0~M3の出力結果を登録するテーブルである。
図8の説明に戻る。制御部150は、第1学習部151、算出部152、作成部153、第2学習部154、取得部155、検出部156を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
第1学習部151は、訓練データセット141aを取得し、訓練データセット141aを基にして、学習モデルのパラメータを学習することで、インスペクターM0を作成する処理部である。訓練データセット141aは、機械学習モデル50を学習する場合に用いられた訓練データセットである。学習モデルは、機械学習モデル50と同様にして、ニューラルネットワークの構造を有し、入力層、隠れ層、出力層を持つ。また、学習データには、パラメータ(パラメータの初期値)が設定される。
第1学習部151は、訓練データセット141aの訓練データを、学習モデルの入力層に入力した場合、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、学習モデルのパラメータを更新する(誤差逆伝播法による学習)。第1学習部151は、作成したインスペクターM0のデータを、インスペクターテーブル143に登録する。
図14は、インスペクターM0の分類面の一例を示す図である。一例として、分類面を2軸で示す。分類面の横軸は、データの第1特徴量に対応する軸であり、縦軸は、第2特徴量に対応する軸である。なお、データは、3次元以上のデータであってもよい。インスペクターM0の決定境界は、決定境界60となる。インスペクターM0の第1クラスに対するモデル適用領域は、モデル適用領域60Aとなる。モデル適用領域60Aには、第1クラスに対応する複数の訓練データ61Aが含まれる。
インスペクターM0の第2クラスに対するモデル適用領域は、モデル適用領域60Bとなる。モデル適用領域60Bには、第2クラスに対応する複数の訓練データ61Bが含まれる。インスペクターM0の第3クラスに対するモデル適用領域は、モデル適用領域60Cとなる。モデル適用領域60Cには、第2クラスに対応する複数の訓練データ61Cが含まれる。
インスペクターM0の決定境界60、各モデル適用領域60A~60Cは、機械学習モデルの決定境界、各モデル適用領域と同一となる。
算出部152は、訓練データセット141aに含まれる各訓練データのスコアをそれぞれ算出する処理部である。算出部152は、インスペクターM0を実行し、実行したインスペクターM0に訓練データを入力することで、各訓練データのスコアを算出する。算出部152は、各訓練データのスコアを、作成部153に出力する。
算出部152は、正解ラベル「第1クラス」に対応する複数の訓練データのスコアを算出する。ここでは、訓練データセット141aの訓練データのうち、正解ラベル「第1クラス」に対応する訓練データを、「第1訓練データ」と表記する。算出部152は、第1訓練データを、インスペクターM0の入力層に入力し、第1訓練データのスコアを算出する。算出部152は、複数の第1訓練データに対して、上記処理を繰り返し実行する。算出部152は、第1訓練データのレコード番号と、スコアとを対応付けた算出結果データ(以下、第1算出結果データ)を、作成部153に出力する。
算出部152は、正解ラベル「第2クラス」に対応する複数の訓練データのスコアを算出する。ここでは、訓練データセット141aの訓練データのうち、正解ラベル「第2クラス」に対応する訓練データを、「第2訓練データ」と表記する。算出部152は、第2訓練データを、インスペクターM0の入力層に入力し、第2訓練データのスコアを算出する。算出部152は、複数の第2訓練データに対して、上記処理を繰り返し実行する。算出部152は、第2訓練データのレコード番号と、スコアとを対応付けた算出結果データ(以下、第2算出結果データ)を、作成部153に出力する。
算出部152は、正解ラベル「第3クラス」に対応する複数の訓練データのスコアを算出する。ここでは、訓練データセット141aの訓練データのうち、正解ラベル「第3クラス」に対応する訓練データを、「第3訓練データ」と表記する。算出部152は、第3訓練データを、インスペクターM0の入力層に入力し、第3訓練データのスコアを算出する。算出部152は、複数の第3訓練データに対して、上記処理を繰り返し実行する。算出部152は、第3訓練データのレコード番号と、スコアとを対応付けた算出結果データ(以下、第3算出結果データ)を、作成部153に出力する。
作成部153は、各訓練データのスコアを基にして、複数の訓練データセットを作成する処理部である。作成部153は、各訓練データのスコアのデータとして、算出部152から、第1算出結果データ、第2算出結果データ、第3算出結果データを取得する。
作成部153は、第1算出結果データを取得すると、第1算出結果データに含まれる第1訓練データのうち、スコアが閾値未満となる第1訓練データを、除外対象の第1訓練データとして特定する。スコアが閾値未満となる第1訓練データは、決定境界60付近の第1訓練データである。作成部153は、訓練データセット141aから、除外対象の第1訓練データを除外した訓練データセット(訓練データセットD1)を作成する。作成部153は、訓練データセットD1を、訓練データテーブル144に登録する。
作成部153は、第2算出結果データを取得すると、第2算出結果データに含まれる第2訓練データのうち、スコアが閾値未満となる第2訓練データを、除外対象の第2訓練データとして特定する。スコアが閾値未満となる第2訓練データは、決定境界60付近の第2訓練データである。作成部153は、訓練データセット141aから、除外対象の第2訓練データを除外した訓練データセット(訓練データセットD2)を作成する。作成部153は、訓練データセットD2を、訓練データテーブル144に登録する。
作成部153は、第3算出結果データを取得すると、第3算出結果データに含まれる第3訓練データのうち、スコアが閾値未満となる第3訓練データを、除外対象の第3訓練データとして特定する。スコアが閾値未満となる第3訓練データは、決定境界付近の第3訓練データである。作成部153は、訓練データセット141aから、除外対象の第3訓練データを除外した訓練データセット(訓練データセットD3)を作成する。作成部153は、訓練データセットD3を、訓練データテーブル144に登録する。
第2学習部154は、訓練データテーブル144の訓練データセットD1,D2,D3を用いて、複数のインスペクターM1,M2,M3を作成する処理部である。
第2学習部154は、訓練データセットD1を基にして、学習モデルのパラメータを学習することで、インスペクターM1を作成する。訓練データセットD1は、決定境界60付近の第1訓練データが除外されたデータセットである。第2学習部154は、訓練データセットD1の訓練データを、学習モデルの入力層に入力した場合、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、学習モデルのパラメータを更新する(誤差逆伝播法による学習)。これにより、第2学習部154は、インスペクターM1を作成する。第2学習部154は、インスペクターM1のデータを、インスペクターテーブル143に登録する。
第2学習部154は、訓練データセットD2を基にして、学習モデルのパラメータを学習することで、インスペクターM2を作成する。訓練データセットD2は、決定境界60付近の第2訓練データが除外されたデータセットである。第2学習部154は、訓練データセットD2の訓練データを、学習モデルの入力層に入力した場合、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、学習モデルのパラメータを更新する(誤差逆伝播法による学習)。これにより、第2学習部154は、インスペクターM2を作成する。第2学習部154は、インスペクターM2のデータを、インスペクターテーブル143に登録する。
図15は、インスペクターM0,M2の分類面を比較する図である。インスペクターM0の分類面を分類面60M0とする。インスペクターM2の分類面を分類面60M2とする。インスペクターM0の分類面60M0に関する説明は、図14の説明と同様である。
インスペクターM2の決定境界は、決定境界64となる。インスペクターM2の第1クラスに対するモデル適用領域は、モデル適用領域64Aとなる。インスペクターM2の第2クラスに対するモデル適用領域は、モデル適用領域64Bとなる。モデル適用領域64Bには、第2クラスに対応し、かつ、スコアが閾値以上となる複数の訓練データ65Bが含まれる。インスペクターM2の第3クラスに対するモデル適用領域は、モデル適用領域64Cとなる。
インスペクターM0の分類面60M0と、インスペクターM2の分類面60M2とを比較すると、第2クラスのモデル適用領域に相当する、モデル適用領域64Bが、モデル適用領域60Bよりも狭くなっている。これは、インスペクターM2を学習する際に用いた訓練データセットから、決定境界60付近の第2訓練データが除外されているためである。
第2学習部154は、訓練データセットD3を基にして、学習モデルのパラメータを学習することで、インスペクターM3を作成する。訓練データセットD3は、決定境界60付近の第3訓練データが除外されたデータセットである。第2学習部154は、訓練データセットD3の訓練データを、学習モデルの入力層に入力した場合、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、学習モデルのパラメータを更新する(誤差逆伝播法による学習)。これにより、第2学習部154は、インスペクターM3を作成する。第2学習部154は、インスペクターM3のデータを、インスペクターテーブル143に登録する。
図16は、各インスペクターの分類面を示す図である。インスペクターM0の分類面を分類面60M0とする。インスペクターM1の分類面を分類面60M1とする。インスペクターM2の分類面を分類面60M2とする。インスペクターM3の分類面を分類面60M3とする。インスペクターM0の分類面60M0、および、インスペクターM2の分類面60M2に関する説明は、図15の説明と同様である。
インスペクターM1の決定境界は、決定境界62となる。インスペクターM1の第1クラスに対するモデル適用領域は、モデル適用領域62Aとなる。インスペクターM1の第2クラスに対するモデル適用領域は、モデル適用領域62Bとなる。インスペクターM1の第3クラスに対するモデル適用領域は、モデル適用領域62Cとなる。
インスペクターM3の決定境界は、決定境界66となる。インスペクターM3の第1クラスに対するモデル適用領域は、モデル適用領域66Aとなる。インスペクターM3の第2クラスに対するモデル適用領域は、モデル適用領域66Bとなる。インスペクターM3の第3クラスに対するモデル適用領域は、モデル適用領域66Cとなる。
インスペクターM0の分類面60M0と、インスペクターM1の分類面60M1とを比較すると、第1クラスのモデル適用領域に相当する、モデル適用領域62Aが、モデル適用領域60Aよりも狭くなっている。これは、インスペクターM1を学習する際に用いた訓練データセットから、決定境界60付近(スコアが閾値未満)の第1訓練データが除外されているためである。
インスペクターM0の分類面60M0と、インスペクターM2の分類面60M2とを比較すると、第2クラスのモデル適用領域に相当する、モデル適用領域64Bが、モデル適用領域60Bよりも狭くなっている。これは、インスペクターM2を学習する際に用いた訓練データセットから、決定境界60付近(スコアが閾値未満)の第2訓練データが除外されているためである。
インスペクターM0の分類面60M0と、インスペクターM3の分類面60M3とを比較すると、第3クラスのモデル適用領域に相当する、モデル適用領域66Cが、モデル適用領域60Cよりも狭くなっている。これは、インスペクターM3を学習する際に用いた訓練データセットから、決定境界60付近(スコアが閾値未満)の第3訓練データが除外されているためである。
図17は、全てのインスペクターの分類面を重ねた分類面の一例を示す図である。図17に示すように、決定境界60,62,65,66がそれぞれ異なっており、第1、2、3クラスのモデル適用領域もそれぞれ異なっている。
図8の説明に戻る。取得部155は、時間経過に伴って特徴量の変化する運用データを、複数のインスペクターにそれぞれ入力し、出力結果を取得する処理部である。
たとえば、取得部155は、インスペクターテーブル143から、インスペクターM0~M2のデータを取得し、インスペクターM0~M2を実行する。取得部155は、運用データテーブル145に格納された各運用データセットC0~C3を、インスペクターM0~M2に入力して、出力結果をそれぞれ取得し、出力結果テーブル146に登録する。
図18は、出力結果テーブルのデータ構造の一例を示す図である。図18に示すように、出力結果テーブル146では、インスペクターを識別する識別情報と、入力した運用データセットを識別するデータ識別情報と、出力結果とを対応付ける。たとえば、識別情報「M0」、データ識別情報「C0」に対応する出力結果は、インスペクターM0に、運用データセットC0の各運用データを入力した際の出力結果となる。
図19は、出力結果テーブルの出力結果のデータ構造の一例を示す図である。図19に示すでは、出力結果テーブル146に含まれる各出力結果のうち、いずれかの出力結果に対応する。出力結果には、運用データ識別情報と、分類クラスとが対応付けられる。運用データ識別情報は、運用データを一意に識別する情報である。分類クラスは、運用データが分類される分類クラスを一意に識別する情報である。たとえば、運用データ識別情報「OP1001」の運用データを、該当するインスペクターに入力した場合の出力結果(分類クラス)が、第1クラスであることが示される。
図8の説明に戻る。検出部156は、出力結果テーブル146を基にして、データの時間変化に基づく、機械学習モデル50の出力結果の要因となるデータを検出する処理部である。
図20は、検出部の処理を説明するための図である。ここでは一例として、インスペクターM0,M1を用いて説明を行う。便宜的に、インスペクターM0の決定境界を決定境界70Aとし、インスペクターM1の決定境界を決定境界70Bとする。決定境界70Aと、決定境界70Bとの位置はそれぞれ異なっており、モデル適用領域が異なる。以下の説明では、運用データセットに含まれる一つの運用データを適宜、「インスタンス」と表記する。
インスタンスがモデル適用領域71Aに位置する場合には、インスタンスは、インスペクターM0によって、第1クラスに分類される。インスタンスがモデル適用領域72Aに位置する場合には、インスタンスは、インスペクターM0によって、第2クラスに分類される。
インスタンスがモデル適用領域71Bに位置する場合には、インスタンスは、インスペクターM1によって、第1クラスに分類される。インスタンスがモデル適用領域72Bに位置する場合には、インスタンスは、インスペクターM1によって、第2クラスに分類される。
たとえば、運用初期の時間T1において、インスタンスI1T1をインスペクターM0に入力すると、インスタンスI1T1はモデル適用領域71Aに位置するため、「第1クラス」に分類される。インスタンスI2T1をインスペクターM0に入力すると、インスタンスI2T1はモデル適用領域71Aに位置するため、「第1クラス」に分類される。インスタンスI3T1をインスペクターM0に入力すると、インスタンスI3T1はモデル適用領域72Aに位置するため、「第2クラス」に分類される。
運用初期の時間T1において、インスタンスI1T1をインスペクターM1に入力すると、インスタンスI1T1はモデル適用領域71Bに位置するため、「第1クラス」に分類される。インスタンスI2T1をインスペクターM1に入力すると、インスタンスI2T1はモデル適用領域71Bに位置するため、「第1クラス」に分類される。インスタンスI3T1をインスペクターM1に入力すると、インスタンスI3T1はモデル適用領域72Bに位置するため、「第2クラス」に分類される。
運用初期の時間T1において、インスタンスI1T1,I2T1,I3T1をインスペクターM0,M1に入力した際に分類される分類結果がそれぞれ同一であるため、検出部156は、機械学習モデル50の精度劣化を検出しない。
ところで、運用初期から時間経過した時間T2において、インスタンスの傾向が変化して、インスタンスI1T1,I2T1,I3T1は、インスタンスI1T2,I2T2,I3T2となる。インスタンスI1T2をインスペクターM0に入力すると、インスタンスI1T2はモデル適用領域71Aに位置するため、「第1クラス」に分類される。インスタンスI2T2をインスペクターM0に入力すると、インスタンスI2T1はモデル適用領域71Aに位置するため、「第1クラス」に分類される。インスタンスI3T2をインスペクターM0に入力すると、インスタンスI3T2はモデル適用領域72Aに位置するため、「第2クラス」に分類される。
運用初期から時間経過した時間T2において、インスタンスI1T2をインスペクターM1に入力すると、インスタンスI1T2はモデル適用領域72Bに位置するため、「第2クラス」に分類される。インスタンスI2T2をインスペクターM1に入力すると、インスタンスI2T2はモデル適用領域71Bに位置するため、「第1クラス」に分類される。インスタンスI3T2をインスペクターM1に入力すると、インスタンスI3T2はモデル適用領域72Bに位置するため、「第2クラス」に分類される。
運用初期から時間経過した時間T2において、インスタンスI1T1をインスペクターM0,M1に入力した際に分類される分類結果がそれぞれ異なるため、検出部156は、機械学習モデル50の精度劣化を検出する。また、検出部156は、精度劣化の要因となったインスタンスI1T2を検出することができる。
検出部156は、出力結果テーブル146を参照し、各運用データセットの各インスタンス(運用データ)について、各インスペクターに入力した際の分類クラスを特定し、上記処理を繰り返し実行する。
図21は、時間経過に伴う運用データセットの変化を示す図である。図21では、インスペクターM0に、各運用データセットを入力した際の分布を示す。図21において、丸印の各運用データは、本来、第1クラスに属するデータとし、モデル適用領域60Aに分類されることが正しい。三角印の各運用データは、本来、第2クラスに属するデータとし、モデル適用領域60Bに分類されることが正しい。四角印の各運用データは、本来、第3クラスに属するデータとし、モデル適用領域60Cに分類されることが正しい。
運用初期の時間T1の運用データセットC0において、丸印の各運用データは、モデル適用領域60Aに含まれている。三角印の各運用データは、モデル適用領域60Bに含まれている。四角印の各運用データは、モデル適用領域60Cに含まれている。すなわち、各運用データが、適切に分類クラスに分類されており、精度劣化が検出されない。
運用初期からT2時間経過した運用データセットC1において、丸印の各運用データは、モデル適用領域60Aに含まれている。三角印の各運用データは、モデル適用領域60Bに含まれている。四角印の各運用データは、モデル適用領域60Cに含まれている。三角印の各運用データの中心が、モデル適用領域60A側に移動(ドリフト)しているものの、大半の運用データが、適切に分類クラスに分類されており、精度劣化が検出されない。
運用初期からT3時間経過した運用データセットC2において、丸印の各運用データは、モデル適用領域60Aに含まれている。三角印の各運用データは、モデル適用領域60A,60Bに含まれている。四角印の各運用データは、モデル適用領域60Cに含まれている。三角印の各運用データの約半数が、決定境界を跨いで、モデル適用領域60Aに移動(ドリフト)しており、精度劣化が検出される。
運用初期からT4時間経過した運用データセットC3において、丸印の各運用データは、モデル適用領域60Aに含まれている。三角印の各運用データは、モデル適用領域60Aに含まれている。四角印の各運用データは、モデル適用領域60Cに含まれている。三角印の各運用データが、決定境界を跨いで、モデル適用領域60Aに移動(ドリフト)しており、精度劣化が検出される。
図示を省略するが、検出部156は、次の処理を実行することで、インスタンス毎に、精度劣化に起因しているインスタンスか否かと、インスタンスの特徴量がどの分類クラスの方向に移動しているのかを検出する。検出部156は、出力結果テーブル146を参照し、同一のインスタンスを各インスペクターM0~M3に入力した際の分類クラスを特定する。同一のインスタンスは、同一の運用データ識別情報が割り当てられた運用データである。
検出部156は、同一のインスタンスを各インスペクターM0~M3に入力した際の全ての分類クラス(出力結果)が同一である場合には、該当するインスタンスが、精度劣化に起因していないと判定する。一方、検出部156は、同一のインスタンスを各インスペクターM0~M3に入力した際の全ての分類クラスが同一でない場合には、該当するインスタンスを、精度劣化に起因するインスタンスとして検出する。
検出部156は、精度劣化に起因するインスタンスを、インスペクターM0に入力した際の出力結果と、インスペクターM1に入力した際の出力結果とが異なる場合、インスタンスの特徴量が「第1クラスの方向」に変化したことを検出する。
検出部156は、精度劣化に起因するインスタンスを、インスペクターM0に入力した際の出力結果と、インスペクターM2に入力した際の出力結果とが異なる場合、インスタンスの特徴量が「第2クラスの方向」に変化したことを検出する。
検出部156は、精度劣化に起因するインスタンスを、インスペクターM0に入力した際の出力結果と、インスペクターM3に入力した際の出力結果とが異なる場合、インスタンスの特徴量が「第3クラスの方向」に変化したことを検出する。
検出部156は、各インスタンスについて、上記処理を繰り返し実行することで、インスタンス毎に、精度劣化に起因しているインスタンスか否かと、インスタンスの特徴量がどの分類クラスの方向に移動しているのかを検出する。
ところで、検出部156は、出力結果テーブル146を基にして、各インスペクターの各モデル適用領域に含まれる運用データの時間変化に伴う分類クラスの変化のグラフを生成してもよい。たとえば、検出部156は、図22に示すようなグラフG0~G3の情報を生成する。検出部156は、グラフG0~G3の情報を、表示部130に表示させてもよい。
図22は、検出部の処理を説明するための図(2)である。図22において、グラフG0は、インスペクターM0に各運用データセットを入力した際の、各クラス適用領域に位置する運用データの数の変化を示すグラフである。グラフG1は、インスペクターM1に各運用データセットを入力した際の、各クラス適用領域に位置する運用データの数の変化を示すグラフである。グラフG2は、インスペクターM2に各運用データセットを入力した際の、各クラス適用領域に位置する運用データの数の変化を示すグラフである。グラフG3は、インスペクターM3に各運用データセットを入力した際の、各クラス適用領域に位置する運用データの数の変化を示すグラフである。
グラフG0,G1,G2,G3の横軸は、運用データセットの時間経過を示す軸である。グラフG0,G1,G2,G3の縦軸は、各モデル領域データに含まれる運用データの数を示す軸である。各グラフG0,G1,G2,G3の線81は、第1クラスのモデル適用領域に含まれる運用データの数の遷移を示す。各グラフG0,G1,G2,G3の線82は、第2クラスのモデル適用領域に含まれる運用データの数の遷移を示す。各グラフG0,G1,G2,G3の線83は、第3クラスのモデル適用領域に含まれる運用データの数の遷移を示す。
検出部156は、インスペクターM0に対応するグラフG0と、他のインスペクターM1,M2,M3に対応するグラフG1,G2,G3とを比較することで、機械学習モデル50の精度劣化の予兆を検知することができる。また、検出部156は、精度劣化の原因を特定することができる。
図22の時間t=1において、グラフG0の各モデル領域データに含まれる運用データの数と、グラフG1の各モデル領域データに含まれる運用データの数とが異なっているため、検出部156は、機械学習モデル50の精度劣化(精度劣化の予兆)を検出する。
検出部156は、図22の時刻t=2~3における、グラフG0~G3の各モデル領域データに含まれる運用データの数の変化を基にして、精度劣化の原因を検出する。検出部156は、グラフG0~G3の線83が変化していないため、線83に対応する第3クラスに分類される各運用データを、精度劣化の原因の対象から除外する。
検出部156は、時刻t=2~3において、グラフG0~G3の線81が増加し、線82の線が減少しており、第2クラスに分類されていた各運用データが、第1クラスのクラス適用領域に移動していることを検出する。
検出部156は、上記の検出結果を基にして、精度劣化情報のグラフを生成する。図23は、精度劣化情報のグラフの一例を示す図である。図23のグラフの横軸は、運用データセットの時間経過を示す軸である。グラフの縦軸は、精度を示す軸である。図23に示す例では、時刻t=1以降において、精度が低下している。
検出部156は、運用データセットに含まれるインスタンスのうち、インスペクターM0の出力結果と、他のインスペクターM1~M3の出力結果との一致度合いを、精度として算出する。検出部156は、他の従来技術を用いて、精度を算出してもよい。検出部156は、情報劣化情報のグラフを、表示部130に表示させてもよい。
ところで、検出部156は、精度が閾値未満となった場合に、機械学習モデル50の再学習の要求を、第1学習部151に出力してもよい。たとえば、検出部156は、運用データテーブル145に含まれる各運動データセットのうち、最新の運動データセットを選択する。検出部156は、選択した運用データセットの各運用データを、インスペクターM0に入力して、出力結果を特定し、特定した出力結果を、運動データの正解ラベルとして設定する。検出部156は、各運用データについて、上記処理を繰り返し実行することで、新たな訓練データセットを生成する。
検出部156は、新たな訓練データセットを、第1学習部151に出力する。第1学習部151は、新たな訓練データセットを用いて、機械学習モデル50のパラメータを更新する再学習を実行する。第1学習部151は、新たな訓練データセットの訓練データを、機械学習モデル50の入力層に入力した場合、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、機械学習モデルのパラメータを更新する(誤差逆伝播法による学習)。
次に、本実施例に係る情報処理装置100の処理手順の一例について説明する。図24は、本実施例に係る情報処理装置の処理手順を示すフローチャート(1)である。図24に示すように、情報処理装置100の第1学習部151は、監視対象の機械学習モデルの学習に使用した訓練データセット141aを取得する(ステップS101)。
第1学習部151は、訓練データセット141aを用いて、インスペクターM0の学習を実行する(ステップS102)。情報処理装置100は、iの値に、1を設定する(ステップS103)。
情報処理装置100の算出部152は、インスペクターM0に第iクラスの訓練データを入力し、訓練データに関するスコアを算出する(ステップS104)。情報処理装置100の作成部153は、スコアが閾値未満となる訓練データを、訓練データセット141aから除外した訓練データセットDiを作成し、訓練データテーブル144に登録する(ステップS105)。
情報処理装置100は、iの値がN(たとえば、N=3)であるか否かを判定する(ステップS106)。情報処理装置は、iの値がNである場合には(ステップS106,Yes)、ステップS108に移行する。一方、情報処理装置100は、iの値がNでない場合には(ステップS106,No)、ステップS107に移行する。情報処理装置100は、iの値に1を加算した値によって、iの値を更新し(ステップS107)、ステップS104に移行する。
情報処理装置100の第2学習部154は、複数の訓練データセットD1~D3を用いて、複数のインスペクターM1~M3の学習を実行する(ステップS108)。第2学習部154は、学習した複数のインスペクターM1~M3を、インスペクターテーブル143に登録する(ステップS109)。
図25は、本実施例に係る情報処理装置の処理手順を示すフローチャート(2)である。情報処理装置100の取得部155は、運用データテーブル145から、運用データセットを取得する(ステップS201)。取得部155は、運用データセットからインスタンスを1つ選択する(ステップS202)。
取得部155は、選択したインスタンスを各インスペクターM0~M3に入力し、出力結果を取得し、出力結果テーブル146に登録する(ステップS203)。情報処理装置100の検出部156は、出力結果テーブル146を参照し、各出力結果が異なるか否かを判定する(ステップS204)。
検出部156は、各出力結果が異ならない場合には(ステップS205,No)、ステップS208に移行する。検出部156は、各出力結果が異なる場合には(ステップS205,Yes)、ステップS206に移行する。
検出部156は、精度劣化を検出する(ステップS206)。検出部156は、選択したインスタンスを、精度劣化の要因として検出する(ステップS207)。情報処理装置100は、全てのインスタンスを選択したか否かを判定する(ステップS208)。
情報処理装置100は、全てのインスタンスを選択した場合には(ステップS208,Yes)、処理を終了する。一方、情報処理装置100は、全てのインスタンスを選択していない場合には(ステップS208,No)、ステップS209に移行する。取得部15は、運用データセットから、未選択のインスタンスを1つ選択し(ステップS209)、ステップS203に移行する。
情報処理装置100は、図25で説明した処理を、運用データテーブル145に格納された各運用データセットについて実行する。
次に、本実施例に係る情報処理装置100の効果について説明する。情報処理装置100は、機械学習モデル50の学習で使用した訓練データセット141aから、スコアの低い訓練データを除外した新たな訓練データセットを作成し、新たな訓練データを用いて、インスペクターM1~M3を作成することで、インスペクターのモデル適用領域を必ず狭めることができる。これにより、モデル適用領域が狭まらなかった場合に必要なインスペクターの作り直しなどの工程を削減できる。
また、情報処理装置100によれば、特定の分類クラスのモデル適用範囲を狭めたインスペクターM1~M3を作成することが可能となる。削減する訓練データのクラスを変えることで、必ず異なるモデル適用領域のインスペクターを作成できるため、モデル精度劣化の検知で求められる要件「異なるモデル適用領域の複数のインスペクター」をそれぞれ作成することができる。また、作成したインスペクターを用いることで、検知した精度劣化の原因を説明することが可能となる。
情報処理装置100は、運用データセットの運用データ(インスタンス)を、インスペクターM0~M3に入力して、各インスペクターM0~M3の出力結果をそれぞれ取得し、各出力結果に基づいて、機械学習モデル50の精度劣化を検出する。これによって、機械学習モデル50の精度劣化を検出すると共に、精度劣化の要因となったインスタンスを検出することができる。本実施例では、インスペクターM1~M3を作成する場合について説明したが、他のインスペクターを更に作成して、精度劣化を検出してもよい。
情報処理装置100は、機械学習モデル50の精度劣化を検出した場合、運用データセットの運用データに対応する分類クラス(正解ラベル)を設定した新たな訓練データセットを作成し、作成した訓練データセットを用いて、機械学習モデル50の再学習を実行する。これによって、時間経過に伴って、運用データセットの特徴量が変化した場合でも、かかる変化に応じた機械学習モデルを学習し、特徴量の変化に対応させることができる。
次に、本実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図26は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図26に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る読み取り装置204と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
ハードディスク装置207は、第1学習プログラム207a、算出プログラム207b、作成プログラム207c、第2学習プログラム207d、取得プログラム207e、検出プログラム207fを有する。CPU201は、第1学習プログラム207a、算出プログラム207b、作成プログラム207c、第2学習プログラム207d、取得プログラム207e、検出プログラム207fを読み出してRAM206に展開する。
第1学習プログラム207aは、第1学習プロセス206aとして機能する。算出プログラム207bは、算出プロセス206bとして機能する。作成プログラム207cは、作成プロセス206cとして機能する。第2学習プログラム207dは、第2学習プロセス206dとして機能する。取得プログラム207eは、取得プロセス206eとして機能する。検出プログラム207fは、検出プロセス206fとして機能する。
第1学習プロセス206aの処理は、第1学習部151の処理に対応する。算出プロセス206bの処理は、算出部152の処理に対応する。作成プロセス206cの処理は、作成部153の処理に対応する。第2学習プロセス206dの処理は、第2学習部154の処理に対応する。取得プロセス206eの処理は、取得部155の処理に対応する。検出プロセス206fの処理は、検出部156の処理に対応する。
なお、各プログラム207a~207fついては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207fを読み出して実行するようにしてもよい。