(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182933
(43)【公開日】2023-12-27
(54)【発明の名称】学習データ生成装置、機械学習システム、学習データ生成方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231220BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022096205
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】齊藤 廣大
(72)【発明者】
【氏名】伊藤 聡
(72)【発明者】
【氏名】山口 修
(57)【要約】
【課題】複数の学習データを効率良く生成する。
【解決手段】学習データ生成装置は、第1取得部と、第1評価値算出部と、サンプリング部と、出力部とを備える。第1取得部は、それぞれが、実体データおよび複数のクラスのうちの何れか1つのクラスとの組を含む複数の入力データを取得する。第1評価値算出部は、複数の入力データのそれぞれについて、含まれる実体データの品質を表す評価値を算出する。サンプリング部は、複数の入力データの一部を複数の学習データとしてサンプリングする。出力部は、複数の学習データを出力する。サンプリング部は、複数のクラスのそれぞれ毎に、複数の学習データのうちの対応するクラスを含む2以上の学習データの集合である学習データ群の評価値の分布を、設定された基準分布に一致させるように、複数の入力データから学習データ群をサンプリングする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
実体データが与えられ、複数のクラスのうちの1つのクラスを出力する機械学習モデルを学習させるための複数の学習データを生成する学習データ生成装置であって、
それぞれが、前記実体データおよび前記複数のクラスのうちの何れか1つのクラスとの組を含む複数の入力データを取得する第1取得部と、
前記複数の入力データのそれぞれについて、含まれる前記実体データの品質を表す評価値を算出する第1評価値算出部と、
前記複数の入力データの一部を複数の学習データとしてサンプリングするサンプリング部と、
前記複数の学習データを出力する出力部と、
を備え、
前記サンプリング部は、前記複数のクラスのそれぞれ毎に、前記複数の学習データのうちの対応するクラスを含む2以上の学習データの集合である学習データ群の前記評価値の分布を、設定された基準分布に一致させるように、前記複数の入力データから前記学習データ群をサンプリングする
学習データ生成装置。
【請求項2】
前記サンプリング部は、
前記複数のクラスのそれぞれ毎に、予め、サンプリング個数の範囲またはサンプリング割合の範囲が設定され、
前記複数のクラスのそれぞれについて、対応するクラスを含む入力データを、前記サンプリング個数の範囲内分または前記複数の学習データの合計数に対する前記サンプリング割合の範囲に応じた個数分、サンプリングする
請求項1に記載の学習データ生成装置。
【請求項3】
それぞれが前記実体データである複数の参照データを取得する第2取得部と、
前記複数の参照データのそれぞれについて前記評価値を算出する第2評価値算出部と、
前記複数の参照データにおける前記評価値の分布を、前記基準分布として算出する分布算出部と、
をさらに備える
請求項2に記載の学習データ生成装置。
【請求項4】
前記分布算出部は、前記基準分布として、前記複数の参照データにおける前記評価値の平均値を算出し、
前記サンプリング部は、前記複数のクラスのそれぞれ毎に、前記学習データ群の前記評価値の平均値を、前記複数の参照データにおける前記評価値の平均値に一致させるように、前記複数の入力データから前記学習データ群をサンプリングする
請求項3に記載の学習データ生成装置。
【請求項5】
前記サンプリング部は、前記複数のクラスのそれぞれ毎に、前記学習データ群の前記評価値の平均値が、前記複数の参照データにおける前記評価値の平均値に最も近づくように、前記複数の入力データから前記学習データ群をサンプリングする
請求項4に記載の学習データ生成装置。
【請求項6】
前記サンプリング部は、
前記複数の入力データから、前記複数のクラスのうちの1つである第1クラスを含むN個(Nは2以上の整数)の入力データを取得し、
前記複数の参照データにおける前記評価値の平均値であるm(mは実数)を取得し、
前記第1クラスに対して設定される、前記サンプリング個数であるn(nは、Nより小さい2以上の整数)を取得し、
式(1)および式(2)に示す制約条件の下で、式(3)に示す問題を求解し、
【数1】
【数2】
【数3】
式(3)の解に基づき、前記複数の入力データから、前記第1クラスにおける前記学習データ群をサンプリングし、
jは、1以上、N以下の整数を表し、
a
jは、前記N個の入力データのうちのj番目の入力データの前記評価値を表し、
x
jは、前記N個の入力データのうちのj番目の入力データが学習データとして選択された
場合に1、サンプリングしない場合に0を表す
請求項5に記載の学習データ生成装置。
【請求項7】
前記実体データは、画像データである
請求項4に記載の学習データ生成装置。
【請求項8】
前記評価値は、画像のコントラスト、画像のボケまたは画像の輝度値である
請求項7に記載の学習データ生成装置。
【請求項9】
前記複数の参照データのそれぞれは、前記機械学習モデルへと与えられる前記実体データと同一の使用環境下においてカメラにより撮像された画像データである
請求項8に記載の学習データ生成装置。
【請求項10】
請求項1から9の何れか1項に記載の学習データ生成装置と、
前記学習データ生成装置により生成された前記複数の学習データにより前記機械学習モデルを訓練する学習装置と、
を備える機械学習システム。
【請求項11】
情報処理装置により、実体データが与えられ、複数のクラスのうちの1つのクラスを出力する機械学習モデルを学習させるための複数の学習データを生成する学習データ生成方法であって、
前記情報処理装置が、それぞれが、前記実体データおよび前記複数のクラスのうちの何れか1つのクラスとの組を含む複数の入力データを取得し、
前記情報処理装置が、前記複数の入力データのそれぞれについて、含まれる前記実体データの品質を表す評価値を算出し、
前記情報処理装置が、前記複数の入力データの一部を複数の学習データとしてサンプリングし、
前記情報処理装置が、前記複数の学習データを出力し、
前記複数の学習データのサンプリングにおいて、前記情報処理装置は、前記複数のクラスのそれぞれ毎に、前記複数の学習データのうちの対応するクラスを含む2以上の学習データの集合である学習データ群の前記評価値の分布を、設定された基準分布に一致させるように、前記複数の入力データから前記学習データ群をサンプリングする
学習データ生成方法。
【請求項12】
情報処理装置を、実体データが与えられ、複数のクラスのうちの1つのクラスを出力する機械学習モデルを学習させるための複数の学習データを生成する学習データ生成装置として機能させるためのプログラムであって、
前記情報処理装置を、
それぞれが、前記実体データおよび前記複数のクラスのうちの何れか1つのクラスとの組を含む複数の入力データを取得する第1取得部と、
前記複数の入力データのそれぞれについて、含まれる前記実体データの品質を表す評価値を算出する第1評価値算出部と、
前記複数の入力データの一部を複数の学習データとしてサンプリングするサンプリング部と、
前記複数の学習データを出力する出力部と、
して機能させ、
前記サンプリング部は、前記複数のクラスのそれぞれ毎に、前記複数の学習データのうちの対応するクラスを含む2以上の学習データの集合である学習データ群の前記評価値の分布を、設定された基準分布に一致させるように、前記複数の入力データから前記学習データ群をサンプリングする
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習データ生成装置、機械学習システム、学習データ生成方法およびプログラムに関する。
【背景技術】
【0002】
クラス識別を行う機械学習モデルを、クラスごとのサンプル数が異なる複数の学習データを用いて学習させた場合、予測性能が低下することが知られている。このような問題は、クラス不均衡問題とも呼ばれる。クラス不均衡問題を解決する方法として、例えば、多数の学習データを含むクラスのサンプル数と、少数の学習データを含むクラスとのサンプル数とをできるだけ等しくなるように、学習データをランダムにサンプリングする方法が知られている。また、クラス不均衡問題を解決する方法として、例えば、各クラスの学習データを、類似度の分散を基準としてサンプリングする方法が知られている。
【0003】
しかしながら、学習データをランダムサンプリングする方法では、機械学習モデルを使用される環境に合わせて学習させる学習データをサンプリングすることはできなかった。また、類似度の分散を基準としてサンプリングをする場合において、機械学習モデルを使用される環境に合わせて学習をさせる学習データをサンプリングするためには、さらに、追加データを収集したり、手動でのクラス分けをしたりしなければならなく、効率が悪かった。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【非特許文献1】Yunze Chen, Junjie Huang, Jiagang Zhu, Zheng Zhu, Tian Yang, Guan Huang and Dalong Du, “Face-NMS: A Core-set Selection Approach for Efficient Face Recognition”, arXiv:2109.04698[cs.CV], 10 Sep 2021, https://arxiv.org/abs/2109.04698
【非特許文献2】Fu-Zhao Ou, Xingyu Chen, Ruixin Zhang, Yuge Huang, Shaoxin Li, Jilin Li, Yong Li, Liujuan Cao and Yuan-Gen Wang, “SDD-FIQA: Unsupervised Face Image Quality Assessment with Similarity Distribution Distance” , arXiv:2103.05977v1[cs.CV], 10 Mar 2021, https://arxiv.org/abs/2103.05977
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が解決しようとする課題は、機械学習モデルを環境に合わせて精度良く学習させる複数の学習データを、効率良く生成する学習データ生成装置、学習システム、学習データ生成方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
実施形態に係る学習データ生成装置は、実体データが与えられ、複数のクラスのうちの1つのクラスを出力する機械学習モデルを学習させるための複数の学習データを生成する。前記学習データ生成装置は、第1取得部と、第1評価値算出部と、サンプリング部と、出力部とを備える。前記第1取得部は、それぞれが、前記実体データおよび前記複数のクラスのうちの何れか1つのクラスとの組を含む複数の入力データを取得する。前記第1評価値算出部は、前記複数の入力データのそれぞれについて、含まれる前記実体データの品質を表す評価値を算出する。前記サンプリング部は、前記複数の入力データの一部を複数の学習データとしてサンプリングする。前記出力部は、前記複数の学習データを出力する。前記サンプリング部は、前記複数のクラスのそれぞれ毎に、前記複数の学習データのうちの対応するクラスを含む2以上の学習データの集合である学習データ群の前記評価値の分布を、設定された基準分布に一致させるように、前記複数の入力データから前記学習データ群をサンプリングする。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係る機械学習システムの構成を示す図。
【
図3】学習データ生成装置の処理の流れを示すフローチャート。
【
図4】サンプリングする処理の流れを示すフローチャート。
【
図5】学習データ生成装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら本発明の実施形態について説明する。
【0010】
図1は、実施形態に係る機械学習システム10の構成を示す図である。
【0011】
機械学習システム10は、機械学習モデル20を用いて、実体データを、予め定められた複数のクラスのうちの何れかのクラスであるかを識別する。さらに、機械学習システム10は、適切に識別するように、機械学習モデル20を学習させる。
【0012】
機械学習モデル20は、例えばニューラルネットワークである。機械学習モデル20は、ニューラルネットワークに限らず他のモデルであってもよい。
【0013】
本実施形態において、実体データは、例えばカメラにより、識別対象の人物の顔を撮像した画像データである。実体データは、人物の顔を撮像した画像データに限らず、人物の全体像を撮像した画像データであってもよいし、人物の目の虹彩を撮像した画像データであってもよいし、掌紋または指紋等を撮像した画像データであってもよい。また、実体データは、人物を撮像した画像データに限らず、人物以外の動物または物体を撮像した画像データであってもよい。また、また、実体データは、音声データ等の画像データ以外のデータであってもよい。
【0014】
本実施形態において、クラスは、複数の人物のそれぞれに固有に割り当てられた識別情報である。クラスは、人物の識別情報に限らず、人物の年代等であってもよい。
【0015】
機械学習システム10は、推論装置22と、入力データ記憶装置24と、参照データ記憶装置26と、学習データ生成装置30と、学習データ記憶装置32と、学習装置34とを備える。
【0016】
推論装置22は、実体データを受け取る。推論装置22は、機械学習モデル20を用いて、受け取った実体データが複数のクラスのうちの何れかのクラスであるかを識別する。例えば、推論装置22は、所定の使用環境下においてカメラにより撮像された画像データを受け取り、受け取った画像データに含まれる人物を識別する識別情報をクラスとして出力する。
【0017】
入力データ記憶装置24は、複数の入力データを記憶する。複数の入力データのそれぞれは、実体データおよびクラスの組を含む。複数の入力データのそれぞれに含まれる実体データは、機械学習モデル20へと入力可能なデータである。複数の入力データのそれぞれに含まれるクラスは、組とされてその入力データに含まれる実体データを機械学習モデル20に入力した場合に、機械学習モデル20から出力されるべき情報である。すなわち、複数の入力データのそれぞれは、機械学習モデル20を学習させるための教師データである。複数の入力データのそれぞれは、人が実体データを参照することにより、手動によりラベル付けしたクラスを含んでもよい。また、複数の入力データのそれぞれは、実体データを他のモデルに入力することにより、他のモデルから出力されたクラスを含んでもよい。
【0018】
参照データ記憶装置26は、複数の参照データを記憶する。複数の参照データのそれぞれは、機械学習モデル20に入力可能な実体データである。複数の参照データのそれぞれは、機械学習モデル20に入力される実体データと同一または類似の条件で生成されたデータである。例えば、実体データが画像データである場合、複数の参照データのそれぞれは、機械学習モデル20に入力される画像データと同一の使用環境下においてカメラにより撮像されたデータである。これにより、複数の参照データは、機械学習モデル20に入力される実体データと同一または類似した品質を有するデータ群となる。
【0019】
学習データ生成装置30は、入力データ記憶装置24に記憶された複数の入力データの中から一部をサンプリングして、機械学習モデル20を学習させるための複数の学習データを生成する。この場合において、学習データ生成装置30は、参照データ記憶装置26に記憶された複数の参照データに基づいて、複数の入力データの中から一部をサンプリングする。学習データ生成装置30は、生成した複数の学習データを学習データ記憶装置32へと出力する。
【0020】
学習データ記憶装置32は、学習データ生成装置30により生成された複数の学習データを記憶する。
【0021】
学習装置34は、学習データ記憶装置32に記憶された複数の学習データを利用して、機械学習モデル20を学習させる。例えば、学習装置34は、複数の学習データのそれぞれに含まれる実体データを機械学習モデル20に与えて、機械学習モデル20から出力されるクラスと、対応する学習データに含まれるクラスとが一致するように、機械学習モデル20に含まれるパラメータ群を調整する。
【0022】
そして、学習装置34が機械学習モデル20を学習させた後に、推論装置22は、実体データを受け取り、実体データが複数のクラスのうちの何れかのクラスであるかを識別する動作を開始する。
【0023】
図2は、学習データ生成装置30の構成を示す図である。学習データ生成装置30は、第1取得部42と、第1評価値算出部44と、第2取得部46と、第2評価値算出部48と、分布算出部50と、サンプリング部52と、出力部54とを備える。
【0024】
第1取得部42は、入力データ記憶装置24から複数の入力データを取得する。
【0025】
第1評価値算出部44は、第1取得部42により取得された複数の入力データのそれぞれについて、実体データの品質を表す評価値を算出する。評価値は、入力データにおける、機械学習モデル20による識別の精度に影響を与える要因となる品質を表す。例えば、実体データが画像データである場合、評価値は、画像のコントラスト、画像のボケまたは画像の輝度値であってよい。また、実体データが画像データである場合、評価値は、非特許文献2に示される顔画像の品質指標値であってもよい。
【0026】
第2取得部46は、参照データ記憶装置26から複数の参照データを取得する。
【0027】
第2評価値算出部48は、第2取得部46により取得された複数の参照データのそれぞれについて、評価値を算出する。第2評価値算出部48は、第1評価値算出部44により算出される評価値と同一種類の品質を表す評価値を、第1評価算出部4と同一のアルゴリズムで算出する。第1評価値算出部44および第2評価値算出部48は、共通の機能構成であってもよい。
【0028】
分布算出部50は、複数の参照データのそれぞれについて算出した複数の評価値の分布を算出する。そして、分布算出部50は、算出した分布を基準分布としてサンプリング部52に与える。
【0029】
基準分布は、縦軸に出現確率、横軸に評価値を表すグラフを表す情報であってもよい。また、基準分布は、分布の特徴を表す値であってもよい。例えば、基準分布は、複数の参照データのそれぞれについて算出した複数の評価値の平均値であってもよい。また、基準分布は、複数の参照データのそれぞれについて算出した複数の評価値の中央値であってもよい。本実施形態においては、分布算出部50は、基準分布として、複数の参照データについて算出した複数の評価値の平均値を算出する。
【0030】
サンプリング部52は、第1取得部42により取得された複数の入力データを受け取り、受け取った複数の入力データの一部を複数の学習データとしてサンプリングする。この場合において、サンプリング部52は、複数のクラスのそれぞれ毎に、学習データ群の評価値の分布を基準分布に一致させるように、複数の入力データから学習データ群をサンプリングする。学習データ群は、サンプリングされる複数の学習データのうちの、対応するクラスを含む2以上の学習データの集合である。
【0031】
本実施形態において、基準分布は、複数の評価値の平均値である。従って、本実施形態においては、サンプリング部52は、複数のクラスのそれぞれ毎に、学習データ群における評価値の平均値を、複数の参照データにおける評価値の平均値に一致させるように、複数の入力データから学習データ群をサンプリングする。
【0032】
例えば、サンプリング部52は、複数のクラスのそれぞれ毎に、サンプリングする学習データ群における評価値の平均値と、複数の参照データにおける評価値の平均値との差が予め定められた値の範囲内となるように、複数の入力データから学習データ群をサンプリングする。また、例えば、サンプリング部52は、複数のクラスのそれぞれ毎に、サンプリングする学習データ群における評価値の平均値が、複数の参照データにおける評価値の平均値に最も近づくように、複数の入力データから学習データ群をサンプリングしてもよい。
【0033】
サンプリング部52は、このような処理をすることにより、機械学習モデル20の使用環境下において入力される実体データに類似する複数の学習データをサンプリングすることができる。これにより、サンプリング部52は、使用される環境に合わせて機械学習モデル20を学習させる複数の学習データをサンプリングすることができる。
【0034】
さらに、サンプリング部52は、複数のクラスのそれぞれについて、予め、サンプリング個数の範囲が設定される。そして、サンプリング部52は、複数のクラスのそれぞれ毎に、サンプリング個数の範囲分、対応するクラスを含む入力データをサンプリングする。
【0035】
例えば、サンプリング部52は、複数のクラスのうちの1つである第1クラスに対して、サンプリング個数として、n(nは2以上の整数)個が設定されている場合、複数の入力データから、第1クラスを含むn個の学習データをサンプリングする。また、この場合、例えば、サンプリング部52は、(n-α)個以上、(n+β)個以下の、第1クラスを含む学習データをサンプリングしてもよい。なお、αおよびβは、0以上の整数である。
【0036】
また、サンプリング部52は、複数のクラスのそれぞれについて、サンプリング個数の範囲に代えて、サンプリング割合の範囲が設定されていてもよい。この場合、サンプリング部52は、複数のクラスのそれぞれについて、サンプリングすべき複数の学習データの合計数に対する、そのクラスに対応するサンプリング割合の範囲に応じたサンプリング個数の範囲を算出する。そして、サンプリング部52は、複数のクラスのそれぞれ毎に、算出したサンプリング個数の範囲内分、対応するクラスを含む入力データをサンプリングする。
【0037】
サンプリング部52は、このような処理をすることにより、複数の入力データから、複数のクラスのそれぞれ毎に適切な個数の学習データをサンプリングすることができる。これにより、サンプリング部52は、クラス不均衡問題を解消して、機械学習モデル20を精度良く学習させる複数の学習データをサンプリングすることができる。
【0038】
出力部54は、サンプリング部52によりサンプリングされた複数の学習データを学習データ記憶装置32へと出力する。そして、学習データ記憶装置32は、出力部54から受け取った複数の学習データを記憶する。
【0039】
なお、学習データ生成装置30は、第2取得部46、第2評価値算出部48および分布算出部50を備えない構成であってもよい。この場合、サンプリング部52は、基準分布がユーザまたは他の装置から設定される。また、サンプリング部52は、基準分布が設定されない構成であってもよい。この場合、サンプリング部52は、複数のクラスのそれぞれ毎に、評価値の高い順または低い順に、サンプリング個数の範囲分、または、複数の学習データの合計数に対するサンプリング割合の範囲に応じた個数分、対応するクラスを含む入力データをサンプリングする。
【0040】
図3は、学習データ生成装置30の処理の流れを示すフローチャートである。学習データ生成装置30は、
図3に示す流れで処理を実行する。
【0041】
まず、S11において、学習データ生成装置30は、参照データ記憶装置26から複数の参照データを取得する。
【0042】
続いて、S12において、学習データ生成装置30は、取得した複数の参照データのそれぞれについて、評価値を算出する。
【0043】
続いて、S13において、学習データ生成装置30は、複数の参照データについての複数の評価値の分布を、基準分布として算出する。本実施形態においては、学習データ生成装置30は、複数の参照データについての複数の評価値の平均値を、基準分布として算出する。
【0044】
続いて、S14において、学習データ生成装置30は、複数のクラスのそれぞれについて、サンプリング個数の範囲またはサンプリング割合の範囲を取得する。
【0045】
続いて、S15において、学習データ生成装置30は、入力データ記憶装置24から複数の入力データを取得する。
【0046】
続いて、S16において、学習データ生成装置30は、取得した複数の入力データのそれぞれについて、評価値を算出する。
【0047】
続いて、S17において、学習データ生成装置30は、複数のクラスのそれぞれ毎に、学習データ群の評価値の分布を基準分布に一致させるように、複数の入力データから学習データ群をサンプリングする。この場合において、学習データ群は、複数の学習データのうちの、対応するクラスを含む2以上の学習データの集合である。本実施形態においては、学習データ生成装置30は、複数のクラスのそれぞれ毎に、学習データ群における評価値の平均値を、複数の参照データにおける評価値の平均値に一致させるように、複数の入力データから学習データ群をサンプリングする。この場合、さらに、学習データ生成装置30は、複数のクラスのそれぞれについて、対応するクラスを含む入力データを、サンプリング個数の範囲内分、または、複数の学習データの合計数に対するサンプリング割合の範囲に応じた個数分、サンプリングする。
【0048】
続いて、S18において、学習データ生成装置30は、サンプリングした複数の学習データを学習データ記憶装置32へと出力する。学習データ生成装置30は、S18の処理を終えると、本フローを終了する。
【0049】
図4は、ナップザック問題を求解する求解装置を用いて、複数の学習データをサンプリングする場合の処理の流れを示すフローチャートである。サンプリング部52は、サンプリングする学習データ群における評価値の平均値が、複数の参照データにおける評価値の平均値に最も近づくように、複数の入力データから学習データ群をサンプリングする場合、
図4に示す流れで処理を実行する。
【0050】
具体的には、サンプリング部52は、複数のクラスのそれぞれについて、
図4に示すS21からS31までの処理を実行する。以下、複数のクラスのうちの第1クラスについて処理を実行する場合について説明する。
【0051】
まず、S21において、サンプリング部52は、複数の入力データから、第1クラスを含むN個の入力データを選択する。Nは、2以上の整数である。
【0052】
続いて、S22において、サンプリング部52は、選択したN個の入力データのそれぞれに対してインデックスを割り当てる。インデックスは、1からNまでの整数であり、N個の入力データのそれぞれに排他的に割り当てられる。なお、jは、任意のインデックスを表し、1からNまでの任意の整数である。
【0053】
このようにN個の入力データのそれぞれにインデックスを割り当てることにより、サンプリング部52は、N個の2値変数(x1,x2,…,xj,…xN)と、N個の入力データとを一対一で対応づけることができる。N個の2値変数のそれぞれは、対応する入力データが学習データとして選択されるか否かを表す。N個の2値変数のそれぞれは、0または1である。N個の2値変数のそれぞれは、0の場合、対応する入力データが学習データとして選択されないことを表し、1の場合、対応する入力データが学習データとして選択されることを表す。
【0054】
続いて、S23において、サンプリング部52は、選択したN個の入力データのそれぞれの評価値(a1,a2,…,aj,…aN)を取得する。ajは、j番目の入力データに含まれる評価値を表す。
【0055】
続いて、S24において、サンプリング部52は、第1クラスに設定されたサンプリング個数(n)を取得する。
【0056】
続いて、S25において、サンプリング部52は、基準分布として、複数の参照データにおける複数の評価値の平均値(m)を取得する。mは、複数の参照データにおける複数の評価値の平均値を表す。
【0057】
続いて、S26において、サンプリング部52は、最大値制約条件を生成する。具体的には、サンプリング部52は、式(1)に示す制約式を生成する。
【数1】
【0058】
式(1)は、選択された複数の学習データの評価値の合計が(n×m)以下である、という制約条件を表す。
【0059】
続いて、S27において、サンプリング部52は、サンプリング個数の制約条件を生成する。具体的には、サンプリング部52は、式(2)に示す制約式を生成する。
【数2】
【0060】
式(2)は、第1クラスを含む複数の学習データの個数がnである、という制約条件を表す。
【0061】
続いて、S28において、サンプリング部52は、評価値の合計を最大化する最適化問題を生成する。具体的には、サンプリング部52は、式(3)に示す式を生成する。
【数3】
【0062】
式(3)は、選択された複数の学習データの評価値の合計を最大化するN個の2値変数(xj)の組み合わせを算出する式を表す。
【0063】
続いて、S29において、サンプリング部52は、式(1)および式(2)に示す制約条件の下で、式(3)を求解する。サンプリング部52は、例えば、ナップザック問題の求解装置等に式(1)、式(2)および式(3)を送信して、求解装置に求解させてもよい。
【0064】
続いて、S30において、サンプリング部52は、N個の2値変数(xj)のそれぞれにおける0または1の組み合わせを示す解を取得する。
【0065】
続いて、S31において、サンプリング部52は、N個の入力データのうち、N個の2値変数(xj)のうちの解が1である2値変数に対応するn個の入力データを選択する。そして、サンプリング部52は、選択したn個の入力データを、サンプリングしたn個の学習データとして出力する。
【0066】
以上の処理を実行することにより、サンプリング部52は、サンプリングする学習データ群における評価値の平均値が、複数の参照データにおける評価値の平均値に最も近づくように、複数の入力データから学習データ群をサンプリングすることができる。
【0067】
以上のような本実施形態に係る学習データ生成装置30は、複数の入力データから、機械学習モデル20の使用環境下において入力される実体データに類似する複数の学習データをサンプリングする。これにより、学習データ生成装置30によれば、機械学習モデル20を使用環境下に合わせて精度良く学習させる複数の学習データを、例えば手動のラベル付けや大量のデータ収集をせずに、効率良くサンプリングすることができる。
【0068】
さらに、学習データ生成装置30は、複数の入力データから、複数のクラスのそれぞれ毎に適切な個数の学習データをサンプリングする。これにより、学習データ生成装置30によれば、クラス不均衡問題を解消して、機械学習モデル20を精度良く学習させる複数の学習データをサンプリングすることができる。
【0069】
図5は、各実施形態に係る学習データ生成装置30のハードウェア構成の一例を示す図である。学習データ生成装置30は、例えば
図5に示すようなハードウェア構成の情報処理装置であるコンピュータにより実現される。学習データ生成装置30は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)302と、ROM(Read Only Memory)303と、操作入力装置304と、表示装置305と、記憶装置306と、通信装置307とを備える。そして、これらの各部は、バスにより接続される。
【0070】
CPU301は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU301は、RAM302の所定領域を作業領域として、ROM303および記憶装置306等に記憶されたプログラムとの協働により各種処理を実行する。
【0071】
RAM302は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM302は、CPU301の作業領域として機能する。ROM303は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【0072】
操作入力装置304は、マウスおよびキーボード等の入力デバイスである。操作入力装置304は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU301に出力する。
【0073】
表示装置305は、LCD(Liquid Crystal Display)等の表示デバイスである。表示装置305は、CPU301からの表示信号に基づいて、各種情報を表示する。
【0074】
記憶装置306は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置306は、CPU301からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置307は、CPU301からの制御に応じて外部の機器とネットワークを介して通信する。
【0075】
コンピュータで実行されるプログラムは、第1取得モジュールと、第1評価値算出モジュールと、第2取得モジュールと、第2評価値算出モジュールと、分布算出モジュールと、サンプリングモジュールと、出力モジュールとを含むモジュール構成となっている。
【0076】
このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、コンピュータを、第1取得部42、第1評価値算出部44、第2取得部46、第2評価値算出部48、分布算出部50、サンプリング部52および出力部54として機能させる。なお、第1取得部42、第1評価値算出部44、第2取得部46、第2評価値算出部48、分布算出部50、サンプリング部52および出力部54の一部または全部がハードウェア回路で実現されてもよい。
【0077】
また、コンピュータで実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0078】
また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、学習データ生成装置30で実行されるプログラムを、ROM303等に予め組み込んで提供するように構成してもよい。
【0079】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0080】
10 機械学習システム
20 機械学習モデル
22 推論装置
24 入力データ記憶装置
26 参照データ記憶装置
30 学習データ生成装置
32 学習データ記憶装置
34 学習装置
42 第1取得部
44 第1評価値算出部
46 第2取得部
48 第2評価値算出部
50 分布算出部
52 サンプリング部
54 出力部