(57)【特許請求の範囲】
【請求項１】
与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段と、
前記学習データを用いて、前記第１のモデルを機械学習によって学習する第１の学習処理を実行する第１の学習手段と、
前記学習データを前記第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと前記学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理を実行する選別手段と、
第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行する第２の学習手段とを備え、
所定の条件が満たされるまで、
前記第１の学習手段が前記第１の学習処理を実行し、前記選別手段が前記選別処理を実行し、前記第２の学習手段が前記第２の学習処理を実行することを繰り返し、
前記第１の学習手段は、
前記第１の学習処理において、前記第２のモデルが生成されている場合に、個々の学習データを前記第２のモデルに適用することによって、前記個々の学習データを評価し、所定の評価の学習データを除外して、前記第１のモデルを学習する
ことを特徴とする学習装置。
【請求項２】
第２の学習手段は、
第２の学習処理において、学習データが第１のモデルの学習に用いる学習データとして適切であるか不適切であるかを判定するためのモデルを、第２のモデルとして学習し、
第１の学習手段は、
第１の学習処理において、前記第２のモデルが生成されている場合に、個々の学習データを前記第２のモデルに適用することによって、前記個々の学習データが適切であるか不適切であるかを判定し、不適切と判定した学習データを除外して、前記第１のモデルを学習する
請求項１に記載の学習装置。
【請求項３】
選別手段は、
選別処理において、正解カテゴリ毎に、
学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと前記学習データに対応する正解カテゴリとの差分に基づいて学習データをソートする
請求項１または請求項２に記載の学習装置。
【請求項４】
選別手段は、
選別処理において、判定結果となるカテゴリと正解カテゴリとの差分に基づいて、昇順に学習データをソートする
請求項１から請求項３のうちのいずれか１項に記載の学習装置。
【請求項５】
ユーザから、学習データが適切であるか否かの指定を受け付ける指定受付手段を備え、
第２の学習手段は、
選別手段によって第１の学習データとして選別された学習データ、および、前記選別手段によって第２の学習データとして選別された学習データ、並びに、ユーザから適切な学習データとして指定された学習データ、および、前記ユーザから不適切な学習データとして指定された学習データを用いて、第２のモデルを学習する
請求項１から請求項４のうちのいずれか１項に記載の学習装置。
【請求項６】
除外対象となる所定の評価の学習データを表示する表示制御手段を備える
請求項１から請求項５のうちのいずれか１項に記載の学習装置。
【請求項７】
選別手段は、
選別処理において、ベクトルで表された、カテゴリの判定結果と、ベクトルで表された正解データとの差分のノルムに基づいて、学習データをソートする
請求項１から請求項６のうちのいずれか１項に記載の学習装置。
【請求項８】
与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段を備えたコンピュータが、
前記学習データを用いて、前記第１のモデルを機械学習によって学習する第１の学習処理を実行し、
前記学習データを前記第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと前記学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理を実行し、
第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行し、
所定の条件が満たされるまで、前記第１の学習処理、前記選別処理および前記第２の学習処理を繰り返し、
前記第１の学習処理において、前記第２のモデルが生成されている場合に、個々の学習データを前記第２のモデルに適用することによって、前記個々の学習データを評価し、所定の評価の学習データを除外して、前記第１のモデルを学習する
ことを特徴とする学習方法。
【請求項９】
コンピュータが、
第２の学習処理において、学習データが第１のモデルの学習に用いる学習データとして適切であるか不適切であるかを判定するためのモデルを、第２のモデルとして学習し、
第１の学習処理において、前記第２のモデルが生成されている場合に、個々の学習データを前記第２のモデルに適用することによって、前記個々の学習データが適切であるか不適切であるかを判定し、不適切と判定した学習データを除外して、前記第１のモデルを学習する
請求項８に記載の学習方法。
【請求項１０】
与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段を備えたコンピュータに搭載される学習プログラムであって、
前記コンピュータに、
前記学習データを用いて、前記第１のモデルを機械学習によって学習する第１の学習処理、
前記学習データを前記第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと前記学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理、および、
第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行させ、
所定の条件が満たされるまで、前記第１の学習処理、前記選別処理および前記第２の学習処理を繰り返させ、
前記第１の学習処理において、前記第２のモデルが生成されている場合に、個々の学習データを前記第２のモデルに適用することによって、前記個々の学習データを評価させ、所定の評価の学習データを除外して、前記第１のモデルを学習させる
ための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データが該当するカテゴリを判定するためのモデルを機械学習によって学習する学習装置、学習方法および学習プログラムに関する。
【背景技術】
【０００２】
データが該当するカテゴリを判定するためのモデルを機械学習によって学習する場合、予め収集された学習データを用いて、モデルを学習する。【０００３】
学習データの中に、カテゴリの判定に影響する特徴を有していない学習データが存在していると、学習されたモデルの判定精度が低下したり、モデルの学習に悪影響を与えたりする。そのため、収集された学習データの中から、カテゴリの判定に影響する特徴を有していない学習データを除去する必要がある。一般的には、専門家が、モデルの学習後に、学習されたモデルに基づいて、学習データを手作業で吟味し、除去すべき学習データを手作業で除去する。【０００４】
また、特許文献１には、各データの素性情報を基に、素性とその評価の間の対応関係を学習し、学習結果に基づいて、学習データの候補の中から、機械学習に不適切な学習データを削除する機械学習システムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１８１９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ディープラーニング等の機械学習を利用した画像認識の精度向上により、例えば、画像に写っている物体が所定の物体に該当するか否かを自動判定する処理等のニーズが高まっている。この場合、学習データとして、その所定の物体の画像を収集することになる。このとき、撮影条件等の制約により、画像に写っている物体が所定の物体に該当するか否かの判定に影響する特徴を明確に捉えた画像だけを収集することは難しい。【０００７】
さらに、機械学習において、所定の物体のどの部位が、所定の物体に該当するか否かの判定に影響する特徴になるのかが判明していない場合には、どのような画像が学習に適した画像であるのかが不明となる。そのため、上記のような特徴を明確に捉えた画像だけを収集することが、一層、難しくなる。【０００８】
また、学習に適していないデータが学習データに含まれたまま、モデルの学習を行うと、そのモデルによる判定精度が低下してしまう。【０００９】
そこで、本発明は、学習データの中から、モデルの学習に不適切な学習データを精度よく除外し、モデルの学習を行うことができる学習装置、学習方法および学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による学習装置は、与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段と、学習データを用いて、第１のモデルを機械学習によって学習する第１の学習処理を実行する第１の学習手段と、学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理を実行する選別手段と、第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行する第２の学習手段とを備え、所定の条件が満たされるまで、第１の学習手段が第１の学習処理を実行し、選別手段が選別処理を実行し、第２の学習手段が第２の学習処理を実行することを繰り返し、第１の学習手段が、第１の学習処理において、第２のモデルが生成されている場合に、個々の学習データを第２のモデルに適用することによって、個々の学習データを評価し、所定の評価の学習データを除外して、第１のモデルを学習することを特徴とする。【００１１】
また、本発明による学習方法は、与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段を備えたコンピュータが、学習データを用いて、第１のモデルを機械学習によって学習する第１の学習処理を実行し、学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理を実行し、第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行し、所定の条件が満たされるまで、第１の学習処理、選別処理および第２の学習処理を繰り返し、第１の学習処理において、第２のモデルが生成されている場合に、個々の学習データを第２のモデルに適用することによって、個々の学習データを評価し、所定の評価の学習データを除外して、第１のモデルを学習することを特徴とする。【００１２】
また、本発明による学習プログラムは、与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する学習データ記憶手段を備えたコンピュータに搭載される学習プログラムであって、コンピュータに、学習データを用いて、第１のモデルを機械学習によって学習する第１の学習処理、学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理、および、第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行させ、所定の条件が満たされるまで、第１の学習処理、選別処理および第２の学習処理を繰り返させ、第１の学習処理において、第２のモデルが生成されている場合に、個々の学習データを第２のモデルに適用することによって、個々の学習データを評価させ、所定の評価の学習データを除外して、第１のモデルを学習させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、学習データの中から、モデルの学習に不適切な学習データを精度よく除外し、モデルの学習を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の学習装置の構成例を示すブロック図である。
【図２】適切な学習データおよび不適切な学習データの選別を示す模式図である。
【図３】本発明の学習装置の処理経過の例を示すフローチャートである。
【図４】ステップＳ１０１の処理経過の例を示すフローチャートである。
【図５】学習データの除外を示す模式図である。
【図６】ステップＳ１０２の処理経過の例を示すフローチャートである。
【図７】本発明の第２の実施形態の学習装置の例を示すブロック図である。
【図８】本発明の第３の実施形態の学習装置の例を示すブロック図である。
【図９】本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図１０】本発明の学習装置の概要を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面を参照して説明する。
【００１６】
本発明の学習装置は、与えられたデータが該当するカテゴリを判定するためのモデルを機械学習によって学習する。カテゴリは、モデルを用いた判定処理の種々の判定結果である。例えば、画像に写っている物体が所定の物体に該当するか否かを判定するためのモデルを学習した場合、カテゴリの種類は、「画像に写っている物体が所定の物体に該当する」というカテゴリと、「画像に写っている物体が所定の物体に該当しない」というカテゴリの２種類になる。ただし、カテゴリの種類は２種類に限定されない。カテゴリの種類は、どのような学習データから、どのような判定を行うためのモデルを学習するかによって定まる。また、後述するように、モデルを学習するために用いられる個々の学習データには、その学習データに対して予め定められた正解カテゴリ（正解を表すカテゴリ）が対応付けられている。正解カテゴリは、学習データに応じて、例えば、予め、学習装置のユーザによって定められる。
【００１７】
なお、以下に示す各実施形態では、与えられたデータが該当するカテゴリを判定するためのモデルをディープラーニングによって学習する場合を例にして説明する。この場合、そのモデルを用いた判定処理によって判定結果として得られる各カテゴリは、ベクトルで表される。そして、個々の学習データに対応付けて予め定められている正解カテゴリも、ベクトルで表されるものとする。
【００１８】
実施形態１．
図１は、本発明の第１の実施形態の学習装置の構成例を示すブロック図である。本発明の学習装置１００は、学習データ記憶部１と、第１の学習部２と、第１のモデル記憶部３と、選別部４と、第２の学習部５と、第２のモデル記憶部６とを備える。
【００１９】
学習装置１００は、与えられたデータが該当するカテゴリを判定するためのモデルを機械学習によって学習するだけでなく、個々の学習データがそのモデルの学習に用いる学習データとして適切であるか否かを判定するためのモデルも機械学習によって学習する。２つのモデルを区別するために、与えられたデータが該当するカテゴリを判定するためのモデルを第１のモデルと記す。また、個々の学習データが第１のモデルの学習に用いる学習データとして適切であるか否かを判定するためのモデルを第２のモデルと記す。
【００２０】
学習データ記憶部１は、第１のモデルの学習（生成）に用いられる学習データを、複数個、記憶する記憶装置である。個々の学習データには、予め定められた正解カテゴリが対応付けられている。
【００２１】
第１のモデルとして、画像に写っている物体が所定の物体に該当するか否かを判定するためのモデルを学習する場合を例にして説明する。この場合、例えば、学習装置１００のユーザ（以下、単にユーザと記す。）は、複数個の画像データを収集する。そして、ユーザは、個々の画像データに対して、正解カテゴリを対応付けて、学習データ記憶部１に予め記憶させておく。ユーザは、画像に写っている物体が所定の物体に該当すると判断した場合には、「画像に写っている物体が所定の物体に該当する」という正解カテゴリをその画像の画像データに対応づければよい。また、ユーザは、画像に写っている物体が所定の物体に該当しないと判断した場合には、「画像に写っている物体が所定の物体に該当しない」という正解カテゴリをその画像の画像データに対応づければよい。
【００２２】
なお、学習データは、上記の画像データに限定されない。ユーザは、第１のモデルとして、どのような判定を行うためのモデルを学習するのかに応じた学習データを、正解カテゴリに対応づけて、学習データ記憶部１に記憶させておけばよい。
【００２３】
第１の学習部２は、学習データ記憶部１に記憶されている学習データを用いて、機械学習によって第１のモデルを学習する。各実施形態では、第１の学習部２がディープラーニングによって第１のモデルを学習する場合を例にして説明する。
【００２４】
また、第１の学習部２は、第２のモデル（個々の学習データが第１のモデルの学習に用いる学習データとして適切であるか否かを判定するためのモデル）が生成されている場合には、個々の学習データを第２のモデルに適用することによって、個々の学習データが適切であるか不適切であるかを判定する。そして、第１の学習部２は、不適切と判定した学習データを除外して残った学習データを用いて第１のモデルを学習する。
【００２５】
後述するように、学習装置１００は、第１の学習部２の処理、選別部４の処理、および、第２の学習部５の処理を、繰り返す。繰り返し処理の１回目では、まだ、第２のモデルは生成されていない。この場合、第１の学習部２は、学習データ記憶部１に記憶されている全ての学習データを用いて、第１のモデルを学習する。また、繰り返し処理の２回目以降では、第２のモデルが生成されている。この場合、第１の学習部２は、個々の学習データを第２のモデルに適用することによって、個々の学習データが適切であるか不適切であるかを判定する。そして、第１の学習部２は、不適切と判定した学習データを除外して残った学習データを用いて第１のモデルを学習する。
【００２６】
第１の学習部２は、学習によって得た第１のモデルを第１のモデル記憶部３に記憶させる。第１のモデル記憶部３は、第１のモデルを記憶する記憶装置である。
【００２７】
選別部４は、学習データ記憶部１から各学習データを読み込む。そして、選別部４は、正解カテゴリ毎に、個々の学習データを第１のモデルに適用することによって、その個々の学習データが該当するカテゴリを判定する。各実施形態では、第１の学習部２は、ディープラーニングによって第１のモデルを学習する。ディープラーニングによって得られたモデルによって、データが該当するカテゴリを判定する場合、カテゴリの判定結果は、ベクトルとして得られる。従って、個々の学習データに対するカテゴリの判定結果は、ベクトルとして得られる。また、学習データに対応付けられる正解データも予め、ベクトルとして定められる。選別部４は、正解カテゴリ毎に、個々の学習データに関して、学習データに対して判定したカテゴリと、その学習データに対応する正解データとの差分を計算し、さらに、その差分に基づいて、学習データをソートする。ここでは、選別部４は、差分を示す値に基づいて、昇順に学習データをソートするものとする。
【００２８】
選別部４は、上記の処理を、学習データに対応付けられている正解カテゴリ毎に行う。従って、上記の処理の結果、例えば、「画像に写っている物体が所定の物体に該当する」という正解カテゴリに対応付けられている各学習データがソートされ、また、「画像に写っている物体が所定の物体に該当しない」という正解カテゴリに対応付けられている各学習データがソートされる。
【００２９】
正解データとの差分が小さい学習データは、第１のモデルの学習に用いる学習データとして適切であると言える。また、正解データとの差分が大きい学習データは、第１のモデルの学習に用いる学習データとして不適切であると言える。従って、差分を示す値に基づいて昇順にソートされた学習データにおいて、上位の学習データは、適切な学習データであると言え、下位の学習データは、不適切な学習データであると言える。
【００３０】
選別部４は、正解カテゴリ毎に、昇順にソートされた学習データから、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別する。図２は、適切な学習データおよび不適切な学習データの選別を示す模式図である。図２では、正解カテゴリが“カテゴリＡ”、“カテゴリＢ”および“カテゴリＣ”の３種類である場合を例示している。選別部４は、正解カテゴリが“カテゴリＡ”である学習データをソートした後、その学習データの中から、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別する。選別部４は、正解カテゴリが“カテゴリＢ”である学習データ、および、正解カテゴリが“カテゴリＣ”である学習データに関しても、それぞれ同様に、ソート処理の後、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別する。適切な学習データとして選別された学習データ、および、不適切な学習データとして選別された学習データは、第２のモデルを学習するための学習データ（教師データ）となる。
【００３１】
なお、適切な学習データとして選別される学習データを第１の学習データと称し、不適切な学習データとして選別される学習データを第２の学習データと称することによって、適切な学習データとして選別される学習データと、不適切な学習データとして選別される学習データとを区別してもよい。
【００３２】
また、選別部４は、正解カテゴリに依らず、適切な学習データおよび不適切な学習データを選別してもよい。この場合、選別部４は、学習データに対して判定したカテゴリとその学習データに対応する正解データとの差分を示す値に基づいて、正解カテゴリに依らずに各学習データをソートし、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別すればよい。
【００３３】
第２の学習部５は、選別部４によって適切な学習データとして選別された学習データ、および、選別部４によって不適切な学習データとして選別された学習データを用いて（換言すれば、それらの学習データを教師データとして）、第２のモデルを機械学習によって学習する。第２の学習部５は、選別部４によって選別された学習データをまとめて用いて、正解カテゴリに依らず、第２のモデルを学習する。従って、正解カテゴリの種類が複数であっても、第２の学習部５は、第２のモデルを１つ学習する。
【００３４】
第２の学習部５は、学習によって得た第２のモデルを第２のモデル記憶部６に記憶させる。第２のモデル記憶部６は、第２のモデルを記憶する記憶装置である。
【００３５】
学習装置１００は、第１の学習部２が実行する処理（第１の学習処理と称することができる。）、選別部４が実行する処理（選別処理と称することができる。）、および、第２の学習部５が実行する処理（第２の学習処理と称することができる。）を、所定の条件が満たされるまで繰り返す。この所定の条件の例として、繰り返し回数が、予め定められた回数に達したことが挙げられる。あるいは、この所定の条件の他の例として、適切な学習データ、または、不適切な学習データとして選別された学習データを第２のモデルに適用した場合において、学習データの分類（「適切」または「不適切」）と、学習データを第２のモデルに適用することによって得た判定結果との差分が予め定められた閾値以下になったことが挙げられる。
【００３６】
第１の学習部２、選別部４および第２の学習部５は、例えば、学習プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）によって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から学習プログラムを読み込み、そのプログラムに従って、第１の学習部２、選別部４および第２の学習部５として動作すればよい。
【００３７】
次に、発明の処理経過について説明する。図３は、本発明の学習装置１００の処理経過の例を示すフローチャートである。
【００３８】
第１の学習部２は、第１のモデルを学習し、第１のモデル記憶部３に記憶させる（ステップＳ１０１）。ステップＳ１０１の具体的な処理経過については、後述する。
【００３９】
次に、学習装置１００は、第２のモデルを学習し、第２のモデル記憶部６に記憶させる。（ステップＳ１０２）。ステップＳ１０２の処理には、選別部４が、学習データ記憶部１に記憶されている学習データから学習データを選別する処理や、第２の学習部５が、選別された学習データを用いて第２のモデルが学習する処理が含まれる。ステップＳ１０２の具体的な処理経過については、後述する。
【００４０】
ステップＳ１０２の後、例えば、第１の学習部２が、所定の条件が満たされたか否かを判定する（ステップＳ１０３）。所定の条件が満たされていない場合には（ステップＳ１０３のＮｏ）、学習装置１００は、ステップＳ１０１以降の処理を繰り返す。所定の条件が満たされた場合には（ステップＳ１０３のＹｅｓ）、処理を終了する。
【００４１】
既に説明したように、所定の条件の例として、繰り返し回数が、予め定められた回数に達したことが挙げられる。例えば、第１の学習部２が、繰り返し回数が、予め定められた回数に達成したか否かを判定すればよい。
【００４２】
また、所定の条件の他の例として、適切な学習データ、または、不適切な学習データとして選別された学習データを第２のモデルに適用した場合において、学習データの分類（「適切」または「不適切」）と、学習データを第２のモデルに適用することによって得た判定結果との差分が予め定められた閾値以下になったことが挙げられる。学習データを第２のモデルに適用することによって学習データが適切か否かを判定する処理は、ステップＳ１０１において、第１の学習部２が行うので、第１の学習部２が上記の条件が満たされたか否かを判定すればよい。
【００４３】
次に、ステップＳ１０１の処理についてより具体的に説明する。図４は、ステップＳ１０１の処理経過の例を示すフローチャートである。
【００４４】
ステップＳ１０１において、まず、第１の学習部２は、学習データ記憶部１から、各学習データを読み込む（ステップＳ２０１）。
【００４５】
次に、第１の学習部２は、現在がステップＳ１０１〜Ｓ１０３（図３参照）の繰り返し処理の１回目であるか、あるいは、ステップＳ１０１〜Ｓ１０３の繰り返し処理の２回目以降であるかを判定する（ステップＳ２０２）。
【００４６】
現在がステップＳ１０１〜Ｓ１０３の繰り返し処理の１回目である場合には、まだ、第２のモデルは生成されていない。一方、ステップＳ１０１〜Ｓ１０３の繰り返し処理の２回目以降である場合には、第２のモデルが生成され、第２のモデル記憶部６に記憶されている。
【００４７】
現在が繰り返し処理の１回目である場合、ステップＳ２０５に移行する。ステップＳ２０２からステップＳ２０５に移行した場合、ステップＳ２０５において、第１の学習部２は、学習データ記憶部１から読み込んだ各学習データを全て用いて、機械学習によって、第１のモデルを学習する。
【００４８】
第１の学習部２は、ステップＳ２０５において、学習データを繰り返し使用する手法の機械学習によって、第１のモデルを学習する。学習データを繰り返し使用する手法の機械学習の一例がディープラーニングであり、各実施形態では、第１の学習部２が、学習データを用いて、ディープラーニングによって第１のモデルを学習する場合を例にする。ただし、第１の学習部２は、学習データを使用する反復回数として必要な回数を全て実行するのではなく、学習データを使用する反復回数が一定の回数に達したら、学習を終了する。
【００４９】
また、現在が繰り返し処理の２回目以降である場合、ステップＳ２０３に移行する。ステップＳ２０３において、第１の学習部２は、第２のモデル記憶部６から第２のモデルを読み込む。
【００５０】
ステップＳ２０３の後、第１の学習部２は、ステップＳ２０１で学習データ記憶部１から読み込んだ個々の学習データをそれぞれ、ステップＳ２０３で読み込んだ第２のモデルに適用することによって、その個々の学習データが、第１のモデルの学習に用いる学習データとして適切であるか否かを判定する。そして、第１の学習部２は、不適切と判定した学習データを、学習データ記憶部１から読み込んだ各学習データの中から除外する（ステップＳ２０４）。
【００５１】
図５は、学習データの除外を示す模式図である。図５に示す例では、第１の学習部２が、学習データＡ，Ｂ，Ｃ，Ｄをそれぞれ第２のモデルに適用した結果、学習データＡ，Ｃがそれぞれ不適切であり、学習データＢ，Ｄが適切であると判定した場合を示している。ステップＳ２０４からステップＳ２０５に移行した場合、学習データＡ，Ｃを除外して残った学習データを用いて、第１のモデルが学習される。
【００５２】
ステップＳ１０１〜Ｓ１０３（図３参照）は繰り返し実行されるので、ステップＳ１０１〜Ｓ１０３の繰り返し毎に、第２のモデルは更新される。従って、ステップＳ２０４に移行する毎に、第２のモデルは更新されている。そのため、ステップＳ２０１で学習データ記憶部１から読み込んだ個々の学習データに対するステップＳ２０４の判定結果は、変化し得る。例えば、ある学習データに関して、ステップＳ２０４で不適切であると判定した場合であっても、次回のステップＳ１０１におけるステップＳ２０４では、その学習データに関して適切であると判定し得る。
【００５３】
また、第１の学習部２は、ステップＳ２０４において、選別部４によって定められた学習データの分類（「適切」または「不適切」）と、学習データを第２のモデルに適用することによって得た判定結果との差分を示す数値を算出してもよい。そして、ステップＳ１０３（図３参照）では、第１の学習部２が、その差分を示す数値が閾値以下であるか否かによって、所定の条件が満たされたか否かを判定してもよい。
【００５４】
ステップＳ２０４の後、ステップＳ２０５に移行する。ステップＳ２０４からステップＳ２０５に移行した場合、ステップＳ２０５において、第１の学習部２は、不適切と判定した学習データを除外して残った学習データを用いて、ディープラーニングによって、第１のモデルを学習する。既に説明したように、第１の学習部２は、学習データを使用する反復回数が一定の回数に達したら、学習を終了する。
【００５５】
ステップＳ２０５の後、第１の学習部２は、ステップＳ２０５で生成した第１のモデルを第１のモデル記憶部３に記憶させる（ステップＳ２０６）。第１のモデル記憶部３に第１のモデルが記憶されている場合には、第１の学習部２は、直前のステップＳ２０５で生成した第１のモデルで、第１のモデル記憶部３に記憶されている第１のモデルを更新する。
【００５６】
ステップＳ２０６で、ステップＳ１０１（図３参照）が終了する。
【００５７】
次に、ステップＳ１０２の処理についてより具体的に説明する。図６は、ステップＳ１０２の処理経過の例を示すフローチャートである。
【００５８】
ステップＳ１０２において、まず、選別部４は、学習データ記憶部１から、各学習データを読み込む（ステップＳ３０１）。
【００５９】
次に、選別部４は、第１のモデル記憶部３から第１のモデルを読み込む（ステップＳ３０２）。この第１のモデルは、直近のステップＳ２０５（図４参照）で学習されたモデルである。
【００６０】
次に、選別部４は、正解カテゴリ毎に、個々の学習データを第１のモデルに適用することによって、その個々の学習データが該当するカテゴリを判定する（ステップＳ３０３）。ステップＳ３０３において、選別部４は、学習データを正解カテゴリ毎に分類する際に、各学習データに対応付けられている正解カテゴリを参照する。しかし、選別部４は、個々の学習データが該当するカテゴリを判定する際には、正解カテゴリを参照しない。
【００６１】
また、選別部４は、学習データを第１のモデルに適用することによって、その学習データが該当するカテゴリを判定する過程で、確信度を、カテゴリ毎に計算する。確信度は、着目しているカテゴリへの学習データの該当しやすさを示す数値である。選別部４は、確信度が最大となるカテゴリを、学習データが該当するカテゴリとして決定する。
【００６２】
ステップＳ３０３の次に、選別部４は、正解カテゴリ毎に、個々の学習データに関して、学習データに対してステップＳ３０３で判定したカテゴリと、その学習データに対応する正解データとの差分を計算し、さらに、その差分に基づいて、学習データをソートする（ステップＳ３０４）。ここでは、選別部４は、差分に基づいて、学習データを昇順にソートするものとする。
【００６３】
ステップＳ３０３で判定されたカテゴリと、正解カテゴリとの差分を示す値の算出方法の例を示す。既に説明したように、ディープラーニングによって得られたモデルによって、データが該当するカテゴリを判定する場合、カテゴリの判定結果は、ベクトルとして得られる。また、正解データも予め、ベクトルとして定められる。
【００６４】
例えば、選別部４は、ステップＳ３０３で判定したカテゴリを表すベクトルと、正解データを表すベクトルとの差分を計算し、その差分のＬ１ノルムを、差分を示す値として算出してもよい。そして、選別部４は、正解カテゴリ毎に、Ｌ１ノルムに基づいて、学習データを昇順にソートしてもよい。
【００６５】
また、例えば、ステップＳ３０３で判定したカテゴリを表すベクトルと、正解データを表すベクトルとの差分を計算し、その差分のＬ２ノルムを、差分を示す値として算出してもよい。そして、選別部４は、正解カテゴリ毎に、Ｌ２ノルムに基づいて、学習データを昇順にソートしてもよい。
【００６６】
また、選別部４は、前述の確信度に基づいて、学習データをソートしてもよい。具体的には、選別部４は、学習データのカテゴリを判定する過程で得た、その学習データに対応する正解カテゴリに対する確信度に基づいて、正解カテゴリ毎に、学習データを昇順にソートしてもよい。
【００６７】
ステップＳ３０４の後、選別部４は、第１のモデルの学習に用いる学習データとして適切な学習データと、不適切な学習データとをそれぞれ選別する（ステップＳ３０５）。
【００６８】
例えば、選別部４は、正解カテゴリ毎に、昇順にソートされた学習データから、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別する。
【００６９】
あるいは、選別部４は、正解カテゴリに依らずに各学習データをソートし、予め定められた個数の上位の学習データを適切な学習データとして選別し、予め定められた個数の下位の学習データを不適切な学習データとして選別してもよい。
【００７０】
ステップＳ３０５の次に、第２の学習部５は、選別部４によって適切な学習データとして選別された学習データ、および、選別部４によって不適切な学習データとして選別された学習データを全てまとめて用いて、機械学習によって、第２のモデルを学習する（ステップＳ３０６）。
【００７１】
ステップＳ３０６の後、第２の学習部５は、ステップＳ３０６で生成した第２のモデルを第２のモデル記憶部６に記憶させる（ステップＳ３０７）。第２のモデル記憶部６に第２のモデルが記憶されている場合には、第２の学習部５は、直前のステップＳ３０６で生成した第２のモデルで、第２のモデル記憶部６に記憶されている第２のモデルを更新する。
【００７２】
ステップＳ３０７で、ステップＳ１０２（図３参照）が終了する。
【００７３】
ステップＳ１０２の後、例えば、第１の学習部２が、所定の条件が満たされたか否かを判定する（ステップＳ１０３）。所定の条件が満たされていない場合には（ステップＳ１０３のＮｏ）、ステップＳ１０１以降の処理を繰り返す。所定の条件が満たされた場合には（ステップＳ１０３のＹｅｓ）、処理を終了する。
【００７４】
第１の実施形態によれば、選別部４が、第１のモデルの学習に用いる学習データとして適切な学習データ、および、不適切な学習データを選別する。そして、第２の学習部５が、選別部４によって選別された学習データを全てまとめて用いて、機械学習によって、第２のモデルを学習する。そして、第１の学習部２は、学習データ記憶部１に記憶されている個々の学習データをそれぞれ第２のモデルに適用することによって、個々の学習データが適切であるか不適切であるかを判定する。そして、第１の学習部２は、不適切と判定した学習データを除外して残った学習データを用いて第１のモデルを学習する。従って、個々の学習データの中から、第１のモデルの学習に不適切な学習データを除外して、第１のモデルの学習を行うことができる。
【００７５】
また、個々の学習データが第１のモデルの学習に用いる学習データとして適切であるか否かを判定するための第２のモデルを学習し、個々の学習データをそれぞれ第２のモデルに適用することによって、個々の学習データが適切であるか不適切であるかを判定する。従って、不適切な学習データを精度よく判別し、除外することができる。
【００７６】
また、不適切な学習データを精度よく除外して第１のモデルを学習するので、与えられたデータを第１のモデルに適用することで、そのデータのカテゴリを精度よく判定することができる。
【００７７】
実施形態２．
本発明の第２の実施形態の学習装置は、学習データが適切であるか否かの指定を受け付ける。図７は、本発明の第２の実施形態の学習装置の例を示すブロック図である。図１に示す要素と同様の要素については、図１と同一の符号を付し、説明を省略する。本発明の第２の実施形態の学習装置１００は、第１の実施形態の学習装置１００（図１参照）が備える各要素に加えて、さらに、指定受付部７を備える。
【００７８】
指定受付部７は、学習データ記憶部１に記憶されている個々の学習データが適切であるか否かの指定を、ユーザから受け付ける。例えば、指定受付部７は、ステップＳ３０５（図６参照）の後、学習データ記憶部１から各学習データを読み込み、学習装置１００が備えるディスプレイ装置（図７において図示略）に個々の学習データを表示する。そして、指定受付部７は、ディスプレイ上に表示したＧＵＩ（Graphic User Interface）を介して、個々の学習データが、第１のモデルの学習に用いる学習データとして適切であるか否かの指定を受け付ければよい。
【００７９】
上記の指定受付部７の動作の後に、ステップＳ３０６に移行する。ステップＳ３０６では、第２の学習部５は、選別部４によって適切な学習データとして選別された学習データ、および、選別部４によって不適切な学習データとして選別された学習データ、並びに、ユーザから適切な学習データとして指定された学習データ、および、ユーザから不適切な学習データとして指定された学習データを用いて、第２のモデルを学習する。
【００８０】
このとき、選別部４によって適切な学習データとして選別された学習データが、ユーザによって不適切と指定されている場合には、第２の学習部５は、ユーザによる指定を優先し、その学習データが不適切な学習データであるものとして、第２のモデルを学習する。
【００８１】
同様に、選別部４によって不適切な学習データとして選別された学習データが、ユーザによって適切と指定されている場合には、第２の学習部５は、ユーザによる指定を優先し、その学習データが適切な学習データであるものとして、第２のモデルを学習する。
【００８２】
指定受付部７は、例えば、学習プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から学習プログラムを読み込み、そのプログラムに従って、第１の学習部２、選別部４、第２の学習部５および指定受付部７として動作すればよい。
【００８３】
第２の実施形態によれば、学習データが適切か否かに関して、ユーザの判断も取り入れることができる。
【００８４】
実施形態３．
図８は、本発明の第３の実施形態の学習装置の例を示すブロック図である。図１に示す要素と同様の要素については、図１と同一の符号を付し、説明を省略する。本発明の第３の実施形態の学習装置１００は、第１の実施形態の学習装置１００（図１参照）が備える各要素に加えて、さらに、表示制御部８を備える。
【００８５】
表示制御部８は、ステップＳ２０４において第１の学習部２が不適切と判定した各学習データを、学習装置１００が備えるディスプレイ装置（図８において図示略）に表示する。
【００８６】
表示制御部８は、例えば、学習プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から学習プログラムを読み込み、そのプログラムに従って、第１の学習部２、選別部４、第２の学習部５および表示制御部８として動作すればよい。
【００８７】
本実施形態によれば、第１のモデルの学習に用いる学習データとして不適切と判定された学習データを、表示制御部８がディスプレイ装置に表示する。従って、ユーザに、不適切と判定された学習データを提示することができる。第３の実施形態では、不適切が学習データを検出して、ユーザに提示していると言うことができる。
【００８８】
また、第２の実施形態に、第３の実施形態を適用してもよい。
【００８９】
以上の説明では、第１のモデルとして、画像に写っている物体が所定の物体に該当するか否かを判定するためモデルを例示して説明した。第１のモデルは、このようなモデルに限定されない。例えば、第１のモデルは、姿勢の固定が難しい小型製品（例えば、ねじ等）が写っている画像の画像データが与えられた場合に、画像に写っている小型製品を分類するためのモデルであってもよい。
【００９０】
また、例えば、第１のモデルは、自然物（石や木等）が写っている画像の画像データが与えられた場合に、画像に写っている自然物を分類するためのモデルであってもよい。
【００９１】
また、例えば、第１のモデルは、外乱の影響を受ける環境（野外等）で撮影された画像の画像データが与えられた場合に、画像に写っている物を分類するためのモデルであってもよい。
【００９２】
図９は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、ディスプレイ装置１００５とを備える。
【００９３】
本発明の各実施形態の学習装置１００は、コンピュータ１０００に実装される。学習装置１００の動作は、学習プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、その学習プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、その学習プログラムに従って、上記の各実施形態で説明した処理を実行する。
【００９４】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【００９５】
次に、本発明の概要について説明する。図１０は、本発明の学習装置の概要を示すブロック図である。本発明の学習装置は、学習データ記憶手段７１と、第１の学習手段７２と、選別手段７３と、第２の学習手段７４とを備える。
【００９６】
学習データ記憶手段７１（例えば、学習データ記憶部１）は、与えられたデータが該当するカテゴリを判定するための第１のモデルの生成に用いられる学習データであって、予め定められた正解カテゴリと対応付けられている学習データを記憶する。
【００９７】
第１の学習手段７２（例えば、第１の学習部２）は、学習データを用いて、第１のモデルを機械学習によって学習する第１の学習処理を実行する。
【００９８】
選別手段７３（例えば、選別部４）は、学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと学習データに対応する正解カテゴリとの差分に基づいて学習データをソートし、定められた個数の上位の学習データを第１の学習データとして選別し、定められた個数の下位の学習データを第２の学習データとして選別する選別処理を実行する。
【００９９】
第２の学習手段７４（例えば、第２の学習部５）は、第１の学習データおよび第２の学習データを用いて、学習データを評価するための第２のモデルを機械学習によって学習する第２の学習処理を実行する。
【０１００】
そして、所定の条件が満たされるまで、第１の学習手段７２が第１の学習処理を実行し、選別手段７３が選別処理を実行し、第２の学習手段７４が第２の学習処理を実行することを繰り返す。
【０１０１】
また、第１の学習手段７２は、第１の学習処理において、第２のモデルが生成されている場合に、個々の学習データを第２のモデルに適用することによって、個々の学習データを評価し、所定の評価の学習データを除外して、第１のモデルを学習する。
【０１０２】
そのような構成により、学習データの中から、第１のモデルの学習に不適切な学習データを精度よく除外し、第１のモデルの学習を行うことができる。
【０１０３】
また、第２の学習手段７４が、第２の学習処理において、学習データが第１のモデルの学習に用いる学習データとして適切であるか不適切であるかを判定するためのモデルを、第２のモデルとして学習し、第１の学習手段７２が、第１の学習処理において、第２のモデルが生成されている場合に、個々の学習データを第２のモデルに適用することによって、個々の学習データが適切であるか不適切であるかを判定し、不適切と判定した学習データを除外して、第１のモデルを学習する構成であってもよい。
【０１０４】
また、選別手段７３が、選別処理において、正解カテゴリ毎に、学習データを第１のモデルに適用することによって、当該学習データが該当するカテゴリを判定し、判定結果となるカテゴリと学習データに対応する正解カテゴリとの差分に基づいて学習データをソートする構成であってもよい。
【０１０５】
また、選別手段７３が、選別処理において、判定結果となるカテゴリと正解カテゴリとの差分に基づいて、昇順に学習データをソートする構成であってもよい。
【０１０６】
また、ユーザから、学習データが適切であるか否かの指定を受け付ける指定受付手段（例えば、指定受付部７）を備え、第２の学習手段７４が、選別手段７３によって第１の学習データとして選別された学習データ、および、選別手段７３によって第２の学習データとして選別された学習データ、並びに、ユーザから適切な学習データとして指定された学習データ、および、ユーザから不適切な学習データとして指定された学習データを用いて、第２のモデルを学習する構成であってもよい。
【０１０７】
また、除外対象となる所定の評価の学習データ（例えば、第１の学習部２が第１の学習処理で不適切と判定した学習データ）を表示する表示制御手段（例えば、表示制御部８）を備える構成であってもよい。
【０１０８】
また、選別手段７３が、選別処理において、ベクトルで表された、カテゴリの判定結果と、ベクトルで表された正解データとの差分のノルムに基づいて、学習データをソートする構成であってもよい。
【０１０９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１０】
この出願は、２０１８年３月２９日に出願された日本特許出願２０１８−０６３８３３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１１１】
本発明は、データが該当するカテゴリを判定するためのモデルを機械学習によって学習する学習装置に好適に適用される。
【符号の説明】
【０１１２】
１  学習データ記憶部
２  第１の学習部
３  第１のモデル記憶部
４  選別部
５  第２の学習部
６  第２のモデル記憶部
７  指定受付部
８  表示制御部
１００  学習装置
【図１】
0006973625.tif 000002
【図２】
0006973625.tif 000003
【図３】
0006973625.tif 000004
【図４】
0006973625.tif 000005
【図５】
0006973625.tif 000006
【図６】
0006973625.tif 000007
【図７】
0006973625.tif 000008
【図８】
0006973625.tif 000009
【図９】
0006973625.tif 000010
【図１０】
0006973625.tif 000011