(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】作成方法、作成プログラムおよび情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20230426BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2021553250
(86)(22)【出願日】2019-10-24
(86)【国際出願番号】 JP2019041806
(87)【国際公開番号】W WO2021079484
(87)【国際公開日】2021-04-29
【審査請求日】2022-03-02
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小林 健一
(72)【発明者】
【氏名】大川 佳寛
(72)【発明者】
【氏名】横田 泰斗
(72)【発明者】
【氏名】中澤 克仁
【審査官】真木 健彦
(56)【参考文献】
【文献】特許第6513314(JP,B1)
【文献】Shweta Vinayak Kadam,A Survey on Classification of Concept Drift with Stream Data,HAL open science,HAL open science,2019年03月09日
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
精度変化の検出対象となる学習モデルを取得し、
取得した前記学習モデルに対して、データを入力したときの分類クラスの判定に関する判定スコアを算出し、
算出した前記判定スコアの値が最大の第1の分類クラスと、算出した前記判定スコアの値が前記第1の分類クラスの次に大きい値の第2の分類クラスとの間で前記判定スコアの差分を算出し、
算出した前記判定スコアの差分が予め設定された閾値以下のときは、前記分類クラスを未決定と判定する検出モデルを作成する、
処理をコンピュータが実行することを特徴とする作成方法。
【請求項2】
前記作成する処理は、前記閾値が互いに異なる複数の検出モデルを作成する、
ことを特徴とする請求項1に記載の作成方法。
【請求項3】
前記作成する処理は、前記判定スコアそれぞれの前記学習モデルにおける分類クラスの判定結果と、前記判定スコアそれぞれの前記検出モデルにおける分類クラスの判定結果との一致割合を所定値とするように前記閾値を定める、
ことを特徴とする請求項1に記載の作成方法。
【請求項4】
前記判定スコアを算出する処理は、前記学習モデルの学習に関する教師データを用いて前記判定スコアを算出する、
ことを特徴とする請求項1に記載の作成方法。
【請求項5】
精度変化の検出対象となる学習モデルを取得し、
取得した前記学習モデルに対して、データを入力したときの分類クラスの判定に関する判定スコアを算出し、
算出した前記判定スコアの値が最大の第1の分類クラスと、算出した前記判定スコアの値が前記第1の分類クラスの次に大きい値の第2の分類クラスとの間で前記判定スコアの差分を算出し、
算出した前記判定スコアの差分が予め設定された閾値以下のときは、前記分類クラスを未決定と判定する検出モデルを作成する、
処理をコンピュータに実行させることを特徴とする作成プログラム。
【請求項6】
精度変化の検出対象となる学習モデルを取得し、取得した前記学習モデルに対して、データを入力したときの分類クラスの判定に関する判定スコアを算出する算出部と、
算出した前記判定スコアの値が最大の第1の分類クラスと、算出した前記判定スコアの値が前記第1の分類クラスの次に大きい値の第2の分類クラスとの間で前記判定スコアの差分を算出し、算出した前記判定スコアの差分が予め設定された閾値以下のときは、前記分類クラスを未決定と判定する検出モデルを作成する作成部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、作成方法、作成プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
近年、企業等で利用されている情報システムに対して、データの判定機能、分類機能等を有する機械学習モデルの導入が進んでいる。以下、情報システムを「システム」と表記する。機械学習モデルは、システム開発時に学習させた教師データの通りに判定、分類を行うため、システム運用中に業務判断の基準が変わる等のコンセプトドリフトにより入力データの傾向が変化すると、機械学習モデルの精度が劣化する。
【0003】
図17は、入力データの傾向の変化による機械学習モデルの劣化を説明するための図である。ここで説明する機械学習モデルは、入力データを第1クラス、第2クラス、第3クラスのいずれかに分類するモデルであり、システム運用前に、教師データに基づき、予め学習されているものとする。教師データには、訓練データと、検証データとが含まれる。
【0004】
図17において、分布1Aは、システム運用初期の入力データの分布を示す。分布1Bは、システム運用初期からT1時間経過した時点の入力データの分布を示す。分布1Cは、システム運用初期から更にT2時間経過した時点の入力データの分布を示す。時間経過に伴って、入力データの傾向(特徴量等)が変化するものとする。たとえば、入力データが画像であれば、同一の被写体を撮影した画像であっても、季節や時間帯に応じて、入力データの傾向が変化する。
【0005】
決定境界3は、モデル適用領域3a~3cの境界を示すものである。たとえば、モデル適用領域3aは、第1クラスに属する訓練データが分布する領域である。モデル適用領域3bは、第2クラスに属する訓練データが分布する領域である。モデル適用領域3cは、第3クラスに属する訓練データが分布する領域である。
【0006】
星印は、第1クラスに属する入力データであり、機械学習モデルに入力した際に、モデル適用領域3aに分類されることが正しい。三角印は、第2クラスに属する入力データであり、機械学習モデルに入力した際に、モデル適用領域3bに分類されることが正しい。丸印は、第3クラスに属する入力データであり、機械学習モデルに入力した際に、モデル適用領域3aに分類されることが正しい。
【0007】
分布1Aでは、全ての入力データが正常なモデル適用領域に分布している。すなわち、星印の入力データがモデル適用領域3aに位置し、三角印の入力データがモデル適用領域3bに位置し、丸印の入力データがモデル適用領域3cに位置している。
【0008】
分布1Bでは、コンセプトドリフトにより入力データの傾向が変化したため、全ての入力データが、正常なモデル適用領域に分布しているものの、星印の入力データの分布がモデル適用領域3bの方向に変化している。
【0009】
分布1Cでは、入力データの傾向が更に変化し、星印の一部の入力データが、決定境界3を跨いで、モデル適用領域3bに移動しており、適切に分類されておらず、正解率が低下している(機械学習モデルの精度が劣化している)。
【0010】
ここで、運用中の機械学習モデルの精度劣化を検出する技術として、T2統計量(Hotelling's T-square)を用いる従来技術がある。この従来技術では、入力データおよび正常データ(訓練データ)のデータ群を主成分分析し、入力データのT2統計量を算出する。T2統計量は、標準化した各主成分の原点からデータまでの距離の二乗を合計したものである。従来技術は、入力データ群のT2統計量の分布の変化を基にして、機械学習モデルの精度劣化を検知する。たとえば、入力データ群のT2統計量は、異常値データの割合に対応する。
【先行技術文献】
【非特許文献】
【0011】
【文献】A.Shabbak and H. Midi,"An Improvement of the Hotelling Statistic in Monitoring Multivariate Quality Characteristics",Mathematical Problems in Engineering (2012) 1-15.
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、上記の従来技術では、入力データ群のT2統計量の分布の変化をもとにしており、例えば、入力データの採取がある程度行われないと機械学習モデルの精度劣化を検知することが困難であるという問題がある。
【0013】
1つの側面では、機械学習モデルの精度劣化を検知することができる作成方法、作成プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
1つの案では、作成方法は、取得する処理と、判定スコアを算出する処理と、差分を算出する処理と、作成する処理とをコンピュータが実行する。取得する処理は、精度変化の検出対象となる学習モデルを取得する。判定スコアを算出する処理は、取得した学習モデルに対して、データを入力したときの分類クラスの判定に関する判定スコアを算出する。差分を算出する処理は、算出した判定スコアの値が最大の第1の分類クラスと、算出した判定スコアの値が第1の分類クラスの次に大きい値の第2の分類クラスとの間で判定スコアの差分を算出する。作成する処理は、算出した判定スコアの差分が予め設定された閾値以下のときは、分類クラスを未決定と判定する検出モデルを作成する。
【発明の効果】
【0015】
機械学習モデルの精度劣化を検知することができる。
【図面の簡単な説明】
【0016】
【
図1】
図1は、参考技術を説明するための説明図である。
【
図2】
図2は、監視対象の機械学習モデルの精度劣化を検知する仕組みを説明するための説明図である。
【
図3】
図3は、参考技術によるモデル適用領域の一例を示す図(1)である。
【
図4】
図4は、参考技術によるモデル適用領域の一例を示す図(2)である。
【
図5】
図5は、本実施形態における検出モデルの概要を説明するための説明図である。
【
図6】
図6は、本実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図7】
図7は、訓練データセットのデータ構造の一例を示す説明図である。
【
図8】
図8は、機械学習モデルの一例を説明するための説明図である。
【
図9】
図9は、インスペクターテーブルのデータ構造の一例を示す説明図である。
【
図10】
図10は、本実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図11】
図11は、パラメータを選ぶ処理の概要を説明する説明図である。
【
図12】
図12は、インスタンスに対する各モデルのクラス分類の一例を示す説明図である。
【
図13】
図13は、sureness関数を説明するための説明図である。
【
図14】
図14は、unknown領域とパラメータとの関係を説明する説明図である。
【
図16】
図16は、作成プログラムを実行するコンピュータの一例を示すブロック図である。
【
図17】
図17は、入力データの傾向の変化による機械学習モデルの劣化を説明するための図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、実施形態にかかる作成方法、作成プログラムおよび情報処理装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する作成方法、作成プログラムおよび情報処理装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0018】
本実施形態の説明を行う前に、機械学習モデルの精度劣化を検知する参考技術について説明する。参考技術では、異なる条件でモデル適用領域を狭めた複数の監視器を用いて、機械学習モデルの精度劣化を検知する。以下の説明では、監視器を「インスペクターモデル」と表記する。
【0019】
図1は、参考技術を説明するための説明図である。機械学習モデル10は、教師データを用いて機械学習した機械学習モデルである。参考技術では、機械学習モデル10の精度劣化を検知する。たとえば、教師データには、訓練データと、検証データとが含まれる。訓練データは、機械学習モデル10のパラメータを機械学習する場合に用いられるものであり、正解ラベルが対応付けられる。検証データは、機械学習モデル10を検証する場合に用いられるデータである。
【0020】
インスペクターモデル11A、11B、11Cは、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有する。インスペクターモデル11A~11Cは、それぞれ決定境界が異なるため、同一の入力データを入力しても、出力結果が異なる場合がある。参考技術では、インスペクターモデル11A~11Cの出力結果の違いを基にして、機械学習モデル10の精度劣化を検知する。
図1に示す例では、インスペクターモデル11A~11Cを示すが、他のインスペクターモデルを用いて、精度劣化を検知してもよい。インスペクターモデル11A~11CにはDNN(Deep Neural Network)を利用する。
【0021】
図2は、監視対象の機械学習モデルの精度劣化を検知する仕組みを説明するための説明図である。
図2では、インスペクターモデル11A、11Bを用いて説明を行う。インスペクターモデル11Aの決定境界を決定境界12Aとし、インスペクターモデル11Bの決定境界を決定境界12Bとする。決定境界12Aと、決定境界12Bとの位置はそれぞれ異なっており、クラス分類に関するモデル適用領域が異なる。
【0022】
入力データがモデル適用領域4Aに位置する場合には、入力データは、インスペクターモデル11Aによって、第1クラスに分類される。入力データがモデル適用領域5Aに位置する場合には、入力データは、インスペクターモデル11Aによって、第2クラスに分類される。
【0023】
入力データがモデル適用領域4Bに位置する場合には、入力データは、インスペクターモデル11Bによって、第1クラスに分類される。入力データがモデル適用領域5Bに位置する場合には、入力データは、インスペクターモデル11Bによって、第2クラスに分類される。
【0024】
たとえば、運用初期の時間T1において、入力データDT1をインスペクターモデル11Aに入力すると、入力データDT1はモデル適用領域4Aに位置するため、「第1クラス」に分類される。入力データDT1をインスペクターモデル11Bに入力すると、入力データDT1はモデル適用領域4Bに位置するため、「第1クラス」に分類される。入力データDT1を入力した場合の分類結果が、インスペクターモデル11Aと、インスペクターモデル11Bとで同一であるため「劣化なし」と判定される。
【0025】
運用初期から時間経過した時間T2において、入力データの傾向が変化して、入力データDT2となる。入力データDT2をインスペクターモデル11Aに入力すると、入力データDT2はモデル適用領域4Aに位置するため、「第1クラス」に分類される。一方、入力データDT2をインスペクターモデル11Bに入力すると、入力データDT2はモデル適用領域4Bに位置するため、「第2クラス」に分類される。入力データDT2を入力した場合の分類結果が、インスペクターモデル11Aと、インスペクターモデル11Bとで異なるため「劣化あり」と判定される。
【0026】
ここで、参考技術では、異なる条件でモデル適用領域を狭めたインスペクターモデルを作成する場合、訓練データの数を削減する。たとえば、参考技術では、各インスペクターモデルの訓練データをランダムに削減する。また、参考技術では、インスペクターモデル毎に削減する訓練データの数を変更する。
【0027】
図3は、参考技術によるモデル適用領域の一例を示す図(1)である。
図3に示す例では、特徴空間における訓練データの分布20A、20B、20Cを示す。分布20Aは、インスペクターモデル11Aを作成する場合に用いる訓練データの分布である。分布20Bは、インスペクターモデル11Bを作成する場合に用いる訓練データの分布である。分布20Cは、インスペクターモデル11Cを作成する場合に用いる訓練データの分布である。
【0028】
星印は、正解ラベルが第1クラスの訓練データである。三角印は、正解ラベルが第2クラスの訓練データである。丸印は、正解ラベルが第3クラスの訓練データである。
【0029】
各インスペクターモデルを作成する場合に用いる訓練データの数は、数の多い順に、インスペクターモデル11A、インスペクターモデル11B、インスペクターモデル11Cの順となる。
【0030】
分布20Aにおいて、第1クラスのモデル適用領域は、モデル適用領域21Aとなる。第2クラスのモデル適用領域は、モデル適用領域22Aとなる。第3クラスのモデル適用領域は、モデル適用領域23Aとなる。
【0031】
分布20Bにおいて、第1クラスのモデル適用領域は、モデル適用領域21Bとなる。第2クラスのモデル適用領域は、モデル適用領域22Bとなる。第3クラスのモデル適用領域は、モデル適用領域23Bとなる。
【0032】
分布20Cにおいて、第1クラスのモデル適用領域は、モデル適用領域21Cとなる。第2クラスのモデル適用領域は、モデル適用領域22Cとなる。第3クラスのモデル適用領域は、モデル適用領域23Cとなる。
【0033】
しかしながら、訓練データの数を削減しても、必ずしも、
図3で説明したように、モデル適用領域が狭くならない場合がある。
図4は、参考技術によるモデル適用領域の一例を示す図(2)である。
図4に示す例では、特徴空間における訓練データの分布24A、24B、24Cを示す。分布24Aは、インスペクターモデル11Aを作成する場合に用いる訓練データの分布である。分布24Bは、インスペクターモデル11Bを作成する場合に用いる訓練データの分布である。分布24Cは、インスペクターモデル11Cを作成する場合に用いる訓練データの分布である。星印、三角印、丸印の訓練データの説明は、
図3で行った説明と同様である。
【0034】
各インスペクターモデルを作成する場合に用いる訓練データの数は、数の多い順に、インスペクターモデル11A、インスペクターモデル11B、インスペクターモデル11Cの順となる。
【0035】
分布24Aにおいて、第1クラスのモデル適用領域は、モデル適用領域25Aとなる。第2クラスのモデル適用領域は、モデル適用領域26Aとなる。第3クラスのモデル適用領域は、モデル適用領域27Aとなる。
【0036】
分布24Bにおいて、第1クラスのモデル適用領域は、モデル適用領域25Bとなる。第2クラスのモデル適用領域は、モデル適用領域26Bとなる。第3クラスのモデル適用領域は、モデル適用領域27Bとなる。
【0037】
分布24Cにおいて、第1クラスのモデル適用領域は、モデル適用領域25Cとなる。第2クラスのモデル適用領域は、モデル適用領域26Cとなる。第3クラスのモデル適用領域は、モデル適用領域27Cとなる。
【0038】
上記のように、
図3で説明した例では、訓練データの数に応じて、各モデル適用領域が狭くなっているが、
図4で説明した例では、訓練データの数によらず、各モデル適用領域が狭くなっていない。
【0039】
参考技術では、どの訓練データを削除すれば、モデル適用領域がどの程度狭くなるのか未知であるため、モデル適用領域を、意図的に分類クラスを指定しながら任意の広さに調整することが困難である。そのため、訓練データを削除して作成したインスペクターモデルのモデル適用領域が狭くならないケースがある。
【0040】
特徴空間上で、あるクラスであると分類されるモデル適用領域が狭いほど、そのクラスはコンセプトドリフトに弱いと言える。このため、監視対象の機械学習モデル10の精度劣化を検出するためには、モデル適用領域を適宜狭くしたインスペクターモデルを複数作成することが重要となる。よって、インスペクターモデルのモデル適用領域が狭くならなかった場合、作り直しの工数がかかる。
【0041】
すなわち、参考技術では、指定した分類クラスのモデル適用領域を狭めた複数のインスペクターモデルを適切に作成することが困難である。
【0042】
そこで、本実施形態では、機械学習モデルにおける特徴空間上での決定境界を広げて分類クラスを未決定とするunknown領域を設け、各クラスのモデル適用領域を意図的に狭める検出モデルを作成する。
【0043】
図5は、本実施形態における検出モデルの概要を説明するための説明図である。
図5において、入力データD1は、コンセプトドリフトによる精度変化の検出対象となる機械学習モデルに対する入力データを示す。モデル適用領域C1は、検出対象となる機械学習モデルにより分類クラスが「A」と判定される特徴空間上の領域である。モデル適用領域C2は、検出対象となる機械学習モデルにより分類クラスが「B」と判定される特徴空間上の領域である。モデル適用領域C3は、検出対象となる機械学習モデルにより分類クラスが「C」と判定される特徴空間上の領域である。決定境界Kは、モデル適用領域C1~C3の境界である。
【0044】
図5の左側に示すように、入力データD1は、決定境界Kを区切りとしてモデル適用領域C1~C3のいずれかに含まれることから、機械学習モデルを用いることで「A」~「C」のいずれかの分類クラスに分類される。決定境界Kは、機械学習モデルによる分類クラスの判定に関する判定スコアにおいて、判定スコアの値が最大となる分類クラスと、判定スコアの値が最大となる分類クラスの次に大きい分類クラスとの間でスコア差が0のところである。例えば、機械学習モデルが分類クラスごとに判定スコアを出力する場合には、判定スコアが最大(1位)の分類クラスと、判定スコアが次点(2位)の分類クラスとのスコア差が0となるところである。
【0045】
そこで、本実施形態では、コンセプトドリフトによる精度変化の検出対象となる機械学習モデルに対してデータを入力したときの分類クラスの判定に関する判定スコアを算出する。次いで、算出した判定スコアについて、最大となる分類クラス(1位の分類クラス)と、最大となる分類クラスの次に大きい分類クラス(2位の分類クラス)との間のスコア差が所定の閾値(パラメータh)以下のときは、分類クラスを未決定(unknown)とする検出モデルを作成する。
【0046】
図5の中央に示すように、このように作成した検出モデルでは、特徴空間上の決定境界Kを含む所定幅の領域において、分類クラスが未決定を示す「unknown」と判定されるunknown領域UKとなる。すなわち、検出モデルでは、unknown領域UKにより各クラスのモデル適用領域C1~C3を確実に狭めている。このように、各クラスのモデル適用領域C1~C3が狭まっていることから、作成した検出モデルは、検出対象となる機械学習モデルよりもコンセプトドリフトに弱いモデルとなる。したがって、作成した検出モデルにより、機械学習モデルの精度劣化を検知することができる。
【0047】
また、検出モデルでは、機械学習モデルに対して、判定スコアにおけるスコア差(パラメータh)を定めておけばよく、検出モデルを作成するためにDNNに関する追加の学習は不要である。
【0048】
また、
図5の左側に示すように、パラメータhの大きさを変えることで、unknown領域UKの大きさ(各クラスのモデル適用領域C1~C3の狭さ)の異なる複数の検出モデルを作成する。作成した検出モデルについては、unknown領域UKが大きく、各クラスのモデル適用領域C1~C3が狭くなるほど、よりコンセプトドリフトに弱いモデルとなる。したがって、コンセプトドリフトに対する弱さの異なる複数の検出モデルを作成することで、検出対象となる機械学習モデルにおける精度劣化の進み具合を精度よく求めることができる。
【0049】
図6は、本実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図6に示すように、情報処理装置100は、検出モデルの作成に関する各種処理を行う装置であり、例えばパーソナルコンピュータなどを適用できる。
【0050】
具体的には、情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0051】
通信部110は、ネットワークを介して、外部装置(図示略)とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。
【0052】
入力部120は、情報処理装置100に対して各種の情報を入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0053】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
【0054】
記憶部140は、教師データ141、機械学習モデルデータ142、インスペクターテーブル143および出力結果テーブル144を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0055】
教師データ141は、訓練データセット141aと、検証データ141bを有する。訓練データセット141aは、訓練データに関する各種の情報を保持する。
【0056】
図7は、訓練データセット141aのデータ構造の一例を示す図である。
図7に示すように、訓練データセット141aは、レコード番号と、訓練データと、正解ラベルとを対応付ける。レコード番号は、訓練データと、正解ラベルとの組を識別する番号である。訓練データは、メールスパムのデータ、電気需要予測、株価予測、ポーカーハンドのデータ、画像データ等に対応する。正解ラベルは、第1クラス(A)、第2クラス(B)、第3クラス(C)の各分類クラスのうち、いずれかの分類クラスを一意に識別する情報である。
【0057】
検証データ141bは、訓練データセット141aによって学習された機械学習モデルを検証するためのデータである。検証データ141bは、正解ラベルが付与される。たとえば、検証データ141bを、機械学習モデルに入力した場合に、機械学習モデルから出力される出力結果が、検証データ141bに付与される正解ラベルに一致する場合、訓練データセット141aによって、機械学習モデルが適切に学習されたことを意味する。
【0058】
機械学習モデルデータ142は、コンセプトドリフトによる精度変化の検出対象となる機械学習モデルのデータである。
図8は、機械学習モデルの一例を説明するための図である。
図8に示すように、機械学習モデル50は、ニューラルネットワークの構造を有し、入力層50a、隠れ層50b、出力層50cを有する。入力層50a、隠れ層50b、出力層50cは、複数のノードがエッジで結ばれる構造となっている。隠れ層50b、出力層50cは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。以下の説明では、バイアス値、重みを「重みパラメータ」と表記する。
【0059】
入力層50aに含まれる各ノードに、データ(データの特徴量)を入力すると、隠れ層50bを通って、出力層50cのノード51a、51b、51cから、各クラスの確率が出力される。たとえば、ノード51aから、第1クラス(A)の確率が出力される。ノード51bから、第2クラス(B)の確率が出力される。ノード51cから、第3クラス(C)の確率が出力される。各クラスの確率は、出力層50cの各ノードから出力される値を、ソフトマックス(Softmax)関数に入力することで、算出される。本実施形態では、ソフトマックス関数に入力する前の値を「スコア」と表記し、この「スコア」が判定スコアの一例である。
【0060】
たとえば、正解ラベル「第1クラス(A)」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51aから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。正解ラベル「第2クラス(B)」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51bから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。正解ラベル「第3クラス(C)」に対応する訓練データを、入力層50aに含まれる各ノードに入力した場合に、ノード51cから出力される値であって、ソフトマックス関数に入力する前の値を、入力した訓練データのスコアとする。
【0061】
機械学習モデル50は、教師データ141の訓練データセット141aと、検証データ141bとを基にして、学習済みであるものとする。機械学習モデル50の学習では、訓練データセット141aの各訓練データを入力層50aに入力した場合、出力層50cの各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、機械学習モデル50のパラメータが学習(誤差逆伝播法による学習)される。
【0062】
図6の説明に戻る。インスペクターテーブル143は、機械学習モデル50の精度劣化を検知する複数の検出モデル(インスペクターモデル)のデータを保持するテーブルである。
【0063】
図9は、インスペクターテーブル143のデータ構造の一例を示す図である。
図9に示すように、インスペクターテーブル143は、識別情報(例えばM0~M3)と、インスペクターモデルとを対応付ける。識別情報は、インスペクターモデルを識別する情報である。インスペクターは、モデル識別情報に対応するインスペクターモデルのデータである。インスペクターモデルのデータには、
図5で説明したパラメータhなどが含まれる。
【0064】
図6の説明に戻る。出力結果テーブル144は、インスペクターテーブル143による各インスペクターモデル(検出モデル)に、運用中のシステムのデータを入力した際の、各インスペクターモデルの出力結果を登録するテーブルである。
【0065】
制御部150は、算出部151、作成部152、取得部153および検出部154を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0066】
算出部151は、機械学習モデルデータ142より機械学習モデル50を取得する。次いで、算出部151は、取得した機械学習モデル50に対してデータを入力したときの分類クラスの判定に関する判定スコアを算出する処理部である。具体的には、算出部151は、機械学習モデルデータ142により構築した機械学習モデル50の入力層50aにデータを入力することで、出力層50cより各クラスの確率などの判定スコアを得る。
【0067】
なお、機械学習モデル50が出力層50cより判定スコアを出力しない場合(分類結果を直接出力する)場合は、機械学習モデル50の学習に使用した教師データ141を用い、各クラスの確率などの判定スコアを出力するように学習した機械学習モデルで代替してもよい。すなわち、算出部151は、機械学習モデル50の学習に用いた教師データ141をもとに判定スコアを出力するように学習した機械学習モデルにデータを入力することで、機械学習モデル50に対してデータを入力したときの分類クラスの判定に関する判定スコアを取得する。
【0068】
作成部152は、算出した判定スコアに基づき、算出した判定スコアの値が最大の第1の分類クラスと、算出した判定スコアの値が第1の分類クラスの次に大きい値の第2の分類クラスとの間で判定スコアの差分を算出する。そして、作成部152は、判定スコアの値が最大の第1の分類クラスと、判定スコアの値が第1の分類クラスの次に大きい値の第2の分類クラスとの間で判定スコアの差分が所定の閾値以下のときは、分類クラスを未決定と判定する検出モデルを作成する処理部である。具体的には、作成部152は、モデル適用領域C1~C3を狭めるパラメータhを複数決定し(詳細は後述する)、決定したパラメータhそれぞれをインスペクターテーブル143に登録する。
【0069】
取得部153は、時間経過に伴って特徴量の変化するシステムの運用データを、複数のインスペクターモデルにそれぞれ入力し、出力結果を取得する処理部である。
【0070】
たとえば、取得部153は、インスペクターテーブル143から、識別情報がM0~M2のインスペクターモデルのデータ(パラメータh)を取得し、運用データに対して各インスペクターモデルを実行する。具体的には、取得部153は、運用データを機械学習モデル50に入力して得られた判定スコアの値について、最大となる分類クラス(1位の分類クラス)と、その分類クラスの次に大きい分類クラス(2位の分類クラス)との間のスコア差がパラメータh以下のときは、分類クラスを未決定(unknown)とする。なお、スコア差がパラメータh以下でないときは、判定スコアに応じた分類クラスとする。次いで、取得部153は、運用データに対して各インスペクターモデルを実行して得られた出力結果を出力結果テーブル144に登録する。
【0071】
検出部154は、出力結果テーブル144を基にして、運用データの時間変化に基づく、機械学習モデル50の精度変化を検出する処理部である。具体的には、検出部154は、インスタンスに対する各インスペクターモデルの出力の合致度を取得し、取得した合致度の傾向から機械学習モデル50の精度変化を検出する。例えば、各インスペクターモデルの出力の合致度が有意に小さい場合は、コンセプトドリフトによる精度劣化が生じているものとする。検出部154は、機械学習モデル50の精度変化に関する検出結果を表示部130より出力する。これにより、ユーザは、コンセプトドリフトによる精度劣化を認識することができる。
【0072】
ここで、算出部151、作成部152、取得部153および検出部154の処理の詳細を説明する。
図10は、本実施形態にかかる情報処理装置100の動作例を示すフローチャートである。
【0073】
図10に示すように、処理が開始されると、算出部151は、機械学習モデルデータ142により検出対象の機械学習モデル50を構築する。次いで、算出部151は、構築した機械学習モデル50の入力層50aに、機械学習モデル50の学習時に使用した教師データ141を入力する。これにより、算出部151は、出力層50cより各クラスの確率などの判定スコアのスコア情報を取得する(S1)。
【0074】
次いで、作成部152は、取得したスコア情報をもとに、検出モデル(インスペクターモデル)に関する、unknown領域UKを決めるパラメータhを複数個選ぶ処理を実行する(S2)。なお、パラメータhについては、互いに異なる値であれば任意の値でよく、例えば、教師データ141が特徴空間上のunknown領域UKに含まれる割合で等間隔(例えば20%、40%、60%、80%など)とするように選ぶ。
【0075】
図11は、パラメータhを選ぶ処理の概要を説明する説明図である。
図11において、M
origは、機械学習モデル50(元モデル)を示す。また、M
1、M
2…は、モデル適用領域C1~C3を狭めた検出モデル(インスペクターモデル)を示す。なお、Mにおける下付き数字はi=1…nであり、nは検出モデルの数である。
【0076】
図11に示すように、作成部152は、S2において、M
1、M
2…M
iに関するパラメータhのh(h≧0)をn個選ぶ。
【0077】
ここで、入力データD1について、特に区別しない場合は単に「D」と表記し、教師データ141に含まれる訓練データセット141a(テストデータ)についてはDtest、運用データについてはDdriftと表記する。
【0078】
また、モデルの合致度を計算する関数として、agreement(Ma,Mb,D)を定義する。このagreement関数では、Dのインスタンスに対する2つのモデル(Ma、Mb)の判定が一致する個数の割合を返す。ただし、agreement関数では、未決定の分類クラス同士は一致しているものとみなさない。
【0079】
図12は、インスタンスに対する各モデルのクラス分類の一例を示す説明図である。
図12に示すように、クラス分類結果60は、データDのインスタンス(1~9)に対するモデルM
a、M
bの出力(分類)と一致の有無(Y/N)を示している。このようなクラス分類結果60において、agreement関数は、次のとおりの値を返す。
agreement関数(M
a,M
b,D)=一致数/インスタンス数=4/9
【0080】
また、補助関数として、agreement2(h,D)=agreement(Morig,Mh,D)を定義する。Mhは、モデルMorigをパラメータhを用いて狭めたモデルである。
【0081】
作成部152は、パラメータhにおけるhi(i=1…n)について、Dtestに対する合致度が等差減少(例えば20%、40%、60%、80%など)するように、以下の通りに決定する。なお、agreement2(h,D)はhに対し単調減少である。
hi=argmaxhagreement2(h,Dtest)s.t. agreement2(h,Dtest)≦(n-i)/n
【0082】
図10に戻り、作成部152は、選んだパラメータ(h
i)ごとに、インスペクターモデル(検出モデル)を生成する(S3)。具体的には、作成部152は、決定したh
iそれぞれをインスペクターテーブル143に登録する。
【0083】
このインスペクターモデル(検出モデル)は、内部では元のモデル(機械学習モデル50)を参照している。そして、インスペクターモデル(検出モデル)は、元のモデルの出力がインスペクターテーブル143に登録されたhiに基づくunknown領域UK内であれば、判定結果を未決定(unknown)と置き換えるように振る舞う。
【0084】
すなわち、取得部153は、運用データ(Ddrift)を機械学習モデル50に入力して判定スコアを得る。次いで、取得部153は、得られた判定スコアについて、1位となる分類クラスと2位となる分類クラスとの間のスコア差がインスペクターテーブル143に登録されたhi以下のときは、分類クラスを未決定(unknown)とする。なお、スコア差がパラメータh以下でないときは、判定スコアに応じた分類クラスとする。このように各インスペクターモデルを実行して得られた出力結果を、取得部153は出力結果テーブル144に登録する。検出部154は、出力結果テーブル144を基にして機械学習モデル50の精度変化を検出する。
【0085】
このように、情報処理装置100では、作成部152が作成したインスペクターモデルを用いて精度劣化を検知する(S4)。
【0086】
例えば、取得部153は、上位2つの分類クラスにおけるスコア差の関数であるsureness(x)を用いて分類クラスを未決定(unknown)とするか否かを判定する。
【0087】
図13は、sureness関数を説明するための説明図である。
図13に示すように、パラメータhのインスペクターモデルを用いてインスタンス
Xを判定するものとする。
【0088】
ここで、インスペクターモデルがインスタンスXを判定する際のスコア最高の分類クラスのスコアをsfirst、スコア2番目の分類クラスのスコアをssecondとする。
【0089】
sureness関数は、次のとおりである。なお、φ(s)はモデルのスコアの範囲が0以上1以下ならばlog(s)、それ以外はsとする。
sureness(x):=φ(sfirst)-φ(ssecond)
【0090】
本実施形態では、スコアの差(sureness)を用いて領域を順序づけるため、スコアの差演算に意味がある。また、スコアの差は領域に寄らず等価値であることが必要となる。
【0091】
例えば、ある点でのスコア差(4-3=1)は、別の点でのスコア差(10-9=1)と価値が等しい必要がある。そのような性質を満たすためには、例えば、スコアの差が損失関数に相当すればよい。損失関数は全体で平均を取るため、加法性があり、同じ値の価値はどこでも等しい。
【0092】
例えば、モデルが損失関数としてログ損失(log-loss)を用いる場合、yiを真値、piを予測の正解確率として、損失は-yilog(pi)である。ここで加法性があるのはlog(pi)なので、これをスコアとして利用できればよい。
【0093】
しかし、多くのMLアルゴリズムはスコアとしてpiを出力するので、その場合にはlog()を適用する必要がある。
【0094】
スコアが確率を意味することが判っていれば、log()を適用すればよい。不明な場合には、自動判定(0以上1以下であれば適用など)する選択もあるし、保守的に何も適用せずにスコアの値をそのまま使うという選択もある。
【0095】
以下のように、関数surenessの定義に関数φが挟まれている理由は、スコアに上記の性質を満たすようφで変換するためである。
sureness(x):=φ(scorefirst)-φ(scoresecond)
【0096】
ここで、取得部153は、狭めたモデルMiの判定結果について、Morigの
判定結果より以下の通りに改変する。
sureness(x)≧hiの場合:Morigの判定クラスをそのまま用いる。
sureness(x)<hiの場合:unknownクラスとする。
【0097】
また、検出部154は、データDの各インスペクターモデルにおける平均合致度を計算する関数(ag_mean(D))を用いてモデル精度の劣化検知を行う。このag_mean(D)は次のとおりである。
ag_mean(D):=meani(agreement(Morig,Mi,D))
【0098】
そして、検出部154は、各Miについて、agreement(Morig,Mi,Ddrift)を求め、その傾向から精度劣化の有無を判定する。例えば、ag_mean(Ddrift)がag_mean(Dtest)より有意に小さければ、コンセプトドリフトによる精度劣化があるものと判定する。
【0099】
ここで、検出部154が行う計算処理における平均合致度ag_mean(Ddrift)の高速計算について説明する。
【0100】
前述の定義に素直に従って計算すると、狭めたモデルの数nを多くするほど計算時間がかかる。しかし、nを小さくしては検出精度が落ちるというトレードオフが生じている。しかし、検出部154は、以下に述べる計算方法を用いることで、モデル数nにほとんど影響を受けず高速に計算することができる。
【0101】
ここで、h
iで定義されるunknown領域をU
iとする。
図14は、unknown領域とパラメータとの関係を説明する説明図である。
【0102】
図14に示すように、先述のh
iの定義を用いると、i<jならば、h
i≦h
jかつU
i⊂U
jという関係が成り立つ。すなわち、各unknown領域U
iの間には全順序関係が成り立ち、さらにU
iの順序はh
iの順序を保つ。図示例では、h
1<h
2<h
3⇔U
1⊂U
2⊂U
3といえる。
【0103】
したがって、ある領域についての計算には、そこに含まれるより小さい領域の計算結果が利用できる。また、領域Ui間の関係はhiの関係だけを見れば十分である。本計算方法では、これらの性質を利用する。
【0104】
先ず、以下の通りに定義する。
・hiで定義されるunknown領域をUiとする。すなわち、Ui:={x|sureness(x)<hi}
・DdriftがUiに入る割合をuiとする。ui:=|{x|x∈Ui,x∈Ddrift}|/|Ddrift|
・agreement2関数の定義から、以下が成り立つ。
agreement2(hi,Ddrift)=1-ui
・差分領域RiをRi:=Ui-Ui-1と定義する。ただし、R1:=U1
・i≧2のときRi={x|hi-1≦sureness(x)<hi}
・DdriftがRiに入る割合をriとする。ri:=|{x|x∈Ri,x∈Ddrift}|/|Ddrift|
・r1=u1,i≧2のときri=ui-ui-1である。
・また、ui=ri+ri-1+...+r2+r1である。
【0105】
次に、ag_mean(Dtest)とag_mean(Ddrift)の高速計算は次のとおりである。
【0106】
ag_mean(Dtest)=meani=1...n(agreement2(hi,Dtest))
=meani=1...n((n-i)/n)=1/2(1-1/n)
【0107】
ag_mean(Ddrift)=meani=1...n(agreement2(hi,Ddrift))
=meani=1...n(1-ui)
=meani=1...n(1-(r1+r2+...+ri))
=meani=1...n(ri+1+ri+2+...+rn)
=1/n*(r2+r3+...+rn
+r3+...+rn
...
+rn)
=meani=1...n((i-1)*ri);riを定義に従い展開
=meanx∈Ddrift(su2index(sureness(x))-1)/|Ddrift|
【0108】
なお、su2index()は、sureness(x)を引数としてxが属する領域Riの添え字を返す関数である。この関数は、i≧2のときRi={x|hi-1≦sureness(x)<hi}という関係を利用すると、2分探索などで実装できる。
【0109】
su2index()は、ロバスト統計量である分位点に相当する。計算量については次のとおりである。
計算量:O(d log(min(d, t, n))),where t=|Dtest|,d=|Ddrift|
【0110】
図15は、検証結果を説明する説明図である。
図15の検証結果E1は、分類クラス0に関する検証結果であり、検証結果E2は、分類クラス1,4に関する検証結果である。なお、グラフG1は、元のモデル(機械学習モデル50)の精度を示すグラフであり、グラフG2は、複数のインスペクターモデルの合致率を示すグラフである。検証においては、例えば教師データ141をオリジナルデータとし、回転などによりオリジナルデータの改変度合い(ドリフト度)を強めたデータを入力データとして検証している。
【0111】
図15のグラフG1と、グラフG2とを比較しても明らかなように、モデルの精度の劣化(グラフG1の下降)に応じて、インスペクターモデルにおけるグラフG2も下降している。したがって、グラフG2の下降より、コンセプトドリフトによる精度劣化を検知することが可能である。また、グラフG1の下降と、グラフG2の下降との相関が強いことから、グラフG2の下降具合をもとに、検知対象の機械学習モデル50の精度を求めることができる。
【0112】
(変形例)
上記の実施形態では、検出モデル(インスペクターモデル)の個数(n)を決めていた。また、個数が十分でないと、劣化検出の精度が落ちるという問題もある。そこで、変形例では、検出モデル(インスペクターモデル)の個数を決めないで済む方法を提供する。理論的には、検出モデル(インスペクターモデル)の個数を無限個とする。なお、この場合の計算時間は、個数を決める場合とほぼ同じとなる。
【0113】
具体的には、作成部152は、算出した判定スコアに基づき、前述したsurenessの確率分布(累積分布関数)を調べておけばよい。このように、surenessの確率分布を調べておくことで、検出モデル(インスペクターモデル)について、理論的に無限個あるように扱うことができ、また、明示的に作成する必要がなくなる。
【0114】
また、取得部153では、モデル精度劣化を検知する仕組みの中で、平均合致率を計算する際に、次のとおりに計算する。
・ag_mean(Dtest)とag_mean(Ddrift)の高速計算において、インスペクターモデルの個数nを、無限(n→∞)にする。
・ag_mean(Dtest)=1/2
・ag_mean(Ddrift)=meanx∈Ddrift(su2pos(sureness(x)))
・Dtestにおいて、{s|s=sureness(x),x∈Dtest}で定義される変数sの累積分布関数F(s)=P(Xs≦s)を求め、関数su2posを以下で定義する。
・su2pos(sureness):=F(sureness)
【0115】
このsu2pos()も、ロバスト統計量である分位点に相当する。よって、計算量は次の通りである。
計算量:O(d log(min(d,t)),where t=|Dtest|,d=|Ddrift|
【0116】
以上のように、情報処理装置100は、算出部151と、作成部152とを有する。算出部151は、精度変化の検出対象となる機械学習モデル50を取得し、取得した機械学習モデル50に対してデータを入力したときの分類クラスの判定に関する判定スコアを算出する。作成部152は、算出した判定スコアの値が最大の第1の分類クラスと、算出した判定スコアの値が第1の分類クラスの次に大きい値の第2の分類クラスとの間で判定スコアの差分を算出する。また、作成部152は、算出した判定スコアの差分が予め設定された閾値以下のときは、分類クラスを未決定と判定する検出モデルを作成する。
【0117】
このように、情報処理装置100では、機械学習モデル50における特徴空間上での決定境界を広げて分類クラスを未決定とするunknown領域UKを設け、各クラスのモデル適用領域C1~C3を意図的に狭める検出モデルを作成するので、作成した検出モデルにより機械学習モデル50の精度劣化を検知することができる。
【0118】
また、作成部152は、閾値が互いに異なる複数の検出モデルを作成する。このように、情報処理装置100では、閾値が互いに異なる複数の検出モデル、すなわちunknown領域UKの広さが異なる複数の検出モデルを作成する。これにより、情報処理装置100では、作成した複数の検出モデルにより、コンセプトドリフトによる機械学習モデル50の精度劣化の進み具合を検知することができる。
【0119】
また、作成部152は、判定スコアそれぞれの機械学習モデル50における分類クラスの判定結果と、判定スコアそれぞれの検出モデルにおける分類クラスの判定結果との一致割合を所定値とするように閾値を定める。これにより、情報処理装置100では、入力データに対する機械学習モデル50による判定結果に対して一致割合が所定の割合となる検出モデルを作成できるので、作成した検出モデルによりコンセプトドリフトによる機械学習モデル50の精度の劣化度を測ることができる。
【0120】
また、算出部151は、機械学習モデル50の学習に関する教師データ141を用いて判定スコアを算出する。このように、情報処理装置100では、機械学習モデル50の学習に関する教師データ141をサンプルとして算出した判定スコアをもとに、検出モデルの作成を行ってもよい。このように教師データ141を用いることで、情報処理装置100では、検出モデルを作成するために新たなデータを用意することなく、容易に検出モデルを作成することができる。
【0121】
上記の実施形態で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、任意に変更することができる。また、上記の実施形態で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【0122】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウエアとして実現され得る。
【0123】
例えば、情報処理装置100で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置100で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0124】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
図16は、作成プログラムを実行するコンピュータの一例を示すブロック図である。
【0125】
図16に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線または無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201~208は、バス209に接続される。
【0126】
ハードディスク装置208には、
図6に示した算出部151、作成部152、取得部153および検出部154の各処理部と同様の機能を実現するための作成プログラム208Aが記憶される。また、ハードディスク装置208には、算出部151、作成部152、取得部153および検出部154に関連する各種データ(例えばインスペクターテーブル143など)が記憶される。入力装置202は、例えば、コンピュータ200の利用者から操作情報等の各種情報の入力を受け付ける。モニタ203は、例えば、コンピュータ200の利用者に対して表示画面等の各種画面を表示する。インタフェース装置205は、例えば印刷装置等が接続される。通信装置206は、図示しないネットワークと接続され、他の情報処理装置と各種情報をやりとりする。
【0127】
CPU201は、ハードディスク装置208に記憶された作成プログラム208Aを読み出して、RAM207に展開して実行することで、情報処理装置100の各機能を実行するプロセスを動作させる。すなわち、このプロセスは、情報処理装置100が有する各処理部と同様の機能を実行する。具体的には、CPU201は、算出部151、作成部152、取得部153および検出部154と同様の機能を実現するための作成プログラム208Aをハードディスク装置208から読み出す。そして、CPU201は、算出部151、作成部152、取得部153および検出部154と同様の処理を実行するプロセスを実行する。
【0128】
なお、上記の作成プログラム208Aは、ハードディスク装置208に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶された作成プログラム208Aを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置に作成プログラム208Aを記憶させておき、コンピュータ200がこれらから作成プログラム208Aを読み出して実行するようにしてもよい。
【符号の説明】
【0129】
1A~1C、20A~20C、24A~24C…分布
3、12A、12B、K…決定境界
3a~5B、21A~23C、25A~27C、C1~C3…モデル適用領域
10、50…機械学習モデル
11A~11C…インスペクターモデル
50a…入力層
50b…隠れ層
50c…出力層
51a~51c…ノード
60…クラス分類結果
100…情報処理装置
110…通信部
120…入力部
130…表示部
140…記憶部
141…教師データ
141a…訓練データセット
141b…検証データ
142…機械学習モデルデータ
143…インスペクターテーブル
144…出力結果テーブル
150…制御部
151…算出部
152…作成部
153…取得部
154…検出部
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…媒体読取装置
205…インタフェース装置
206…通信装置
207…RAM
208…ハードディスク装置
208A…作成プログラム
209…バス
D、D1~D2…入力データ
E1、E2…検証結果
G1、G2…グラフ
h…パラメータ
K…決定境界
M…モデル
T1、T2…時間
UK…unknown領域