(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 2021553936
(86)(22)【出願日】2019-10-29
(86)【国際出願番号】 JP2019042395
(87)【国際公開番号】W WO2021084623
(87)【国際公開日】2021-05-06
【審査請求日】2022-03-23
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】上村 健人
(72)【発明者】
【氏名】安富 優
(72)【発明者】
【氏名】早瀬 友裕
(72)【発明者】
【氏名】梅田 裕平
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-46094(JP,A)
【文献】特開2016-133895(JP,A)
【文献】中国特許出願公開第109840540(CN,A)
【文献】WON, Daegun ほか,Temporal Transfer Learning for Drift Adaptation,[オンライン],2018年,pp.567-572,https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2018-202.pdf
【文献】Ruijia Xu, 外4名,"Deep Cocktail Network:Multi-source Unsupervised Domain Adaptation with Category Shift",2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition,IEEE,2018年06月23日,p.3964-3973
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
第1学習データセットに含まれる、正解情報を示すラベルが付与された各学習データに基づいて、性質の異なる複数の学習モデルを生成し、
前記複数の学習モデルのうちのいずれかの学習モデルの、推定対象である入力データに対する前記ラベルの推定の推定精度が所定の基準未満となった場合、前記推定精度が所定の基準以上の学習モデルによる推定結果を利用した複数の学習データを含む第2学習データセットを生成し、
前記第2学習データセットを用いて前記推定精度が所定の基準未満となった学習モデルの再学習を実行する
処理を実行させることを特徴とする劣化抑制プログラム。
【請求項2】
前記生成する処理は、前記入力データの特徴が時間経過により変化するドメインシフトが想定可能な場合に、想定可能な前記ドメインシフト後の入力データを用いて、前記性質の異なる複数の学習モデルを生成することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項3】
前記生成する処理は、前記第1学習データセットに含まれる前記各学習データを用いた機械学習により第1の学習モデルを生成し、前記ラベルは変更せずに前記各学習データにノイズを付加したノイズ付き学習データを用いた機械学習により第2の学習モデルを機械学習により生成し、前記ラベルは変更せずに前記各学習データを回転させた回転後学習データを用いた機械学習により第3の学習モデルを生成することを特徴とする請求項2に記載の劣化抑制プログラム。
【請求項4】
前記生成する処理は、推定対象である前記ラベルが付与された前記各学習データを含む前記第1学習データセットおよび前記推定対象と類似するラベルが付与された各学習データを含む類似学習データセットを用いた機械学習により前記複数の学習モデルを生成することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項5】
前記生成する処理は、前記第1学習データセットを用いた、前記ラベルに基づく教師有学習により前記複数の学習モデルを生成するとともに、前記ラベルが付与されていない各学習データを含むラベル無しデータセットを用いて、前記複数の学習モデルの出力が異なるように、教師無学習により前記複数の学習モデルを生成することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項6】
前記生成する処理は、前記各学習データに基づいて、学習のアルゴリズムが異なる前記複数の学習モデルを機械学習により生成することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項7】
前記生成する処理は、前記推定精度が所定の基準未満の学習モデルに対して、前記推定精度が所定の基準未満となった時点で、前記推定精度が所定の基準以上である他の学習モデルの推定結果を正解情報とする前記第2学習データセットを生成することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項8】
前記実行する処理は、前記推定精度が所定の基準以上の学習モデルによる前記推定結果の数が所定数以上取得できない場合、または、前記複数の学習モデル全ての推定精度が前記所定の基準未満となった場合、前記複数の学習モデル全体の精度回復が不可能と判定し、判定結果を出力することを特徴とする請求項1に記載の劣化抑制プログラム。
【請求項9】
コンピュータが、
第1学習データセットに含まれる、正解情報を示すラベルが付与された各学習データに基づいて、性質の異なる複数の学習モデルを生成し、
前記複数の学習モデルのうちのいずれかの学習モデルの、推定対象である入力データに対する前記ラベルの推定の推定精度が所定の基準未満となった場合、前記推定精度が所定の基準以上の学習モデルによる推定結果を利用した複数の学習データを含む第2学習データセットを生成し、
前記第2学習データセットを用いて前記推定精度が所定の基準未満となった学習モデルの再学習を実行する
処理を実行することを特徴とする劣化抑制方法。
【請求項10】
第1学習データセットに含まれる、正解情報を示すラベルが付与された各学習データに基づいて、性質の異なる複数の学習モデルを生成する生成部と、
前記複数の学習モデルのうちのいずれかの学習モデルの、推定対象である入力データに対する前記ラベルの推定の推定精度が所定の基準未満となった場合、前記推定精度が所定の基準以上の学習モデルによる推定結果を利用した複数の学習データを含む第2学習データセットを生成する生成部と、
前記第2学習データセットを用いて前記推定精度が所定の基準未満となった学習モデルの再学習を実行する実行部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、劣化抑制プログラム、劣化抑制方法および情報処理装置に関する。
【背景技術】
【0002】
従来から、データの判別や分類機能などを行う機械学習を用いた学習モデル(以下では、単に「モデル」と記載する場合がある)が利用されている。機械学習においては、時間経過に伴い、学習に使用したラベル付きデータセットに対して、適用するデータの分布(性質)が徐々に異なってくる「ドメインシフト」が発生することがある。この場合、学習モデルは、学習させた学習データの通りに判別や分類を行うので、運用中に入力データの傾向(データ分布)が変化すると、学習モデルの精度が劣化する。
【0003】
近年では、精度劣化を抑制する技術として、アンサンブル学習が利用されている。具体的には、予測値と確信度とを出力可能なモデルを利用し、学習に使用可能なラベル付きデータセットを用いて複数の異なるモデルを学習する。そして、適用時は複数のモデルの出力の中で確信度が最も高いモデルの予測値を組み合わせて、全体の出力とする。
【先行技術文献】
【非特許文献】
【0004】
【文献】“Ensemble learning”、令和1年10月4日検索、インターネット<URL:https://en.wikipedia.org/wiki/Ensemble_learning>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記技術では、ドメインシフトが発生するデータに対してモデル全体の精度を維持することが難しい。
【0006】
例えば、上記アンサンブル学習では、すべてのモデルの確信度が低くなった場合に出力を特定することができない。また、大きなドメインシフトが発生したときのように、すべてのモデルの確信度が一度低くなった後に再度高くなった場合、確信度自体の信頼性が低いので、モデルの推定精度の信頼性も低下する。このように、上記アンサンブル学習では、モデル全体の精度劣化を抑制することが難しい。
【0007】
一つの側面では、モデル全体の精度劣化を抑制することができる劣化抑制プログラム、劣化抑制方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の案では、劣化抑制プログラムは、コンピュータに、第1学習データセットに含まれる、正解情報を示すラベルが付与された各学習データに基づいて、性質の異なる複数の学習モデルを生成する処理を実行させる。劣化抑制プログラムは、コンピュータに、前記複数の学習モデルのうちのいずれかの学習モデルの、推定対象である入力データに対する前記ラベルの推定の推定精度が所定の基準未満となった場合、前記推定精度が所定の基準以上の学習モデルによる推定結果を利用した複数の学習データを含む第2学習データセットを生成する処理を実行させる。劣化抑制プログラムは、コンピュータに、前記第2学習データセットを用いて前記推定精度が所定の基準未満となった学習モデルの再学習を実行する処理を実行させる。
【発明の効果】
【0009】
一つの側面では、モデル全体の精度劣化を抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1にかかる劣化抑制装置を説明する図である。
【
図2】
図2は、アンサンブル学習の問題点を説明する図である。
【
図3】
図3は、実施例1にかかる劣化抑制装置の機能構成を示す機能ブロック図である。
【
図4】
図4は、初期ラベル付きデータDBに記憶される情報の例を示す図である。
【
図5】
図5は、初期ラベル無しデータDBに記憶される情報の例を示す図である。
【
図6】
図6は、推定対象データDBに記憶される情報の例を示す図である。
【
図7】
図7は、推定結果DBに記憶される情報の例を示す図である。
【
図8】
図8は、モデル学習手法1を説明する図である。
【
図9】
図9は、モデル学習手法2を説明する図である。
【
図13】
図13は、実施例1にかかる一連の処理の流れを示すフローチャートである。
【
図14】
図14は、実施例1にかかる推定処理の流れを示すフローチャートである。
【
図16】
図16は、クラスタ数と中心点との特定を説明する図である。
【
図17】
図17は、運用後のクラスタリングを説明する図である。
【
図18】
図18は、入力データへのラベル付けを説明する図である。
【
図19】
図19は、モデル精度の判定の詳細を説明する図である。
【
図20】
図20は、複数のモデルの劣化が検出された場合の回復例を説明する図である。
【発明を実施するための形態】
【0011】
以下に、本発明にかかる劣化抑制プログラム、劣化抑制方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0012】
[劣化抑制装置の説明]
図1は、実施例1にかかる劣化抑制装置10を説明する図である。
図1に示すように、劣化抑制装置10は、学習時には、ラベル付きデータセットを用いて複数の学習モデルを学習する。そして、劣化抑制装置10は、適用時には、学習済みの複数の学習モデルを用いて、ドメインが時間と共に変化するラベル無しデータのラベル推定を実行する。この時、劣化抑制装置10は、個々のモデルの精度劣化を検出することで、精度劣化したモデルを精度劣化していないモデルを用いて再学習することで推定精度を維持する。
【0013】
ここで、一般的に利用されるアンサンブル学習の問題点について説明する。
図2は、アンサンブル学習の問題点を説明する図である。
図2に示すように、アンサンブル学習は、入力に対する出力として、予測値と確信度を出力可能なモデルを使用し、適用時は複数モデルの出力の中で確信度の高いものの予測値を組み合わせてモデル全体の出力とする。
【0014】
例えば、適用初期は、確信度が高いモデルの予測結果を採用するが、時間経過により、すべてのモデルの確信度が低くなった場合には出力を特定できず、結果として、モデル全体の予測性能が劣化する。また、確信度が低くなった後に、再度高くなった場合、一度下がった確信度が上がる理由が不明確であり、確信度を信用することができず、得られる結果も不正確である可能性が高い。
【0015】
このように、アンサンブル学習では、時間経過に伴い、学習に使用したラベル付きデータセットに対して、適用するデータの分布が徐々に異なってくる「ドメインシフト」に追従することができず、モデル全体の精度劣化を抑制することができない。
【0016】
そこで、実施例1にかかる劣化抑制装置10は、ドメイン変化に応じて異なる傾向を示す特徴生成器と精度劣化の検出器を用いることで、すべてのモデルの推定精度が劣化する状態の発生を軽減する。
【0017】
具体的には、学習時では、劣化抑制装置10は、学習データであるラベル付きデータを用いて、学習する特徴量が異なるものの同じ推定(分類)を行うようにモデル1、モデル2、モデル3を生成する。例えば、モデル1から3は、画像データを説明変数、動物名を目的変数(ラベル)とする学習データを用いて学習されるが、モデルごとにノイズを付与した画像データ等を用いることで、学習させる特徴量に変化を持たせる。
【0018】
その後の適用時では、劣化抑制装置10は、学習済みのモデル1、モデル2、モデル3に対して、推定対象である各ラベル無しデータを入力して、推定処理を随時実行する。ここで、劣化抑制装置10は、時間経過により、モデル2の精度劣化を検出すると、モデル2の精度劣化が検出されたラベル無しデータに対する精度が劣化していないモデル1およびモデル3の推定結果を正解情報とする再学習データを生成する。そして、劣化抑制装置10は、モデル2の再学習を実行する。
【0019】
更なる時間経過により、劣化抑制装置10は、モデル1の精度劣化を検出すると、モデル1の精度劣化が検出されたラベル無しデータに対する精度が劣化していないモデル2およびモデル3の推定結果を正解情報とする再学習データを生成する。そして、劣化抑制装置10は、モデル1の再学習を実行する。
【0020】
上述したように、劣化抑制装置10は、ドメイン変化の種類に応じてそれぞれ異なる出力変化を起こす複数の学習手法を用いて複数のモデルを学習する。そして、劣化抑制装置10は、各モデルの精度劣化を推定し、精度劣化が検出されたモデルを、精度劣化が検出されなかったモデルによりラベル付けされたデータを用いて、劣化したモデルと同一の学習手法で再学習する。この結果、劣化抑制装置10は、モデル全体の精度劣化を抑制することができる。
【0021】
[劣化抑制装置の機能構成]
図3は、実施例1にかかる劣化抑制装置10の機能構成を示す機能ブロック図である。
図3に示すように、劣化抑制装置10は、通信部11、記憶部12、制御部20を有する。
【0022】
通信部11は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者端末から各種指示を受信し、管理者端末に学習結果、推定結果、精度劣化状態などの各種情報を送信する。また、通信部11は、学習データや推定対象のデータなどを受信することもできる。
【0023】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部12は、初期ラベル付きデータDB13、初期ラベル無しデータDB14、学習モデルDB15、推定対象データDB16、推定結果DB17、再学習データDB18を記憶する。
【0024】
初期ラベル付きデータDB13は、学習モデルの教師有学習に使用するラベル付きのデータを含むデータセットを記憶するデータベースである。
図4は、初期ラベル付きデータDB13に記憶される情報の例を示す図である。
図4に示すように、初期ラベル付きデータDB13は、「データID、説明変数、目的変数」を対応付けて記憶する。
【0025】
ここで記憶される「データID」は、データを識別する識別子であり、「説明変数」は、学習時の説明変数となる画像データを示し、「目的変数」は、学習時の目的変数となる正解情報(ラベル)を示す。
図4の例では、データID「01」のラベル付きデータは、説明変数が「学習データ1」、目的変数が「A」である例を示している。なお、画像分類を例にすると、ラベル付きデータの例としては、説明変数が「ネコが写っている画像データ」、目的変数が「ネコ」などである。
【0026】
初期ラベル無しデータDB14は、学習モデルの教師無学習に使用するラベル無しのデータを含むデータセットを記憶するデータベースである。
図5は、初期ラベル無しデータDB14に記憶される情報の例を示す図である。
図5に示すように、初期ラベル無しデータDB14は、「データID、データ」を対応付けて記憶する。
【0027】
ここで記憶される「データID」は、データを識別する識別子であり、「データ」は、学習時の画像データを示す。
図5の例では、データID「A1」のラベル無しデータが「学習データA」である例を示している。なお、画像分類を例にすると、ラベル無しデータの例としては、「犬が写っている画像データ」などである。
【0028】
学習モデルDB15は、モデルの学習結果を記憶するデータベースである。具体的には、学習モデルDB15は、ニューラルネットワークやサポートベクターマシンなどを用いた各モデルの学習結果として、モデル1、モデル2、モデル3それぞれを構築することができる各種パラメータを記憶する。なお、学習モデルDB15は、学習済みの各種パラメータ(最適化されたパラメータ)が適用されたモデル1、モデル2、モデル3そのものを記憶することもできる。
【0029】
推定対象データDB16は、学習済みのモデルに入力して推定を実行する対象のラベル無しデータを含むデータセットを記憶するデータベースである。
図6は、推定対象データDB16に記憶される情報の例を示す図である。
図6に示すように、推定対象データDB16は、「データID、データ」を対応付けて記憶する。ここで記憶される「データID」は、データを識別する識別子である。「データ」は、各モデルに入力される入力データであって、推定対象である画像データを示す。
図6の例では、データID「B1」のラベル無しデータが「入力データA」である例を示している。なお、推定対象のデータは、データストリーム等で配信してもよい。
【0030】
推定結果DB17は、学習済みモデルによる推定結果を記憶するデータベースである。具体的には、推定結果DB17は、推定対象データごとの推定結果を記憶する。
図7は、推定結果DB17に記憶される情報の例を示す図である。
図7に示すように、推定結果DB17は、「データID、データ、推定結果」を対応付けて記憶する。
【0031】
ここで記憶される「データID」は、データを識別する識別子であり、「データ」は、推定対象である画像データを示し、推定結果が「BBB」である例を示している。なお、推定結果DB17は、各モデルの推定結果から最終的に決定されたモデル全体の推定結果を記憶することもでき、各モデルの推定結果を記憶することもでき、両方を記憶することもできる。なお、ここで記憶される情報は、後述するモデル実行部22により生成されて格納される。
【0032】
再学習データDB18は、精度が劣化したモデルの再学習に利用される再学習用のラベル付きデータを含むデータセットを記憶するデータベースである。具体的には、再学習データDB18は、再学習データを識別する「データID」、説明変数となる「画像データ」、目的変数となる「ラベル」を対応付けて記憶する。なお、ここで記憶される情報は、後述する再学習実行部24により生成されて格納される。
【0033】
制御部20は、劣化抑制装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、学習実行部21、モデル実行部22、劣化検出部23、再学習実行部24を有する。なお、学習実行部21、モデル実行部22、劣化検出部23、再学習実行部24は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【0034】
学習実行部21は、複数のモデルを学習する処理部である。具体的には、学習実行部21は、推定対象データ(入力データ)のドメインシフトに追従して、推定(判定)精度の劣化を検出するために、傾向の異なる複数のモデルを学習し、学習結果を学習モデルDB15に格納する。すなわち、学習実行部21は、学習する特徴量を異ならせることで、性質の異なる複数のモデルであって、意図的に劣化タイミングをずらした複数のモデルを生成する。ここで、画像分類器に用いる各モデルの学習手法を具体的に説明する。
【0035】
(学習手法1)
例えば、学習手法1は、ドメインシフトの一部が想定可能な場合に有効な手法であり、それぞれのモデルに対して、想定されるドメインシフトの異なる組合せを人工的に発生させてデータ拡張した学習データを用いて学習する。例えば、学習手法1では、推定対象データを撮影するカメラのセンサ劣化、カメラの位置ずれ、撮像時のノイズ増加を想定し、これらの状態を予め想定してモデルの学習を実行する。
【0036】
図8は、モデル学習手法1を説明する図である。
図8に示すように、学習実行部21は、モデル1に対して、初期ラベル付きデータDB13に記憶される各ラベル付きデータ(学習データ)を用いた教師有学習を実行する。例えば、
図4を例にして説明すると、学習実行部21は、学習データ1(DA1)をモデル1に入力し、モデル1の出力結果とラベル「A」とが一致するように、誤差逆伝搬法などを用いてモデル1のパラメータを最適化する。
【0037】
一方、学習実行部21は、モデル2とモデル3に対して、初期ラベル付きデータDB13に記憶される各ラベル付きデータに、ラベルはそのままで画像データにノイズなどを付与した学習データを用いた教師有学習を実行する。
図4を例にして説明すると、学習実行部21は、学習データ1にノイズを付与したノイズ付き学習データ1(DA2)をモデル2に入力し、モデル2の出力結果とラベル「A」とが一致するように、誤差逆伝搬法などを用いてモデル2のパラメータを最適化する。また、学習実行部21は、学習データ1を所定角度だけ回転させた回転後の学習データ1(DA3)をモデル3に入力し、モデル3の出力結果とラベル「A」とが一致するように、誤差逆伝搬法などを用いてモデル3のパラメータを最適化する。
【0038】
このように、学習実行部21は、特徴量を少しずつ変更した学習データを用いることで、モデル適用領域(Applicability Domain)の大きさが少し異なる複数のモデルを生成することができる。
【0039】
(学習手法2)
例えば、学習手法2は、類似する複数のタスクが想定できる場合に有効な手法であり、それぞれのモデルに対して、対象のメインタスクに対する学習と同時に別の補助タスクの異なる組合せを同時に学習する。
【0040】
図9は、モデル学習手法2を説明する図である。
図9に示すように、学習実行部21は、モデル1に対して、初期ラベル付きデータDB13に記憶される各ラベル付きデータ(学習データ)を用いた教師有学習を実行するとともに、学習データとは異なるラベル付きの補助データ1を用いた教師有学習を実行する。
【0041】
例えば、学習実行部21は、人物の画像分類を想定する場合に、人物の画像データを用いるメインタスクを用いた教師有学習と、動物の画像データである補助データ1を用いる補助タスク1を用いた教師有学習を実行することで、人物の画像データの特徴量を学習するとともに、動物の画像データの特徴量を学習する。
【0042】
上記例で説明すると、学習実行部21は、モデル2に対して、人物の画像データを用いるメインタスクと、車両の画像データである補助データ2を用いる補助タスク2を同時に用いた教師有学習を実行することで、人物の画像データの特徴量を学習するとともに、車両の画像データの特徴量を学習する。
【0043】
同様に、学習実行部21は、モデル3に対して、人物の画像データを用いるメインタスクと、風景の画像データである補助データ3を用いる補助タスク3を同時に用いた教師有学習を実行することで、人物の画像データの特徴量を学習するとともに、風景の画像データの特徴量を学習する。
【0044】
このように、学習実行部21は、想定する特徴量の学習に加えて、ノイズとなりうる特徴量の学習を行うことで、モデル適用領域の決定境界が異なる複数のモデルを生成することができる。なお、各補助データは、予め記憶部12に記憶される。
【0045】
(学習手法3)
例えば、学習手法3は、ラベル無しデータが利用できる場合に有効な手法であり、各モデルに対して、教師有学習と教師無学習を実行する。具体的には、学習手法3は、それぞれのモデルの推定値が、ラベル付き学習データに対しては正しく出力され、ラベル無しデータに対してはそれぞれ異なるラベルを出力するように学習する。
【0046】
図10は、モデル学習手法3を説明する図である。例えば、学習実行部21は、ラベル「A」が付与されている学習データ1をモデル1、モデル2、モデル3それぞれに入力する。そして、学習実行部21は、モデル1の出力結果とラベル「A」とが一致するように、誤差逆伝搬法などを用いてモデル1のパラメータを最適化する。同様に、学習実行部21は、モデル2の出力結果とラベル「A」とが一致するようにモデル2のパラメータを最適化し、モデル3の出力結果とラベル「A」とが一致するようにモデル3のパラメータを最適化する。
【0047】
上記教師有学習と並行して、学習実行部21は、初期ラベル無しデータDB14から取得したラベルが付与されていない学習データAをモデル1、モデル2、モデル3それぞれに入力する。そして、学習実行部21は、モデル1の出力結果が「A」、モデル2の出力結果が「B」、モデル3の出力結果が「C」となるように、各モデルを学習する。
【0048】
このように、学習実行部21は、各モデルに対して、同じ特徴量を学習しつつ、異なる特徴量も併せて学習することで、モデル適用領域の大きさや数が異なる複数のモデルを生成することができる。
【0049】
(学習手法4)
例えば、学習手法4は、初期ラベル付きデータDB13に記憶される学習データを用いた教師有学習により、モデルのタイプ、自由度、正則化の異なる複数のモデルを学習する。すなわち、適用するアルゴリズムが異なる複数のモデルを生成する。
【0050】
図11は、モデル学習手法4を説明する図である。
図11に示すように、学習実行部21は、ニューラルネットワークを用いたモデル1、ランダムフォレストを用いたモデル2、サポートベクターマシン(SVM)を用いたモデル3を用意し、それぞれに対してラベル「A」が付与されている学習データ1を入力する。そして、学習実行部21は、各モデルの出力がラベル「A」と一致するように、各モデルを学習する。
【0051】
学習実行部21は、上記学習手法1から4のいずれか一つまたは組み合わせにより、複数のモデルを生成する。なお、選択の基準は、ユーザの指定に限らず、学習対象のカテゴリと学習手法とを対応付けておくことで、学習実行部21が学習データを参照して自動で選択することもできる。
【0052】
図3に戻り、モデル実行部22は、学習実行部21により生成された各モデルを用いて、画像分類などの分類や推定を実行する処理部である。例えば、モデル実行部22は、学習モデルDB15から各種パラメータを読み出し、学習済みのモデル1、モデル2、モデル3を構築する。そして、モデル実行部22は、推定対象データDB16に記憶される入力データBをモデル1、モデル2、モデル3のそれぞれに入力し、各モデルの出力ラベル(出力結果)を取得する。
【0053】
その後、モデル実行部22は、各モデルの出力結果に基づき、モデル全体の推定結果を決定して、推定結果DB17に格納する。なお、モデル全体の推定結果の決定手法には様々な手法を採用することができる。例えば、モデル実行部22は、各モデルから確信度が取得できる場合は、確信度が最も高いモデルの出力結果を選択する。また、モデル実行部22は、出力結果から多数決で選択することもできる。
【0054】
劣化検出部23は、各モデルの精度劣化を検出する処理部である。具体的には、劣化検出部23は、各モデルの実行や出力結果等を監視し、いずれかのモデルで精度劣化を検出した場合、精度劣化したモデル、精度劣化が検出されたときの入力データ、精度劣化の回数など精度劣化に関する情報を再学習実行部24に出力する。
【0055】
なお、劣化検出方法は、一般的に利用されている様々な手法を採用することができる。例えば、劣化検出部23は、確信度が閾値以下となったモデル、確信度が閾値以下となった回数が閾値以上となったモデル、モデル全体の推定結果に連続して所定回数以上選択されなかったモデルなどを精度劣化と検出することもできる。
【0056】
再学習実行部24は、精度が劣化したモデルの再学習を実行する処理部である。具体的には、再学習実行部24は、精度劣化していないモデルの推定結果を正解情報とする再学習データを生成して、再学習データDB18に格納する。そして、再学習実行部24は、生成した再学習データを用いて、精度劣化したモデルの再学習を実行する。
【0057】
例えば、再学習実行部24は、精度劣化が検出された直後から他のモデルが精度劣化するまでに収集できた一定数のデータを、再学習データに選択する。このとき、再学習実行部24は、劣化に関わるデータが推定可能な場合は、劣化の原因と推定されたデータを重点的に選択する。例えば、再学習実行部24は、精度劣化したモデルが精度劣化していないモデルと異なるラベルを出力するデータを選択する。
【0058】
図12は、再学習を説明する図である。
図12に示すように、再学習実行部24は、モデル1、モデル2、モデル3のうちモデル1の精度劣化が検出された場合、モデル1の精度劣化が発生したときのモデル2とモデル3の一定数の推定結果を用いて、モデル1の再学習を実行する。例えば、再学習実行部24は、入力データZに対して、モデル1とは異なるラベルを出力したモデル3の推定結果(ZZZ)を取得する。そして、再学習実行部24は、入力データZを説明変数、推定結果(ZZZ)を目的変数とする再学習データを用いて、モデル1の再学習を実行する。
【0059】
なお、再学習実行部24は、モデル1の精度劣化中に、他のモデルで推定されたすべての推定結果を用いて再学習データを生成して、モデル1の再学習を実行することもできる。また、再学習実行部24は、モデル1の精度劣化中に、他のモデルで推定されたすべての推定結果のうち、モデル1とは異なる推定結果(出力ラベル)のみを用いて再学習データを生成して、モデル1の再学習を実行することもできる。
【0060】
また、再学習実行部24は、同時に一定数以上のモデルの精度劣化を検出した場合、修復不能と判断して、推定(判定)を停止してユーザに通知することもできる。例えば、再学習実行部24は、再学習に必要なデータ数を1000個の推定結果を取得する前に、別のモデルの精度劣化を検出した場合に、修復不能と判断する。また、再学習実行部24は、一定期間の間または同時に、半数以上のモデルが精度劣化を起こした場合に、修復不能と判断する。
【0061】
[一連の流れ]
図13は、実施例1にかかる一連の処理の流れを示すフローチャートである。
図13に示すように、学習実行部21は、処理が開始されると、ユーザの指示や予め学習方法と対応付けておいた学習データの種別等により、学習手法1から4から、使用する学習方法を決定する(S101)。
【0062】
続いて、学習実行部21は、初期ラベル付きデータDB13に記憶される学習データを用いて、決定された学習方法により複数のモデルを学習する(S102)。このとき、学習方法によっては、ラベル無しデータ、ノイズ付きの学習データなどを用いた学習が実行される。
【0063】
その後、モデル実行部22が推定対象である新規データセットを取得し(S103)、劣化検出部23が新規データセットに対する各モデルの精度劣化を検出する(S104)。なお、この新規データセットは、推定対象のデータから構成されるデータセットであってもよく、精度劣化の推定を行うために用意された検証用のデータで構成されるデータセットであってもよい。
【0064】
そして、再学習実行部24は、精度劣化が検出されていないモデルが一定数より多い場合(S105:No)、精度劣化が検出されたモデルが存在し、再学習に必要なデータセットが保存されているか否かを推定する(S106)。
【0065】
ここで、再学習実行部24は、再学習に必要なデータセットが保存されている場合(S106:Yes)、次に推定対象である新規データセットを管理者端末などから取得して保存する(S107)。その後、S103以降が実行される。
【0066】
一方、再学習実行部24は、再学習に必要なデータセットが保存されていない場合(S106:No)、精度劣化が検出されていないモデルを使って再学習用データにラベル付けを実行し(S108)、再学習用データを使って、精度劣化が検出されたモデルを再学習する(S109)。その後、S107以降が実行される。
【0067】
また、S105において、再学習実行部24は、精度劣化が検出されていないモデルが一定数以上である場合(S105:Yes)、精度劣化の回復ができなくなったことを管理者に通知したり、ディスプレイに表示したりする(S110)。
【0068】
[推定処理の流れ]
図14は、実施例1にかかる推定処理の流れを示すフローチャートである。
図14に示すように、モデル実行部22は、処理が開始されると、推定対象データDB16から推定対象のデータを取得する(S201)。
【0069】
続いて、モデル実行部22は、推定対象のデータを各モデルに入力し、推定に使用する精度劣化が検出されていないモデルを決定し(S202)、推定に使用する複数のモデルを組み合わせて推定対象のデータにラベル付けを実行する(S203)。そして、モデル実行部22は、推定されたラベルを推定結果として推定結果DB17等に出力する(S204)。
【0070】
[効果]
上述したように、劣化抑制装置10は、精度劣化を起こしていないモデルでラベル無しデータにラベル付けを行い、このラベル付きデータを使って劣化したモデルを同じ学習手法で再学習することでドメインシフトに追従することができる。また、劣化抑制装置10は、複数のモデルを異なる方法で学習し、ドメインシフトしたデータに対する各モデルの精度劣化を検出し、劣化が検出された場合に、劣化が検出されていないモデルを使ってラベル付けられた新しい学習データから学習に使用するデータを選択し精度劣化したモデルを再学習することができる。この結果、劣化抑制装置10は、モデル全体の精度劣化を抑制することができる。
【0071】
図15は、実施例1による効果を説明する図である。
図15に示すように、アンサンブル学習などの一般技術では、各モデルの確信度が高いときは高精度の推定を実行できるが、時間経過によるドメインシフトによって、各モデルの確信度が低くなると、出力(予測)が特定できず、推定精度が低下する。
【0072】
一方で、実施例1にかかる劣化抑制装置10は、いずれかのモデルの精度が劣化すると、精度が劣化していないモデルの推定結果を正解情報とする再学習データにより、精度回復を実行するので、時間経過等に伴ってドメインシフトが生じるデータに対して、精度低下を軽減でき、全体として高精度を維持することができる。また、実施例1にかかる劣化抑制装置10は、すべてのモデルの精度が劣化すると、推定を停止するので、回復不可能な精度低下時に間違った出力を抑制できる。
【実施例2】
【0073】
ところで、実施例1の劣化検出部23は、様々な手法を用いてモデルの精度劣化を検出することができる。ここでは、その1つの手法として、各モデルについて、モデルの特徴量空間のクラスタリングにより、モデルの精度劣化を検出する手法を説明する。なお、特徴量空間とは、モデル適用領域を表現する空間や、入力データから得られる特徴量、ニューラルネットワークの最終層等から得られる特徴量を用いた空間の一例である。
【0074】
まず、劣化検出部23は、初期の学習段階(劣化前)の特徴量空間の各データの密度を、ガウス距離などを用いて計算する。続いて、劣化検出部23は、クラスタの数と各クラスタの中で密度が一定以上の領域の中心点(代表点)を記録する。
図16は、クラスタ数と中心点との特定を説明する図である。
図16に示すように、劣化検出部23は、横軸を特徴量、縦軸を密度とするグラフを生成する。そして、劣化検出部23は、既知である各クラスタについて、属するデータ(学習データ)のうち、密度が最も高い位置(中心点)の座標を特定して記憶部12に格納する。
図16の例では、クラスタAとクラスタBを含むクラスタ数として2、クラスタAの中心点とクラスタBの中心点を含む2つの中心点が記憶される。
【0075】
なお、中心点の座標には、データの特徴を示す情報を採用することができ、例えば各モデルから取得できる特徴量や、上記密度情報を採用することができる。また、特徴量には、例えばニューラルネットワークの最終層から取得できる情報、入力データそのものから取得できる情報、入力データの平均画素値などを採用することができる。また、劣化前の特徴量空間に分類されたデータの情報は、学習時に取得しておき、記憶部12等に保存しておくことで、上記処理に利用することができる。
【0076】
次に、劣化検出部23は、上記クラスタ数と中心点の数が一致する条件下で、入力データの密度に基づきクラスタとクラスタに属するデータとを抽出するクラスタリングを実行する。
図17は、運用後のクラスタリングを説明する図である。
図17に示すように、劣化検出部23は、モデル実行部22による推定結果(判定結果)に基づく入力データの特徴量や密度を用いて、横軸を特徴量、縦軸を密度とするグラフを生成する(S1)。続いて、劣化検出部23は、密度に対する閾値を所定値ごとに下げていき、上記特定されたクラスタ数(ここでは2)と同じ数になる最小の閾値を探索する(S2)。
【0077】
このとき、劣化検出部23は、閾値以上である入力データの特徴量に対してパーシステントホモロジ変換(PH変換)を実行して、0次元の連結成分を参照し、予め定めた閾値以上の半径を有するバー(bar)の数が事前に特定したクラスタ数と一致するか否かにより、クラスタ数の計算および特定を実行する(S3)。ここで、劣化検出部23は、閾値を超えるバーの数が事前のクラスタ数と一致しない場合は、閾値を所定値下げて処理を繰り返す(S4)。
【0078】
このように、劣化検出部23は、密度の閾値を下げて密度が閾値以上の入力データを抽出する処理と、抽出された入力データに対するPH変換処理によりクラスタ数を計算する処理とを、事前のクラスタ数と一致するクラスタ数が検出されるまで繰り返す。そして、劣化検出部23は、クラスタ数が一致すると、その時の閾値(密度)以上の密度を有する入力データから中心点C1とC2を特定する。その後、劣化検出部23は、クラスタリングで得られる情報を記憶部12に格納する。
【0079】
その後、劣化検出部23は、劣化前の中心点と運用後の中心点との位置関係から中心点の遷移を特定する。そして、劣化検出部23は、中心点C1にクラスタA(ラベル=クラスA)を対応付け、中心点C2にクラスタB(ラベル=クラスB)を対応付ける。この結果、劣化検出部23は、密度が閾値以上、かつ、中心点C1と同じクラスタに属する各入力データにラベルとしてクラスAを設定する。同様に、劣化検出部23は、密度が閾値以上、かつ、中心点C2と同じクラスタに属する各入力データにラベルとしてクラスBを設定する。
【0080】
次に、クラスタリング部25により抽出されなかった閾値未満の入力データそれぞれにラベルを対応付ける。劣化検出部23は、抽出されなかった各入力データについて、各クラスタの中心C1との距離およびC2との距離をそれぞれ計測し、2番目に近い距離が各クラスタの中心間の距離の最大値より大きい場合は、一番近いクラスタに属するデータと決定する。
【0081】
つまり、劣化検出部23は、上記手法によりクラスタが決定された領域X(クラスタA)と領域Y(クラスタB)以外の領域のうち、領域Xよりも外側の領域Pの入力データについては、クラスタAと決定し、領域Yよりも外側の領域Qの入力データについては、クラスタBと決定する。
【0082】
そして、劣化検出部23は、2番目に近い距離が各クラスタの中心間の距離の最大値より小さい(複数のクラスタの中間にある)領域Zの入力データについては、近くにある複数のクラスタのデータが混在していると判定し、各入力データに関して各クラスタの確率を測定して付与する。具体的には、劣化検出部23は、k近傍法、一様確率法、分布比率保持法などを用いて、領域Zに属する各入力データについて、各クラスタに属する確率を算出し、確率的なラベル(クラスAの確率、クラスBの確率、クラスCの確率)を生成して付与する。
【0083】
上述した手法により推定して、各入力データに付与するラベルの情報が
図18である。
図18は、入力データへのラベル付けを説明する図である。推定されたラベルは、各クラスタに属する確率(クラスAに属する確率,クラスBに属する確率,クラスCに属する確率)で付与される。
図18に示すように、領域Xと領域Pの各入力データには、推定ラベル[1,0,0]が付与され、領域Yと領域Qの各入力データには、推定ラベル[0,1,0]が付与され、領域Zの各入力データには、推定ラベル[a,b,c]が付与される。なお、a,b,cは、k近傍法などの手法により算出される確率である。そして、劣化検出部23は、各入力データと推定ラベルとの対応付けを記憶部12に格納する。
【0084】
その後、劣化検出部23は、各入力データについて、判定結果と推定結果とを取得し、これらの比較により劣化判定を実行する。例えば、劣化検出部23は、各推定結果で示される各入力データ(各点)の確率ベクトルに対し、モデルによる判定結果のベクトル表示の成分積の和(内積)をその点のスコアとし、そのスコアの合計をデータ数で割った値と閾値との比較により、劣化判定を実行する。
【0085】
図19は、モデル精度の判定の詳細を説明する図である。
図19に示すように、各入力データに対して、学習モデルの判定結果と推定結果とを取得する。例えば、入力データ1は、モデル1によりクラスAと判定されたことから判定結果は[1,0,0]であり、劣化検出部23によりクラスタAに属すると推定されたことから推定結果は[1,0,0]である。同様に、入力データ2は、モデル1によりクラスBと判定されたことから判定結果は[0,1,0]であり、劣化検出部23により領域Zに属すると推定されて算出された確率に基づき推定結果は[0.5,0.5,0]である。
【0086】
そして、劣化検出部23は、各入力データのモデル1の判定結果の行列と、各入力データの推定結果の行列とを生成し、要素積の和を算出し、要素積の和をデータ数で除算することで、推定の精度(スコア)を算出する。そして、劣化検出部23は、推定の精度が閾値未満である場合に、モデル1の精度が劣化状態であると検出する。
【0087】
上述したように、劣化検出部23は、各モデルについて上記処理を実行することで、各モデルが劣化傾向にある状態を特定することができる。
【実施例3】
【0088】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【0089】
[劣化検出]
例えば、劣化が検出されたモデルが回復する前に、他のモデルの劣化が発生する場合がある。この場合、再学習実行部24は、他のモデルが精度劣化する直前のデータから遡った一定数のデータを、再学習データに選択することができる。
【0090】
図20は、複数のモデルの劣化が検出された場合の回復例を説明する図である。
図20に示すように、モデル1の劣化が検出されて、モデル1の回復処理が行われる前に、モデル2の劣化が検出されたとする。
【0091】
この場合、再学習実行部24は、モデル1の精度劣化前にドメインシフトが発生した後、モデル2の精度劣化が発生する前に再度ドメインシフトが発生していると推定する。そして、再学習実行部24は、劣化前のモデル2の推定結果と、モデル3の推定結果とを用いた再学習データを生成して、モデル1の再学習を実行してモデル1の精度を回復させる。
【0092】
その後、再学習実行部24は、回復させたモデル1の推定結果と、モデル3の推定結果とを用いた再学習データを生成して、モデル2の再学習を実行してモデル2の精度を回復させる。
【0093】
このように、再学習実行部24は、複数モデルの精度劣化時も段階的に回復させることができる。また、再学習実行部24は、劣化が発生していない状態の推定結果を用いて精度劣化状態のモデルを回復させることができ、間違った回復処理の発生を抑制することができる。ただし、再学習実行部24は、各モデルを回復させるときに、精度劣化が発生していない推定結果が一定数以上取得できない場合は、回復不可能と判断して、管理者等に通知する。
【0094】
[特徴量の利用]
上記実施例では、入力データの特徴量を用いる例を説明したが、これに限定されるものではなく、入力データの特徴を示す情報であればよく、機械学習などで利用される様々な特徴量を採用することもできる。また、特徴量空間は、入力データから得られる特徴量を座標とする空間の一例であり、実施例1で2次元の空間を例示したが、これに限定されるものではなく、機械学習や深層学習で利用される各種特徴量空間を用いることができる。例えば、モデル適用領域を表す特徴量空間を用いることができる。
【0095】
[密度の計算]
実施例2では、ガウス密度を用いる例を説明したが、これに限定されるものではなく、eccentricityやKNN距離(K-Nearest Neighbor algorithm)など、公知の様々な手法を用いることができる。なお、ガウス密度などは、値が大きいほど密度が高いが、KNN距離は、値(距離)が小さいほど密度が高くなるので、代表点の特定も密度が最も小さい点が選択される。
【0096】
[数値等]
また、上記実施例で用いた数値、各閾値、特徴量空間、クラスタの数、ラベルの数等は、あくまで一例であり、任意に変更することができる。また、入力データや学習方法などもあくまで一例であり、任意に変更することができる。また、学習モデルには、ニューラルネットワークなど様々な手法を採用することができる。
【0097】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0098】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、モデルを実行して推定を行う装置と、モデルを監視して劣化検出を行う装置とを別々の筐体で実現することもできる。
【0099】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0100】
[ハードウェア]
図21は、ハードウェア構成例を説明する図である。
図21に示すように、劣化抑制装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図21に示した各部は、バス等で相互に接続される。
【0101】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0102】
プロセッサ10dは、
図3に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図3等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、劣化抑制装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、学習実行部21、モデル実行部22、劣化検出部23、再学習実行部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、学習実行部21、モデル実行部22、劣化検出部23、再学習実行部24等と同様の処理を実行するプロセスを実行する。
【0103】
このように、劣化抑制装置10は、プログラムを読み出して実行することで劣化抑制方法を実行する情報処理装置として動作する。また、劣化抑制装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、劣化抑制装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【0104】
10 劣化抑制装置
11 通信部
12 記憶部
13 初期ラベル付きデータDB
14 初期ラベル無しデータDB
15 学習モデルDB
16 推定対象データDB
17 推定結果DB
18 再学習データDB
20 制御部
21 学習実行部
22 モデル実行部
23 劣化検出部
24 再学習実行部