(57)【要約】      （修正有）【課題】モデルを用いた推論の良し悪しに影響する訓練データがどれかを評価する訓練データ評価装置を提供する。【解決手段】訓練データ評価装置１は、訓練データを複数のバッチデータに分けるバッチデータ生成部１１と、バッチデータを用いた訓練の対象となる基準モデルを生成する基準モデル生成部１０と、バッチデータを用いて基準モデルの訓練を行い、バッチデータのそれぞれに対応する複数の訓練後モデルを生成する訓練処理部１２と、複数の訓練後モデルにテストデータを適用して、それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価する評価部１３と、バッチデータの評価結果を出力する出力部１４とを備える。【選択図】図１
2020024633.tif 000002
【特許請求の範囲】
【請求項１】
訓練データを複数のバッチデータに分けるバッチデータ生成部（１１）と、
前記バッチデータを用いた訓練の対象となる基準モデルを生成する基準モデル生成部（１０）と、
前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成する訓練処理部（１２）と、
前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価する評価部（１３）と、
前記バッチデータの評価結果を出力する出力部（１４）と、
を備える訓練データ評価装置（１）。
【請求項２】
前記評価部（１３）は、
（ｉ）前記基準モデルよりも精度が高い前記訓練後モデルに対応するバッチデータ、
（ｉｉ）前記基準モデルよりも所定の閾値以上、精度が高くなった前記訓練後モデルに対応するバッチデータ、
（ｉｉｉ）精度が高い方から所定個数の前記訓練後モデルに対応するバッチデータ、
の少なくともいずれかのバッチデータを選択する請求項１に記載の訓練データ評価装置（１）。
【請求項３】
前記評価部（１３）は、
（ｉ）前記基準モデルよりも精度が低い前記訓練後モデルに対応するバッチデータ、
（ｉｉ）前記基準モデルよりも所定の閾値以上、精度が低くなった前記訓練後モデルに対応するバッチデータ、
（ｉｉｉ）精度が低い方から所定個数の前記訓練後モデルに対応するバッチデータ、
の少なくもいずれかのバッチデータを選択する請求項１に記載の訓練データ評価装置（１）。
【請求項４】
前記基準モデル生成部（１０）は、前記訓練データのうちの一部のデータを用いてモデルを訓練することによって生成する請求項１乃至３のいずれかに記載の訓練データ評価装置（１）。
【請求項５】
前記基準モデル生成部（１０）は、ノード間にランダムな重み付けを有するモデルを基準モデルとして生成する請求項１乃至３のいずれかに記載の訓練データ評価装置（１）。
【請求項６】
前記基準モデル生成部（１０）、前記バッチデータ生成部（１１）、前記訓練処理部（１２）および前記評価部（１３）による処理を繰り返し行い、所定の条件を満たす訓練後モデルを生成したバッチデータを選定する繰返処理部（３０）と、
前記繰返処理部（３０）にて選定されたバッチデータに共通に含まれる訓練データを選定する訓練データ選定部（１５）と、
を備える請求項１乃至５のいずれかに記載の訓練データ評価装置（２）。
【請求項７】
前記基準モデル生成部（１０）、前記バッチデータ生成部（１１）、前記訓練処理部（１２）および前記評価部（１３）による処理を繰り返し行い、所定の条件を満たす訓練後モデルを生成したバッチデータを選定する繰返処理部（３０）と、
（ｉ）前記繰返処理部（３０）にて選定された全てのバッチデータ、または、（ｉｉ）全てのバッチデータの中から精度の高い方から、または精度の低い方から所定の個数の訓練データ、のいずれかを選定する訓練データ選定部（１５）と、
を備える請求項１乃至５のいずれかに記載の訓練データ評価装置（２）。
【請求項８】
訓練データを複数のバッチデータに分けるステップと、
前記バッチデータを用いた訓練の対象となる基準モデルを生成するステップと、
前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成するステップと、
前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価するステップと、
前記バッチデータの評価結果を出力するステップと、
を備える訓練データ評価方法。
【請求項９】
訓練データの評価を行うためのプログラムであって、コンピュータに、
訓練データを複数のバッチデータに分けるステップと、
前記バッチデータを用いた訓練の対象となる基準モデルを生成するステップと、
前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成するステップと、
前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価するステップと、
前記バッチデータの評価結果を出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習において用いられる訓練データの訓練データ評価装置、訓練データ評価方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、機械学習システムの研究が盛んに行われている。機械学習システムは非常に高性能化しており、例えば、セキュリティや自動運転車等へのアプリケーションが検討されている。
【０００３】
特許文献１は、学習モデルの予測性能を高めるために、対象のデータに対して適切な機械学習のアルゴリズムを選択する機械学習管理の発明を開示している。この発明では、同じデータに対して機械学習アルゴリズムを変えながら何度もモデルの作成と評価を繰り返すモデル探索を行う。このモデル探索を繰り返すときに、過去に実施したモデル探索の過程で生成し、キャッシュに格納されたデータを再利用する。
【０００４】
機械学習システムにおいては、推論の対象を特定する要件（例えば、自動運転でいえば、道路を走行する車両の検出等）を定め、予め多数の訓練データを用いて、当該推論を行うためのモデルを学習する（非特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−２２８０８６号公報
【非特許文献】
【０００６】
【非特許文献１】Laura L. Pullum Brian J. Taylor Majorie A. Darrah「Guidance for the Verification and Validation of Neural Networks」
【発明の概要】
【発明が解決しようとする課題】
【０００７】
機械学習システムにおいては、生成されたモデルに対して、モデル生成に用いた訓練データとは異なるテストデータを用いてモデルの汎化性能の検証を行うのが一般的である。この検証において、適切な推論を行えないテストデータがあった場合、モデル生成に用いた訓練データの一部が原因となっていることがあるが、どの訓練データが原因となっているかを知ることはできなかった。
【０００８】
本発明は、上記背景に鑑み、モデルを用いた推論の良し悪しに影響する訓練データがどれかを評価する訓練データ評価装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施の形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
【００１０】
本発明の訓練データ評価装置（１）は、訓練データを複数のバッチデータに分けるバッチデータ生成部（１１）と、前記バッチデータを用いた訓練の対象となる基準モデルを生成する基準モデル生成部（１０）と、前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成する訓練処理部（１２）と、前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価する評価部（１３）と、前記バッチデータの評価結果を出力する出力部（１４）とを備える。
【００１１】
この構成により、複数のバッチデータのそれぞれを使って基準モデルを訓練し、訓練後モデルの精度を評価することにより、訓練データが推論の要件に合っているかどうかを評価できる。
【００１２】
本発明の訓練データ評価方法は、訓練データを複数のバッチデータに分けるステップと、前記バッチデータを用いた訓練の対象となる基準モデルを生成するステップと、前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成するステップと、前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価するステップと、前記バッチデータの評価結果を出力するステップとを備える。
【００１３】
本発明のプログラムは、訓練データの評価を行うためのプログラムであって、コンピュータに、訓練データを複数のバッチデータに分けるステップと、前記バッチデータを用いた訓練の対象となる基準モデルを生成するステップと、前記バッチデータを用いて前記基準モデルの訓練を行い、前記バッチデータのそれぞれに対応する複数の訓練後モデルを生成するステップと、前記複数の訓練後モデルにテストデータを適用して、前記それぞれの訓練後モデルを評価することによって、当該訓練後モデルを生成したバッチデータを評価するステップと、前記バッチデータの評価結果を出力するステップとを実行させる。
【発明の効果】
【００１４】
本発明によれば、訓練データのうちのどの訓練データが、精度の高い又は低いモデルの生成につながっているかを評価することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の訓練データ評価装置の構成を示す図である。
【図２】バッチデータを用いてモデルを訓練する過程の一例を示す図である。
【図３】（ａ）訓練データを示す模式図である。（ｂ）訓練データをバッチデータに分けた例を示す図である。
【図４】複数のバッチデータを適用して複数の訓練後モデルを生成した例を示す図である。
【図５】第１の実施の形態の訓練データ評価装置の動作を示すフローチャートである。
【図６】第２の実施の形態の訓練データ評価装置の構成を示す図である。
【図７】訓練データ選定部による訓練データの選定について説明するための図である。
【図８】第２の実施の形態の訓練データ評価装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態の訓練データ評価装置について図面を参照して説明する。以下で説明する実施の形態では、ニューラルネットワークモデルを例として説明するが、本発明は、ニューラルネットワーク以外のモデルを訓練する訓練データの評価にも用いることができる。
【００１７】
（第１の実施の形態）
図１は、第１の実施の形態の訓練データ評価装置１の構成を示す図である。訓練データ評価装置１は、評価の対象となる訓練データを記憶した訓練データ記憶部２０を有している。訓練データによって生成するモデルの要件は、例えば、「自車線上の自動車を認識すること」であり、このための訓練データは、フロントガラスから撮影した画像に自動車を示す境界ボックスを付した大量の画像である。
【００１８】
本実施の形態の訓練データ評価装置１は、大量の訓練データを評価して、「自車線上の自動車を認識すること」という要件を満たすモデルを生成するのに適した訓練データを選定するものである。モデルとしては、Ｎ層畳み込みニューラルネットワークのモデルを用いる。
【００１９】
訓練データ評価装置１は、基準モデル生成部１０と、バッチデータ生成部１１と、訓練処理部１２と、評価部１３と、出力部１４とを有している。基準モデル生成部１０は、バッチデータを用いた訓練の対象となる基準モデルを生成する。本実施の形態では、基準モデル生成部１０は、訓練データの一部を用いてモデルを訓練することにより、基準モデルを生成する。
【００２０】
図２は、バッチデータを用いてモデルを訓練する過程を示す図である。横軸は訓練進捗を示し、縦軸は要件を満たす度合いを示している。バッチデータを使った訓練が進捗すると、徐々に、モデルが要件を満たす度合いは上がっていく。基準モデル生成部１０は、訓練データの一部を適用して生成されたモデルを基準モデルとする。訓練初期のモデルは、訓練による変動が大きいので基準モデルには適していない。訓練後期のモデルは要件を満たす度合いが安定してくるので、基準モデルには適していない。本実施の形態では、要件を満たす度合いが安定し始めたところ、例えば、７０％の確信度が得られるモデルを基準モデルとする。
【００２１】
バッチデータ生成部１１は、訓練データ記憶部２０に記憶された大量の訓練データをバッチデータに分ける機能を有する。
【００２２】
図３（ａ）は、訓練データ記憶部２０に記憶された大量の訓練データを示す模式図である。図３（ａ）に示す一つ一つの四角は、フロントガラスから撮影した画像に自動車を示す境界ボックスを付した画像を模したものである。バッチデータ生成部１１は、図３（ｂ）に示すように、訓練データをバッチデータに分ける。図３（ｂ）では、９つのデータを１つのバッチとしているが、これは例であって、１つのバッチに含める訓練データの数はいくつでもよい。なお、バッチデータは、１つの訓練データで構成されていてもよい。
【００２３】
バッチデータ生成部１１は、生成したバッチデータをバッチデータ記憶部２１に記憶する。なお、バッチデータ記憶部２１にはバッチに含まれる訓練データ自体を記憶してもよいし、訓練データ自体を記憶しないでバッチに含まれる訓練データのＩＤを記憶してもよい。後者の構成の場合には、実際に訓練を行う際には、訓練データ記憶部２０から訓練データを読み出すことになる。
【００２４】
訓練処理部１２は、複数のバッチデータを用いて基準モデルの訓練を行い、バッチデータのそれぞれに対応する複数の訓練後モデルを生成する。図４は、基準モデルに対して、複数のバッチデータを適用して複数の訓練後モデルを生成した例を示す図である。訓練処理部１２は、基準モデルに対して、バッチ１００の訓練データを用いて訓練後モデルＭ１００を生成し、基準モデルに対して、バッチ１０１の訓練データを用いて訓練後モデルＮ１０１を生成する。このように、複数のバッチデータを個別に適用して、それぞれのバッチデータに対応する複数の訓練後モデルを生成する。
【００２５】
評価部１３は、訓練処理部１２にて生成された訓練後モデルに対してテストデータを適用して、訓練後モデルがテストデータを正しく識別できるか等を評価する。テストデータは、訓練データとは異なるデータであり、テストデータ記憶部２３に記憶されている。評価部１３は、各訓練後モデルに対してテストデータを適用して評価した評価結果に基づいて、バッチデータを選定する。
【００２６】
評価部１３は、評価結果の良好な訓練後モデルに対応するバッチデータを選定する場合もあれば、評価結果の悪い訓練後モデルに対応するバッチデータを選定する場合もある。いずれの訓練後モデルに対応するバッチデータを選定するかは、訓練データ評価装置１を使用する目的による。例えば、新しいモデルを生成する際に、要件の類似する過去のモデルの生成に役立った過去の訓練データがあると便利であるので、モデルの生成に役立った訓練データを探す場合には、評価結果の良好な訓練後モデルに対応するバッチデータを選定する。逆に、例えば、生成されたモデルに対してテストデータを適用したが、うまくいかないテストデータがあったときに、どの訓練データに問題があったのかを解析する場合には、評価結果の悪い訓練後モデルに対応するバッチデータを選定する。
【００２７】
なお、評価部１３がバッチデータを選定する手法はいろいろと考えられる。評価部１３は、（ｉ）基準モデルよりも精度が高い訓練後モデルに対応するバッチデータを選定することができる。ここで、基準モデルと訓練後モデルの精度は、テストデータの識別率（例えば、自車線上の自動車を認識する確率）によって測ることができる。あるいは、ニューラルネットワークから出力される判定の確信度（ＳＯＦＴＭＡＸの出力値等）によって、精度を規定することもできる。
【００２８】
また、（ｉｉ）基準モデルよりも所定の閾値以上、精度が高くなった訓練後モデルに対応するバッチデータを選定してもよい。また、（ｉｉｉ）精度が高い方から所定個数の訓練後モデルに対応するバッチデータを選定してもよい。ここでは、精度が高いバッチデータを選定する例を挙げて説明しているが、精度が低いバッチデータも同様の基準で選定できる。出力部１４は、評価部１３にて選定したバッチデータを示すデータを出力する。
【００２９】
図５は、第１の実施の形態の訓練データ評価装置１の動作を示す図である。訓練データ評価装置１は、訓練データの一部を用いて基準モデルを生成する（Ｓ１０）。次に、訓練データ評価装置１は、訓練データ記憶部２０に記憶されている大量の訓練データを分けてバッチデータを生成する（Ｓ１１）。続いて、訓練データ評価装置１は、バッチデータを用いて基準モデルの訓練を行い（Ｓ１２）、訓練によって生成された訓練後モデルのテストを行う（Ｓ１３）。
【００３０】
訓練データ評価装置１は、全バッチデータの処理を終了したか否かを判定する（Ｓ１４）。全バッチデータについて処理を終了していない場合には（Ｓ１４でＮＯ）、次のバッチデータを用いて、基準モデルの訓練を行い（Ｓ１２）、訓練後モデルのテストを行う（Ｓ１３）。
【００３１】
全バッチデータについて訓練を終了した場合は（Ｓ１４でＹＥＳ）、訓練データ評価装置１は、訓練後モデルの評価結果に基づいて、要件に適したモデルを生成したバッチデータを選定し（Ｓ１５）、選定結果を出力する（Ｓ１６）。
【００３２】
以上、本実施の形態の訓練データ評価装置１の構成について説明したが、上記した訓練データ評価装置１のハードウェアの例は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたコンピュータである。上記した各機能を実現するモジュールを有するプログラムをＲＡＭまたはＲＯＭに格納しておき、ＣＰＵによって当該プログラムを実行することによって、上記した訓練データ評価装置１が実現される。このようなプログラムも本発明の範囲に含まれる。
【００３３】
第１の実施の形態の訓練データ評価装置１は、複数のバッチデータのそれぞれを使って基準モデルを訓練し、訓練後モデルの精度を評価することにより、訓練後モデルの良し悪しによって、バッチデータに含まれる訓練データが推論の要件に合っているかどうかを評価できる。
【００３４】
（第２の実施の形態）
図６は、第２の実施の形態の訓練データ評価装置２の構成を示す図である。第２の実施の形態の訓練データ評価装置２は、上記した第１の実施の形態の訓練データ評価装置１と同様に訓練データの評価を行うが、基準モデルを変えてバッチデータの評価を繰り返し行う。そして、異なる試行で選定されたバッチデータに共通して含まれる訓練データを選定する。すなわち、第１の実施の形態では、バッチデータを単位として、評価の高い訓練データを選定していたのに対し、第２の実施の形態では各訓練データの単位で評価の高い訓練データを選定する。
【００３５】
第２の実施の形態の訓練データ評価装置２は、繰返処理部３０を有している。繰返処理部３０は、基準モデル生成部１０、バッチデータ生成部１１、訓練処理部１２および評価部１３を有している。基準モデル生成部１０は、訓練データを用いて基準モデルを生成するが、繰り返しのたびに異なる基準モデルを生成する。
【００３６】
バッチデータ生成部１１は、訓練データからバッチデータを生成するが、繰り返しのたびに異なるバッチデータを生成する。訓練処理部１２および評価部１３は、バッチデータ生成部１１にて生成されたバッチデータを用いて、第１の実施の形態の訓練データ評価装置１と同様に、基準モデルの訓練を行い、その訓練後モデルを用いてバッチデータを評価する。評価部１３は、選定したバッチデータを選定バッチデータ記憶部２４に記憶する。続いて、訓練データ選定部１４は、選定されたバッチデータに共通に含まれる訓練データを選定する。
【００３７】
図７は、訓練データ選定部１４による訓練データの選定について説明するための図である。図７には、繰り返し処理のＭ回目の試行において良い結果を得たバッチデータと、Ｎ回目の試行において良い結果を得たバッチデータの例を示している。訓練データ選定部１４は、異なる試行において得られたバッチデータに共通して含まれる訓練データを選定する。図７に示す例では、網掛けをしたデータＡとデータＢが両方のバッチデータに共に含まれているので、訓練データ選定部１４は、データＡとデータＢを選定する。
【００３８】
図７では、２回の選定結果に共通して含まれるデータを選定する例を挙げたが、訓練データ選定部１４は、Ｋ回（例えば、３回等）の結果に共通して含まれるデータを選定することとしてもよいし、すべての結果に共通して含まれるデータを選定することとしてもよい。
【００３９】
図８は、第２の実施の形態の訓練データ評価装置２の動作を示すフローチャートである。訓練データ評価装置２は、訓練データ記憶部２０に記憶されている訓練データの一部を用いて基準モデルを生成する（Ｓ３０）。
【００４０】
次に、訓練データ評価装置２は、訓練データ記憶部２０に記憶されている大量の訓練データを分けてバッチデータを生成する（Ｓ３１）。続いて、訓練データ評価装置２は、バッチデータを用いて基準モデルの訓練を行い（Ｓ３２）、訓練によって生成された訓練後モデルのテストを行う（Ｓ３３）。
【００４１】
訓練データ評価装置２は、全バッチデータの処理を終了したか否かを判定する（Ｓ３４）。全バッチデータについて処理を終了していない場合には（Ｓ３４でＮＯ）、次のバッチデータを用いて、基準モデルの訓練を行い（Ｓ３２）、訓練後モデルのテストを行う（Ｓ３３）。
【００４２】
全バッチデータについて訓練を終了した場合は（Ｓ３４でＹＥＳ）、訓練データ評価装置２は、訓練後モデルの評価結果に基づいて、要件に適したモデルを生成したバッチデータを選定し（Ｓ３５）、選定結果を出力する（Ｓ３６）。
【００４３】
次に、訓練データ評価装置２は、繰返し処理を終了するか否かを判定する（Ｓ３６）。繰返し処理を終了しないと判定された場合（Ｓ３６でＮＯ）、訓練データ評価装置２は、基準モデルの生成の処理（Ｓ３０）に戻り、上記した処理を繰り返す（Ｓ３１〜Ｓ３５）。繰返し処理を終了すると判定された場合（Ｓ３６でＹＥＳ）、訓練データ評価装置２は、選定されたバッチデータに共通して含む訓練データを抽出し（Ｓ３７）、抽出結果を出力する（Ｓ３８）。
【００４４】
第２の実施の形態の訓練データ評価装置２は、基準モデルとバッチデータを組み直してバッチデータの評価を行い、選定されたバッチデータに共通に含まれる訓練データを選定するので、バッチの単位よりもきめ細かく、要件を満たすモデルの生成に寄与する訓練データを選定できる。
【００４５】
また、基準モデルを変えて生成した訓練後モデルを用いて評価を行うので、特定の基準モデルの特性に影響を受けることが少なくなり、訓練データの適切な評価を行える。
【００４６】
本実施の形態の訓練データ評価装置２では、基準モデルを変えて選定した複数のバッチデータに共通して含まれる訓練データを選定する例を挙げたが、複数のバッチデータから訓練データを選定する方法は他にも考えられる。例えば、（ｉ）繰返処理部３０にて選定された全てバッチデータを選定することとしてもよい。また、（ｉｉ）全てのバッチデータの中から精度の高い方から、または精度の低い方から所定の個数の訓練データ、のいずれかを選定してもよい。
【００４７】
上記した実施の形態の訓練データ評価装置１，２では、訓練データ記憶部２０に記憶された訓練データの一部を用いて基準モデルを生成する例を挙げたが、訓練データを用いないで基準モデルの生成を行ってもよい。例えば、ニューラルネットワークモデルのノード間の重み係数をランダムに設定して基準モデルを生成してもよい。
【産業上の利用可能性】
【００４８】
本発明は、機械学習において用いられる訓練データの評価を行う装置として有用である。
【符号の説明】
【００４９】
１、２  訓練データ評価装置，１１  バッチデータ生成部，１２  訓練処理部，
１３  評価部，１４  出力部，１５  訓練データ選定部，２０  訓練データ記憶部，
２１  バッチデータ記憶部，２２  基準モデル記憶部，２３  テストデータ記憶部，
２４  選定バッチデータ記憶部，２５  選定訓練データ記憶部，３０  繰返処理部
【図１】
2020024633.tif 000003
【図２】
2020024633.tif 000004
【図３】
2020024633.tif 000005
【図４】
2020024633.tif 000006
【図５】
2020024633.tif 000007
【図６】
2020024633.tif 000008
【図７】
2020024633.tif 000009
【図８】
2020024633.tif 000010