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

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

▶ 富士通株式会社の特許一覧

特許7593115機械学習プログラム、機械学習方法及び機械学習装置
<>
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図1
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図2
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図3
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図4
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図5A
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図5B
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図6
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図7
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図8
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図9
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図10
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図11
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図12
  • 特許-機械学習プログラム、機械学習方法及び機械学習装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】機械学習プログラム、機械学習方法及び機械学習装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241126BHJP
【FI】
G06N20/00 130
【請求項の数】 7
(21)【出願番号】P 2021000550
(22)【出願日】2021-01-05
(65)【公開番号】P2022105916
(43)【公開日】2022-07-15
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】成田 顕一郎
【審査官】福西 章人
(56)【参考文献】
【文献】特開2020-146433(JP,A)
【文献】国際公開第2016/151618(WO,A1)
【文献】特表2018-513490(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
第1の機械学習モデルのパラメータを更新することによって生成された一又は複数の機械学習モデルのうち第2の機械学習モデルへ第1データを入力して、前記第2の機械学習モデルが算出した前記第1データの特徴量の第1の分布を特定し、
前記第1の分布と、前記一又は複数の機械学習モデルのそれぞれが生成される際のパラメータの更新に使用された訓練データについて、前記一又は複数の機械学習モデルのそれぞれが算出した前記訓練データの特徴量の分布とを比較し、
前記比較の結果に基づいて、前記一又は複数の機械学習モデルから特定の機械学習モデルを選択し、
前記第1データの特徴量に基づいてラベル付けされた特定の訓練データに基づいて、前記特定の機械学習モデルのパラメータを更新することによって、新しい機械学習モデルを生成する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記比較する処理は、前記一又は複数の機械学習モデルを含むモデル情報を参照することによって実行され、
前記新しい機械学習モデルを前記特定の訓練データの特徴量の分布と対応付けて前記モデル情報に追加する処理をさらに前記コンピュータに実行させる、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
前記第1の分布は、前記第1データを前記第2の機械学習モデルに入力して得られた判定結果と、前記第1データの特徴量とに基づいて前記第1データをクラスタリングすることによって作成したクラスタの中心座標及び密度を含み、
前記比較する処理は、前記第1の分布の中心座標及び密度と、前記一又は複数の機械学習モデルのそれぞれに対応付けられたクラスタの中心座標及び密度とを比較する処理を含む、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項4】
特定された前記第1の分布に基づいて前記第2の機械学習モデルの出力精度が劣化したか否かを判定する処理をさらに前記コンピュータに実行させ、
前記比較する処理は、前記判定する処理により前記第2の機械学習モデルが劣化したと判定された場合に、実行される、ことを特徴とする請求項1、2又は3に記載の機械学習プログラム。
【請求項5】
前記機械学習モデルは、ニューラルネットワークを含み、
前記特徴量は、前記ニューラルネットワークの出力層のニューロンが出力する値である、
ことを特徴とする請求項1~4のいずれか1つに記載の機械学習プログラム。
【請求項6】
第1の機械学習モデルのパラメータを更新することによって生成された一又は複数の機械学習モデルのうち第2の機械学習モデルへ第1データを入力して、前記第2の機械学習モデルが算出した前記第1データの特徴量の第1の分布を特定し、
前記第1の分布と、前記一又は複数の機械学習モデルのそれぞれが生成される際のパラメータの更新に使用された訓練データについて、前記一又は複数の機械学習モデルのそれぞれが算出した前記訓練データの特徴量の分布とを比較し、
前記比較の結果に基づいて、前記一又は複数の機械学習モデルから特定の機械学習モデルを選択し、
前記第1データの特徴量に基づいてラベル付けされた特定の訓練データに基づいて、前記特定の機械学習モデルのパラメータを更新することによって、新しい機械学習モデルを生成する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項7】
第1の機械学習モデルのパラメータを更新することによって生成された一又は複数の機械学習モデルのうち第2の機械学習モデルへ第1データを入力して、前記第2の機械学習モデルが算出した前記第1データの特徴量の第1の分布を特定し、
前記第1の分布と、前記一又は複数の機械学習モデルのそれぞれが生成される際のパラメータの更新に使用された訓練データについて、前記一又は複数の機械学習モデルのそれぞれが算出した前記訓練データの特徴量の分布とを比較し、
前記比較の結果に基づいて、前記一又は複数の機械学習モデルから特定の機械学習モデルを選択し、
前記第1データの特徴量に基づいてラベル付けされた特定の訓練データに基づいて、前記特定の機械学習モデルのパラメータを更新することによって、新しい機械学習モデルを生成する制御部
を含むことを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラム、機械学習方法及び機械学習装置に関する。
【背景技術】
【0002】
訓練データを用いて作成された機械学習モデルに基づいて分類、予測などを行う場合、運用開始後に、コンセプトドリフトにより、精度の劣化が発生することがある。ここで、コンセプトドリフトとは、機械学習モデルを訓練する際に使われていた訓練データと運用開始後に入力されるデータとのあいだでデータ分布の変化が生じることである。
【0003】
図12は、コンセプトドリフトを説明するための図である。図12に示すように、コンセプトドリフトには、突然ドリフト(Sudden Drift)、段階的ドリフト(Gradual Drift)及び漸進的ドリフト(Incremental Drift)がある。突然ドリフトは、データの分布が突然変わるドリフトである。段階的ドリフトは、データの分布が段階的に変わるドリフトである。漸進的ドリフトは、データの分布が漸進的に変わるドリフトである。コンセプトドリフトの中で漸進的ドリフトはデータが少しずつ変化するため特に検出が難しい。
【0004】
データの分布の経年変化による機械学習モデルの精度低下を防ぐため、定期的に機械学習モデルの再訓練が行われる。ただし、システムにて運用中の運用モデル自体を再訓練により更新することは、システムの安定的な運用を考慮すると現実的ではない。そこで、運用モデルと並列に更新モデルを用意することが行われる。初期の更新モデルは、運用モデルをコピーすることで作成される。更新モデルは、コンセプトドリフトに対応するように更新される。更新モデルの更新は、例えば定期的に行われ、複数の更新モデルが時系列で生成されてもよい。そして、適宜、運用モデルを更新モデルに置き換えることによって、精度劣化が抑制される。
【0005】
なお、従来技術として、自動化プロセスのコンテキストを含むプロセスデータによってトレーニングされる自動化システムのための機械学習モデルに関し、コンセプトドリフトがある場合に、学習モデルをポストドリフトプロセスデータで再トレーニングする技術がある。
【0006】
また、ストリーム処理において入力データの性質変化により学習モデルが更新される場合に、入力データと学習モデルとのタイミングの不整合が生じることで学習モデルを用いた予測処理結果の精度が低下することを防止する従来技術がある。ここで、ストリーム処理とは、リアルタイムの入力データに対してタイムリーに処理結果を返す処理である。
【0007】
また、従来技術として、トレーニングデータセットのデータ分布を計算し、計算したデータ分布に新しいデータが従う尤度を計算し、計算した尤度が第1の閾値よりも小さい回数が第2の閾値を超えた場合に機械学習モデルを再トレーニングする技術がある。
【先行技術文献】
【特許文献】
【0008】
【文献】特表2018-513490号公報
【文献】特開2017-068710号公報
【文献】米国特許出願公開第2018/0285772号明細書
【発明の概要】
【発明が解決しようとする課題】
【0009】
運用モデルに対して運用中のデータに基づいてモデルのパラメータが更新された更新モデルを用意しておき、コンセプトドリフトにより運用モデルの精度が劣化した場合に更新モデルへ切り替えることによって、精度劣化を抑制することができる。その際、コンセプトドリフトに追従するためには、より新しいデータに基づいて更新を行う方がよい。したがって、最新のデータに基づいて更新モデルを更新し、更新した更新モデルで運用モデルを置き換えることが行われる。しかしながら、更新モデルの更新処理に時間がかかると、精度が劣化した運用モデルを使用し続けるという問題がある。
【0010】
図13は、更新モデルの更新処理に時間がかかることで精度が劣化した運用モデルを使用し続ける問題を説明するための図である。図13は、リアルタイムに画像を判定する場合を示す。図13に示すように、運用モデルに基づいて、入力センサからの画像データに対して、リアルタイム画像判定が行われる。
【0011】
運用モデルの精度が落ちると、更新モデルの更新が開始され、運用中に更新モデルの更新が行われる。そして、何回かの更新モデルの更新が行われた後、運用モデルの更新が決定されると、最後に更新モデルが更新され、最後に更新された更新モデルで運用モデルが更新される。ただし、更新モデルの更新に時間がかかると、最後の更新モデルの更新が完了して運用モデルが更新されるまでは更新前の運用モデルの使用が継続される。
【0012】
本発明は、1つの側面では、更新モデルの更新時間を短縮することを目的とする。
【課題を解決するための手段】
【0013】
1つの態様では、機械学習プログラムは、コンピュータに、第1の機械学習モデルのパラメータを更新することによって生成された一又は複数の機械学習モデルのうち第2の機械学習モデルへ第1データを入力する処理を実行させる。そして、前記機械学習プログラムは、前記コンピュータに、前記第2の機械学習モデルが算出した前記第1データの特徴量の第1の分布を特定する処理を実行させる。そして、前記機械学習プログラムは、前記コンピュータに、前記第1の分布と、前記一又は複数の機械学習モデルのそれぞれが生成される際のパラメータの更新に使用された訓練データについて、前記一又は複数の機械学習モデルのそれぞれが算出した前記訓練データの特徴量の分布とを比較する処理を実行させる。そして、前記機械学習プログラムは、前記コンピュータに、前記比較の結果に基づいて、前記一又は複数の機械学習モデルから特定の機械学習モデルを選択する処理を実行させる。そして、前記機械学習プログラムは、前記コンピュータに、前記データの特徴量に基づいてラベル付けされた特定の訓練データに基づいて、前記特定の機械学習モデルのパラメータを更新することによって、新しい機械学習モデルを生成する処理を実行させる。
【発明の効果】
【0014】
1つの側面では、本発明は、更新モデルの更新時間を短縮することができる。
【図面の簡単な説明】
【0015】
図1図1は、実施例1に係る機械学習装置の機能構成を示す図である。
図2図2は、実施例2に係る分類システムの構成を示す図である。
図3図3は、HDL技術を説明するための図である。
図4図4は、密度に基づくクラスタリングを説明するための図である。
図5A図5Aは、モデル管理部が管理する複数のモデルを説明するための第1の図である。
図5B図5Bは、モデル管理部が管理する複数のモデルを説明するための第2の図である。
図6図6は、実施例2に係る機械学習装置の機能構成を示す図である。
図7図7は、クラスタの情報を示す図である。
図8図8は、過去モデル記憶部の一例を示す図である。
図9図9は、劣化検知部による処理のフローを示すフローチャートである。
図10図10は、ドリフト対応モデルの更新処理のシーケンスを示す図である。
図11図11は、実施例1及び2に係る機械学習プログラムを実行するコンピュータのハードウェア構成を示す図である。
図12図12は、コンセプトドリフトを説明するための図である。
図13図13は、HDLモデルの更新処理に時間がかかることで精度が劣化した運用モデルを使用し続ける問題を説明するための図である。
【発明を実施するための形態】
【0016】
以下に、本願の開示する機械学習プログラム、機械学習方法及び機械学習装置の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例1】
【0017】
図1は、実施例1に係る機械学習装置5aの機能構成を示す図である。図1に示すように、機械学習装置5aは、劣化検知部10aとモデル管理部20aとを有する。劣化検知部10aは、運用モデルの劣化を検知し、運用モデルの劣化を検知すると運用モデルを更新する。ここで、運用モデルとは運用中の機械学習モデルである。劣化検知部10aは、運用モデルをコピーしてドリフト対応モデルとして記憶する。そして、劣化検知部10aは、入力データを基にドリフト対応モデルを更新する。そして、劣化検知部10aは、運用モデルが劣化すると、ドリフト対応モデルを運用モデルにコピーする。
【0018】
モデル管理部20aは、ドリフト対応モデルを入力データの特徴量の分布(以下、「入力データ分布」という)と対応付けて管理する。モデル管理部20aは、劣化検知部10aがドリフト対応モデルとして用いたモデルを全て管理する。
【0019】
劣化検知部10aは、モデル記憶部11aと、分類部12aと、分布情報生成部13aと、判定部14aと、ラベル付部15aと、モデルアクセス部16aと、学習部17aとを有する。モデル管理部20aは、過去モデル記憶部21aと、登録部22aと、比較部23aと、選択部24aとを有する。
【0020】
モデル記憶部11aは、ドリフト対応モデルを記憶する。具体的には、モデル記憶部11aは、ドリフト対応モデルとしてニューラルネットワークのパラメータを記憶する。パラメータには、ニューロン間の重みが含まれる。ニューロン間の重みは、学習により更新される。
【0021】
分類部12aは、モデル記憶部11が記憶するドリフト対応モデルに基づいて入力データを分類する。
【0022】
分布情報生成部13aは、所定の数(例えば300)の入力データに対して、入力データ分布を生成する。
【0023】
判定部14aは、ドリフト対応モデルの更新が必要であるか否かを判定し、更新が必要であると判定した場合には、学習部17aに学習を指示する。判定部14aは、例えば、分類部12aによる分類結果とユーザにより指定された正解が一致する割合に基づいて、ドリフト対応モデルの更新が必要であるか否かを判定する。
【0024】
ラベル付部15aは、判定部14aによりドリフト対応モデルの更新が必要であると判定された場合に、入力データにラベル(正解)を付加して訓練データを作成する。そして、ラベル付部15aは、作成した訓練データを学習部17aに渡す。
【0025】
モデルアクセス部16aは、モデル管理部20aにアクセスする。モデルアクセス部16aは、分布情報生成部13aにより生成された入力データ分布を指定して、入力データ分布が類似するモデルをモデル管理部20aに問い合わせ、モデル管理部20aから応答として取得したモデルの情報を学習部17aに渡す。
【0026】
また、モデルアクセス部16aは、分布情報生成部13aにより生成された入力データ分布と学習部17aにより生成されたドリフト対応モデルの情報を対応付けて登録するようにモデル管理部20aに依頼する。
【0027】
学習部17aは、モデルアクセス部16aから受け取ったモデルの情報と、ラベル付部15から受け取った訓練データを用いて学習を行い新たなドリフト対応モデルを生成する。生成されたドリフト対応モデルは、モデルアクセス部16aによりモデル管理部20aに登録される。学習部17aは、生成したドリフト対応モデルをモデル記憶部11aに格納する。すなわち、学習部17aは、モデル記憶部11aに記憶されたドリフト対応モデルのパラメータを更新する。なお、学習部17aは、モデル記憶部11aに記憶されたドリフト対応モデルのパラメータを更新する際に、ドリフト対応モデルに対してファインチューニングを行ってもよい。
【0028】
過去モデル記憶部21aは、ドリフト対応モデルの情報を入力データ分布と対応付けて記憶する。
【0029】
登録部22aは、モデルアクセス部16aからドリフト対応モデルの情報と入力データ分布とを受け取り、過去モデル記憶部21aに登録する。
【0030】
比較部23aは、モデルアクセス部16aから入力データ分布を受け取り、過去モデル記憶部21aが記憶する入力データ分布と比較して類似度を計算する。
【0031】
選択部24aは、比較部23aにより各ドリフト対応モデルについて計算された類似度に基づいて、モデルアクセス部16aから受け取った入力データ分布に最も類似するドリフト対応モデルを過去モデル記憶部21aから選択する。そして、選択部24aは、選択したドリフトモデルの情報をモデルアクセス部16aに渡す。
【0032】
なお、分類部12a、分布情報生成部13a、判定部14a、ラベル付部15a、モデルアクセス部16a、学習部17a、登録部22a、比較部23a及び選択部24aは、特許請求の範囲の制御部に対応する。
【0033】
このように、実施例1では、分布情報生成部13aが、入力データ分布を生成する。そして、比較部23aが、分布情報生成部13aにより生成された入力データ分布を過去モデル記憶部21が記憶する入力データ分布と比較し、選択部24aが、比較部23aによる比較に基づいて最も類似するモデルを選択する。また、ラベル付部15aが、入力データにラベル付けを行って訓練データを作成する。そして、学習部17aが、選択部24aにより選択されたモデルとラベル付部15aにより作成された訓練データを用いて学習を行いドリフト対応モデルを生成する。したがって、学習部17aは、高速に学習を行うことができ、ドリフト対応モデルの更新時間を短縮することができる。
【実施例2】
【0034】
まず、実施例2に係る分類システムについて説明する。図2は、実施例2に係る分類システムの構成を示す図である。図2に示すように、実施例2に係る分類システム1は、入力センサ2と、データ記憶装置3と、分類装置4と、機械学習装置5と、表示装置6とを有する。
【0035】
入力センサ2は、分類対象のデータを取得するセンサである。例えば、画像を分類する場合には、入力センサ2はカメラである。データ記憶装置3は、入力センサ2により取得された入力データを記憶する。データ記憶装置3は、例えば、画像データを記憶する。
【0036】
分類装置4は、データ記憶装置3が記憶する入力データを運用モデルを用いて分類する装置である。例えば、分類装置4は、カメラが撮影した画像をリアルタイムで分類する。
【0037】
機械学習装置5は、データ記憶装置3が記憶する入力データを用いて機械学習により運用モデルを生成する装置である。機械学習装置5は、劣化検知部10とモデル管理部20とを有する。
【0038】
劣化検知部10は、HDL(High Durability Learning)技術に基づいて運用モデルの劣化を検知し、運用モデルの劣化を検知すると運用モデルを更新する。HDLは、機械学習モデルの精度劣化を推定する技術である。図3は、HDL技術を説明するための図である。図3に示すように、HDL技術では、運用モデルとは別にHDLモデルが用いられる。HDLモデルとはHDL技術において用いられる機械学習モデルである。また、図3では、機械学習モデルは入力データを2つの値のいずれかに分類する。例えば、機械学習モデルは、人の画像を入力し、制服を着用しているか否かを判定し、着用又は非着用を出力する。
【0039】
まず、運用モデルをコピーすることでHDLモデルが作成される。そして、図3に示すように、HDLモデルは、運用モデルが入力するデータ(データ#1、データ#2、・・・)を入力し、運用モデルと同様に、入力データが2つの値のいずれであるかを判定する。判定は、出力層のニューロンの出力値に基づいて行われる。出力層のニューロンの出力値と判定結果に基づいてDT空間(Durable Topology Space)に点9がプロットされる。
【0040】
DT空間の各軸は出力層の各ニューロンの出力値に対応する。DT空間は、入力データの特徴量空間である。図3では、出力層のニューロンは3つあるので、DT空間は3次元空間であるが、説明の便宜上、DT空間が2次元で表されている。判定結果は点9の種類(○と●)により表される。HDLモデルが劣化していない場合には、DT空間において○の集まりと●の集まりは分離される。なお、入力データは3つ以上の値のうちの1つに判定されてもよい。
【0041】
HDL技術では、点9は密度に基づいてクラスタリングされ、○を含むクラスタAと●を含むクラスタBが作成される。図4は、密度に基づくクラスタリングを説明するための図である。図4の横軸は特徴量を示し、縦軸は点9の密度(例えば、特徴量の単位区間あたりの点9の個数)を示す。図4は、特徴量の分布を示す。なお、図4では、説明の便宜上DT空間の次元を1としている。図4に示すように、特徴量の密度に基づいてクラスタAとクラスタBが特定される。各クラスタは、例えば中心点により特定される。
【0042】
クラスタAにもクラスタBにも属さない点9は、HDLモデルの劣化により生じる。そして、HDL技術では、クラスタAに属する点9に対応する入力データとクラスタBに属する点9に対応する入力データを訓練データとして用いて再学習が行われ、HDLモデルが更新される。クラスタAに属する点9に対応する入力データは○でラベル付けされ、クラスタBに属する点9に対応する入力データは●でラベル付けされる。
【0043】
このように、HDL技術では、ドリフトの発生をDT空間における密度分布の移動とし、常に密度の中心を追いかけることでドリフトにHDLモデルを追従させる。そして、運用モデルの劣化が検知されると、運用モデルがHDLモデルで置き換えられる。したがって、HDL技術は、コンセプトドリフトによる運用モデルの精度の劣化を防ぐことができる。また、HDL技術では、再学習に用いられる訓練データのラベル付けは自動で行われる。したがって、HDL技術は、運用コストの増大を防ぐことができる。
【0044】
図2に戻って、劣化検知部10は、運用モデルをコピーしてドリフト対応モデル(HDLモデル)として記憶する(t1)。そして、劣化検知部10は、入力データを基にドリフト対応モデルを更新する(t2)。そして、劣化検知部10は、運用モデルが劣化すると、ドリフト対応モデルを運用モデルにコピーする(t3)。
【0045】
モデル管理部20は、ドリフト対応モデルをDT空間の情報と対応付けて管理する。モデル管理部20は、劣化検知部10がドリフト対応モデルとして用いたモデルを全て管理する。図5A及び図5Bは、モデル管理部20が管理する複数のモデルを説明するための図である。図5Aに示すように、劣化検知部10は、更新前のドリフト対応モデルをベースに分類を行い、分類結果を基にクラスタリングする(t11)。そして、劣化検知部10は、クラスタ中心付近のデータを学習データとして抽出する(t12)。
【0046】
ここで、劣化検知部10は、DT空間における分析でクラスタから外れたデータを除外するため、学習データが不足する。そこで、劣化検知部10は、更新前のドリフト対応モデルをドリフト対応モデル更新時に利用し、少ないデータをカバーする。
【0047】
すなわち、劣化検知部10は、初回モデル(運用モデルのコピー)と入力データ群#1を用いてドリフト対応モデル#1を作成し、ドリフト対応モデル#1と入力データ群#2を用いてドリフト対応モデル#2を作成する。同様に、劣化検知部10は、ドリフト対応モデル#3、ドリフト対応モデル#4、・・・、を作成する。そして、モデル管理部20は、ドリフト対応モデル#1、ドリフト対応モデル#2、・・・、をそれぞれ入力データ群#1の特徴量の分布、入力データ群#2の特徴量の分布、・・・、と対応付けて管理する。
【0048】
ただし、直前のドリフト対応モデルが最適であるとは限らない。図5Bは、直前のドリフト対応モデルが最適でない例を示す図である。図5Bにおいて、入力データ群は、A、B、C、D、Eとドリフトする。したがって、直近の入力データ群Eはドリフト的にはDに近いが、Eに基づくモデルと最も類似性が高いモデルはAに基づくモデルである。
【0049】
そこで、モデル管理部20は、DT空間の情報(例えば、クラスタの中心座標)とモデルを対応付けて管理し、劣化検知部10は、ドリフト対応モデルを更新する際に、DT空間の情報を基にモデル管理部20に問合せを行って最適な過去モデルを取得する。そして、劣化検知部10は、取得したモデルに基づいてドリフト対応モデルを更新する。なお、過去モデルの中に適当なモデルがない場合には、劣化検知部10は、モデル管理部20から直近のモデルを取得する。
【0050】
図2に戻って、表示装置6は、分類装置4による分類結果、劣化検知部10によるドリフト対応モデル及び運用モデルの更新に関するメッセージ、モデル管理部20により管理されるモデルの情報などを表示する。
【0051】
次に、機械学習装置5の機能構成について説明する。図6は、機械学習装置5の機能構成を示す図である。図6に示すように、劣化検知部10は、モデル記憶部11と、分類部12と、クラスタ生成部13と、判定部14と、ラベル付部15と、モデルアクセス部16と、学習部17とを有する。モデル管理部20は、過去モデル記憶部21と、登録部22と、比較部23と、選択部24とを有する。
【0052】
モデル記憶部11は、ドリフト対応モデルを記憶する。具体的には、モデル記憶部11は、ドリフト対応モデルとしてニューラルネットワークのパラメータを記憶する。パラメータには、ニューロン間の重みが含まれる。ニューロン間の重みは、学習により更新される。
【0053】
分類部12は、モデル記憶部11が記憶するドリフト対応モデルに基づいて入力データを分類する。分類部12は、分類結果とDT空間の座標をクラスタ生成部13に通知する。
【0054】
クラスタ生成部13は、所定の数(例えば300)の入力データに対する分類部12による分類結果とDT空間の座標に基づいてDT空間の点9のクラスタリングを行い、クラスタを生成する。クラスタ生成部13は、DT空間における点9の分布を特定する。クラスタ生成部13は、DT空間における点9の密度に基づいてクラスタリングを行う。クラスタ生成部13は、分類部12による分類数と同じ数のクラスタを生成する。クラスタ生成部13は、クラスタの情報を特定する。
【0055】
図7は、クラスタの情報を示す図である。図7に示すように、クラスタの情報には、クラスタの中心座標、クラスタの密度(分散)、データ量(入力データの個数)が含まれる。クラスタの情報は、入力データの特徴量の分布を示す。
【0056】
判定部14は、クラスタ生成部13により生成されたクラスタの情報に基づいて、ドリフト対応モデルの更新が必要であるか否かを判定し、更新が必要であると判定した場合には、学習部17に学習を指示する。判定部14は、例えば、いずれのクラスタにも属さない入力データの割合に基づいて、ドリフト対応モデルの更新が必要であるか否かを判定する。
【0057】
ラベル付部15は、判定部14によりドリフト対応モデルの更新が必要であると判定された場合に、いずれかのクラスタに属する点9に対応する入力データにクラスタに対応する分類結果をラベル(正解)として付加して訓練データを作成する。そして、ラベル付部15は、作成した訓練データを学習部17に渡す。
【0058】
モデルアクセス部16は、モデル管理部20にアクセスする。モデルアクセス部16は、クラスタ生成部13により生成されたクラスタの情報を指定して、クラスタの情報が類似するモデルをモデル管理部20に問い合わせ、モデル管理部20から応答として取得したモデルの情報を学習部17に渡す。
【0059】
また、モデルアクセス部16は、クラスタ生成部13により生成されたクラスタの情報と学習部17により生成されたドリフト対応モデルの情報を対応付けて登録するようにモデル管理部20に依頼する。
【0060】
学習部17は、モデルアクセス部16から受け取ったモデルの情報と、ラベル付部15から受け取った訓練データを用いて学習を行い新たなドリフト対応モデルを生成する。生成されたドリフト対応モデルは、モデルアクセス部16によりモデル管理部20に登録される。学習部17は、生成したドリフト対応モデルをモデル記憶部11に格納する。すなわち、学習部17は、モデル記憶部11に記憶されたドリフト対応モデルのパラメータを更新する。なお、学習部17は、モデル記憶部11に記憶されたドリフト対応モデルのパラメータを更新する際に、ドリフト対応モデルに対してファインチューニングを行ってもよい。
【0061】
過去モデル記憶部21は、ドリフト対応モデルの情報をクラスタの情報と対応付けて記憶する。図8は、過去モデル記憶部21の一例を示す図である。図8に示すように、過去モデル記憶部21は、HDL情報とモデル識別子とを対応付けてドリフト対応モデルごとに記憶する。HDL情報には、データ量と密度情報とクラスタ中心座標とが含まれる。モデル識別子は、ドリフト対応モデルを識別する識別子である。モデル管理部20は、ドリフト対応モデルに含まれるパラメータなどの情報を識別子と対応付けて別途記憶する。
【0062】
データ量は、入力データの個数である。密度情報は、クラスタの密度(分散)である。クラスタ中心座標は、クラスタの中心の座標である。例えば、「model20200618.model」で識別されるドリフト対応モデルでは、入力データの個数は「300」である。また、「model20200618.model」で識別されるドリフト対応モデルでは、2つのクラスタの密度は「0.823」と「0.74」であり、2つのクラスタの中心の座標は(0.3,0.5)と(0.7,0.2)である。
【0063】
登録部22は、モデルアクセス部16からドリフト対応モデルの情報とクラスタの情報とを受け取り、過去モデル記憶部21に登録する。
【0064】
比較部23は、モデルアクセス部16からクラスタの情報を受け取り、過去モデル記憶部21が記憶する各クラスタの情報と比較して類似度を計算する。具体的には、比較部23は、HDL情報を列単位で正規化し、類似度を計算する。
【0065】
選択部24は、比較部23により各ドリフト対応モデルについて計算された類似度に基づいて、モデルアクセス部16から受け取ったクラスタの情報にHDL情報が最も類似するドリフト対応モデルを過去モデル記憶部21から選択する。そして、選択部24は、選択したドリフトモデルの情報をモデルアクセス部16に渡す。
【0066】
なお、分類部12、クラスタ生成部13、判定部14、ラベル付部15、モデルアクセス部16、学習部17、登録部22、比較部23及び選択部24は、特許請求の範囲の制御部に対応する。
【0067】
次に、劣化検知部10による処理のフローについて説明する。図9は、劣化検知部10による処理のフローを示すフローチャートである。図9に示すように、劣化検知部10は、運用モデルが入力する入力データを用いて、ドリフト対応モデルに基づいて分類を行う(ステップS1)。そして、劣化検知部10は、分類結果と入力データの特徴量に基づいてクラスタリングを行い、クラスタの情報に基づいて、劣化検知の精度が劣化したか否かを判定する(ステップS2)。ここで、劣化検知の精度が劣化したとは、ドリフト対応モデルの精度が劣化したことを意味する。そして、劣化検知の精度が劣化していない場合には、劣化検知部10は、ステップS6に移動する。
【0068】
一方、劣化検知の精度が劣化した場合には、劣化検知部10は、モデル管理部20から学習用モデルを取得する(ステップS3)。ここで、劣化検知部10は、クラスタの情報に基づいて、入力データの特徴量が類似する過去のドリフト対応モデルを学習用モデルとして取得する。そして、劣化検知部10は、取得したドリフト対応モデルといずれかのクラスタに属する入力データを用いて学習を行ってドリフト対応モデルを作成し(ステップS4)、ドリフト対応モデルを更新する(ステップS5)。
【0069】
そして、劣化検知部10は、運用モデルの精度が劣化したか否かを判定し(ステップS6)、劣化していない場合には、ステップS1に戻り、劣化した場合には、ドリフト対応モデルを用いて運用モデルを更新し(ステップS7)、ステップS1に戻る。
【0070】
このように、劣化検知部10は、入力データの特徴が類似する過去のドリフト対応モデルを用いて学習を行うので、高速に学習を行うことができる。
【0071】
図10は、ドリフト対応モデルの更新処理のシーケンスを示す図である。図10に示すように、劣化検知部10は、運用モデルが入力する入力データを用いて、ドリフト対応モデルに基づいて分類を行う(ステップS11)。そして、劣化検知部10は、分類結果とDT空間の座標に基づいてクラスタを生成し、クラスタの情報を特定する(ステップS12)。すなわち、劣化検知部10は、ドリフト対応モデルが算出した入力データの特徴量の分布を特定する。
【0072】
そして、劣化検知部10は、ドリフト対応モデルの劣化を検知し(ステップS13)、クラスタの情報を指定して類似モデルの問合せをモデル管理部20に行う(ステップS14)。そして、劣化検知部10は、いずれかのクラスタに属する入力データを用いて訓練データを生成する(ステップS15)。
【0073】
劣化検知部10から問合せを受け取ると、モデル管理部20は、劣化検知部10により指定されたクラスタの情報を過去モデル記憶部21が記憶する各モデルのHDL情報と比較する(ステップS16)。すなわち、モデル管理部20は、入力データの特徴量の分布と、過去モデル記憶部21が記憶する各モデルを生成する際に使用された訓練データの特徴量の分布とを比較する。そして、モデル管理部20は、比較結果に基づいてモデルを選択する(ステップS17)。そして、モデル管理部20は、劣化検知部10に、選択したモデルの情報を通知する(ステップS18)。
【0074】
劣化検知部10は、訓練データに基づいて、通知されたモデルのパラメータを更新することによって新しいドリフト対応モデルを生成し(ステップS19)、生成したドリフト対応モデルでモデル記憶部11のドリフト対応モデルを更新する(ステップS20)。そして、劣化検知部10は、モデル管理部20に、ドリフト対応モデルの登録を依頼する(ステップS21)。そして、モデル管理部20は、依頼されたドリフト対応モデルを登録する(ステップS22)。
【0075】
このように、モデル管理部20が劣化検知部10により指定されたクラスタの情報とHDL情報に基づいてモデルを選択するので、劣化検知部10は、モデル管理部20により選択されたモデルを用いて学習を高速に行うことができる。
【0076】
上述してきたように、実施例2では、分類部12が、モデル記憶部11が記憶するドリフト対応モデルに基づいて入力データを分類し、クラスタ生成部13が、分類部12による分類結果とDT空間の座標に基づいてクラスタを生成する。そして、比較部23が、分類部12により生成されたクラスタの情報を過去モデル記憶部21が記憶するHDL情報と比較し、選択部24が、比較部23による比較に基づいて最も類似するモデルを選択する。また、ラベル付部15が、分類部12により生成されたいずれかのクラスタに分類された入力データにラベル付けを行って訓練データを作成する。そして、学習部17が、選択部24により選択されたモデルとラベル付部15により作成された訓練データを用いて学習を行いドリフト対応モデルを生成する。したがって、学習部17は、高速に学習を行うことができ、ドリフト対応モデルの更新時間を短縮することができる。
【0077】
また、実施例2では、モデルアクセス部16は、学習部17により生成されたドリフト対応モデルの登録をモデル管理部20に依頼し、登録部22が、登録を依頼されたドリフト対応モデルを過去モデル記憶部21に登録する。したがって、機械学習装置5は、ドリフト対応モデルを蓄積することができ、類似性の高いドリフト対応モデルを用いて学習を行うことができる。
【0078】
また、実施例2では、機械学習装置5は、クラスタの情報として、クラスタの中心座標及び密度を用いるので、類似するモデルの過去モデル記憶部21からの選択を正確に行うことができる。
【0079】
なお、実施例1及び2では、機械学習装置5a及び5について説明したが、機械学習装置5a及び5が有する構成をソフトウェアによって実現することで、同様の機能を有する機械学習プログラムを得ることができる。そこで、機械学習プログラムを実行するコンピュータについて説明する。
【0080】
図11は、実施例1及び2に係る機械学習プログラムを実行するコンピュータのハードウェア構成を示す図である。図11に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0081】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0082】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
【0083】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0084】
そして、コンピュータ50において実行される機械学習プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、機械学習プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた機械学習プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0085】
また、実施例1及び2では、機械学習モデルにニューラルネットワークを用いる場合について説明したが、機械学習装置5a及び5は、他の機械学習モデルを用いてもよい。また、実施例1及び2では、機械学習モデルに基づいて入力データの分類を行う場合について説明したが、分類システム1の代わりのシステムが、機械学習モデルに基づいて判定や予測を行ってもよい。また、実施例1及び2では、入力データの特徴量として出力層のニューロンの出力値を用いる場合について説明したが、機械学習装置5a及び5は、入力データの特徴量として他の値を用いてもよい。また、実施例2では、クラスタの中心座標及び密度を用いる場合について説明したが、機械学習装置5は、入力データの特徴量の分布を示す情報として他の情報を用いてもよい。また、実施例1及び2では、ドリフト対応モデルを更新する場合について説明したが、機械学習装置5a及び5は、ドリフト対応モデル以外の過去の機械学習モデルを用いてもよい。
【符号の説明】
【0086】
1 分類システム
2 入力センサ
3 データ記憶装置
4 分類装置
5,5a 機械学習装置
6 表示装置
10,10a 劣化検知部
11,11a モデル記憶部
12,12a 分類部
13 クラスタ生成部
13a 分布情報生成部
14,14a 判定部
15,15a ラベル付部
16,16a モデルアクセス部
17,17a 学習部
20,20a モデル管理部
21,21a 過去モデル記憶部
22,22a 登録部
23,23a 比較部
24,24a 選択部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13