以下に、本願の開示するモデル生成プログラム、モデル生成方法及びモデル生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施形態の説明を行う前に、機械学習モデルの精度劣化を検知する参考技術について説明する。参考技術では、異なる条件でモデル適用領域を狭めた複数の監視器を用いて、機械学習モデルの精度劣化を検知する。以下の説明では、監視器を「インスペクター」と表記する。
図1は、参考技術を説明するための図である。機械学習モデル10は、訓練データを用いて機械学習を実行した機械学習モデルである。参考技術では、機械学習モデル10の精度劣化を検知する。訓練データは、機械学習モデル10のパラメータについて、機械学習を実行する場合に用いられ、正解ラベルが対応付けられる。なお、参考技術では、検証データを用いて、機械学習モデル10を検証する。
インスペクター11A,11B,11Cは、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有する。インスペクター11A~11Cは、それぞれ決定境界が異なるため、同一の入力データを入力しても、出力結果が異なる場合がある。参考技術では、インスペクター11A~11Cの出力結果の違いを基にして、機械学習モデル10の精度劣化を検知する。
図1に示す例では、インスペクター11A~11Cを示すが、他のインスペクターを用いて、精度劣化を検知してもよい。インスペクター11A~11Cの機械学習モデルにはDNN(Deep Neural Network)を利用する。インスペクター11Aを、機械学習モデル10と同一の訓練データを用いて機械学習を実行した機械学習モデルとする。
図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では、説明の便宜上、訓練データの正解ラベル(分類クラス)が、第1クラスまたは第2クラスである場合について説明する。丸印は、正解ラベルが第1クラスの訓練データである。三角印は、正解ラベルが第2クラスの訓練データである。
分布30Aは、インスペクター11Aを作成する訓練データセットの分布を示す。インスペクター11Aを訓練する場合の訓練データセットを、監視対象の機械学習モデル10を訓練する場合の訓練データセットと同一の訓練データセットとする。第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よりも狭くなっている。
図4は、参考技術の処理を説明するための図(2)である。参考装置は、訓練データから分類クラスを指定して、スコアの低いデータを除外することで、特定の分類クラスのモデル適用領域を狭める。
ここで、各訓練データには、分類クラスを示す正解ラベルが対応付けられている。参考装置が、第1クラスに対応するモデル適用領域を狭めたインスペクター11Bを生成する処理について説明する。参考装置は、訓練データセットから、正解ラベルが「第1クラス」となる訓練データであって、スコアの低い訓練データを除外した第1訓練データセットを用いて、インスペクター11Bの機械学習を実行する。
ここで、分布30Aは、インスペクター11Aを生成する訓練データセットの分布を示す。インスペクター11Aを生成する訓練データセットは、監視対象の機械学習モデル10を機械学習する場合に用いる訓練データセットと同じものとする。第1クラスのモデル適用領域31Aと、第2クラスのモデル適用領域32Aとの決定境界を、決定境界33Aとする。
参考装置は、分布30Aに含まれる訓練データセットの正解ラベルが「第1クラス」となる各訓練データを、インスペクター11Aに入力することで、訓練データのスコアを算出し、スコアが閾値未満となる訓練データを特定する。参考装置は、特定した訓練データを、分布30Aに含まれる訓練データセットから除外した新たな第1訓練データセットを作成する。正解ラベルが「第2クラス」となる訓練データは、第1訓練データセットに残る。
参考装置は、第1訓練データセットを用いて、インスペクター11Bの機械学習を実行する。分布30Bは、第1訓練データセットの分布を示す。第1クラスのモデル適用領域31Bと、第2クラスのモデル適用領域32Bとの決定境界を、決定境界33Bとする。第1訓練データセットでは、決定境界33Aに近い各訓練データが除外されているため、決定境界33Bの位置が移動し、第1クラスのモデル適用領域31Bが、第1クラスのモデル適用領域31Aよりも狭くなっている。
続いて、参考装置が、第2クラスに対応するモデル適用領域を狭めたインスペクター11Cを作成する処理について説明する。参考装置は、訓練データセットから、正解ラベルが「第2クラス」となる訓練データであって、スコアの低い訓練データを除外した第2訓練データセットを用いて、インスペクター11Cの機械学習を実行する。
参考装置は、分布30Aに含まれる訓練データセットの正解ラベルが「第2クラス」となる各訓練データを、インスペクター11Aに入力することで、訓練データのスコアを算出し、スコアが閾値未満となる訓練データを特定する。参考装置は、特定した訓練データを、分布30Aに含まれる訓練データセットから除外した新たな第2訓練データセットを作成する。正解ラベルが「第1クラス」となる訓練データは、第2訓練データセットに残る。
参考装置は、第2訓練データセットを用いて、インスペクター11Cの機械学習を実行する。分布30Cは、第2訓練データセットの分布を示す。第1クラスのモデル適用領域31Cと、第2クラスのモデル適用領域32Cとの決定境界を、決定境界33Cとする。第2訓練データセットでは、決定境界33Aに近い各訓練データが除外されているため、決定境界33Cの位置が移動し、第2クラスのモデル適用領域32Cが、第2クラスのモデル適用領域32Aよりも狭くなっている。
上記のように、参考技術では、監視対象の機械学習モデルの機械学習で用いた訓練データセットから、スコアの低い訓練データを分類クラス毎に除外した訓練データセットを用いて、インスペクターの機械学習を実行することで、モデル適用領域を狭めている。
ここで、参考技術の問題について説明する。参考技術では、ある特定の分類クラスのモデル適用範囲を狭めたインスペクターの機械学習を実行する場合の計算コストが、監視対象の機械学習モデルの機械学習を実行する計算コストと同程度になる。このため、分類クラスの数が多くなると、分類クラスに対応した複数のインスペクターの機械学習を実行する場合の計算コストも比例して増加する。
また、機械学習を実行した複数のインスペクターを用いて監視対象の機械学習モデルの精度低下を検知した後に、低下した精度を回復させるために、最新の訓練データセットを用いて、機械学習モデルおよび各分類クラスのインスペクターの機械学習を再度実行することになる。
図5は、参考技術の問題を説明するための図である。図5のグラフG1の横軸は、経過時間に対応する軸であり、縦軸は、機械学習モデルの正解率に対応する軸である。線分l1は、経過時間と、機械学習モデルの正解率との関係を示す。線分l1が正解率R1以下となったタイミングt1、t2、t3において、機械学習モデルの精度が許容性能を下回り、機械学習モデルおよび各インスペクターの機械学習が再度実行される。
たとえば、分類クラスの数をncとすると、監視対象の機械学習モデルと、nc個のインスペクターの機械学習が、タイミングt1、t2、t3において実行される。このため、参考技術では、機械学習モデルおよび各インスペクターの継続的な運用に係る計算コストが大きくなる。
次に、本実施形態に係るモデル生成装置の処理の一例について説明する。図6は、本実施形態に係るモデル生成装置の処理を説明するための図である。本実施形態に係るモデル生成装置は、下記の処理を行うことで、インスペクター21A~21Cの機械学習を実行する。本実施形態では、インスペクター21A~21Cの機械学習モデルを、DNNによって実現する。
たとえば、インスペクター21A~21Cは、ニューラルネットワークの構造を有し、入力層、複数の隠れ層、出力層を持つ。入力層、複数の隠れ層、出力層は、複数のノードがエッジで結ばれる構造となっている。複数の隠れ層、出力層は、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。以下の説明では、複数の隠れ層、出力層に設定されるバイアス値、重みを「パラメータ」と表記する。また、入力層、複数の隠れ層、出力層をまとめて、「複数の層」と表記する。
モデル生成装置は、訓練データセット22Aを用いて、インスペクター21Aの機械学習を実行する。これによって、インスペクター21Aの複数の層のパラメータが訓練される。訓練データセット22Aは、監視対象となる機械学習モデルの機械学習を実行する場合の訓練データセットと同一の訓練データセットとする。モデル生成装置は、インスペクター21Aの機械学習を実行した後に、訓練データセット22Aの各訓練データを、インスペクター21Aに入力して、各訓練データの「第1クラス」のスコア、および、「第2クラス」のスコアを算出する。
モデル生成装置は、訓練データセット22Aから、正解ラベル「第1クラス」の訓練データであって、スコアが閾値未満となる訓練データを除外した訓練データセット22Bを作成する。正解ラベル「第2クラス」の訓練データは、訓練データセット22Bに残る。
モデル生成装置は、訓練データセット22Aから、正解ラベル「第2クラス」の訓練データであって、スコアが閾値未満となる訓練データを除外した訓練データセット22Cを作成する。正解ラベル「第1クラス」の訓練データは、訓練データセット22Cに残る。
モデル生成装置は、インスペクター21Aの機械学習を実行することで訓練されたパラメータと同一のパラメータを、インスペクター21Bおよびインスペクター21Cの複数の層に設定する。
モデル生成装置は、訓練データセット22Bを入力として、インスペクター21Bの機械学習を実行する。モデル生成装置は、インスペクター21Bの機械学習を実行する場合に、複数の層に設定された複数のパラメータのうち、一部のパラメータを固定した状態で、機械学習を実行する。図6に示す例では、インスペクター21Bの複数の層21B-1の各パラメータを固定し、複数の層21B-2の各パラメータを微調整(ファインチューニング)する。
モデル生成装置は、誤差逆伝播法による機械学習を実行することで、訓練データセット22Bの各訓練データをインスペクター21Bに入力した場合の出力結果が、各訓練データの正解ラベルに近づくように、複数の層21B-2のパラメータを訓練する。
モデル生成装置は、訓練データセット22Cを入力として、インスペクター21Cの機械学習を実行する。モデル生成装置は、インスペクター21Cの機械学習を実行する場合に、複数の層に設定された複数のパラメータのうち、一部のパラメータを固定した状態で、機械学習を実行する。図6に示す例では、インスペクター21Cの複数の層21C-1の各パラメータを固定し、複数の層21C-2のパラメータを微調整(ファインチューニング)する。
モデル生成装置は、誤差逆伝播法による機械学習を実行することで、訓練データセット22Cの各訓練データをインスペクター21Cに入力した場合の出力結果が、各訓練データの正解ラベルに近づくように、複数の層21C-2のパラメータを訓練する。
上記のように、モデル生成装置は、インスペクター21B,21Cの機械学習を実行する場合に、インスペクター21Aの訓練済みの複数のパラメータを流用し、一部のパラメータを固定した状態で、機械学習を実行する。このため、インスペクター21B,21Cの計算コストを、インスペクター21Aの計算コストより少ない計算コストで実現することができる。インスペクター21B,21Cの計算コストを少ない計算コストで実現できるので、機械学習モデルの継続的な運用監視にかかる計算コストを削減できる。
また、インスペクター21A~21Cでは、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有する。インスペクター11A~11Cは、それぞれ決定境界が異なるため、同一の入力データを入力しても、出力結果が異なる場合がある。すなわち、モデル生成装置が訓練したインスペクター11A~11Cの出力結果の違いを基にして、機械学習モデルの精度劣化を引き起こす可能性のあるデータの分布の変化を検知することができる。
次に、本実施形態に係るモデル生成装置の構成の一例について説明する。図7は、本実施形態に係るモデル生成装置の構成を示す機能ブロック図である。図7に示すように、本実施形態に係るモデル生成装置は、通信部110と、入力部120と、出力部130と、記憶部140と、制御部150とを有する。第1生成部151、第2生成部152は、生成部の一例である。
通信部110は、ネットワークを介して、外部装置(図示略)とデータ通信を実行する。たとえば、通信部110は、外部装置から後述する訓練データセット141等を受信する。
入力部120は、データを入力するための装置またはインタフェースである。
出力部130は、制御部150からのデータを出力する。
記憶部140は、データや制御部150が実行するプログラムなどを記憶する記憶装置の一例であり、たとえば、ハードディスクやメモリなどである。記憶部140は、訓練データセット141、機械学習モデルデータ142、インスペクターテーブル143、訓練データテーブル144、運用データテーブル145、出力結果テーブル146を記憶する。
訓練データセット141は、訓練データに関する各種の情報を保持する。図8は、訓練データセットのデータ構造の一例を示す図である。図8に示すように、この訓練データセットは、レコード番号と、訓練データと、正解ラベルとを対応付ける。レコード番号は、訓練データと、正解ラベルとの組を識別する番号である。訓練データは、メールスパムのデータ、電気需要予測、株価予測、ポーカーハンドのデータ、画像データ等に対応する。正解ラベルは、第1クラス、第2クラス、第3クラスの各分類クラスのうち、いずれかの分類クラスを一意に識別する情報である。
図9は、訓練データの一例を示す図である。図9では、訓練データを画像データとして説明を行うが、訓練データは、メールスパムのデータ、電気需要予測、株価予測、ポーカーハンドのデータであってもよい。訓練データTD1,2は、Tシャツの画像データであり、正解ラベル「第1クラス」に対応付けられる。訓練データTD3,4は、ズボンの画像データであり、正解ラベル「第2クラス」に対応付けられる。訓練データTD5,6は、プルオーバーの画像データであり、正解ラベル「第3クラス」に対応付けられる。
機械学習モデルデータ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を入力として、機械学習を実行済みとする。機械学習モデル50の機械学習を実行する場合、訓練データセット141の各訓練データを入力層50aに入力し、出力層50cの各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、機械学習モデル50のパラメータが訓練される。たとえば、機械学習モデル50は、誤差逆伝搬法によって、パラメータが訓練される。
図7の説明に戻る。インスペクターテーブル143は、機械学習モデル50の精度劣化を検知する複数のインスペクターのデータを保持するテーブルである。図11は、インスペクターテーブルのデータ構造の一例を示す図である。図11に示すように、このインスペクターテーブル143は、識別情報と、インスペクターとを対応付ける。識別情報は、インスペクターを識別する情報である。インスペクターは、モデル識別情報に対応するインスペクターのデータである。インスペクターのデータは、図10で説明した機械学習モデル50と同様にして、ニューラルネットワークの構造を有し、入力層、隠れ層、出力層を持つ。また、各インスペクターには、それぞれ固有の複数のパラメータが設定される。
以下の説明では、識別情報「M0」のインスペクターを、「インスペクターM0」と表記する。識別情報「M1」のインスペクターを、「インスペクターM1」と表記する。識別情報「M2」のインスペクターを、「インスペクターM2」と表記する。識別情報「M3」のインスペクターを、「インスペクターM3」と表記する。
訓練データテーブル144は、各インスペクターを学習するための複数の訓練データセットを有する。図12は、訓練データテーブルのデータ構造の一例を示す図である。図12に示すように、訓練データテーブル144は、データ識別情報と、訓練データセットとを有する。データ識別情報は、訓練データセットを識別する情報である。訓練データセットは、各インスペクターの機械学習を実行する場合に用いられる訓練データセットである。
データ識別情報「D1」の訓練データセットは、訓練データセット141から、正解ラベル「第1クラス」の訓練データであって、スコアの低い訓練データを除外した訓練データセットである。以下の説明では、データ識別情報「D1」の訓練データセットを、「訓練データセットD1」と表記する。
データ識別情報「D2」の訓練データセットは、訓練データセット141から、正解ラベル「第2クラス」の訓練データであって、スコアの低い訓練データを除外した訓練データセットである。以下の説明では、データ識別情報「D2」の訓練データセットを、「訓練データセットD2」と表記する。
データ識別情報「D3」の訓練データセットは、訓練データセット141から、正解ラベル「第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の出力結果を登録するテーブルである。
図7の説明に戻る。制御部150は、モデル生成装置100全体を司る処理部であり、第1生成部151、選択部152、第2生成部153、検知部154を有する。制御部150は、たとえば、プロセッサ等である。
第1生成部151は、訓練データセット141を取得し、訓練データセット141を訓練前のインスペクターM0に入力し、インスペクターM0の機械学習を実行する。訓練データセット141は、機械学習モデル50の機械学習を実行する場合に用いられる訓練データセットである。
第1生成部151は、訓練データセット141の各訓練データを、インスペクターM0の入力層に入力し、出力層の各ノードの出力結果が、入力した訓練データの正解ラベルに近づくように、インスペクターM0の複数の層の複数のパラメータを訓練する。
第1生成部151は、訓練済みのインスペクターM0のデータを、インスペクターテーブル143に登録する。インスペクターM0のデータには、インスペクターM0の複数の層に設定される複数のパラメータが含まれる。本実施形態では一例として、インスペクターM0Aに、n層が含まれ、訓練された各層のパラメータをθ1~θnとする。
選択部152は、訓練データセット141に含まれる各訓練データのスコアを算出し、訓練データセット141から、スコアが閾値未満となる訓練データ以外の訓練データを選択し、訓練データセットD1~D3を生成する。
選択部152が、「訓練データセットD1」を生成する処理について説明する。選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第1クラス」の訓練データを、インスペクターM0に入力し、スコアを算出する。選択部152は、スコアが閾値以上となる場合に、正解ラベル「第1クラス」の訓練データを、訓練データセットD1の訓練データとして選択する。選択部152は、正解ラベル「第1クラス」の他の訓練データについても上記処理を繰り返し実行する。
選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第2クラス」、「第3クラス」の訓練データについては、そのまま、訓練データセットD1の訓練データとして選択する。
選択部152が、「訓練データセットD2」を生成する処理について説明する。選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第2クラス」の訓練データを、インスペクターM0に入力し、スコアを算出する。選択部152は、スコアが閾値以上となる場合に、正解ラベル「第2クラス」の訓練データを、訓練データセットD2の訓練データとして選択する。選択部152は、正解ラベル「第2クラス」の他の訓練データについても上記処理を繰り返し実行する。
選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第1クラス」、「第3クラス」の訓練データについては、そのまま、訓練データセットD2の訓練データとして選択する。
選択部152が、「訓練データセットD3」を生成する処理について説明する。選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第3クラス」の訓練データを、インスペクターM0に入力し、スコアを算出する。選択部152は、スコアが閾値以上となる場合に、正解ラベル「第3クラス」の訓練データを、訓練データセットD3の訓練データとして選択する。選択部152は、正解ラベル「第3クラス」の他の訓練データについても上記処理を繰り返し実行する。
選択部152は、訓練データセット141の訓練データのうち、正解ラベル「第1クラス」、「第2クラス」の訓練データについては、そのまま、訓練データセットD3の訓練データとして選択する。
第2生成部153は、訓練データテーブル144を基にして、機械学習を実行することで、インスペクターM1,M2,M3を生成する。
第2生成部153が、「インスペクターM1」を生成する処理について説明する。第2生成部153は、訓練データセットD1を入力とし、インスペクターM1の複数のパラメータとして、インスペクターM0の複数のパラメータを流用し、一部のパラメータを固定した状態で、機械学習を実行することで、インスペクターM1を生成する。
たとえば、インスペクターM0の流用する複数のパラメータをθ1~θnとする。第2生成部153は、インスペクターM1の複数の層のパラメータの初期値を、パラメータθ1~θnに設定する。第2生成部153は、訓練データセットD1を入力とし、機械学習を実行する場合に、インスペクターM1のパラメータθ1~θnのうち、θ1~θn-2を固定し、θn-1,θnを訓練する。第2生成部153は、訓練済みのインスペクターM1のデータを、インスペクターテーブル143に登録する。
第2生成部153が、「インスペクターM2」を生成する処理について説明する。第2生成部153は、訓練データセットD2を入力とし、インスペクターM2の複数のパラメータとして、インスペクターM0の複数のパラメータを流用し、一部のパラメータを固定した状態で、機械学習を実行することで、インスペクターM2を生成する。
たとえば、インスペクターM0の流用する複数のパラメータをθ1~θnとする。第2生成部153は、インスペクターM2の複数の層のパラメータの初期値を、パラメータθ1~θnに設定する。第2生成部153は、訓練データセットD2を入力とし、機械学習を実行する場合に、インスペクターM2のパラメータθ1~θnのうち、θ1~θn-2を固定し、θn-1,θnを訓練する。第2生成部153は、訓練済みのインスペクターM2のデータを、インスペクターテーブル143に登録する。
第2生成部153が、「インスペクターM3」を生成する処理について説明する。第2生成部153は、訓練データセットD3を入力とし、インスペクターM3の複数のパラメータとして、インスペクターM0の複数のパラメータを流用し、一部のパラメータを固定した状態で、機械学習を実行することで、インスペクターM3を生成する。
たとえば、インスペクターM0の流用する複数のパラメータをθ1~θnとする。第2生成部153は、インスペクターM3の複数の層のパラメータの初期値を、パラメータθ1~θnに設定する。第2生成部153は、訓練データセットD3を入力とし、機械学習を実行する場合に、インスペクターM3のパラメータθ1~θnのうち、θ1~θn-2を固定し、θn-1,θnを訓練する。第2生成部153は、訓練済みのインスペクターM3のデータを、インスペクターテーブル143に登録する。
ここで、インスペクターM0,M1,M2,M3の分類結果の一例について説明する。図14は、各インスペクターの分類結果の一例を示す図である。グラフG2-0は、インスペクターM0の分類結果を示す。グラフG2-1は、インスペクターM1の分類結果を示す。グラフG2-2は、インスペクターM2の分類結果を示す。グラフG2-3は、インスペクターM3の分類結果を示す。各グラフの横軸は、データの第1特徴量に対応する軸であり、縦軸は、データの第2特徴量に対応する軸である。
各グラフにおいて、マル印のデータは、第1クラスに分類されたデータである。四角印のデータは、第2クラスに分類されたデータである。三角印のデータは、第3クラスに分類されたデータである。グラフG2-1に示すように、インスペクターM1では、第1クラスのモデル適用領域が、他のインスペクターM0,M2,M3のモデル適用領域も狭くなっている。グラフG2-2に示すように、インスペクターM2では、第2クラスのモデル適用領域が、他のインスペクターM0,M1,M3のモデル適用領域も狭くなっている。グラフG2-3に示すように、インスペクターM3では、第3クラスのモデル適用領域が、他のインスペクターM0,M1,M2のモデル適用領域も狭くなっている。
図7の説明に戻る。検知部154は、出力結果テーブル146を基にして、機械学習モデルの精度劣化を引き起こす可能性のあるデータの分布の変化を検知する。検知部154は、インスペクターM0~M3に、運用データテーブル145の運用データセットC0,C1,C2,C3を入力し、出力結果を取得する。検知部154は、インスペクターM0~M3の出力結果を、出力結果テーブル146に登録する。
検知部154は、インスペクターM0~M3の出力結果のうち、いずれかの出力結果が他の出力結果と異なる場合に、機械学習モデル50の精度劣化を引き起こす可能性(あるいは、精度劣化を引き起こす予兆)のあるデータの分布の変化を検知する。検知部154は、データの分布の変化を検知した旨を、外部装置に通知する。
図15は、検知部の処理を説明するための図である。ここでは一例として、インスペクター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に入力した際に分類される分類結果がそれぞれ同一であるため、検知部154は、機械学習モデル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に入力した際に分類される分類結果がそれぞれ異なるため、検知部154は、機械学習モデル50の精度劣化を引き起こす可能性のあるデータの分布の変化を検知する。また、検知部154は、精度劣化の要因となったインスタンスI1T2を検知することができる。
次に、本実施形態に係るモデル生成装置の処理手順の一例について説明する。図16は、本実施形態に係るモデル生成装置の処理手順を示すフローチャート(1)である。図16に示すように、モデル生成装置100は、監視対象の機械学習モデル50の機械学習を実行した場合に使用した訓練データセット141を取得する(ステップS101)。
モデル生成装置100の第1生成部151は、訓練データセット141を入力として、インスペクターM0の機械学習を実行する(ステップS102)。第1生成部151は、インスペクターM0のパラメータをインスペクターテーブル143に保存する(ステップS103)。
モデル生成装置100の選択部152は、i=1に設定する(ステップS104)。選択部152は、インスペクターM0に第iクラスの訓練データを入力し、訓練データに関するスコアを算出する(ステップS105)。選択部152は、スコアが閾値以上となる訓練データを選択することで、訓練データセットDiを作成し、訓練データテーブルに登録する(ステップS106)。
選択部152は、i=Nでない場合に(ステップS107,No)、i=i+1を実行し(ステップS108)、ステップS105に移行する。一方、選択部152は、i=Nである場合に(ステップS107,Yes)、ステップS109に移行する。
第2生成部153は、機械学習処理を実行する(ステップS109)。第2生成部153は、訓練済みの複数のインスペクターのデータを、インスペクターテーブル143に登録する(ステップS110)。
次に、図16のステップS109に示した機械学習処理の処理手順について説明する。図17は、機械学習処理の処理手順を示すフローチャートである。図17に示すように、モデル生成装置100の第2生成部153は、i=1に設定する(ステップS201)。
第2生成部153は、インスペクターM0の複数のパラメータを、インスペクターMiに設定する(ステップS202)。第2生成部153は、訓練データセットDiを入力とし、インスペクターMiに含まれる複数のパラメータのうち、一部のパラメータを固定した状態で、機械学習を実行する(ステップS203)。
第2生成部153は、i=Nでない場合に(ステップS204,No)、i=i+1を実行し(ステップS205)、ステップS202に移行する。一方、第2生成部153は、i=Nである場合に(ステップS204,Yes)、機械学習処理を終了する。
図18は、本実施形態に係るモデル生成装置の処理手順を示すフローチャート(2)である。図18に示すように、モデル生成装置100の検知部154は、運用データテーブル145から、運用データセットを取得する(ステップS301)。検知部154は、運用データセットからインスタンスを1つ選択する(ステップS302)。
検知部155は、選択したインスタンスを各インスペクターM0~M3に入力し、出力結果を取得し、出力結果テーブル146に登録する(ステップS303)。検知部155は、出力結果テーブル146を参照し、各出力結果が異なるか否かを判定する(ステップS304)。
検知部154は、各出力結果が異ならない場合には(ステップS305,No)、ステップS308に移行する。検知部154は、各出力結果が異なる場合には(ステップS305,Yes)、ステップS306に移行する。
検知部154は、精度劣化を検知する(ステップS306)。検知部154は、精度劣化を検知した旨を外部装置に通知する(ステップS307)。モデル生成装置100は、全てのインスタンスを選択したか否かを判定する(ステップS308)。
モデル生成装置100は、全てのインスタンスを選択した場合には(ステップS308,Yes)、処理を終了する。一方、モデル生成装置100は、全てのインスタンスを選択していない場合には(ステップS308,No)、ステップS309に移行する。検知部154は、運用データセットから、未選択のインスタンスを1つ選択し(ステップS309)、ステップS303に移行する。
次に、本実施形態に係るモデル生成装置100の効果について説明する。モデル生成装置100は、インスペクターM1~M3の機械学習を実行する場合に、インスペクターM0の訓練済みの複数のパラメータを流用し、一部のパラメータを固定した状態で、機械学習を実行する。このため、インスペクターM1~M3の計算コストを、インスペクターM0の計算コストより少ない計算コストで実現することができる。インスペクターM1~M3の計算コストを少ない計算コストで実現できるので、機械学習モデルの継続的な運用監視にかかる計算コストを削減できる。
図19は、本実施形態に係るモデル生成装置の効果を説明するための図である。図19において、t1-M0は、参考装置が、インスペクターM0を訓練する場合に要する時間である。t1-M1は、参考装置が、インスペクターM1を訓練する場合に要する時間である。t1-M2は、参考装置が、インスペクターM2を訓練する場合に要する時間である。t1-M3は、参考装置が、インスペクターM3を訓練する場合に要する時間である。
たとえば、t1-M0は「49.9秒」、t1-M1は「33.92秒」、t1-M2は「31.87秒」、t1-M3は「34.3秒」となる。このため、参考装置が、インスペクターM0~M3を訓練する時間は、「150.03秒」となる。
t2-M0は、モデル生成装置100が、インスペクターM0を訓練する場合に要する時間である。t2-M1は、モデル生成装置100が、インスペクターM1を訓練する場合に要する時間である。t2-M2は、モデル生成装置100が、インスペクターM2を訓練する場合に要する時間である。t2-M3は、モデル生成装置100が、インスペクターM3を訓練する場合に要する時間である。
たとえば、t2-M0は「49.9秒」、t2-M1は「10.57秒」、t2-M2は「10.59秒」、t2-M3は「11.18秒」となる。このため、モデル生成装置100が、インスペクターM0~M3を訓練する時間は、「82.28秒」となる。
図19に示すように、参考装置がインスペクターM0~M3を訓練する時間よりも、モデル生成装置100がインスペクターM0~M3を訓練する時間のほうが短くなり、計算コストを削減することができる。
また、インスペクターM1~M3では、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有する。インスペクターM1~M3は、それぞれ決定境界が異なるため、同一の入力データを入力しても、出力結果が異なる場合がある。すなわち、モデル生成装置100は、運用データセットのデータを、インスペクターM1~M3の出力結果の違いを基にして、機械学習モデルの精度劣化を引き起こす可能性のあるデータの分布の変化を検知することができる。
モデル生成装置100は、訓練データセット141を入力とした機械学習を実行することで、インスペクターM0を生成する。これによって、インスペクターM1~M3に初期設定する複数のパラメータを訓練することができる。
モデル生成装置100は、訓練データセット141の各訓練データを、インスペクターM0に入力して、各訓練データのスコアを取得し、スコアが閾値以上となる訓練データを用いて、インスペクターM1~M3の機械学習を実行する場合の訓練データとして選択する。これによって、それぞれ異なる条件でモデル適用領域が狭められ、異なる決定境界を有するインスペクターM1~M3を生成することができる。
モデル生成装置100は、機械学習モデルの精度劣化を引き起こす可能性のあるデータの分布の変化を検知した場合に、かかるデータの分布の変化を外部装置に通知する。これによって、機械学習モデル50の精度劣化を外部装置に通知することができる。
次に、本実施例に示したモデル生成装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図20は、本実施形態に係るモデル生成装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図20に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る読み取り装置204と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
ハードディスク装置207は、第1生成プログラム207a、選択プログラム207b、第2生成プログラム207c、検知プログラム207dを有する。CPU201は、第1生成プログラム207a、選択プログラム207b、第2生成プログラム207c、検知プログラム207dを読み出してRAM206に展開する。
第1生成プログラム207aは、第1生成プロセス206aとして機能する。選択プログラム207bは、選択プロセス206bとして機能する。第2生成プログラム207cは、第2生成プロセス206cとして機能する。検知プログラム207dは、検知プロセス206dとして機能する。
第1生成プロセス206aの処理は、第1生成部151の処理に対応する。選択プロセス206bの処理は、選択部152の処理に対応する。第2生成プロセス206cの処理は、第2生成部153の処理に対応する。検知プロセス206dの処理は、検知部154の処理に対応する。
なお、各プログラム207a~207dついては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207dを読み出して実行するようにしてもよい。