(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024066748
(43)【公開日】2024-05-16
(54)【発明の名称】機械学習プログラム、機械学習方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240509BHJP
G06V 10/776 20220101ALI20240509BHJP
G06V 10/778 20220101ALI20240509BHJP
【FI】
G06N20/00
G06V10/776
G06V10/778
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022176403
(22)【出願日】2022-11-02
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】金月 寛彰
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096DA02
5L096FA02
5L096HA11
5L096KA04
5L096KA15
5L096MA07
(57)【要約】
【課題】機械学習モデルの精度劣化を抑制することを課題とする。
【解決手段】情報処理装置は、元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、射影空間内における、第1のクラスの領域内に位置し且つ第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する第1のデータと、第1のクラスの領域内に位置し且つ第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置する第2のデータとをそれぞれデータ拡張し、データ拡張後の各データが射影空間内で互いに重なる場合に、第1のデータをデータ拡張した第1の拡張データと、第2のデータと、第2のデータをデータ拡張した第2の拡張データとのうち少なくとも1つのデータに第1のクラスに対応するラベルを設定する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、
前記射影空間内における、第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する第1のデータと、前記第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置する第2のデータとをそれぞれデータ拡張し、
データ拡張後の各データが前記射影空間内で互いに重なる場合に、前記第1のデータをデータ拡張した第1の拡張データと、前記第2のデータと、前記第2のデータをデータ拡張した第2の拡張データとのうち少なくとも1つのデータに前記第1のクラスに対応するラベルを設定する、
処理をコンピュータに実行させる機械学習プログラム。
【請求項2】
前記設定する処理により前記ラベルが設定された前記1つのデータを機械学習モデルの説明変数とし、前記設定する処理により設定されたラベルを前記機械学習モデルの目的変数とする機械学習を実行する処理を前記コンピュータにさらに実行させる、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記元のデータは、画像データである、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項4】
前記データ拡張する処理は、前記第1のデータまたは前記第2のデータに対応する画像データにTTA(Test Time Augmentation)を適用する、
ことを特徴とする請求項3に記載の機械学習プログラム。
【請求項5】
前記データ拡張する処理は、前記第1のデータまたは前記第2のデータに対応する画像データにフリッピング、ガウシアンノイズ、拡大、あるいは縮小のいずれかの加工を実行することにより前記第1の拡張データまたは前記第2の拡張データを生成する、
ことを特徴とする請求項3に記載の機械学習プログラム。
【請求項6】
元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、
前記射影空間内における、第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置するデータをデータ拡張し、
データ拡張後のデータの前記射影空間上の位置が前記第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する場合に、前記データと、前記データをデータ拡張した拡張データとのうち少なくとも1つのデータに前記第1のクラスに対応するラベルを設定する、
処理をコンピュータに実行させる機械学習プログラム。
【請求項7】
元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、
前記射影空間内における、第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する第1のデータと、前記第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置する第2のデータとをそれぞれデータ拡張し、
データ拡張後の各データが前記射影空間内で互いに重なる場合に、前記第1のデータをデータ拡張した第1の拡張データと、前記第2のデータと、前記第2のデータをデータ拡張した第2の拡張データとのうち少なくとも1つのデータに前記第1のクラスに対応するラベルを設定する、
処理をコンピュータが実行する機械学習方法。
【請求項8】
元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、
前記射影空間内における、第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する第1のデータと、前記第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置する第2のデータとをそれぞれデータ拡張し、
データ拡張後の各データが前記射影空間内で互いに重なる場合に、前記第1のデータをデータ拡張した第1の拡張データと、前記第2のデータと、前記第2のデータをデータ拡張した第2の拡張データとのうち少なくとも1つのデータに前記第1のクラスに対応するラベルを設定する、
処理を実行する制御部を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラム等に関する。
【背景技術】
【0002】
データの識別や分類などを行う機械学習モデルが利用されている。機械学習モデルの運用では、時間経過に伴い、機械学習に使用した正解ラベル付きの訓練データとはデータの分布や性質などが徐々に異なってくる「コンセプトドリフト」が発生することがある。機械学習モデルは、訓練データの通りに識別や分類を行うので、コンセプトドリフトにより運用中に入力データの傾向(データ分布)が変化すると、精度が劣化する。
【0003】
このようなコンセプトドリフトに対応する技術の1つとして、運用時に入力される運用データに応じて機械学習モデルの精度劣化を自動的に修復する自動修復技術が提案されている。例えば、運用時に入力された運用データは、データ空間に表現される。データ空間に表現された運用データは、機械学習モデルにより決定境界と呼ばれる境界線で分離される。次に、データ空間に表された運用データは、データ分布の特徴をデータ群として表現した数理的空間である特徴量空間に射影される。このように特徴量空間へ射影された運用データには、密度ベースクラスタリングが実行される。これにより、機械学習モデルが出力するクラスと同一のクラスに属する運用データにより形成されるデータ群のうち、運用データが密である高密度領域に位置する運用データの集合がクラスタとして抽出される。さらに、クラスタとして抽出された運用データの集合を再訓練データセットとし、各運用データには、クラスタに対応するクラスが疑似的な正解ラベルとして付与される。このように疑似ラベルが付与された再訓練データセットを用いて再訓練が実行されることにより、正解ラベルの設定作業を不要化しつつ、機械学習モデルの精度劣化に対する自動修復が実現される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-52783号公報
【特許文献2】特開2013-246478号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の自動修復技術では、機械学習モデルの再訓練に用いられるクラスタの高密度領域が小さい場合、再訓練データの数が不足するので、機械学習モデルの精度劣化を抑制することが難しい。
【0006】
1つの側面では、機械学習モデルの精度劣化を抑制することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、機械学習プログラムは、元のデータを射影した射影空間におけるデータの密度に基づきデータを複数のクラスに分類し、前記射影空間内における、第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも高く存在する領域内に位置する第1のデータと、前記第1のクラスの領域内に位置し且つ前記第1のクラスに属するデータが所定の密度よりも低く存在する領域内に位置する第2のデータとをそれぞれデータ拡張し、データ拡張後の各データが前記射影空間内で互いに重なる場合に、前記第1のデータをデータ拡張した第1の拡張データと、前記第2のデータと、前記第2のデータをデータ拡張した第2の拡張データとのうち少なくとも1つのデータに前記第1のクラスに対応するラベルを設定する、処理をコンピュータに実行させる。
【発明の効果】
【0008】
一実施形態によれば、機械学習モデルの精度劣化を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1にかかる機械学習モデルを説明する図である。
【
図2】
図2は、機械学習モデルの出力結果のモニタリングを説明する図である。
【
図3】
図3は、コンセプトドリフトを説明する図である。
【
図5】
図5は、データ分布の例を説明する図である。
【
図6】
図6は、データ拡張の一例を説明する図である。
【
図8】
図8は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図9】
図9は、訓練データDBに記憶される訓練データの例を示す図である。
【
図10】
図10は、出力結果DBに記憶される情報の例を示す図である。
【
図11】
図11は、訓練データDBに記憶される訓練データの例を示す図である。
【
図12】
図12は、実施例1にかかる自動修復処理の流れを示すフローチャートである。
【
図13】
図13は、運用データの変化の一例を示す模式図である。
【発明を実施するための形態】
【0010】
以下に、本発明にかかる機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0011】
図1は、実施例1にかかる機械学習モデルを説明する図である。
図1に示すように、学習フェーズでは、情報処理装置10は、正解ラベル付きの訓練データを用いた機械学習により機械学習モデルを訓練する。そして、運用フェーズでは、情報処理装置10は、訓練済みの機械学習モデルを用いて、運用時に入力される運用データに多クラス分類や2クラス分類などを実行する。このような機械学習モデルのタスクの例として、画像データに写っている人物や物などのオブジェクトを認識する画像認識が挙げられる。
【0012】
機械学習モデルの導入後、機械学習モデルの精度は、時間の経過に伴い劣化することがあるので、出力結果のモニタリングが行われる場合がある。
図2は、機械学習モデルの出力結果のモニタリングを説明する図である。
図2に示すように、管理者等は、運用時に入力される運用データに応じて機械学習モデルが出力する出力結果を監視する。このとき、管理者等は、モニタリングにより通常とは異なる異常値の検出を行い、異常値が所定回数発生した場合などに機械学習モデルの再訓練が必要と判断する。また、管理者等は、モニタリングにより精度劣化の予測を行い、精度が許容精度を下回ると判断した場合に、機械学習モデルの再訓練が必要と判断する。
【0013】
時間の経過に伴う機械学習モデルの精度劣化の要因の一つは、データの分布が変化するコンセプトドリフトが挙げられる。
図3は、コンセプトドリフトを説明する図である。
図3に示すように、時間経過とともに、クラスAの分布がA
1からA
2へ変化する。この場合、機械学習モデルは、クラスA
1に基づく機械学習を実行しているので、クラスA
2のデータが入力されてもクラスAと正確に識別することができない。なお、コンセプトドリフトによるデータの分布が変化する例として、スパムフィルタにフィルタリングされないように変化するメールスパム、電気需要や株価、夏から冬や朝から夜などのように変化する撮像環境に依存する画像データなどが挙げられる。
【0014】
このようなコンセプトドリフトに対応する技術の1つとして、運用時に入力される運用データに応じて機械学習モデルの精度劣化を自動的に修復する自動修復技術が提案されている。
【0015】
例えば、運用時に入力された運用データは、データ空間に表現される。データ空間に表現された運用データは、機械学習モデルにより決定境界と呼ばれる境界線で分離される。次に、データ空間に表された運用データは、データ分布の特徴をデータ群として表現した数理的空間である特徴量空間に射影される。このように特徴量空間へ射影された運用データには、密度ベースクラスタリングが実行される。これにより、機械学習モデルが出力するクラスと同一のクラスに属する運用データにより形成されるデータ群のうち、運用データが密である高密度領域に位置する運用データの集合がクラスタとして抽出される。さらに、クラスタとして抽出された運用データの集合を再訓練データセットとし、各運用データには、クラスタに対応するクラスが疑似的な正解ラベルとして付与される。このように疑似ラベルが付与された再訓練データセットを用いて再訓練が実行されることにより、正解ラベルの設定作業を不要化しつつ、機械学習モデルの精度劣化に対する自動修復が実現される。
【0016】
図4は、自動修復技術を説明する図である。
図4には、特徴量空間へ射影された運用データに関するヒストグラムが示されている。さらに、
図4に示すヒストラムでは、特徴量空間を表現する複数の特徴量が次元削減された1つの特徴量が横軸として示されると共に密度が縦軸として示されている。
【0017】
例えば、
図4に示す例で言えば、ヒストグラムには、クラスAに対応する運用データの分布d1と、クラスBに対応する運用データの分布d2との2つの分布が含まれている。
【0018】
これら分布d1および分布d2は、機械学習モデルの訓練により獲得された決定境界db1により分離されるが、上述の通り、分布d1および分布d2は、機械学習モデルの訓練時からの時間経過により変化する。例えば、
図4に示すように、分布d1および分布d2の各々が右方向、例えば正の方向へドリフトする場合、分布d1が決定境界db1へ近づくと共に分布d2が決定境界db1から遠ざかる。このようなコンセプトドリフトが放置される場合、分布d1が決定境界db1を超えることにより、機械学習モデルの分類精度が劣化する。
【0019】
このため、上記の自動修復技術では、分布d1が決定境界db1を超えないうちに機械学習モデルの再訓練を実行することにより、機械学習モデルの決定境界がdb1からdb2へ更新される。
【0020】
ここで、上記の自動修復技術では、特徴量空間へ射影された運用データのデータ群であるクラスタのうち高密度領域に位置する運用データが機械学習モデルの再訓練に用いられる。これは分布のピークから離れて分布のエッジへ近い運用データに連れて機械学習モデルが出力するクラスが正解であるか否かが不確かになるからである。
【0021】
図4には、各クラスに対応する分布d1および分布d2のうち、運用データの密度がピークを含む高密度である領域がハッチングで図示されている。この高密度領域に位置する運用データは、特徴量空間へ射影された運用データに密度ベースクラスタリングを適用することによりクラスタとして切り出すことができる。
【0022】
このように抽出された高密度領域に位置する運用データが再訓練データとして抽出される。さらに、再訓練データには、ラベル設定を自動化する側面から、各クラスタのクラスに対応するラベルが疑似的な正解ラベルとして付与される。このように疑似ラベルが付与された再訓練データを用いて再訓練が実行される。
【0023】
しかしながら、上記の自動修復技術では、機械学習モデルの再訓練に用いられるクラスタの高密度領域が小さい場合、再訓練データの数が不足するので、機械学習モデルの精度劣化を抑制することが難しい側面がある。
【0024】
すなわち、上記の自動修復技術の適用により機械学習モデルの精度劣化が抑制される効果の程度は、データの分布に左右されるが、データの分布によっては密度ベースクラスタリングにより各クラスの運用データが特徴量空間上で十分に分離されない場合がある。
【0025】
図5は、データ分布の例を説明する図である。
図5には、2次元まで次元削減された特徴量空間上のデータ分布を示すグラフG1~G3の3つのグラフが例示されている。さらに、
図5には、グラフG1~G3の例として、Fashion-MNISTの画像データセットが特徴量空間へ射影された場合のデータ分布が示されている。
【0026】
例えば、Fashion-MNISTの例で言えば、クラス0~クラス9の10種類のクラスのうち、クラス2およびクラス4、あるいはクラス7およびクラス9は、画像データ間の距離が近いことから、
図5に示すグラフG1~G3に示すデータ分布となる。これらグラフG1~G3によれば、矩形で囲われた範囲で異なるクラスの画像データが高密度に分布すると共に、異なるクラス間で画像データの位置が重なっていることが明らかである。
【0027】
この場合、データ分布における密度ピークの周辺部が機械学習モデルの決定境界に近づいたり、重なったりする場合がある。例えば、
図5には、特徴量空間へ射影されたFashion-MNISTの画像データセットのヒストグラムの例として、2つのクラスに対応する分布d3および分布d4が模式化して示されている。
【0028】
これら分布d3および分布d4の密度ピークが機械学習モデルの決定境界db3に近くなるにしたがって密度ベースクラスタリングでクラスタとして抽出対象とする密度をより高密度に設定せざるを得ない側面がある。
【0029】
なぜなら、密度ベースクラスタリングは、密度ピークが単峰性を有するという仮定の下で成立するアルゴリズムであるからである。例えば、クラスタが十分に分離されない密度の設定の下で密度ベースクラスタリングが実行される場合、全てのクラスタに悪影響が発生し、クラスタリングの精度が低下する。このため、十分に分離されたクラスタを抽出するには、密度ベースクラスタリングでクラスタとして抽出対象とする密度をより高密度に設定せざるを得ず、クラスタとして抽出される高密度領域の規模も小さくならざるを得ない。
【0030】
さらに、密度ベースクラスタリングは、クラスタごとの密度が同程度であること、換言すれば不均衡でないという仮定の下で成立するアルゴリズムである。それ故、密度ベースクラスタリングでクラスタとして抽出対象とする密度がより高密度に設定される場合、全てのクラスタ、すなわち高密度領域が等しい規模で抽出されることになる。このため、密度ピークが決定境界から十分に離れているクラスのデータ分布については規模がより大きいクラスタを抽出する余地があるにもかかわらず、他のクラスと同様、規模が小さいクラスタしか抽出できない。
【0031】
このように、上記の自動修復技術では、密度ベースクラスタリングでクラスタの抽出対象とする密度の設定値が高い値に設定されるにしたがって機械学習モデルの再訓練に用いられるクラスタの規模が小さくなるので、再訓練データの数が不足する。したがって、上記の自動修復技術によれば、機械学習モデルの精度劣化を抑制することが難しくなる。
【0032】
そこで、実施例1にかかる情報処理装置10は、運用データが密である部分と密でない部分の各々にデータ拡張を適用し、射影空間上でクラスタに十分近づいたクラスタ外の運用/拡張データにクラスタのラベルを伝播させる機能を提供する。
【0033】
図6は、データ拡張の一例を説明する図である。
図6には、コンセプトドリフトした運用データ、すなわち機械学習モデルが未知である入力データが白丸で示されると共に、入力データが拡張されることにより得られた拡張データが黒丸で示されている。
【0034】
図6に示すように、コンセプトドリフトした運用データの集合にデータ拡張が適用される。このようなデータ拡張は、元のデータに微小な変化を与えることより加工して別のデータとしてデータセットに加える技術、例えばTTA(Test Time Augmentation)により実現できる。これにより、運用データが高密度である高密度領域、図中の破線の囲い部分が人工的に生成される。この結果、密度ベースクラスタリングにより得られるクラスタの規模を拡大できる。その後、密度ベースクラスタリングにより得られるクラスタに対応するクラスのラベルをその近傍データ(ノイズ)に伝播させる。
【0035】
図7は、ラベルの伝播を説明する図である。
図7には、特徴量空間へ射影された運用データのヒストグラムの例として、あるクラスに属する運用データの分布D1が抜粋して示されている。さらに、
図7には、分布D1のうち密度ベースクラスタリングにより抽出されたクラスタに対応する高密度領域がハッチングで示されている。さらに、
図7には、クラスタに属する運用データの中から抜粋された運用データO1がハッチング有りの円で模式化されると共に、クラスタ周りの運用データの中から抜粋された運用データO2がハッチング無しの円で模式化されている。
【0036】
図7に示すように、クラスタに属する運用データO1と、クラスタ周りの運用データO2との各々には、TTAが適用される。これにより、運用データO1から拡張データO1′が得られると共に、運用データO2から拡張データO2′が得られる。そして、拡張データO2′が拡張データO1′に重なる場合、運用データO2および拡張データO2′には、クラスタのラベルが伝播される。ここで、
図7には、拡張データO2′が拡張データO1′に重なる場合にラベルを伝播させる例を挙げたが、これ以外にも、拡張データO2′が運用データO1に重なる場合や拡張データO1′が運用データO2に重なる場合にもクラスタのラベルを伝播させてよい。このようなラベルの伝播の結果、機械学習データの再訓練に用いる訓練データの数を増加させることができる。
【0037】
したがって、実施例1にかかる情報処理装置10によれば、機械学習モデルの精度劣化を抑制することができる。
【0038】
図8は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図8に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0039】
通信部11は、他の装置との間の通信を制御する。例えば、通信部11は、センサ、カメラ、サーバ、管理者端末などの各種の外部装置から、機械学習モデルによる予測対象の運用データを受信する。
【0040】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する。例えば、記憶部12は、訓練データDB13、機械学習モデル14、出力結果DB15を記憶する。
【0041】
訓練データDB13は、機械学習モデル14の機械学習に用いられる訓練データのデータセットを記憶する。
図9は、訓練データDB13に記憶される訓練データの例を示す図である。
図9に示すように、訓練データDB13に記憶される各訓練データは、「入力データ、正解ラベル」を有する。
【0042】
ここで、「入力データ」は、機械学習の説明変数であり、例えば画像データなどである。「正解ラベル」は、機械学習の目的変数であり、例えば画像データに写っている被写体、例えば特定のオブジェクトである人物などである。
図9の例では、データA1とラベルAとが対応付けられた訓練データを図示している。例えば、訓練データDB13は、画像分類などの機械学習モデル14を生成する場合には、訓練データとして、正解ラベル「犬」が付与された画像データや正解ラベル「猫」が付与された画像データなどを記憶する。
【0043】
機械学習モデル14は、機械学習により生成されるモデルである。例えば、機械学習モデル14は、ディープニューラルネットワーク(DNN:Deep Neural Network)などを用いたモデルであり、ニューラルネットワークを始め、サポートベクタマシン等の他の機械学習アルゴリズムであってもよい。例えば、機械学習モデル14のタスクが画像認識タスクである場合、畳み込みニューラルネットワーク、いわゆるCNN(Convolutional Neural Network)などの特徴抽出層と、決定境界を構築する全結合層とを有するモデルにより実現され得る。なお、本実施例では、後述する制御部により機械学習モデル14が生成される例を説明するが、他の装置で生成されたものでもよい。
【0044】
出力結果DB15は、機械学習モデル14の運用により得られた出力結果を記憶する。具体的には、出力結果DB15は、機械学習モデル14により予測された予測結果、例えばクラス別の確信度、あるいは確信度が最高であるクラスのラベルなどを記憶する。
図10は、出力結果DB15に記憶される情報の例を示す図である。
図10に示すように、出力結果DB15は、「運用データ、出力結果」を対応付けて記憶する。ここで、「運用データ」は、機械学習モデル14に入力された予測対象のデータであり、「出力結果」は、機械学習モデル14により予測された予測結果である。
図10の例では、機械学習モデル14にデータXを入力して、出力結果Xが取得されたことが示されている。
【0045】
制御部20は、情報処理装置10全体を司る処理部である。例えば、制御部20は、事前処理部21、運用処理部22、自動修復部30を有する。
【0046】
事前処理部21は、機械学習モデル14の運用前の事前処理として、機械学習モデル14を生成する。具体的には、事前処理部21は、訓練データDB13に記憶される各訓練データを用いた機械学習により、機械学習モデル14の各種パラメータを更新することで、機械学習モデル14を生成する。
【0047】
図11は、訓練データDBに記憶される訓練データの例を示す図である。
図11に示すように、事前処理部21は、訓練データDB13の訓練データ「データA1、ラベルA」を機械学習モデル14に入力し、機械学習モデル14の出力結果と正解ラベル「ラベルA」との誤差が小さくなるように、機械学習モデル14の機械学習を実行する。
【0048】
運用処理部22は、予測部23を有し、機械学習モデル14による予測を実行する。予測部23は、生成された機械学習モデル14を用いて予測を実行する。例えば、予測部23は、予測対象の運用データXを受信すると、運用データXを機械学習モデル14に入力して出力結果Xを取得する。そして、予測部23は、「運用データX」と「出力結果X」と対応付けて出力結果DB15に格納する。
【0049】
自動修復部30は、運用時に入力される運用データに応じて機械学習モデル14の精度劣化を自動的に修復する処理部である。この自動修復部30は、第1のデータ拡張部31、特徴抽出部32、クラスタリング部33、第2のデータ拡張部34、疑似ラベル設定部35、機械学習部36を有する。
【0050】
第1のデータ拡張部31は、運用データを拡張する処理部である。具体的には、第1のデータ拡張部31は、出力結果DB15に記憶された運用データを取得し、各運用データにデータ拡張を適用する。このようなデータ拡張は、元のデータに微小な変化を与えることより加工して別のデータとしてデータセットに加える技術、例えばTTAにより実現できる。ここで実行される微小な加工の例として、フリッピング(反転)、ガウシアンノイズ、拡大、あるいは縮小などが挙げられる。これらの加工のうち少なくともいずれか1つもしくは2つ以上を組み合わせることにより運用データが拡張される。このとき、機械学習モデル14に入力されるデータの種類に応じて加工の種類を適応的に選択できるのは言うまでもない。例えば、機械学習モデル14に入力される画像データがMNISTなどの数字データである場合、10種類のクラスのうちクラス6の数字「6」およびクラス9の数字「9」のデータ分布の密度ピークが重なるので、フリッピングは除外できる。
【0051】
このようなデータ拡張により、運用データが密である高密度領域、例えば
図6に示す破線の囲い部分が人工的に生成される。この結果、密度ベースクラスタリングにより得られるクラスタの規模を拡大できる。
【0052】
以下、出力結果DB15に記憶された運用データおよび第1のデータ拡張部31により運用データから拡張されたデータのラベルを区別する側面から、前者を指して「オリジナルデータ」と記載し、後者を指して「第1の拡張データ」と記載する場合がある。さらに、オリジナルデータおよび第1の拡張データの区別が必要ない場合、「運用データA」と記載する。
【0053】
特徴抽出部32は、第1のデータ拡張部31により拡張された運用データAの特徴抽出および特徴量空間への射影変換を実行する処理部である。このような特徴抽出および射影変換は、1つの側面として、機械学習モデル14とは別の機械学習モデル32Aにより実現することができる。
【0054】
例えば、機械学習モデル32Aは、機械学習モデル14が有する特徴抽出層と同一の層構造を有する特徴抽出層と、特徴抽出層から出力される特徴ベクトルを超球面の特徴量空間上へ埋め込む距離学習層とを有する。
【0055】
機械学習モデル32Aは、訓練データDB13に記憶された訓練データのデータセットを用いて、いわゆる距離計量学習を実行することにより訓練できる。例えば、距離計量学習では、入力空間における訓練サンプル間の類似度を特徴量空間における距離に対応させる変換が訓練される。すなわち、距離計量学習では、同じクラスに属する訓練サンプル同士の距離が近く、異なるクラスに属する訓練サンプル同士の距離が遠くなるように元の空間が歪められる。なお、「特徴量空間」は、射影空間の一例に対応し、距離空間、あるいは埋め込み空間と呼ばれる場合もある。
【0056】
このように訓練された機械学習モデル32Aが運用データAの特徴抽出および特徴量空間への射影変換に用いられる。すなわち、特徴抽出部32は、オリジナルデータと、第1のデータ拡張部31によるデータ拡張により得られた第1の拡張データを含む運用データAの各々を機械学習モデル32Aへ入力することにより機械学習モデル32Aが出力する埋め込みベクトルを運用データAごとに取得する。これにより、運用データAの特徴抽出および特徴量空間への射影変換が実現される。
【0057】
クラスタリング部33は、運用データAの特徴をクラスタリングする処理部である。例えば、クラスタリング部33は、特徴抽出部32により運用データごとに取得された埋め込みベクトルに基づいて運用データAの集合に密度ベースクラスタリングを適用する。これにより、機械学習モデル14の出力結果と同一のクラスに属する運用データAにより形成されるデータ群のうち、運用データAが密である高密度領域に位置する運用データAの集合がクラスタとして抽出される。
【0058】
第2のデータ拡張部34は、クラスタリング部33によるクラスタリングの結果として得られたクラスタに属しない運用データを拡張する処理部である。具体的には、第2のデータ拡張部34は、運用データAの集合のうち、クラスタリング部33によるクラスタリングの結果として得られたクラスタに属さない運用データにデータ拡張を適用する。ここで、第2のデータ拡張部34は、クラスタに属さない運用データの各々を拡張する例を挙げるが、クラスタ周りの運用データ、すなわちクラスタ外の近傍データに絞り込んでデータ拡張を実行することもできる。
【0059】
以下、クラスタに属さない運用データ及び第2のデータ拡張部34によりクラスタに属さない運用データから拡張されたデータのラベルを区別する場合、クラスタに属さない運用データから拡張されたデータを指して「第2の拡張データ」と記載する場合がある。
【0060】
疑似ラベル設定部35は、機械学習モデル14の再訓練用に疑似的な正解ラベルを設定する処理部である。1つの側面として、疑似ラベル設定部35は、クラスタリング部33によるクラスタリングの結果として得られたクラスタに属する運用データに当該クラスタに対応するクラスの疑似ラベルBを付与する。このような疑似ラベルBが付与される運用データには、オリジナルデータおよび第1の拡張データのいずれもが含まれ得る。他の側面として、疑似ラベル設定部35は、クラスタに属さない運用データのうち、クラスタに属する運用データから閾値以下の距離に位置する運用データに当該クラスタに対応するクラスの疑似ラベルCを付与する。この場合、クラスタに属さない運用データが第2の拡張データである場合、当該第2の拡張データの元となる運用データにも疑似ラベルCを付与する。このような疑似ラベルCが付与される運用データには、オリジナルデータ、第1の拡張データおよび第2の拡張データのいずれもが含まれ得る。
【0061】
機械学習部36は、機械学習モデル14の再訓練を実行する処理部である。具体的には、機械学習部36は、疑似ラベル設定部35により疑似ラベルBおよび疑似ラベルCが付与された運用データの集合を再訓練データセットとし、再訓練データセットを用いて、機械学習モデル14を再訓練する。例えば、機械学習部36は、再訓練データセットに含まれる再訓練データが入力された機械学習モデル14の出力と、疑似ラベルとから計算される損失、例えばクロスエントロピー誤差を機械学習モデル14に逆伝播する。これにより、機械学習モデル14の重みやバイアスなどのパラメータが再訓練される。
【0062】
図12は、実施例1にかかる自動修復処理の流れを示すフローチャートである。なお、
図12には、機械学習モデル14の再訓練のエポックがLoop数により設定される例を挙げたが、他のパラメータ更新の収束条件、例えば学習率などによりエポックが設定されることとしてもよい。
【0063】
図12に示すように、第1のデータ拡張部31は、出力結果DB15に記憶された運用データを取得する(S101)。その後、Loop回数が規定の回数Lに達するまで下記のステップS102から下記のステップS109までの処理を反復するループ処理1を実行する。
【0064】
すなわち、第1のデータ拡張部31は、ステップS101で取得された運用データにデータ拡張を適用する(S102)。続いて、特徴抽出部32は、ステップS101で取得されたオリジナルデータと、ステップS102のデータ拡張で得られた第1の拡張データを含む運用データAの各々を機械学習モデル32Aへ入力することにより機械学習モデル32Aが出力する埋め込みベクトルを運用データAごとに取得する(S103)。これにより、運用データAの特徴抽出および特徴量空間への射影変換が実現される。
【0065】
そして、クラスタリング部33は、ステップS103で運用データごとに取得された埋め込みベクトルに基づいて運用データAの集合に密度ベースクラスタリングを適用する(S104)。
【0066】
その後、疑似ラベル設定部35は、ステップS104のクラスタリング結果として得られたクラスタに属する運用データに当該クラスタに対応するクラスの疑似ラベルBを付与する(S105)。
【0067】
続いて、第2のデータ拡張部34は、運用データAの集合のうち、ステップS104のクラスタリング結果として得られたクラスタに属さない運用データにデータ拡張を適用する(S106)。
【0068】
そして、ステップS104のクラスタリング結果として得られたクラスタに属さない運用データの数Kに対応する回数の分、下記のステップS107および下記のステップS108の処理を反復するループ処理2が実行される。なお、ステップS107およびステップS108の処理が反復される例を挙げるが、ステップS107およびステップS108の処理は並列に実行されてもよい。
【0069】
すなわち、疑似ラベル設定部35は、クラスタに属さない運用データkと、クラスタに属する運用データのうち当該運用データkから最小距離に位置する運用データとの距離が閾値以下であるか否かを判定する(S107)。
【0070】
ここで、距離が閾値以下である場合(S107:Yes)、疑似ラベル設定部35は、クラスタに属さない運用データkに当該クラスタに対応するクラスの疑似ラベルCを付与する(S108)。なお、クラスタに属さない運用データkが第2の拡張データである場合、当該第2の拡張データの元となる運用データにも疑似ラベルCを付与することができる。
【0071】
このようなループ処理2が反復されることにより、クラスタに属さない運用データkのうちクラスタ周りの運用データであり、かつ第2のデータ拡張部34のデータ拡張により特徴量空間上でクラスタに属する運用データに十分に近づいた運用データに当該クラスタのラベルが伝播されることになる。
【0072】
その上で、機械学習部36は、ステップS105で疑似ラベルBが付与された運用データ及びステップS108で疑似ラベルCが付与された運用データの集合を再訓練データセットとし、再訓練データセットを用いて機械学習モデル14を再訓練する(S109)。
【0073】
このようなループ処理1が反復されることにより、機械学習モデル14のパラメータを出力結果DB15に記憶された運用データの分布のドリフトに対応する決定境界で入力データを分類可能なパラメータに収束させる再訓練が実現される。
【0074】
上述してきたように、実施例1にかかる情報処理装置10は、運用データが密である部分と密でない部分の各々にデータ拡張を適用し、射影空間上でクラスタに十分近づいたクラスタ外の運用/拡張データにクラスタのラベルを伝播させる機能を提供する。このようなラベルの伝播の結果、機械学習データの再訓練に用いる訓練データの数を増加させることができる。したがって、実施例1にかかる情報処理装置10によれば、機械学習モデルの精度劣化を抑制することができる。
【0075】
ここで、疑似ラベル付きの再訓練データセットにより再訓練される機械学習モデル14に対する精度劣化の検証結果を説明する。このような検証には、コンセプトドリフトが生じる運用データの変化の例として、
図13に示す運用データの変化に応じて再訓練が実施される場合を例に挙げる。
【0076】
図13は、運用データの変化の一例を示す模式図である。
図13には、機械学習モデル14のタスクの例として手書き数字の画像認識を例に挙げ、運用データの変化の例として、時間経過にしたがってMNISTに含まれる10000ピースの画像データの各々を特定の角度、例えば5度ずつ回転させる例を挙げる。このような回転は、カメラの回転に対応する運用データの変化に対応し、MNISTではクラス0からクラス9までの10種類のクラスが存在するので、1つのクラスにつき1000ピースの画像データが運用データの例として得られる。例えば、
図13には、MNISTに含まれる10000ピースの画像データの各々を回転させる様子が模式的に示されており、上から順に各画像データが10度回転された例、30度回転された例、95度回転された例が抜粋して示されている。なお、
図13には、運用データの変化の例として、カメラの回転を例に挙げるが、これに限定されない。例えば、運用データの変化の例として、カメラに傷がつく場合、ガウシアンフィルタなどによりガウシアンノイズを画像データに加えることとしてもよい。
【0077】
このような運用データの下、実施例1にかかる自動修復部30は、次に挙げる条件で自動修復を実行することとする。例えば、クラスタリング部33が実行する密度ベースクラスタリングのアルゴリズムとして、OPTICS(Ordering Points To Identify the Clustering Structure)が用いられる。さらに、特徴抽出部32により用いられる機械学習モデル32Aが超球平面への埋め込みをAdaCosにより実現される。
【0078】
図14は、効果の一側面を説明する図である。
図14には、グラフG11~グラフG14の4つのグラフが示されている。さらに、
図14に示すグラフG11~グラフG14の横軸は、MNISTの画像データを回転させる角度を指し、縦軸は、回転後の画像データに対する画像認識の正解率を指す。さらに、
図14に示すグラフG11~グラフG14には、機械学習モデル14の再訓練が実施されない場合の回転角度および正解率の関係が実線で示されている。
【0079】
例えば、
図14に示すグラフG11には、Self-Learningと呼ばれる既存技術を用いて機械学習モデル14の再訓練が実施される場合の回転角度および正解率の関係が破線で示されている。Self-Learningは、新規データに対して過去の学習モデルでラベル付け(=疑似ラベル)を行い、その疑似ラベルを用いた機械学習モデルで再訓練を行うSemi-supervised手法である。
【0080】
さらに、
図14に示すグラフG12には、
図4を用いて説明した従来の自動修復技術を用いて機械学習モデル14の再訓練が実施される場合の回転角度および正解率の関係が破線で示されている。例えば、グラフG12によれば、回転角度15度~40度で追従不可であることがわかる。
【0081】
さらに、
図14に示すグラフG13には、
図4を用いて説明した従来の自動修復技術および既存の転移学習を用いて機械学習モデル14の再訓練が実施される場合の回転角度および正解率の関係が破線で示されている。例えば、グラフG13によれば、回転角度50度程度で追従不可であることがわかる。
【0082】
さらに、
図14に示すグラフG14には、実施例1にかかる自動修復技術および既存の転移学習を用いて機械学習モデル14の再訓練が実施される場合の回転角度および正解率の関係が破線で示されている。例えば、グラフG14によれば、回転角度90度程度で追従不可であることがわかる。
【0083】
これらグラフG11~グラフG14を比較すれば、回転に追従可能な角度の範囲、並びに、各回転角度における正解率などを含む多面的な視点から、Self-Learningと呼ばれる既存技術や
図4を用いて説明した従来の自動修復技術に比べて実施例1にかかる自動修復技術が優位であることが明らかであると言える。
【0084】
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更されてもよい。
【0085】
また、各装置の構成要素の分散や統合の具体的形態は図示のものに限られない。例えば、事前処理部21と運用処理部22と自動修復部30とが統合されてもよい。つまり、その構成要素の全部または一部は、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合されてもよい。さらに、各装置の各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0086】
図15は、ハードウェア構成例を説明する図である。
図15に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図15に示した各部は、バス等で相互に接続される。
【0087】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図5に示した機能を動作させるプログラムやDBを記憶する。
【0088】
プロセッサ10dは、
図8に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図8等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、事前処理部21、運用処理部22、自動修復部30等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、事前処理部21、運用処理部22、自動修復部30と等と同様の処理を実行するプロセスを実行する。
【0089】
このように、情報処理装置10は、プログラムを読み出して実行することで機械学習方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、上記実施例が同様に適用されてもよい。
【0090】
このプログラムは、インターネットなどのネットワークを介して配布されてもよい。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行されてもよい。