IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7585915機械学習プログラム、機械学習方法および情報処理装置
<>
  • -機械学習プログラム、機械学習方法および情報処理装置 図1
  • -機械学習プログラム、機械学習方法および情報処理装置 図2
  • -機械学習プログラム、機械学習方法および情報処理装置 図3
  • -機械学習プログラム、機械学習方法および情報処理装置 図4
  • -機械学習プログラム、機械学習方法および情報処理装置 図5
  • -機械学習プログラム、機械学習方法および情報処理装置 図6
  • -機械学習プログラム、機械学習方法および情報処理装置 図7
  • -機械学習プログラム、機械学習方法および情報処理装置 図8
  • -機械学習プログラム、機械学習方法および情報処理装置 図9
  • -機械学習プログラム、機械学習方法および情報処理装置 図10
  • -機械学習プログラム、機械学習方法および情報処理装置 図11
  • -機械学習プログラム、機械学習方法および情報処理装置 図12
  • -機械学習プログラム、機械学習方法および情報処理装置 図13
  • -機械学習プログラム、機械学習方法および情報処理装置 図14
  • -機械学習プログラム、機械学習方法および情報処理装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】機械学習プログラム、機械学習方法および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241112BHJP
【FI】
G06N20/00
【請求項の数】 9
(21)【出願番号】P 2021048770
(22)【出願日】2021-03-23
(65)【公開番号】P2022147502
(43)【公開日】2022-10-06
【審査請求日】2023-12-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】井出 勝
(72)【発明者】
【氏名】横田 泰斗
【審査官】多賀 実
(56)【参考文献】
【文献】特開2020-113119(JP,A)
【文献】野村 和也 外3名,「Androidマルウェアの家系図作成」,情報処理学会シンポジウム コンピュータセキュリティシンポジウム 2020 [online],情報処理学会,2020年10月19日,pp.527-534,[検索日 2020.12.04], インターネット:<URL: https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=208502&file_id=1&file_no=1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数のデータを機械学習モデルに入力して得られる特徴量に基づく前記複数のデータの分布に応じた、クラスタの重心位置と分散量のうち少なくとも1つの値を算出し、
前記少なくとも1つの値と、過去に前記機械学習モデルに入力済みのデータを入力して得られた前記少なくとも1つの値に対応する過去の値とを比較し、
比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、
処理をコンピュータに実行させる機械学習プログラム。
【請求項2】
前記機械学習モデルの精度劣化が検出されたクラスタに基づいて、前記機械学習モデルの再訓練を制御する、
処理を前記コンピュータにさらに実行させる請求項1に記載の機械学習プログラム。
【請求項3】
前記算出する処理は、
前記特徴量に基づく前記複数のデータの分布に応じて複数のクラスタを生成し、
前記複数のクラスタそれぞれについて、前記重心位置と前記分散量のうち少なくとも1つの値を算出し、
前記比較する処理は、
前記複数のクラスタそれぞれについて、前記少なくとも1つの値と前記少なくとも1つの値に対応する過去の値とを比較し、
前記検出する処理は、
前記複数のクラスタそれぞれについて、前記比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、
処理を含む請求項2に記載の機械学習プログラム。
【請求項4】
前記検出する処理は、
前記複数のクラスタのうち、前記少なくとも1つの値と前記少なくとも1つの値に対応する過去の値との差分が閾値以上であるクラスタを検出し、
前記制御する処理は、
検出された前記クラスタに対応する訓練データを用いて、前記機械学習モデルの再訓練を実行する、
処理を含む請求項3に記載の機械学習プログラム。
【請求項5】
前記検出する処理は、
前記複数のクラスタのうち、前記少なくとも1つの値と前記少なくとも1つの値に対応する過去の値との差分が閾値以上であるクラスタを検出し、
前記制御する処理は、
検出された前記クラスタの重要度が閾値以上である場合に、前記クラスタに対応する訓練データを用いて、前記機械学習モデルの再訓練を実行し、前記クラスタの重要度が閾値未満である場合に、前記機械学習モデルの再訓練を抑制する、
処理を含む請求項3に記載の機械学習プログラム。
【請求項6】
前記算出する処理は、
前記クラスタの重心位置と分散量の両方を算出し、
前記比較する処理は、
前記クラスタの重心位置と前記過去の値とを比較した第1の比較結果、および、前記クラスタの分散量と前記過去の値とを比較した第2の比較結果を算出し、
前記検出する処理は、
前記第1の比較結果が閾値以上かつ前記第2の比較結果が閾値以上の場合に、前記機械学習モデルの精度劣化を検出する、
処理を含む請求項1から5のいずれか一つに記載の機械学習プログラム。
【請求項7】
前記算出する処理は、
前記クラスタの重心位置と分散量の両方を算出し、
前記比較する処理は、
前記重心位置を分散量で除算した値が所定の条件を満たすバッチサイズ経過後に、前記少なくとも1つの値と前記少なくとも1つの値に対応する過去の値とを比較を実行し、
前記検出する処理は、
前比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、
処理を含む請求項1から6のいずれか一つに記載の機械学習プログラム。
【請求項8】
複数のデータを機械学習モデルに入力して得られる特徴量に基づく前記複数のデータの分布に応じた、クラスタの重心位置と分散量のうち少なくとも1つの値を算出し、
前記少なくとも1つの値と、過去に前記機械学習モデルに入力済みのデータを入力して得られた前記少なくとも1つの値に対応する過去の値とを比較し、
比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、
処理をコンピュータが実行する機械学習方法。
【請求項9】
複数のデータを機械学習モデルに入力して得られる特徴量に基づく前記複数のデータの分布に応じた、クラスタの重心位置と分散量のうち少なくとも1つの値を算出し、
前記少なくとも1つの値と、過去に前記機械学習モデルに入力済みのデータを入力して得られた前記少なくとも1つの値に対応する過去の値とを比較し、
比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、
処理を実行する制御部を含む情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習モデルの訓練に関する。
【背景技術】
【0002】
様々な分野において、データの判定や分類機能などへの機械学習モデルの導入が進んでいる。機械学習モデルは、システム開発時に機械学習させた訓練データの通りに判定や分類を行うので、システム運用中に入力データの傾向が変化するコンセプトドリフトが発生すると、機械学習モデルの精度が劣化する。
【0003】
このようなことから、機械学習モデルの精度劣化を検出する様々な技術が知られている。例えば、機械学習モデルの特徴空間を用いて、入力データの分布を監視し、入力データの分布が機械学習モデルの決定境界を跨いだ場合に、機械学習モデルの精度劣化を検出する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-113119号公報
【文献】特表2005-523534号公報
【文献】米国特許出願公開第2009/0106178号明細書
【文献】米国特許出願公開第2018/0285691号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記技術では、機械学習モデルの精度低下の予兆を検出することが難しい。例えば、上記技術は、実際にコンセプトドリフトが発生し、入力データの分布が決定境界を跨ぐまで精度劣化を検出することができないので、精度劣化が発生している状態を放置する時間が発生することがある。
【0006】
一つの側面では、機械学習モデルの精度劣化の予兆を検出することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、機械学習プログラムは、複数のデータを機械学習モデルに入力して得られる特徴量に基づく前記複数のデータの分布に応じた、クラスタの重心位置と分散量のうち少なくとも1つの値を算出する処理をコンピュータに実行させる。機械学習プログラムは、前記少なくとも1つの値と、過去に前記機械学習モデルに入力済みのデータを入力して得られた前記少なくとも1つの値に対応する過去の値とを比較し、比較の結果に応じて、前記機械学習モデルの精度劣化を検出する、処理をコンピュータに実行させる。
【発明の効果】
【0008】
一実施形態によれば、機械学習モデルの精度劣化の予兆を検出することができる。
【図面の簡単な説明】
【0009】
図1図1は、実施例1にかかる情報処理装置を説明する図である。
図2図2は、参考技術1を説明する図である。
図3図3は、参考技術1の問題点1を説明する図である。
図4図4は、参考技術1の問題点2を説明する図である。
図5図5は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
図6図6は、生成された機械学習モデルの状態を説明する図である。
図7図7は、精度劣化の予兆検出を説明する図である。
図8図8は、精度劣化の予兆検出処理の流れを示すフローチャートである。
図9図9は、検証内容を説明する図である。
図10図10は、重心位置の検証結果を説明する図である。
図11図11は、分散量の検証結果を説明する図である。
図12図12は、特定クラスタの精度劣化の予兆検出を説明する図である。
図13図13は、収束判断を説明する図である。
図14図14は、機械学習モデルの再訓練を説明する図である。
図15図15は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示する機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0011】
図1は、実施例1にかかる情報処理装置10を説明する図である。図1に示す情報処理装置10は、入力データのコンセプトドリフトなどによる機械学習モデルの精度劣化の予兆を検出するコンピュータ装置の一例である。
【0012】
ここで、機械学習モデルの精度劣化の検出に関する参考技術を説明する。図2は、参考技術1を説明する図である。ここでは、機械学習モデルが生成する入力データの特徴量として、2次元の特徴量を用いて説明するが次元数等を限定するものではない。図2に示すように、参考技術1では、開発段階においては、入力データを正例(リスク低)または負例(リスク高)に分類できるように、機械学習モデルが生成される。すなわち、2次元の特徴空間において、決定境界により入力データの分布が明確に分類できる状態の機械学習モデルが生成される。
【0013】
運用段階において、開発段階と同種の入力データが入力される状態では、機械学習モデルは、入力データを正確に分類できるので、分類精度も閾値を下回らない、すなわち特徴量も決定境界を跨らない。その後、入力データの傾向の変化が発生し、特徴空間上で右上(右下)へ分布がシフトして、決定境界を跨いでいる。このとき、機械学習モデルの分類精度が閾値を下回るので、精度劣化と判定される。すなわち、コンセプトドリフト発生により、機械学習時とは異なる入力データの分類が要求されることとなり、分類精度が劣化する。
【0014】
その後、参考技術1では、分類精度が劣化した機械学習モデルの再訓練を実行することで、入力データを正例(リスク低)または負例(リスク高)に分類できる機械学習モデルが生成される。すなわち、決定境界を再度生成しなおした機械学習モデルが生成される。
【0015】
このように、参考技術1では、分類精度が閾値を下回るか否か(特徴量が決定境界を跨ぐか否か)により、機械学習モデルの再訓練タイミングを特定するが、別の手法としては特徴空間をクラスタリングすることで、精度劣化の予兆を検出することも考えられる。例えば、特徴空間において、正例のクラスタであるクラスAの中心と負例のクラスタであるクラスBの中心との距離が、開発時(学習時)より閾値以上離れた場合に、精度劣化の予兆と検出する手法が知られている。しかし、この手法では、コンセプトドリフトが発生した場合でも中心間の距離が変わらない場合があり、精度劣化の予兆を放置する時間が発生することもある。
【0016】
図3は、参考技術1の問題点1を説明する図である。図3に示すように、決定境界を跨がなくとも、特徴量の分布のばらつきは変化することがあり、このとき精度は下がらないので、管理者等は精度劣化に気が付かず劣化を放置することになる。すなわち、参考技術1では、クラスタの中心距離しか見ていないので、分布がバラついてきた場合、決定境界を跨ぐまで精度が劣化しないと、精度劣化が検知できず、劣化を放置することになる。つまり、精度のみを監視するために、決定境界を跨ぐ以外の現象が起きても検出できない。
【0017】
さらに、参考技術1では、運用段階において特徴空間で離れていくデータについては、機械学習モデルの分類精度に変化がないので、精度劣化を検出できない。図4は、参考技術1の問題点2を説明する図である。図4に示すように、参考技術1では、決定境界を跨らないと精度劣化を検出できないので、正例のクラスタであるクラスAと負例のクラスタであるクラスBとが離れていく場合には、精度劣化と判定することができない。
【0018】
そこで、実施例1にかかる情報処理装置10は、特徴量の密度と中心距離だけを監視するのではなく、特徴空間における「クラスタの重心位置」や「クラスタの分散量」を監視することで、機械学習モデルの精度劣化の予兆を検出する。
【0019】
具体的には、図1に示すように、情報処理装置10は、訓練データを用いて機械学習モデルを生成する。そして、情報処理装置10は、訓練が完了すると、機械学習モデルの特徴空間において、入力データの特徴量を用いて、正例のクラスAと負例のクラスBとを生成する。そして、情報処理装置10は、正例のクラスAの重心位置A1およびクラスAの分散量A2を取得して保持する。
【0020】
その後、情報処理装置10は、生成された機械学習モデルを用いて入力データの分類を実行する。このとき、情報処理装置10は、所定間隔で、特徴空間における正例のクラスAの重心位置A1´やクラスAの分散量A2´を取得する。そして、情報処理装置10は、重心位置A1から重心位置A1´への移動距離や、分散量A2と分散量A2´との差分などにより、精度劣化の予兆検出を実行する。このようにして、情報処理装置10は、精度劣化が発生する前に、精度劣化の予兆を検出することができる。
【0021】
図5は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図5に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。なお、情報処理装置10は、図示したものに限らず、表示部などを有していてもよい。
【0022】
通信部11は、他の装置との間の通信を実行する。例えば、通信部11は、入力データを受信する。また、通信部11は、管理者が利用する管理者端末から各種指示やデータを受信し、管理者端末に精度劣化の予兆検出の結果を送信する。
【0023】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する。例えば、記憶部12は、訓練データDB13、機械学習モデル14などを記憶する。
【0024】
訓練データDB13は、機械学習モデルの機械学習に利用される複数の訓練データを記憶するデータベースである。例えば、訓練データDB13は、正解情報であるラベルが付与された教師あり学習用のラベル付き訓練データであってもよく、教師なし学習用のラベル無し訓練データであってもよく、機械学習モデル14の機械学習手法により任意に選択することができる。例えば、訓練データDB13は、画像分類などの機械学習モデル14を生成する場合には、訓練データとして、ラベル「犬」が付与された画像データやラベル「猫」が付与された画像データなどを記憶する。
【0025】
機械学習モデル14は、機械学習により生成されるモデルである。例えば、機械学習モデル14は、ディープニューラルネットワーク(DNN:Deep Neural Network)などを用いたモデルであり、ニューラルネットワークや他の機械学習アルゴリズムを採用することができる。なお、機械学習モデル14は、他の装置で生成されたものでもよい。
【0026】
制御部20は、情報処理装置10全体を司る処理部である。例えば、制御部20は、生成部21、分類部22、検出部23、再訓練部24を有する。
【0027】
生成部21は、機械学習モデル14を生成する。例えば、生成部21は、訓練データDB13に記憶される各訓練データを用いた機械学習により、機械学習モデル14の各種パラメータの最適化を実行して、機械学習モデル14を生成する。
【0028】
図6は、生成された機械学習モデル14の状態を説明する図である。図6の(a)に示すように、生成部21は、機械学習モデル14が生成されると、複数の訓練データを機械学習モデル14に入力して得られる特徴量に基づく複数の訓練データの分布に応じた、クラスタの重心位置と分散量のうち少なくとも1つの値を算出する。
【0029】
例えば、機械学習過程で機械学習モデル14が訓練データから生成する特徴量の分布である特徴空間において、正例(リスク低)と負例(リスク高)とを分類できる決定境界(分類境界)などが決定される。以降の説明では、図6の(b)に示すように簡略化することがある。なお、ここでは、正例がリスク低、負例がリスク高の例を図示しているが、あくまで一例であり、他の分類を適用することもできる。
【0030】
ここで、生成部21は、生成された機械学習モデル14の特徴空間に関する情報を算出または取得する。例えば、生成部21は、機械学習モデル14の特徴空間に対してクラスタリングを実行し、正例のクラスAと負例のクラスBとを生成する。そして、生成部21は、正例のクラスAの重心位置A1や分散量A2を算出して記憶部12に格納し、負例のクラスBの重心位置B1や分散量B2を算出して記憶部12に格納する。なお、特徴空間は、生成部21が機械学習モデル14から特徴量を取得して生成することもできる。
【0031】
分類部22は、入力データに対する分類を実行する。例えば、分類部22は、入力データを取得すると、入力データを機械学習モデル14に入力し、機械学習モデル14の出力に応じて、入力データを正例または負例に分類する。なお、分類部22は、分類結果を記憶部12に格納し、ディスプレイ等の表示することもできる。
【0032】
検出部23は、機械学習モデル14の精度劣化の予兆を検出する。具体的には、検出部23は、分類部22により入力データの分類が実行されると、生成部21と同様、機械学習モデル14が入力データから生成する特徴量を取得し、特徴量の分布である特徴空間において、クラスタリングを実行する。そして、検出部23は、特徴空間における正例または負例のクラスの重心位置または分散量を算出する。その後、検出部23は、運用開始時の特徴空間における正例または負例のクラスの重心位置または分散量と、運用開始後の特徴空間における正例または負例のクラスの重心位置または分散量との比較により、機械学習モデル14の精度劣化の予兆を検出する。
【0033】
図7は、精度劣化の予兆検出を説明する図である。運用開始時の特徴空間のクラスリング結果が図7の(a)に示されており、図7の(b)および(c)が運用開始後のクラスタリングの結果である。図7の(a)に示すように、運用開始時は、特徴空間における決定境界を境に、クラスAとクラスBが明確に区別されている。検出部23は、このときの正例のクラスAの重心位置A1や分散量A2を記憶部12等から取得する。
【0034】
その後、検出部23は、運用開始後のクラスAの重心位置が図7の(b)に示すようにA1からA1´に移動したことを検出すると、A1からA1´への変化量を算出する。そして、検出部23は、変化量が閾値以上の場合に、精度劣化の予兆を検出する。
【0035】
また、検出部23は、運用開始後のクラスAの分散量が図7の(c)に示すようにA2からA2´に変化したことを検出すると、A2とA2´との変化量(差分)を算出する。そして、検出部23は、差分が閾値以上の場合に、精度劣化の予兆を検出する。
【0036】
なお、ここでは、正例のクラスAにおける重心位置の変化量や分散量の変化量を用いて、精度劣化の予兆を検出する例を説明したが、負例のクラスBの重心位置等を用いた同様の処理により検出することができる。また、検出するタイミングは、入力データの分類が行われるたびでもよく、所定数の入力データが分類されたタイミングでもよく、運用開始から所定時間経過後でもよく、管理者等がスケジュール等で設定してもよく、機械学習が収束したタイミングでもよく、任意にタイミングで実行することができる。
【0037】
再訓練部24は、精度劣化の予兆が検出された場合に、機械学習モデル14の再訓練を実行する。例えば、再訓練部24は、検出部23により精度劣化の予兆が検出されると、再訓練用の訓練データを用いて機械学習モデル14の再訓練を実行して、機械学習モデル14の各種パラメータを更新する。
【0038】
このとき、再訓練部24は、正例であるクラスAについて精度劣化の予兆が検出された場合は、クラスAに対応するラベルが付与された再訓練用の訓練データのみを用いて、機械学習モデル14の再訓練を実行することもできる。
【0039】
なお、再訓練用の訓練データは、予め記憶部12に格納しておくことができる。また、再訓練部24は、管理者等に再訓練用の訓練データの要求を送信したり、ディスプレイ等に表示したりして、管理者等からの入力により再訓練用の訓練データを取得することもできる。また、再訓練部24は、再訓練用の訓練データを記憶するサーバなどにアクセスして、該当する再訓練用の訓練データを取得することもできる。
【0040】
図8は、精度劣化の予兆検出処理の流れを示すフローチャートである。ここでは、機械学習モデル14は生成済みの例で説明する。図8に示すように、分類部22は、処理開始が指示されると(S101:Yes)、生成部21により生成された、機械学習完了後(運用開始時)の特徴量の重心位置と分散量を取得する(S102)。
【0041】
続いて、分類部22は、入力データを取得し(S103)、機械学習モデル14に入力して分類を実行する(S104)。そして、検出部23は、特徴量の重心位置を算出し(S105)、特徴量の分散量を算出する(S106)。なお、S105とS106は、順不同である。
【0042】
ここで、検出部23は、運用開始時から運用開始後の重心位置の変化量が閾値未満の場合(S107:No)、または、運用開始時から運用開始後の分散量の変化量が閾値未満の場合(S108:No)、精度劣化の予兆がないと判定し、S103以降が繰り返される。
【0043】
一方、検出部23は、運用開始時から運用開始後の重心位置の変化量が閾値以上の場合(S107:Yes)、または、運用開始時から運用開始後の分散量の変化量が閾値以上の場合(S108:Yes)、精度劣化の予兆を検出する(S109)。その後、再訓練部24は、機械学習モデル14の再訓練を実行する(S110)。
【0044】
上述したように、情報処理装置10は、決定境界を跨ぐかどうかの精度監視だけでなく、特徴空間における「クラスの重心位置」や「クラスの分散量」を監視することで、精度が低下する前に分布の変化を検知でき、劣化予兆を実行することができる。
【0045】
ここで、実施例1による検証結果を説明する。図9は、検証内容を説明する図である。ここでは、機械学習モデル14として画像分類モデルを生成し、訓練に用いたデータセットにノイズを与え、分散量と重心座標(重心位置)がどのように変化するか確認する。データセットとしては、乗り物や動物などのラベル付きの6万枚のカラー写真であるCIFAR10を採用し、バッチサイズは、20とする。つまり、CIFAR10から20枚の画像データをランダムに読み込み、その20枚に対して推論を実行して、特徴空間にプロットされる点も20個とする。
【0046】
また、重心座標にはCoGの算出式を採用する。具体的には、情報処理装置10は、10次元データから第1成分、第2成分のみを抽出し、出力20個をプロットする。なお、情報処理装置10は、質量を加味しない式として、式(1)を用いて、n個の第1成分(x)の平均値とn個の第2成分(y)の平均値を重心位置として算出する。
【0047】
【数1】
【0048】
また、分散量(分散値)は、Varianceの算出式を採用する。具体的には、情報処理装置10は、主成分分析PCAにより10から2次元データに次元削減し、20プロットから分散量を算出する。例えば、情報処理装置10は、X座標の標準偏差とY座標の標準偏差の平均値を、式(2)を用いて算出する。
【0049】
【数2】
【0050】
図9に示すように、情報処理装置10は、訓練データを用いて、画像分類モデルを生成する。続いて、情報処理装置10は、訓練データに対して、左右反転、黒窓挿入、グレースケール、コントラスト変更、歪み追加などを行ったノイズデータを含む入力データを生成する。そして、情報処理装置10は、入力データを画像分類モデルに入力して入力データを分類する。
【0051】
ここで、情報処理装置10は、出力結果について、torch.tensor型をndarray型に変換し、ndarray型をpd.DataFrame型に変換した後、10次元データから第1成分と第2成分のみ抽出する。その後、情報処理装置10は、出力(重心座標、分散量)として、ノイズあり時の特徴空間における特徴量分布の重心座標と分散量、および、ノイズなし時の特徴空間における特徴量分布の重心座標と分散量を算出する。
【0052】
図10は、重心位置の検証結果を説明する図である。図10に示すように、ノイズがない訓練データに該当するソース画像の重心位置と、画像回転させたノイズデータの重心位置、黒窓挿入したノイズデータの重心位置、グレースケールに変更したノイズデータの重心位置、左右反転させたノイズデータの重心位置、画像回転させたノイズデータの重心位置、照度を変更したノイズデータの重心位置とのそれぞれとを比較する。その比較結果により、ノイズがない場合の重心位置とノイズがある場合の重心位置とが一致していないことから、ノイズの有無で重心位置が変化することがわかり、重心位置の比較が精度劣化の予兆検出に有効であることが検証できた。
【0053】
図11は、分散量の検証結果を説明する図である。図11に示すように、黒窓挿入(RandomErasing)により、ノイズ強度を2段階増加させると、精度が落ちるにしたがって分散が増加していることが検証された。この結果、分散量の比較が精度劣化の予兆検出に有効であることが検証できた。
【0054】
また、実施例1による手法を実行することで、クラス数が多い場合であっても、特定のクラスの精度劣化を検出することができる。上述した参考技術では、100クラス分類問題の場合、特定の1クラスのみ精度低下が発生してそのクラスの正解率が0%になっても、全体の精度には、最大で1%程度しか影響しない。そのため、全体の精度が1%しか下がらず、精度の監視も誤差の範囲内になってしまうので、特定クラスの精度低下を検出できない。
【0055】
これに対して、実施例1にかかる情報処理装置10は、各クラスの分布の重心点の位置の変化と、分散量の変化を監視するので、クラス数が多い分類問題でも、特定クラスの精度低下を検知することができる。図12は、特定クラスタの精度劣化の予兆検出を説明する図である。図12に示すように、情報処理装置10は、4つのクラス分類問題において、クラスAに分散量の変化を検出し、クラスCに重心移動の変化を検出すると、クラスAとクラスCのみについて精度劣化の予兆発生と検出することができる。このように、情報処理装置10は、各クラスについて重心移動や分散量の変化を監視することができるので、どのクラスに精度劣化が発生したかを検出できる。また、情報処理装置10は、精度劣化の予兆が検出された特定のクラスのみについて再訓練を実行できるので、無用な再訓練を抑制し、再訓練の時間を短縮することができる。
【0056】
さらに、情報処理装置10は、クラス(クラスタ)の重心位置と分散量を算出するときに、サンプル数であるバッチサイズを適切に設定することで、より精度向上を図ることができる。ここでは、それぞれの値を算出する最適なバッチサイズはデータ対象によって、様々であることから、上記情報処理装置10が、バッチサイズごとに重心位置と分散量を算出し、同時に収束した点を基にバッチサイズを決定する例を説明する。
【0057】
図13は、収束判断を説明する図である。図13では、上記検証における黒窓のノイズP=0.5の場合に、バッチサイズによる収束グラフを示している。なお、横軸は、バッチサイズであり、縦軸は、「重心位置/分散量」の算出結果である。図13に示すように、収束と判断する条件としては各ステップ前後の変化比であり、「1ステップの前後比が0.8以上」が50バッチ以上続いた場合に収束したと判断する。図13の例では、情報処理装置10は、1000バッチ付近が最適と決定し、1000バッチの処理が終了した時点から重心位置や分散量による精度劣化の判定を実行する。
【0058】
また、機械学習モデル14の生成には、訓練データによる訓練と検証データによる精度検証とを繰り返すことが知られている。ここでは、訓練中に、機械学習がある程度進んだ段階であっても、特定のクラスのみを再訓練することで、精度の高い機械学習モデル14を生成する例を説明する。
【0059】
図14は、機械学習モデル14の再訓練を説明する図である。図14に示すように、情報処理装置10は、訓練データを用いて機械学習モデルの訓練を実行して、訓練がある程度進んだ状態の機械学習モデル14を生成する(S201)。
【0060】
続いて、情報処理装置10は、検証データを機械学習モデル14に入力して、機械学習モデル14の精度検証を実行する(S202)。なお、精度検証は、一般的な手法を用いることができる。
【0061】
そして、情報処理装置10は、検証データに対する機械学習モデル14の出力データを記憶し(S203)、重心位置と分散量を用いて、バッチサイズによる収束を決定する(S204)。
【0062】
その後、情報処理装置10は、バッチサイズにより収束したと判定した場合に、特徴空間における各クラスの重心位置の変化量や分散量の変化にしたがって、再訓練が必要か否かを判定する(S205)。
【0063】
例えば、情報処理装置10は、実施例1による手法を用いて、重心位置の変化量が閾値以上のクラスを検出した場合、分散量の変化量が閾値以上のクラスを検出した場合、または、重心位置の変化量および分散量の変化量がともに閾値以上のクラスを検出した場合に、再訓練が必要と判定する。
【0064】
ここで、情報処理装置10は、再訓練が不要であると判定した場合(S205:No)、処理を終了する。一方、情報処理装置10は、再訓練が必要であると判定した場合(S205:Yes)、再訓練の制御パラメータを決定し(S206)、機械学習モデル14の再訓練を実行する(S207)。
【0065】
例えば、情報処理装置10は、制御パラメータとして、重み変更、制御変更、訓練変更、または、訓練の絞り込みなどを実行する。具体的には、情報処理装置10は、重み変更として、精度劣化が発生した特定クラスの訓練データのみにバイアスをかけ、全体的な制御をそのままに精度低下を抑えて再訓練を実行することができる。
【0066】
また、情報処理装置10は、制御変更として、精度劣化が発生した特定クラスの重要度(クラス種別)によって、再訓練が必要と判定したのみ、再訓練を実行し、再訓練が必要ではない判定した場合は、再訓練を抑制することができる。この結果、情報処理装置10は、再訓練の必要性に応じて適切な訓練を実行することができる。なお、各クラスの重要度や各クラス種別の重要度などは、機械学習前に予め定義しておくことができる。
【0067】
また、情報処理装置10は、訓練変更として、精度劣化が発生した特定クラスが再訓練の必要がないクラスである場合、ブランクデータと判断し、当該クラスの訓練データを廃棄することができる。この結果、情報処理装置10は、無用な訓練を抑制することで、機械学習モデル14の精度を維持しつつ、訓練時間を短縮することができる。
【0068】
また、情報処理装置10は、訓練の絞り込みとして、精度劣化が発生した特定クラスのみ、当該特定クラスに対応する訓練データを用いて訓練を実行することができる。この結果、情報処理装置10は、効率的な再訓練を実行することができる。なお、上述した再訓練には、訓練時とは異なる再訓練用のデータを用いることができる。
【0069】
上記実施例で用いたデータ例、数値例、閾値、クラス数、特徴空間の次元数、具体例等は、あくまで一例であり、任意に変更することができる。例えば、情報処理装置10は、重心位置または分散量のいずれか一方のみを監視することもでき、両方を監視することもできる。また、クラスは、クラスタの一例である。また、訓練データや入力データとしては、画像データ、音声データ、時系列データなどを用いることができ、機械学習モデル14は、画像分類や各種分析などにも用いることができる。また、機械学習モデル14は、DNN(Deep Neural Network)やCNN(Convolution Neural Network)などのモデルを採用することができる。
【0070】
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0071】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0072】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0073】
図15は、ハードウェア構成例を説明する図である。図15に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図15に示した各部は、バス等で相互に接続される。
【0074】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、図5に示した機能を動作させるプログラムやDBを記憶する。
【0075】
プロセッサ10dは、図5に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図5等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、生成部21、分類部22、検出部23、再訓練部24等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、生成部21、分類部22、検出部23、再訓練部24等と同様の処理を実行するプロセスを実行する。
【0076】
このように、情報処理装置10は、プログラムを読み出して実行することで機械学習方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0077】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0078】
10 情報処理装置
11 通信部
12 記憶部
13 訓練データDB
14 機械学習モデル
20 制御部
21 生成部
22 分類部
23 検出部
24 再訓練部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15