(57)【要約】【課題】学習データの属性の偏りを抑圧する学習データ生成装置等を提供する。【解決手段】学習データ生成装置は、学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数部と、K'>Kとし、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する第一データ調整部と含み、第一データ調整部は、K'個の学習データにおいてラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする。【選択図】図１
2018106216.tif 000002
【特許請求の範囲】
【請求項１】
学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数部と、
K'>Kとし、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データを前記K個の学習データに追加し、K'個の学習データを生成する第一データ調整部と含み、前記第一データ調整部は、K'個の学習データにおいて前記ラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする、
学習データ生成装置。
【請求項２】
請求項１の学習データ生成装置であって、
前記K個の学習データを用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第一学習モデルλ'1を学習する第一学習部と、
前記第一学習モデルλ'1を用いて、学習データが各属性に属する事後確率である第一事後確率を算出する第一事後確率算出部とを含み、
前記第一データ調整部は、
(i)最も高い事後確率の属性と学習データのラベルが示す属性とが一致しない学習データ
(ii)最も高い事後確率の属性と学習データのラベルが示す属性とが一致する学習データであって、最も高い事後確率と二番目に高い事後確率との差が小さい学習データ
(iii)各属性の特徴量の重心に近い学習データ
の少なくとも何れかを優先して複製する、
学習データ生成装置。
【請求項３】
開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数部と、
J'>Jとし、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データを前記J個の開発データに追加し、J'個の開発データを生成する第二データ調整部と含み、前記第二データ調整部はJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにする、
開発データ生成装置。
【請求項４】
請求項３の開発データ生成装置であって、
前記J個の開発データを用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第二学習モデルλ'2を学習する第二学習部と、
前記第二学習モデルλ'2を用いて、開発データが各属性に属する事後確率である第二事後確率を算出する第二事後確率算出部とを含み、
前記第二データ調整部は、
(i)最も高い事後確率の属性と開発データのラベルが示す属性とが一致しない開発データ
(ii)最も高い事後確率の属性と開発データのラベルが示す属性とが一致する開発データであって、最も高い事後確率と二番目に高い事後確率との差が小さい開発データ
(iii)各属性の特徴量の重心に近い開発データ
の少なくとも何れかを優先して複製する、
開発データ生成装置。
【請求項５】
学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数部と、
K'>Kとし、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データを前記K個の学習データに追加し、K'個の学習データを生成する第一データ調整部と含み、前記第一データ調整部は、K'個の学習データにおいて前記ラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにし、
開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数部と、
J'>Jとし、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データを前記J個の開発データに追加し、J'個の開発データを生成する第二データ調整部と含み、前記第二データ調整部はJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにし、
前記K'個の学習データを用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第三学習モデルλ'3を学習する第三学習部を含み、前記第三学習部は、前記J'個の開発データに含まれる特徴量を前記第三学習モデルλ'3の入力とし、前記J'個の開発データの属性を示すラベルをそれぞれ推定し、J'個の推定結果と前記J'個の開発データに含まれるJ'個のラベルとに基づき、前記第三学習モデルλ'3の正解率を求め、前記正解率が飽和するまで、前記第三学習モデルλ'3の学習を繰り返す、
モデル学習装置。
【請求項６】
学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、第一データ個数計数部が、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数ステップと、
K'>Kとし、第一データ調整部が、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データを前記K個の学習データに追加し、K'個の学習データを生成する第一データ調整ステップと含み、前記第一データ調整ステップにおいてK'個の学習データにおいて前記ラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする、
学習データ生成方法。
【請求項７】
開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、第二データ個数計数部が、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数ステップと、
J'>Jとし、第二データ調整部が、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データを前記J個の開発データに追加し、J'個の開発データを生成する第二データ調整ステップと含み、前記第二データ調整ステップにおいてJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにする、
開発データ生成方法。
【請求項８】
請求項１もしくは請求項２の学習データ生成装置、または、請求項３もしくは請求項４の開発データ生成装置、または、請求項５のモデル学習装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象データの特徴量から対象データの属性を推定するモデルを学習する技術に関する。
【背景技術】
【０００２】
音声や画像等の属性を高精度に分類する識別モデルとして、深層学習モデルがある。深層学習モデルは、音声や画像の特徴量を入力すると、各識別する属性ごとの事後確率を出力し、最も高い事後確率の属性をその特徴量の属性として判定する。
【０００３】
深層学習モデルは、識別誤りを極小化するように逐次パラメータを更新して学習を行う。このとき、予め用意した学習データまたは開発データを用いて、深層学習モデルの識別精度が飽和した際に、学習を終了する（非特許文献１参照）。なお、学習データは深層モデルを生成する際に利用するデータであり、開発データはモデルの正解率を調べる際に利用するデータである。何れのデータも属性を示すラベル(正解)と特徴量とを含む。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】G. Hinton, S. Osindero and Yee-Whye The, "A fast learning algorithm for deep belief nets", Neural Computation, vol. 18, pp. 1527-1544, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、飽和しているか否かを判断する際の識別精度は深層学習モデル全体の識別精度であり、属性毎の識別精度ではない。そのため、学習データまたは開発データのデータ量が少ない属性は十分な識別精度が得られないまま、学習が終了する場合が存在する。
【０００６】
本発明は、学習データの属性の偏りを抑圧する学習データ生成装置、または、開発データの属性の偏りを抑圧する開発データ生成装置、それらのデータを利用してモデルを学習するモデル学習装置、それらの方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一態様によれば、学習データ生成装置は、学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数部と、K'>Kとし、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する第一データ調整部と含み、第一データ調整部は、K'個の学習データにおいてラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする。
【０００８】
上記の課題を解決するために、本発明の他の態様によれば、開発データ生成装置は、開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数部と、J'>Jとし、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データをJ個の開発データに追加し、J'個の開発データを生成する第二データ調整部と含み、第二データ調整部はJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにする。
【０００９】
上記の課題を解決するために、本発明の他の態様によれば、モデル学習装置は、学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数部と、K'>Kとし、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する第一データ調整部と含み、第一データ調整部は、K'個の学習データにおいてラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにし、開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数部と、J'>Jとし、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データをJ個の開発データに追加し、J'個の開発データを生成する第二データ調整部と含み、第二データ調整部はJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにし、K'個の学習データを用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第三学習モデルλ'3を学習する第三学習部を含み、第三学習部は、J'個の開発データに含まれる特徴量を第三学習モデルλ'3の入力とし、J'個の開発データの属性を示すラベルをそれぞれ推定し、J'個の推定結果とJ'個の開発データに含まれるJ'個のラベルとに基づき、第三学習モデルλ'3の正解率を求め、正解率が飽和するまで、第三学習モデルλ'3の学習を繰り返す。
【００１０】
上記の課題を解決するために、本発明の他の態様によれば、学習データ生成方法は、学習データは当該学習データの属性を示すラベルと当該学習データの特徴量とを含むものとし、第一データ個数計数部が、K個の学習データに基づき、各属性に属する学習データの個数を数える第一データ個数計数ステップと、K'>Kとし、第一データ調整部が、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する第一データ調整ステップと含み、第一データ調整ステップにおいてK'個の学習データにおいてラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする。
【００１１】
上記の課題を解決するために、本発明の他の態様によれば、開発データ生成方法は、開発データは当該開発データの属性を示すラベルと当該開発データの特徴量とを含むものとし、第二データ個数計数部が、J個の開発データに基づき、各属性に属する開発データの個数を数える第二データ個数計数ステップと、J'>Jとし、第二データ調整部が、最大の個数Qの開発データが属する属性を示すラベルlS,max以外のラベルlS,p'を含む開発データを複製し、1つ以上の複製した開発データをJ個の開発データに追加し、J'個の開発データを生成する第二データ調整ステップと含み、第二データ調整ステップにおいてJ'個の開発データにおいてラベルlS,p'を含む開発データの個数が追加後においてQ以下となるようにする。
【発明の効果】
【００１２】
本発明によれば、学習データまたは開発データの属性の偏りを抑圧することができ、それらのデータを利用して学習されたモデルの識別精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】第一実施形態に係るモデル学習装置の機能ブロック図。
【図２】第一実施形態に係るモデル学習装置の処理フローの例を示す図。
【図３】学習データのデータ構造例を示す図。
【図４】学習データを複製し、追加する例を示す図。
【図５】第二実施形態に係るモデル学習装置の機能ブロック図。
【図６】第二実施形態に係るモデル学習装置の処理フローの例を示す図。
【図７】第三実施形態に係るモデル学習装置の機能ブロック図。
【図８】第四実施形態に係るモデル学習装置の機能ブロック図。
【図９】第四実施形態に係るモデル学習装置の処理フローの例を示す図。
【図１０】第五実施形態に係るモデル学習装置の機能ブロック図。
【図１１】第五実施形態に係るモデル学習装置の処理フローの例を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１５】
＜第一実施形態＞
図１は第一実施形態に係るモデル学習装置１００の機能ブロック図を、図２はその処理フローを示す。
【００１６】
このモデル学習装置１００は、CPUと、RAMと、以下の処理を実行するためのプログラムを記録したROMを備えたコンピュータで構成され、機能的には次に示すように構成されている。モデル学習装置１００は、学習データ生成部１１０と学習部１２０とを含み、学習の結果得られるモデルλを出力する。なお、モデルλは、対象データの特徴量から対象データの属性を示すラベルを推定するモデル(以下、「識別モデル」ともいう)である。なお、λは識別モデル自体であってもよいし、識別モデル内で用いられるパラメータであってもよい。
【００１７】
学習データ生成部１１０は、学習データ記憶部１１１と、データ個数計数部１１２と、データ調整部１１３と、調整後学習データ記憶部１１４とを含む。
【００１８】
＜学習データ記憶部１１１＞
学習データ記憶部１１１には、モデルλの学習前に予めK個の学習データが記憶されているものとする。なお、学習データは、学習データの識別子kと、学習データkの属性を示すラベルlL(k)と、学習データkの特徴量cL(k)とを含む(図３参照)。ただし、学習データk∈{1,2,…,K}であり、lL(k)∈{1,2,…,M}であり、cL(k)=(cL(k,1),cL(k,2),…,cL(k,x),…,cL(k,Ck))である。Mはラベルが示す属性の総数(種類数)であり、Ckは学習データkに含まれるフレームの総数であり、cL(k,x)(x=1,2,…,Ck)はx番目のフレームの特徴量である。
【００１９】
例えば、学習データが音声データの場合には、特徴量としてMFCC(メル周波数ケプストラム係数)等が考えられる。学習データが画像データの場合には、特徴量としてSIFT(Scale-Invariant Feature Transform)特徴量等が考えられる。音声データや画像データの特徴量はこれらの特徴量に限らず、属性を識別する際に利用できるものであればどのようなものであってもよい。また、識別の対象となるデータも音声データや画像データに限らず、特徴量によって属性毎に識別できるものであればどのようなものであってもよい。そして、特徴量は対象データの属性を識別する際に利用できるものであればどのようなものであってもよい。
【００２０】
＜データ個数計数部１１２＞
データ個数計数部１１２は、K個の学習データ{k,lL(k),cL(k)}を学習データ記憶部１１１から取り出し、これらのデータに基づき、各属性m∈{1,2,…,M}に属する学習データの個数を数え（Ｓ１１２）、各属性mに属する学習データの個数n(m)を出力する。例えば、以下のアルゴリズムにより、各属性mに属する学習データの個数n(m)を求める。
1. n(m)←0とする。ただし、m=,1,・・・,Mである。この処理により、カウンタの初期化する。
2. 全てのk（k=1,2,…,K）について、n(lL(k))←n(lL(k))+1とする。この処理により、学習データkの属する属性を示すラベルlL(k)の個数n(lL(k))をインクリメントし、K個の学習データkに対して同様の処理を行い、各属性mに属する学習データの個数n(m)を数える。
【００２１】
＜データ調整部１１３＞
データ調整部１１３は、K個の学習データ{k,lL(k),cL(k)}を学習データ記憶部１１１から取り出し、各属性mに属する学習データの個数n(m)を受け取る。データ調整部１１３は、M個の個数n(m)の中で最も大きい個数Nを検出する。そして、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'を含む学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する（Ｓ１１３）。ただし、K'>Kとし、maxは1,2,…,Mの何れかであって最大の個数Nの学習データが属する属性を示すラベル番号の何れかであり、m'はmax以外のラベル番号1,2,…,Mである。また、学習データを複製する際には、ラベルlL(k)と特徴量cL(k)のみを複製し、識別子は、既存の学習データと重複しないように新たに付与する。追加後の学習データの識別子をk'とし、k'=1,2,…,K'とする。なお、属性の偏りを抑圧するため、最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'に属する学習データを複製し、追加する。また、ラベルlL,m'を含む学習データの個数がNを超えると、新たな偏りの原因となるため、データ調整部１１３は、K'個の学習データにおいてラベルlL,m'を含む学習データの個数が追加後においてN以下となるようにする。最大の個数Nの学習データが属する属性が二つ以上存在する場合には、それ以外の属性に属する学習データを複製し、追加すればよい。
【００２２】
例えば、すべての属性でデータの個数が揃うように(N個となるように)学習データを複製し、追加する。例えば、以下のアルゴリズムにより、学習データを複製し、追加する(図４参照)。
1. k∈{1,2,…,K}について、k'←k、lL(k')←lL(k)、cL(k')←cL(k)とし、調整後学習データ記憶部１１４に格納する。この処理により、学習データ{k,lL(k),cL(k)}(k∈{1,2,…,K})をk'=1,2,…,Kにおける学習データ{k',lL(k'),cL(k')}としてそのまま調整後学習データ記憶部１１４に格納する。
2. N←maxmn(m)とする。ただし、maxm n(m)は、n(1),n(2),…,n(M)の中で最大値を返す関数である。この処理により、M個の個数n(m)の中で最も大きい個数Nを検出する。
3.i←K+1とする。この処理により、複製先の学習データの番号(識別子)を示す変数iを初期化する。
4.全てのm=1,2,…,Mについて、以下操作を行い、k'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を複製する。なお、図４のループ端子の上端内の変数、数値は、(変数=初期値,終値,増分値)を示す。
(ア)j←N-n(m)とする。この処理により、属性mに属する学習データの個数と最大の個数Nとの差分を求める。
(イ)h←1とする。この処理により、複製元の学習データを示す変数hを初期化する。
(ウ)j=0の場合、終了する。
(エ)h>Kの場合、h←1とする。この処理により、複製元の学習データを全て複製した場合、複製元の学習データを示す変数hを初期化する。
(オ)lL(h)=mの場合、lL(i)←lL(h)、cL(i)←cL(h)、j←j-1、i←i+1とする。上述の（ウ）の処理と合わせて、属性mに属する学習データの個数と最大の個数Nとの差分に相当する個数の複製を生成する。
(カ)h←h+1として、（ウ）に戻る。
5. 最終的な学習データの個数をK'←iとする。
【００２３】
この処理によりk'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を生成し、生成した学習データを調整後学習データ記憶部１１４に格納する。
【００２４】
＜調整後学習データ記憶部１１４＞
調整後学習データ記憶部１１４には、K'個の学習データ{k',lL(k'),cL(k')}が格納される。
【００２５】
＜学習部１２０＞
学習部１２０は、K'個の学習データ{k',lL(k'),cL(k')}を調整後学習データ記憶部１１４から取り出し、K'個の学習データ{k',lL(k'),cL(k')}を用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルλを学習し（Ｓ１２０）、本装置の出力値として出力する。例えば、lL(k)=arg m max p(m|λ,cL(k))となる、モデルλを学習する。p(m|λ,cL(k))は特徴量cL(k)が属性m（m=1,2,….M）に属する事後確率であり、arg m max p(m|λ,cL(k))は事後確率p(m|λ,cL(k)が最も大きいときのmを返す関数である。このようにして、複製した学習データも含めて、全学習データk'=1,2,…,K'の全特徴量cL(k')及びラベルlL(k')を利用して学習する。なお、モデルλの学習方法は既存のいかなる学習方法を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００２６】
＜効果＞
以上の構成により、学習データの属性の偏りを抑圧することができ、学習データを利用して学習されたモデルλの識別精度を向上させることができる。
【００２７】
＜変形例＞
本実施形態では、すべての属性でデータの個数が揃うように(N個となるように)学習データを複製し、追加しているが、必ずしもデータの個数をN個に揃える必要はない。最大の個数Nの学習データが属する属性を示すラベルlL,max以外のラベルlL,m'に属する学習データを複製し、追加することで、属性の偏りを抑圧することができる。ただし、すべての属性でデータの個数を揃えることで偏りが最小となり、モデルλの識別精度が最も良くなる可能性がある。
【００２８】
また、本実施形態では、複製元の学習データを示す変数hを複製する度にインクリメントすることで、複製元の学習データが偏らないようにしているが、複製元のデータの中からランダムに選択する構成としてもよい。このような構成によっても偏りを抑制することができる。例えば、乱数を発生させ、その乱数を複製元の学習データの個数で割り、剰余に対応する番号の学習データを複製し、追加してもよい。
【００２９】
本実施形態では、1つの学習データkに1つ以上のフレームの特徴量cL(k)=(cL(k,1),cL(k,2),…,cL(k,x),…,cL(k,Ck))が含まれ、1つの学習データkに対して1つのラベルlL(k)が付与されているものとして処理を行っているが、ラベルを付与する際の単位は適宜変更してよい。例えば、1つの音声データの中に複数の人物の発話が含まれる場合には、1つの音声データを発話毎に分割し、分割した音声データ毎にラベルを付与してもよい。また、フレーム単位でラベルlL(k,x)を付与してもよい。
【００３０】
学習データ生成部１１０をモデル学習装置１００とは、別装置とし、学習データ生成装置として構成してもよい。その場合、学習データ生成装置はK'個の学習データ{k',lL(k'),cL(k')}を出力し、学習部１２０を備えるモデル学習装置１００は、K'個の学習データ{k',lL(k'),cL(k')}を用いてモデルλを学習する。
【００３１】
＜第二実施形態のポイント＞
第一実施形態と異なる部分を中心に説明する。本実施形態では学習データを調整するのではなく、開発データを調整する。なお、開発データは、学習モデルの過学習を防ぐためのデータであり、図３と同様に学習データと同じ構造を持つ。学習モデルのパラメータを更新後に、開発データに対して識別を行い、開発データの識別率が飽和(収束)している場合に、学習を終了する。開発データにおいて、属性に偏りがあると、開発データが多い属性に依存して、学習が終了してしまうため、第二実施形態では、開発データの個数を調整している。
【００３２】
学習データと開発データの調整の効果の違いは次のとおりになる。学習データの調整は、学習のパラメータ更新時に偏っている識別結果を元にパラメータ更新値を決めるため、識別精度向上と学習速度向上の両方に効果があるが、学習時のパラメータが適切ではなく過学習を起こしてしまうと、かえって識別精度が下がる可能性がある。開発データの調整は、学習を停止する基準となるため、学習速度には効果がないが識別精度向上に効果があり、過学習を防ぐことができる。
【００３３】
＜第二実施形態に係るモデル学習装置＞
図５は第二実施形態に係るモデル学習装置２００の機能ブロック図を、図６はその処理フローを示す。
【００３４】
モデル学習装置２００は、開発データ生成部２３０と、学習部２２０とを含み、学習の結果得られるモデルλを出力する。
【００３５】
＜開発データ生成部２３０＞
開発データ生成部２３０は、開発データ記憶部２１１と、データ個数計数部２１２と、データ調整部２１３と、調整後開発データ記憶部２１４とを含む。なお、開発データ記憶部２１１、データ個数計数部２１２、データ調整部２１３及び調整後開発データ記憶部２１４は、それぞれ学習データ記憶部１１１、データ個数計数部１１２、データ調整部１１３及び調整後学習データ記憶部１１４と同様の構成であり、同様の処理（Ｓ２１２，Ｓ２１３）を行う。K個の学習データ{k,lL(k),cL(k)}及びK'個の調整後学習データ{k',lL(k'),cL(k')}に代えて、J個の開発データ{j,lS(j),cS(j)}及びJ'個の調整後学習データ{j',lS(j'),cS(j')}を用いる点が異なる。また、J'>Jとする。その他、データの個数等は、学習データと開発データとで異なるが、処理内容は同様である。
【００３６】
＜学習部２２０＞
学習部２２０は、K個の学習データ{k,lL(k),cL(k)}を学習データ記憶部１１１から取り出し、K個の学習データ{k,lL(k),cL(k)}を用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第三学習モデルλ'3を学習する（Ｓ２２０）。この学習方法は学習部１２０と同様である。
【００３７】
次に、学習部２２０は、J'個の開発データ{j',lS(j'),cS(j')}を受け取り、特徴量cS(j')を第三学習モデルλ'3の入力とし、J'個の開発データの特徴量cS(j')に対する属性を示すラベルをそれぞれ推定する（Ｓ２２１）。
【００３８】
J'個の推定結果とJ'個のラベルlS(j')とに基づき、第三学習モデルλ'3の正解率(例えば、推定結果の属性とラベルlS(j')が示す属性とが一致しているデータの個数をJ'で割った値)を求め、正解率が飽和するまで（Ｓ２２２）、第三学習モデルλ'3の学習を繰り返す。例えば、飽和しているか否かの判断は、繰り返し前後の正解率の差が所定の閾値よりも小さいか否かで判断し、差が所定の閾値よりも小さい場合に飽和していると判断し、飽和時の第三学習モデルλ'3を本装置の出力値(モデルλ)として出力する。飽和しているか否かの判断方法として、他の方法を用いてもよい。例えば、所定の回数学習を繰り返したときに飽和したと判断してもよい。
【００３９】
＜効果＞
このような構成とすることで、開発データの属性の偏りを抑圧することができ、開発データを利用して学習されたモデルλの識別精度を向上させることができる。なお、本実施形態と第一実施形態の変形例を組合せてもよい。
【００４０】
＜変形例＞
開発データ生成部２３０をモデル学習装置２００とは、別装置とし、開発データ生成装置として構成してもよい。その場合、開発データ生成装置はJ'個の開発データ{j',lS(j'),cS(j')}を出力し、学習部２２０を備えるモデル学習装置２００は、J'個の開発データ{j',lS(j'),cS(j')}を用いてモデルλを学習する。
【００４１】
＜第三実施形態＞
第二実施形態と異なる部分を中心に説明する。
【００４２】
図７は、第三実施形態に係るモデル学習装置３００の機能ブロック図を示す。
【００４３】
モデル学習装置３００は、学習データ生成部１１０と開発データ生成部２３０と学習部３２０とを含む。
【００４４】
学習部３２０は、K個の学習データ{k,lL(k),cL(k)}に代えて、第一実施形態の学習データ生成部１１０で生成したK'個の学習データ{k',lL(k'),cL(k')}を用いる。
【００４５】
学習部３２０は、K'個の学習データ{k',lL(k'),cL(k')}を調整後学習データ記憶部１１４から取り出し、K'個の学習データ{k',lL(k'),cL(k')}を用いて、モデルλを学習する。この学習方法は学習部２２０と同様である。
【００４６】
このような構成により、第一実施形態及び第二実施形態と同様の効果を得ることができる。
【００４７】
＜第四実施形態＞
第一実施形態と異なる部分を中心に説明する。
【００４８】
本実施形態では、複製する学習データを限定する、または、複製する学習データに優先順位を設ける。例えば、識別誤りをし易い学習データを複製して学習データの偏りを調整する。識別誤りが高い学習データを複製することで、識別率の向上を図る。
【００４９】
図８は第四実施形態に係るモデル学習装置４００の機能ブロック図を、図９はその処理フローを示す。
【００５０】
モデル学習装置４００は、学習データ生成部４１０と学習部１２０とを含み、学習の結果得られるモデルλを出力する。
【００５１】
学習データ生成部４１０は、学習データ記憶部１１１と、データ個数計数部１１２と、データ調整部４１３と、調整後学習データ記憶部１１４と、学習部４１５と、事後確率算出部４１６とを含む。
【００５２】
＜学習部４１５＞
学習部４１５は、学習データ記憶部１１１からK個の学習データ{k,lL(k),cL(k)}を取り出し、これらの値を用いて、対象データの特徴量から対象データの属性を示すラベルを推定するモデルである第一学習モデルλ'1を学習し（Ｓ４１５）、事後確率算出部４１６に出力する。なお、第一学習モデルλ'1の学習方法は既存のいかなる学習方法を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００５３】
＜事後確率算出部４１６＞
事後確率算出部４１６は、第一学習モデルλ'1を受け取り、第一学習モデルλ'1を用いて、学習データの特徴量cL(k)が各属性mに属する事後確率である第一事後確率q(k, m)(=p(m|λ'1,cL(k)))を算出し（Ｓ４１６）、データ調整部４１３に出力する。
【００５４】
＜データ調整部４１３＞
データ調整部４１３は、K個の学習データ{k,lL(k),cL(k)}を学習データ記憶部１１１から取り出し、各属性mに属する学習データの個数n(m)及びK個の第一事後確率q(k, m)を受け取る。データ調整部４１３は、M個の個数n(m)の中で最も大きい個数Nを検出する。そして、最大の個数Nの学習データが属するラベルlL,max以外のラベルlL,m'が示す属性に属する学習データを複製し、1つ以上の複製した学習データをK個の学習データに追加し、K'個の学習データを生成する（Ｓ４１３）。データ調整部４１３は、K'個の学習データにおいてラベルlL,m'が示す属性に属する学習データの個数が追加後においてN以下となるようにする。なお、本実施形態では、
(i)識別誤りを起こしている学習データ(最も高い事後確率の属性と学習データのラベルが示す属性とが一致しない学習データ)
(ii)正解データ(最も高い事後確率の属性と学習データのラベルが示す属性とが一致する学習データ)であって、最も高い事後確率と二番目に高い事後確率との差が小さい学習データ
(iii)各属性の特徴量の重心に近い学習データ
の何れかを優先して複製する。さらに、(i)〜(iii)を組合せてもよく、例えば、まず、識別誤りを起こしている学習データを複製し、次に、正解データであって、最も高い事後確率と二番目に高い事後確率との差が小さい学習データを優先して複製してもよい。(i),(ii)の場合、識別誤りを起こしている学習データや識別誤りを起こし易い学習データ(属性の境界線近傍の学習データ)を複製することで、同様の識別誤りが生じる可能性を下げる。しかしながら、上述の(i)や(ii)の学習データを複製しすぎると、属性の特徴量の重心がずれ、新たな識別誤りの原因となり得る。そこで、(iii)では、属性の重心近傍の学習データを複製することで、このような過適合生じる可能性を下げる。学習データの構成や識別モデルの識別精度に応じて適宜(i)〜(iii)を組合せればよい。以下、4つの処理例を示す。
【００５５】
(4つの処理例に共通する処理)
1. k∈{1,2,…,K}について、k'←k、lL(k')←lL(k)、cL(k')←cL(k)とし、調整後学習データ記憶部１１４に格納する。この処理により、k'=1,2,…,Kにおける学習データ{k',lL(k'),cL(k')}をそのまま調整後学習データ記憶部１１４に格納する。
2. N←maxmn(m)とする。ただし、maxm n(m)は、n(1),n(2),…,n(M)の中で最大値を返す関数である。この処理により、M個の個数n(m)の中で最も大きい個数Nを検出する。
3.i←K+1とする。この処理により、複製先の学習データを示す変数iを初期化する。
(i)識別誤りを起こしている学習データの処理例を優先して複製する場合の処理例
4.全てのm=1,…,Mについて、下記操作を行い、k'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を複製する。
(ア)j←N-n(m)とする。
(イ)h←1とする。
(ウ)j=0の場合、終了する。
(エ)h>Kの場合、h←1とする。
(オ)lL(h)=mかつlL(h)≠argmmax q(h,m)の場合、lL(i)←lL(h)、cL(i)←cL(h)、j←j-1、i←i+1とする。
(カ)h←h+1として、（ウ）に戻る。
5.最終的なデータの個数をK’←iとする。
(ii)正解データであって、最も高い事後確率と二番目に高い事後確率との差が小さい学習データを優先して複製する場合の処理例
4.k'=1,…,Kについて、下記操作を行う
(ア)正解の事後確率が全ての属性m（m=1,…,M）の中で最も高い場合（最も高い事後確率の属性と学習データのラベルが示す属性とが一致する、つまり、lL(k')=argmmax q(k',m)の場合）、二番目に高い属性をm’として、rL(k')←q(k',lL(k'))-q(k',m')とする。ただし、argmmax q(k',m)は、q(k',m)が最も高いときのmを返す関数である。
(イ)正解の事後確率が全ての属性m（m=1,…,M）の中で最も高くない場合（最も高い事後確率の属性と学習データのラベルが示す属性とが一致しない、つまりlL(k')≠argmmax q(k',m)の場合）、rL(k')←∞とする。
5.rL(k')をk'=1,…,Kにおいて昇順で並び替え、そのs番目に小さいrLをr(f(s))とする。ただし、f(s)は、rL(k')を昇順で並び替えたときにs番目のrL(k')に対応する学習データの番号k'を返す関数である。
6.全てのm=1,…,Mについて、下記操作を行い、k'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を複製する。
(ア)j←N-n(m)とする。
(イ)h←1とする。
(ウ)j=0の場合、終了する。
(エ)h>Kの場合、h←1とする。
(オ)lL(f(h))=mの場合、lL(i)←lL(f(h))、cL(i)←cL(f(h))、j←j-1、i←i+1とする。
(カ)h←h+1とする。
(キ)r(f(h))=∞の場合、h←1とする。
(ク)（ウ）に戻る。
7.最終的なデータの個数をK’←iとする。
(iii)各属性の特徴量の重心に近い学習データを優先して複製する場合の処理例
4.K個の学習データ{k',lL(k'),cL(k')}(k'=1,…,K)を用いて、各属性mの特徴量の重心を求める。学習データ{k',lL(k'),cL(k')}毎に、その学習データが属する属性mの特徴量の重心との距離dL(k')を計算する。例えば、ユークリッド距離等を用いることができ、cL(k')=(cL(k',1),cL(k',2),…,cL(k',x),…,cL(k',Ck))の各cL(k',x)と特徴量の重心とのユークリッド距離を求め、Ck個のユークリッド距離の平均を、特徴量cL(k')と重心との距離dL(k')として用いる。
5.dL(k')をk'=1,…,Kにおいて昇順で並び替え、そのs番目に小さいdLをd(f(s))とする。ただし、f(s)は、dL(k')を昇順で並び替えたときにs番目のdL(k')に対応する学習データの番号k'を返す関数である。
6.全てのm=1,…,Mについて、下記操作を行い、k'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を複製する。
(ア)j←N-n(m)とする。
(イ)h←1とする。
(ウ)j=0の場合、終了する。
(エ)h>Kの場合、h←1とする。
(オ)lL(f(h))=mの場合、lL(i)←lL(f(h))、cL(i)←cL(f(h))、j←j-1、i←i+1とする。
(カ)h←h+1とし、（ウ）に戻る。
7.最終的なデータの個数をK’←iとする。
(iv)まず、識別誤りを起こしている学習データを複製し、次に、正解データであって、最も高い事後確率と二番目に高い事後確率との差が小さい学習データを優先して複製する場合の処理例
4.k'=1,…,Kについて、下記操作を行う
(ア)正解の事後確率が全ての属性m（m=1,…,M）の中で最も高い場合（最も高い事後確率の属性と学習データのラベルが示す属性とが一致する、つまり、lL(k')=argmmax q(k',m)の場合）、二番目に高い属性をm’として、rL(k')←q(k',lL(k'))-q(k',m')とする。ただし、argmmax q(k',m)は、q(k',m)が最も高いときのmを返す関数である。
(イ)正解の事後確率が全ての属性m（m=1,…,M）の中で最も高くない場合（最も高い事後確率の属性と学習データのラベルが示す属性とが一致しない、つまりlL(k')≠argmmax q(k',m)の場合）、rL(k')← - ∞とする。
5.rL(k')をk'=1,…,Kにおいて昇順で並び替え、そのs番目に小さいrLをr(f(s))とする。
6.全てのm=1,…,Mについて、下記操作を行い、k'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を複製する。
(ア)j←N-n(m)とする。
(イ)h←1とする。
(ウ)j=0の場合、終了する。
(エ)h>Kの場合、h←1とする。
(オ)lL(f(h))=mの場合、lL(i)←lL(f(h))、cL(i)←cL(f(h))、j←j-1、i←i+1とする。
(カ)h←h+1とし、（ウ）に戻る。
【００５６】
この処理によりk'=K+1,K+2,…,K'における学習データ{k',lL(k'),cL(k')}を生成し、生成した学習データを調整後学習データ記憶部１１４に格納する。
【００５７】
＜効果＞
このような構成とすることで、第一実施形態と同様の効果を得ることができる。さらに、上述の(i),(ii),(iv)の複製方法の場合には、識別誤りが高い学習データを複製することで、識別率向上を図ることができる。また、上述の(iii)の場合には、過適合生じる可能性を下げ、結果として識別率向上を図ることができる。
【００５８】
＜第五実施形態のポイント＞
第四実施形態と異なる部分を中心に説明する。本実施形態では学習データを調整するのではなく、開発データを調整する。
【００５９】
＜第五実施形態に係るモデル学習装置＞
図１０は第五実施形態に係るモデル学習装置５００の機能ブロック図を、図１１はその処理フローを示す。
【００６０】
モデル学習装置５００は、開発データ生成部５３０と、学習部２２０とを含み、学習の結果得られるモデルλを出力する。学習部２２０の構成、処理内容は第二実施形態の学習部２２０と同様である。
【００６１】
＜開発データ生成部２３０＞
開発データ生成部２３０は、開発データ記憶部２１１と、データ個数計数部２１２と、データ調整部５１３と、調整後開発データ記憶部２１４と、学習部５１５と、事後確率算出部５１６とを含む。なお、データ調整部５１３、学習部５１５及び事後確率算出部５１６は、それぞれデータ調整部４１３、学習部４１５及び事後確率算出部４１６と同様の構成であり、同様の処理（Ｓ５１３，Ｓ５１５，Ｓ５１６）を行う。K個の学習データ{k,lS(k),cS(k)}及びK'個の調整後学習データ{k',lS(k'),cS(k')}に代えて、J個の開発データ{j,lS(j),cS(j)}及びJ'個の調整後学習データ{j',lS(j'),cS(j')}を用いる点が異なる。データの個数等は、学習データと開発データとで異なるが、処理内容は同様である。
【００６２】
＜効果＞
このような構成とすることで、第二実施形態と同様の効果を得ることができる。第四実施形態の(i),(ii),(iv)の複製方法の場合には、識別誤りが高い開発データを複製することで、識別率向上を図ることができる。また、上述の(iii)の場合には、過適合生じる可能性を下げ、結果として識別率向上を図ることができる。なお、本実施形態と他の実施形態及びその変形例を組合せてもよい。
【００６３】
＜第六実施形態＞
第五実施形態と異なる部分を中心に説明する。
【００６４】
図７は、第六実施形態に係るモデル学習装置６００の機能ブロック図を示す。
【００６５】
モデル学習装置６００は、学習データ生成部４１０と開発データ生成部５３０と学習部３２０とを含む。学習部３２０は、第三実施形態の学習部３２０と同様の構成であり、同様の処理を行う。
【００６６】
このような構成により、第三実施形態〜第五実施形態と同様の効果を得ることができる。
【００６７】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００６８】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００７０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００７１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７２】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2018106216.tif 000003
【図２】
2018106216.tif 000004
【図３】
2018106216.tif 000005
【図４】
2018106216.tif 000006
【図５】
2018106216.tif 000007
【図６】
2018106216.tif 000008
【図７】
2018106216.tif 000009
【図８】
2018106216.tif 000010
【図９】
2018106216.tif 000011
【図１０】
2018106216.tif 000012
【図１１】
2018106216.tif 000013