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

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

▶ 株式会社日立製作所の特許一覧

特開2023-86053学習データ管理方法、学習データ生成装置、および機械学習方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023086053
(43)【公開日】2023-06-21
(54)【発明の名称】学習データ管理方法、学習データ生成装置、および機械学習方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230614BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021200450
(22)【出願日】2021-12-09
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】太田 智也
(57)【要約】      (修正有)
【課題】過去の世代のモデルの学習で有用だったデータを、再学習に反映する学習データ管理方法、学習データ生成装置及び機械学習方法を提供する。
【解決手段】第1の学習データで学習した第1の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録する学習データ管理方法であって、学習データ生成装置である推論システムの推論結果管理部は、推論結果管理情報を記録する。データセット管理部は、推論結果管理情報に基づいて、第1の機械学習モデルによる推論結果が修正されたデータを第1の修正データリストとして抽出する。学習データ出力部は、第1の修正データリストに含まれるデータの少なくとも一つを含むデータを、学習データとして出力する。機械学習方法は、学習データ生成装置の、学習データ出力部から出力された学習データを用いて、機械学習モデルを学習する。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1の学習データで学習した第1の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録する第1のステップ、
を実行する、学習データ管理方法。
【請求項2】
前記推論結果管理情報に基づいて、前記第1の機械学習モデルによる推論結果が修正されたデータを第1の修正データリストとして得る第2のステップと、
前記第1の機械学習モデルを第2の学習データで学習する際に、前記第2の学習データに前記第1の修正データリストに含まれる少なくとも一部を含ませる第3のステップと、
を実行する請求項1記載の学習データ管理方法。
【請求項3】
前記第3のステップで、
前記第2の学習データに含ませる前記第1の修正データリストに含まれる少なくとも一部は、前記第1の学習データの少なくとも一部である、
請求項2記載の学習データ管理方法。
【請求項4】
前世代機械学習モデルを再学習して前記第1の機械学習モデルを得た場合において、
前記前世代機械学習モデルによる推論結果を修正したかどうかを、前記推論結果管理情報として記録する第4のステップと、
前記推論結果管理情報に基づいて、前記前世代機械学習モデルによる推論結果が修正されたデータを第2の修正データリストとして得る第5のステップと、
前記第1の機械学習モデルを第2の学習データで学習する際に、前記第2の学習データに前記第2の修正データリストに含まれる少なくとも一部を含ませる第6のステップと、
を実行する請求項2記載の学習データ管理方法。
【請求項5】
前々世代機械学習モデルを再学習して前記前世代機械学習モデルを得た場合において、
前記前々世代機械学習モデルによる推論結果を修正したかどうかを、前記推論結果管理情報として記録する第7のステップと、
前記推論結果管理情報に基づいて、前記前々世代機械学習モデルによる推論結果が修正されたデータを第3の修正データリストとして得る第8のステップと、
前記第1の機械学習モデルを第2の学習データで学習する際に、前記第2の学習データに前記第3の修正データリストに含まれる少なくとも一部を含ませる第9のステップと、
を実行する請求項4記載の学習データ管理方法。
【請求項6】
前記前々世代機械学習モデルと、前記前世代機械学習モデルと、前記第1の機械学習モデルの、世代間の関係を記録したモデル管理情報を作成する、
請求項5記載の学習データ管理方法。
【請求項7】
前記モデル管理情報は、各機械学習モデルの学習に用いた学習データを特定する情報と、各機械学習モデルの作成時間に関する情報を含む、
請求項6記載の学習データ管理方法。
【請求項8】
前記第2の学習データに、前記第1の修正データリストに含まれる少なくとも一部を含ませるとともに前記第2の修正データリストに含まれる少なくとも一部を含ませる際に、
前記第1の修正データリストから選択するデータ数と、前記第2の修正データリストから選択するデータ数を任意に指定可能とした、
請求項4記載の学習データ管理方法。
【請求項9】
前記推論結果管理情報は、推論対象となる入力データを特定する情報と、該入力データの推論に用いた機械学習モデルを特定する情報と、該機械学習モデルによる推論結果と、該推論結果に対する修正結果と、修正時間の情報を含む、
請求項1記載の学習データ管理方法。
【請求項10】
推論結果管理部と、データセット管理部と、学習データ出力部を備え、
前記推論結果管理部は、
第1の学習データで学習した第1の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録し、
前記データセット管理部は、
前記推論結果管理情報に基づいて、前記第1の機械学習モデルによる推論結果が修正されたデータを第1の修正データリストとして抽出し、
前記学習データ出力部は、
前記第1の修正データリストに含まれるデータの少なくとも一つを含むデータを、学習データとして出力する、
学習データ生成装置。
【請求項11】
前記推論結果管理部は、
前記第1の機械学習モデルより前の世代の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録し、
前記データセット管理部は、
前記推論結果管理情報に基づいて、前記前の世代の機械学習モデルによる推論結果が修正されたデータを第2の修正データリストとして抽出し、
前記学習データ出力部は、
前記第2の修正データリストに含まれるデータの少なくとも一つを含むデータを、学習データとして出力する、
請求項10記載の学習データ生成装置。
【請求項12】
前記学習データ出力部は、
前記第1の修正データリストに含まれる前記第1の学習データ、および、前記第2の修正データリストに含まれる前記前の世代の機械学習モデルを学習した第2の学習データの少なくとも一つを、前記学習データとして出力する、
請求項11記載の学習データ生成装置。
【請求項13】
データセット管理部を備え、
前記データセット管理部は、
前記第1の修正データリストに含まれるデータの個数、および、前記第2の修正データリストに含まれるデータの個数を表示し、
前記学習データ出力部が出力する学習データに含めるべき前記第1の修正データリストに含まれるデータの個数と前記第2の修正データリストに含まれるデータの個数の指定を、それぞれ可能とするGUIを表示する、
請求項12記載の学習データ生成装置。
【請求項14】
前記データセット管理部は、
さらに前記第1の学習データの個数を表示し、前記学習データ出力部が出力する学習データに含めるべき前記第1の学習データの個数の指定を可能とするGUIを表示する、
請求項13記載の学習データ生成装置。
【請求項15】
請求項10記載の学習データ生成装置の前記学習データ出力部から出力された学習データを用いて、機械学習モデルを学習する、
機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習に用いる学習データに関する。
【背景技術】
【0002】
近年、機械学習モデルを用いた推論が実用化されている。一例として、工場などにおける製品の目視検査において、人手不足解消などの観点から機械学習モデルを用いた検査システムが提案されている。例えば、画像データを用いた検査システムでは、画像データに映っている被写体に対する傷、欠陥、ゆがみなどをラベルとしてして推論し、それらに対して確信度を0~1の値で求め、閾値以上の最大値を持つラベルを結果として出力する。
【0003】
このような機械学習を活用する検査システムでは、モデルによる推論精度の維持、向上のために継続的にモデルを更新(再学習)する必要がある。再学習では、例えば、あるモデルを元として、新たな学習データを与えることで新たなモデルを生成する。新たな学習データとしては、そのモデルで推論の確信度が低かったデータや、誤ったラベルに高確信度を与えたデータが、そのモデルの精度の向上に有用なデータとして用いられる。
【0004】
つまり、再学習を、時間的、データ量的に効率的に行うには、再学習に有用と考えられるデータを効率よく抽出し、管理する必要がある。
【0005】
例えば、特許文献1では、確度が低いデータを、モデルが不得意のため、モデルの精度向上に有用なデータとみなし、検査システムによる検査結果を蓄積し、蓄積されたデータのうち、確度が低いデータをサンプリングにより抽出し、抽出されたデータに対して正解のラベルを付与することで新たな学習データとして抽出する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】US2020/0151613 A1
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1では、過去の世代で学習に用いたデータを考慮していなかった。特許文献1では、検査システムでの推論結果から、確度が低いデータを集めるため、現在の検査システムで利用されているモデルに依存したデータのみが抽出される。
【0008】
しかしながら、モデルは再学習を繰り返すため、過去の世代のモデルの学習で有用だったデータが、再学習に反映されない可能性があった。
【0009】
本発明の課題は、過去の世代のモデルの学習で有用だったデータを、再学習に反映することにある。
【課題を解決するための手段】
【0010】
本発明の好ましい一側面は、第1の学習データで学習した第1の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録する第1のステップ、を実行する、学習データ管理方法である。
【0011】
本発明の好ましい他の一側面は、推論結果管理部と、データセット管理部と、学習データ出力部を備え、前記推論結果管理部は、第1の学習データで学習した第1の機械学習モデルによる推論結果を修正したかどうかを、推論結果管理情報として記録し、前記データセット管理部は、前記推論結果管理情報に基づいて、前記第1の機械学習モデルによる推論結果が修正されたデータを第1の修正データリストとして抽出し、前記学習データ出力部は、前記第1の修正データリストに含まれるデータの少なくとも一つを含むデータを、学習データとして出力する、学習データ生成装置である。
【0012】
本発明の好ましい他の一側面は、前記学習データ生成装置の前記学習データ出力部から出力された学習データを用いて、機械学習モデルを学習する、機械学習方法である。
【発明の効果】
【0013】
過去の世代のモデルの学習で有用だったデータを、再学習に反映することができる。
【図面の簡単な説明】
【0014】
図1】システム構成の一例を示すブロック図。
図2】データセット管理テーブルの一例を示す表図。
図3】モデル管理テーブルの一例を示す表図。
図4】推論結果管理テーブルの一例を示す表図。
図5】データセット管理部の画面の一例を示すイメージ図。
図6】データセット管理部の処理のフローチャートの一例。
図7】データ抽出処理のフローチャートの一例。
図8】学習データ出力部の処理のフローチャートの一例。
図9A】実施例の動作を示す実行例を示す表図。
図9B】実施例の動作を示す実行例を示す表図。
図9C】実施例の動作を示す実行例を示す表図。
図10A】実行例におけるデータセット管理部が抽出するデータの例を示す表図。
図10B】実行例におけるデータセット管理部が抽出するデータの例を示す表図。
図10C】実行例におけるデータセット管理部が抽出するデータの例を示す表図。
図11】実行例におけるデータセット管理部の画面の例を示すイメージ図。
図12】計算機の構成の一例を示すブロック図。
【発明を実施するための形態】
【0015】
以下に図面を参照しながら本発明の実施形態を説明する。なお、以下の説明により本発明が限定されるものではない。
【0016】
以下に説明する実施例の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【0017】
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0018】
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【0019】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【0020】
本明細書で引用した刊行物、特許および特許出願は、そのまま本明細書の説明の一部を構成する。
【0021】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【0022】
以下の実施例で詳細に説明するが、発明者らの検討によると、特許文献1の手法には2つの課題がある。1つは、過去の世代で学習に用いたデータを考慮していない点である。検査システムでの推論結果から、確度が低いデータを集めるため、現在の検査システムで利用されているモデルに依存したデータのみが抽出される。しかしながら、モデルは再学習を繰り返すため、過去の世代の学習で有用だったデータが漏れてしまう可能性がある。
【0023】
2つ目の課題は、ラベル付けの結果がデータセットの抽出に反映できていないことである。推論結果には、確度は高くても誤ったラベルの付いたデータが存在する。これらは人手によるラベル付け作業により判明するが、特許文献1の手法では、これらのデータを学習データとして抽出できていない。
【0024】
実施例の一つでは、モデルの学習履歴と、推論結果のデータに対するラベルの修正履歴を管理する。これらを用いて、再学習の元となるモデルや、そのモデルの元のになった世代のモデルを用いて行われた推論結果に対してラベルが修正されたデータと、元となったモデルの学習データに含まれるラベルが修正されたデータを抽出する。
【0025】
このような構成で、ラベルが修正されたデータを、過去の世代のモデルも含めて効率的に抽出できるようになる。これにより、再学習における学習データの抽出が効率化できる。また、有用なデータのみを抽出することで学習に必要となるデータ量を少なくすることが可能となり、学習時間の短縮などが見込める。
【実施例0026】
本実施例は、入力されたデータがあるクラスに属するかを推論する推論処理において、再学習に必要となる学習データを管理する方法に関する。一例として画像データによる不良検査(ラベリング)を対象に説明する。本実施例は一例であり、セグメンテーションや分類などの他の画像解析や、文字認識や音声認識に適用可能である。また、実施例では分類問題を扱う機械学習モデルの例を説明するが、回帰問題を扱う機械学習モデルでも同様に適用することができる。
【0027】
図1は本実施例を実現するシステム構成の一例である。本システムは、推論の実行、学習データの管理、再学習を行う推論システム101、推論システム101の利用者が用いるシステム利用者端末102から構成され、それらがネットワーク103を介して接続される。
【0028】
当該システムは、基本的にサーバーのような情報処理装置で構成することができ、一般的なコンピュータの構成として、入力装置、出力装置、記憶装置、および処理装置(CPU : Central Processing Unit)を備える。以下の説明では情報処理装置が当然備える構成の説明は省略し、本実施例の機能を中心に説明する。
【0029】
推論システム101は、推論部110、データ入力部111、推論結果管理部112、学習データ管理部113、再学習部114、入出力部115から構成される。本実施例では、これらの構成を情報処理装置の記憶装置が記憶するソフトウェアを、処理装置が実行することにより実現することにした。ただし、ソフトウェアで構成した機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウエアでも実現できる。そのような態様も実施例の範囲に含まれる。
【0030】
また、本システムは、入力データ群131、データセット管理テーブル132、推論結果管理テーブル133、モデル群135、モデル管理テーブル134をデータベースとして利用可能である。データベースは例えば、磁気ディスク装置のような記憶装置に格納することができる。
【0031】
以上のシステム構成は、単体のコンピュータで構成してもよいし、あるいは、任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。
【0032】
利用者は、まず、推論システム101に対して最初に推論部110で使用する学習済みモデルと、そのモデルの学習に使用した学習データを、入出力部115を介して入力する。モデルは一般的にDNN(Deep Neural Network)などのネットワーク構成が知られている。1つの学習データは、一般に説明変数(問題)と目的変数(正解)の組で構成される。また、このようなネットワークを、学習データを用いた機械学習で学習することも知られている。本実施例では、公知の部分については説明を省略する。
【0033】
入力された学習データは、入力データ群131に記録され、それらの入力データのグループをデータセットとしてデータセット管理テーブル132にて管理する。また、モデルは、モデル群135に記録され、モデル管理テーブル134にて管理される。
【0034】
図2はデータセット管理テーブル132の一例である。データセットID201はデータセットを識別するためのIDである。データリスト202はデータセットに含まれる入力データのIDをリストとして持つ。例えば、行204は、IDが1のデータセットは、入力データ群131のIDが1から50のデータで構成されることを示す。なお、以降では、IDが1のデータセットをデータセット1、IDが1のデータをデータ1と表現する。
【0035】
データセット管理テーブル132では、学習データや後述する修正データのデータセットを管理することができる。また、モデルのテスト用データや、実運用時の推論対象となるデータを管理してもよい。また、これらのデータ種別を識別するフラグを付加してもよい。
【0036】
図3は、モデル管理テーブル134の一例である。モデルID301は一例としてはモデルの世代を識別するためのIDである。モデル管理テーブル134は、あるモデルに対して、その学習に使用したデータセットである学習データセットID302、そのモデルを用いた推論で正しく判定できなかったデータのグループをあらわす修正データセットID303、モデルの再学習による派生の関係を示す次モデルID304、および、そのモデルの作成時間305より構成される。例えば、行306では、モデルIDが1のモデルは、学習にデータセットIDが1のデータセットが使用されたことを示している。
【0037】
推論部110では、入出力部115にて、ネットワーク103を介して、利用者から推論対象のデータあるいはテスト用のデータを受け取り、モデル管理テーブル134に登録されている学習済みのモデルを用いて推論を実行する。推論対象のデータとは、一般に説明変数(問題)であり、推論部110は推定した目的変数を出力する。本実施例では、作成時間が最新のモデルを1つ用いて推論されるものとする。
【0038】
推論処理とは、例えば、入力された画像データに対して、あらかじめ定められた画像の特徴に対する類似度を0~1の値で出力する。製品の不良検査の場合、「傷」、「欠損」、「ゆがみ」などの特徴を表すラベルとして定め、入力された画像データに対して、それぞれのラベルの類似値を出力する。そして、ラベルに対する値が一定数(例えば、0.8等)を超えた一番大きな値を持つラベルをその画像データに対するラベルと決定する。推論部110では、入力された画像データは新たにIDを採番し、入力データ群131に記録するとともに、推論結果を、推論結果管理テーブル133に記録する。
【0039】
上記のラベリング(分類)の他、物体検出では、画像中の対象物にラベル付けするとともに位置(XY座標)を検出する。骨格検出では、画像中の対象物の特定の箇所にラベル付けするとともに位置を検出する。セグメンテーションでは、画像のピクセルごとにラベル情報を付して領域を色分けする。また音声認識では音声データに対して文字を対応させる。学習データセットの形式は基本的に問題と解答の組である。
【0040】
図4は、推論結果管理テーブル133の一例である。データID401は、入力データ群131に登録されているデータのIDを示している。モデルID402はデータID401のデータに対して、推論を行ったモデルのIDを、ラベル403は、その推論の結果として出力されたラベルを記録している。例えば、行406は、データIDが51のデータに対しては、モデル1にて推論を実施し、「正常」と判定されたことを示している。行407では、データIDが52のデータに対しては、モデル1にて推論が実施され、「欠損」と判定されたことを示している。
【0041】
推論部110により入力データに対して順次推論が実施されるが、推論結果がすべて正しいとは限らない。そのため、推論処理が実行された後に、推論結果の誤りが判明することがある。例えば、工場のラインを流れる製品の不良検査を行っている場合、推論システムによる自動診断と同時に人手あるいは他の推論システムによるダブルチェックを行っていたり、あるいは、製品出荷などの後の工程で不良が判明したりする場合などがある。このような場合、推論結果管理部112では、新たに判明した正しいラベルを推論結果管理テーブル133に記録する。
【0042】
例えば、図4の行408で示されるデータ53では、推論部110では、モデル1を用いて「傷」と判定されていたが、のちに、「正常」と判明し、修正されたことを示している。行409で示されるデータ54では、「正常」の判定が、のちに「傷」に修正されている。
【0043】
推論結果管理テーブル133に蓄積されている推論結果が少ない場合は、データ入力部111を用いて、入力データを追加することができる。データ入力部111では、入出力部115にて、ネットワーク103を介して、利用者から入力データを受け取り入力データ群131に登録する。また、登録されたデータに対して、推論結果管理部112を介して修正結果404を登録する。また、データ入力部111は、モデル管理テーブル134に登録されているモデルを用いて仮の推論結果をラベル403欄に記録してもよい。この場合、利用者はデータ入力部111が作成したラベル403を確認し、誤っている場合は、修正結果404を書き込む。
【0044】
学習データ管理部113では、推論部110により推論結果管理テーブル133に蓄積されたデータを用いて、再学習に用いるデータの候補となるデータセットを抽出する。学習データ管理部113は、推論部110による推論結果が十分に蓄積された場合や、推論部110での推論結果に対するラベルの修正の割合が一定以上になった場合、あるいは、定期的に、推論システム101の利用者により実行される。
【0045】
学習データ管理部113では、まず、データセット管理部121により、ユーザインタフェースにより指定されたモデルに対する修正データを抽出し、その結果を表示する。利用者は、表示されたデータセットに対して、出力データセットに含めるデータの数、割合などを指定し、学習データ出力部122が指定に従いデータを抽出し、新たなデータセットを作成する。
【0046】
図5にユーザインタフェース501の一例を示す。このようなGUI(Graphical User Interface)は例えば画像出力装置に表示可能である。プルダウンメニュー502では、モデル管理テーブル134に登録されているモデルがリストとして表示され、利用者が一つのモデルを選択する。
【0047】
データセット管理部121は、選択されたモデルに応じて、学習データ情報表示部503、修正データ情報表示部504、その他の入力データ情報エリア505にデータを表示する。
【0048】
学習データ情報表示部503は、プルダウンメニュー502で選択されたモデルの学習データに関する情報を表示する。修正学習データ情報506は学習データのうち、ラベルに修正が発生しているデータ、その他の学習データ情報507は学習データのうち、ラベルに修正が発生していないデータを表す。
【0049】
修正データ情報表示部504は、プルダウンメニュー502にて選択されたモデル、および、そのモデルの学習の元になったモデルや、そのモデルを元にして作られたモデル群に対して、そのモデルが推論したデータのうち、新たにラベルが修正されたデータを表示する。修正データ情報508は、学習の元になったモデル毎にデータを抽出する。そのため、修正データ情報508が表示するモデルの数は、モデルの学習履歴に応じて増える。
【0050】
その他の入力データ情報エリア505では、プルダウンメニュー502にて選択されたモデルにて推論されたデータのうち、修正データ情報508に含まれていないデータの情報を新規データ情報509として表示する。
【0051】
図5の例では、モデル1を学習した学習データ50個についてはモデル1の推定結果は修正されておらず、新規データのモデル1による推定結果のうち2個が修正され、他の300個は修正されなかったことを示している。
【0052】
図6は、データを抽出し、図5への表示情報を生成するデータセット管理部121のフローチャートの一例である。開始(S601)は任意のタイミングで可能である。まず、プルダウンメニュー502によりモデルが選択される(S602)。
【0053】
次に、学習データ情報表示部503に表示するデータを抽出して表示する(S603)。この処理では、データセット管理部121は、選択されたモデルの学習データセットからラベルの修正があるデータを抽出し記録する。また、ラベル修正のないデータを抽出し記録する。それぞれの数を修正学習データ情報506として表示し、その他の学習データ情報507として表示する。
【0054】
具体的には、データセット管理部121は、選択されたモデルのモデルID301を用いてモデル管理テーブル134を検索し、選択されたモデルの学習に用いられた学習データセットID302を抽出する。そして、学習データセットID302を用いて、データセット管理テーブル132を検索し、選択されたモデルに対するデータセットを抽出する。
【0055】
次に、データセットに含まれるデータに対して、推論結果管理テーブル133の修正結果404欄が登録されているデータを修正学習データとして抽出し、その数を修正学習データ情報506に表示する。また、データセットに含まれるその他のデータを抽出し、その他の学習データ情報507にその数を表示する。
【0056】
修正学習データ情報506は、過去1度でも修正があったデータはもれなく抽出される。1つのデータが過去複数回修正されている場合は、まとめて1カウントとする。
【0057】
再学習では、新たなデータセットで学習して、実際に評価を行い、評価が悪ければ別のデータセットで再度学習を行うサイクルを繰り返すことになる。その場合に、新規データに対応することが重要であるが、過去の学習を忘れないという点も重要である。修正学習データ情報506は、評価の結果、過去の学習を忘れているようなら、この部分のデータを増やして新たな学習データセットを作成するためのものになる。これにより、より効率的に、過去の学習で取り込んだデータを、学習データに含めて、あらたな学習データセットを作ることが出来るようになる。
【0058】
次に、修正データ情報表示部504に表示する情報を生成する(S604,S605,S606)。S602にて選択されたモデルと、モデル管理テーブル134の次モデルID304欄を元に、S602で選択されたモデルの元になったモデル、および、そのモデルを元にしたモデルを逐次抽出し、新しいものから順に並べたモデルの依存関係リストを作成する。また、選択されたモデルの作成時間305を基準時間に設定する(S604)。
【0059】
依存関係リストのそれぞれのモデルに対して、そのモデルで推論が実施され、基準時間以降にラベルが修正されたデータを抽出し、その数を修正データ情報508に表示する(S605-S606)。
【0060】
修正データ情報508には、S602にて選択されたモデルの作成時(基準時間)以降に、関連する前の世代あるいは後の世代を含め、ラベルが修正されたデータを抽出する。これらのデータは、モデル作成後の状況変化でモデルに適合しなくなった新しい入力データを含む場合がある。修正されたデータがそのモデルを学習した学習データである場合、それらのデータも含む。ただし、修正学習データ情報506と重複する場合は除外してもよい。
【0061】
最後に、その他の入力データ情報エリア505に表示する情報を抽出する。基準時間を元に、推論結果管理テーブル133から基準時間以降で、修正結果404が登録されていないデータを抽出して、その数を新規データ情報509として登録する(S607)。
【0062】
図7は、S606の詳細を示すフローチャートの一例である。S606の処理は、依存関係リストに含まれる各世代のモデルについて実行される。まず、処理対象のモデル(例えば最新のモデル)について、モデル管理テーブル134の修正データセットID303欄をクリアする(S702)。
【0063】
クリアした修正データセットID303欄に、新たなIDを割り当てて新規にデータセットを作成し、そのデータセットのIDをモデル管理テーブル134に登録する。クリアされたデータセットIDを持つデータセットは、クリアしてもそのまま残してもよい。実際に適用するときは、過去の記録を保持する目的で、データセットは一定期間消さない運用とするのが望ましい。
【0064】
次に、すべての推論結果管理テーブル133のデータに対して(S703)、修正結果404欄を調べ、ラベルの修正が行われ(S704)、かつ、その修正時間が基準時刻より後であるかを調べる(S705)。もし、条件を満たす場合、モデル管理テーブル134の修正データセットID303欄で示されるデータセットのデータリスト202に、現在のデータのIDを追加する。
【0065】
例えば、S602で図3の行306に示すモデル1が選択された場合、学習データ情報表示部503では、修正学習データ情報506は0、その他のデータ情報507は、最初に登録した学習データ(1~50)が抽出される(図5参照)。
【0066】
また、修正データ情報508は、図2の行205より、53, 54の2つのデータが抽出される。そのため、図2の行205に示すデータセットが作成され、そのIDである2が、図3の修正データセットID欄303に記録される。
【0067】
また、モデル1を元にするモデル、あるいは、モデル1を元としたモデルがないので、モデル1に対する情報のみが表示される。最後に、その他の入力データ情報605では、新規データ情報509として、図4の行406、行407等で示されるデータが抽出される(図5参照)。
【0068】
なお、上記では、推論結果管理テーブル133に登録されているすべてのデータを抽出の対象としているが、推論システム101の適用環境によっては、すべてのデータを利用者がチェックすることは効率的に不可能な場合も考えられる。その場合、推論結果管理テーブル133に利用者による確認済みを示すフラグを用意することで対応可能である。利用者がダブルチェックなどを行ってラベルを確認した場合、確認済みフラグを設定する。データの抽出処理(図7)では、確認済みフラグが設定されているデータのみを抽出の対象とする。
【0069】
また、図6に示すフローチャートでは、S604にて作成される依存関係をリストとして表現しているが、あるモデルから複数のモデルが作成されることもある。このような場合は、モデル管理テーブル134の次モデルIDに複数のモデルのIDを記録し、依存するすべてのモデルをたどることにより対応可能である。
【0070】
次に利用者は、データセット管理部121により抽出されたデータを用いて、次の学習データに用いる新たなデータセットを作成する。図5の画面511がデータセット出力画面の例である。利用者は、抽出された学習データ情報表示部503、修正データ情報表示部504を元に、それぞれのデータ群のうち、新たなデータセットに含めるデータの数、および、最終的に作成したデータの個数を指定する(512)。新規作成ボタン513が押されると、指定されたデータと不足データを新規データ509で補ったデータセットを新たに作成し、データセット管理テーブル201に登録する。
【0071】
図8は学習データ出力部122の処理のフローチャートの一例である。まず、S603で抽出したデータ(推論結果に修正があった学習データ)から指定された数のデータを出力データセットに追加する(S802)。この時、データ数に対して指定された数が少ない場合は、データの中からランダムに選んだものを選択する。これらのデータは、学習データとして使用して、デグレードに効果が期待できる。
【0072】
次に、S604で作成した依存関係リストのモデルに対して、S606にて抽出、記録したデータ(基準時以降に修正があったデータ)に対して、指定された個数のデータを出力データセットに追加する(S805)。個数の指定はモデル毎に行ってもよい。これらのデータは、新しい入力データに対応させる学習に役立つことが期待できる。
【0073】
最後に、指定された合計数を、出力データセットのデータ数が満たさない場合は、不足分をS607で記録されたデータから抽出する(S807)。
【0074】
以上のように抽出して出力したデータを、次の再学習に用いる学習データとすることができる。本実施例では、デグレードに対処できるとともに、新しい入力データに対応する学習が可能な学習データを生成することができる。また、データ数の指定を調整することで、学習データの特性も調整が可能になっている。
【0075】
なお、S802、S805、S807において、ランダムでデータを選択する方法に変えて、新しいデータを選択したり、優先度の高いものを抽出したりしてもよい。優先度が高いものとは、例えば、ラベルの誤りが判明しづらかったものであり、例えば、より後工程で誤りが判明したものや、熟練者でしか誤りが見つけられなかったものである。これらは、例えば、推論結果管理テーブル133に、工程やラベルの修正者に関する情報を追加し、それらに優先度付けを行うことにより実現できる。
【0076】
次に、利用者は、学習データ管理部113で作成したデータセットと、モデル管理テーブル134にて管理されるモデルを用いて、再学習部114にてモデルの再学習を実施する。再学習にてモデルの認識精度など評価基準を満たすモデルができた場合、新たに作成されたモデルとデータセットを、モデル管理テーブル134に登録する。また、学習元モデルの次モデルID304欄に、新たに登録したモデルのIDを記録する。これにより、モデルの学習履歴を管理するとともに、モデルと学習データの対応付けが可能となる。
【0077】
なお、再学習で評価基準を満たすモデルができない場合がある。その場合、新たなデータの組み合わせから新たなデータセットを作成し再学習を繰り返す。もしも、新たに作成されたデータセットにて評価基準が大幅に下がった場合、新たに採用したデータが悪影響を及ぼしていることが考えられる。そのため、以降の学習データ管理部113の処理では、これらのデータを除外する必要がある。これらは、推論結果管理テーブル133に新たなにデータ抽出時に除外するためのフラグを設けることで対応する。
【0078】
学習データ管理部113が表示する画面に対して、除外情報を設定するボタンを用意する。ボタンが押された場合、選択されているモデルの学習データに対して、作成されたデータセットに新たに採用されているデータに対して除外フラグを設定する。データセット管理部121では、データ抽出時に、除外フラグが設定されいるデータは抽出対象から除外する。
【0079】
図9A~C、図10A~Cを用いて具体例を説明する。上記処理により推論、ラベル修正、データセット抽出、再学習のサイクルが繰り返された場合の動作例を、データセット管理テーブル132(図9A)、モデル管理テーブル134(図9B)、推論結果管理テーブル133(図9C)、並びに、図5の画面に表示する情報を示す図10A~Cを用いて説明する。
【0080】
本例では、モデル1を元に、再学習によりモデル2が生成され、さらにモデル2からモデル3が作られる場合を示している(図9B)。なお、図9B図9Cにおける作成時間欄の値は、数値が小さい順に時間が経過しているものとする。
【0081】
まず、最初に、図9Bのモデル管理テーブル134に初期モデルとしてモデル1と、その学習データであるデータセット1が登録される(911)。図9Aのデータセット管理テーブル132において、データセット1はデータ1から100で構成されている(901)。
【0082】
次に、推論部110では、モデル1を用いた推論が行われ、データ101から200が入力され、その後、推論結果管理部112により、データ102のラベルが修正されたとする(図9Cの921)。
【0083】
ここで、新たなモデル2の作成のために、学習データ管理部113の処理を実行すると、データセット管理部121により図10Aに示すデータが抽出される。また、本例では、学習データ出力部122によるデータセットの生成では、生成データ数を100とし、修正データが必ず用いられ、また、新規データが常に10個含まれるように作成されるものとする。これにより、修正データ102を含む10個の新規データ101~111を含む図9Aの行902に示すデータが抽出される。このデータセットで学習したモデルがモデル2として採用されると、図9Bのモデル管理テーブル134の行912が登録される。
【0084】
次に、モデル1の場合と同様に、推論部110ではモデル2が用いられ、データ201から300が入力され、その後、推論結果管理部112よりデータ103、203のラベルが修正されたものとする(図9Cの922,923)。この場合、データセット管理部121では、図10Bに示すデータが抽出される。次に、学習データ出力部122で、図9Aの行903で示すデータセット3が作成され、そのデータセットで学習したモデル3が登録される。
【0085】
なお、データ103の修正は、過去のモデルを使用していた時の結果の誤りを、後で発見して修正した場合を想定している。図9Cでは、前の世代であるモデルID1のモデルの推論結果を、モデルID2のモデルの稼働後の時刻である時刻103の時点で修正している。具体例としては、工場の検査などで、製造現場では誤りを発見できず出荷してしまい、その後、あらたなロットではモデルを更新して検査していたが、後になってから、出荷先から以前のロットでの不良品の連絡があった場合等である。
【0086】
次に、モデル1、モデル2の場合と同様に、推論部110でモデル3が用いられ、データ301から400が入力され、その後、推論結果管理部112により、データ104、202、203、302、303が修正されたものとする。この場合、データセット管理部121では、図10Cに示すデータが抽出される。
【0087】
図11にこの時点の学習データ管理部113が表示する画面の例を示す。ここでは、モデル3は、学習データのうち3個が修正され、この3個は次の学習データに採用される。また、学習データのうち97個は修正されなかったが、このうち83個が次の学習データに採用される。また、基準時以降、モデル3、モデル2、モデル1の各世代のモデルは、それぞれ2個,1個,1個のデータが修正され、これらは次の学習データに採用される。本実施例では、表示部1108,1109,1110に表示される修正されたデータの数は、学習データ、テストデータ、および運用データを区別していないが、分けて表示することもできる。
【0088】
学習データ管理部113が表示する画面に表示される各データの個数のうち、それぞれいくつを次の学習データに採用するかは、ユーザが枠511内の数値を調整することで任意に設定ができる。
【0089】
その他の学習データ507には、過去の世代で学習して、そのモデルでは正しく認識できているデータが含まれている。例えば、次の学習データをその他の学習データ507のデータを減らして作成し、もし、それにより学習したモデルがデグレードしているようなら、減らしたデータが原因でデグレードしていることが推定される。そのため、その他の学習データ507を用いればデグレードへの対応が可能となる。このようにして、過去の世代のモデルの学習で有用だったデータを、再学習に反映することができる。
【0090】
以上のように、本実施例では、推論で使用しているモデルに対して、その学習データに含まれているラベルが修正されているデータ、そのモデルに関連するモデルで推論された、ラベルが修正されているデータの一覧を抽出することができるようになり、また、それらのデータを組み合わせたデータセットを容易に作成することで、利用者によるデータ管理の効率を向上させることができるようになる。
【0091】
図12は本実施例にて説明した推論システム101が実行される計算機システムの一例である。計算機システムは、演算装置1201、記憶装置1202、メモリ装置1203、通信装置1204、入出力装置1205により構成され、それらがバス1206を介して接続されている。推論システム101を構成するプログラムは、記憶装置1202に保持され、演算装置1201により実行される。
【0092】
また、本実施例では、画像データに対するラベルによる分類を例に説明しているが、画像データに限定されるものではなく、音声データやテキストデータ、数値データなどに対してクラスわけを行う推論処理に対しても適用できる。
【0093】
以上の実施例では、モデルの学習履歴と、推論結果のデータに対するラベルの修正履歴を管理する。これらを用いて、再学習の元となるモデルや、そのモデルの元になった世代のモデルを用いて行われた推論結果に対して、ラベルが修正されたデータと、学習データに含まれるラベルが修正されたデータを抽出する。
【0094】
以上により、モデルの精度向上に重要となるラベルが修正されたデータを、モデルの履歴に基づいて抽出することが可能となり、学習データの管理効率を向上することが可能となる。
【0095】
上記実施例によれば、効率の良い機械学習が実現可能となるため、消費エネルギーが少なく、炭素排出量を減らし、地球温暖化を防止、持続可能な社会の実現に寄与することができる。
【符号の説明】
【0096】
推論システム101、システム利用者端末102、ネットワーク103、推論部110、データ入力部111、推論結果管理部112、学習データ管理部113、再学習部114、入出力部115、入力データ群131、データセット管理テーブル132、推論結果管理テーブル133、モデル群135、モデル管理テーブル134
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図10A
図10B
図10C
図11
図12