以下に、本願の開示するデータ判別プログラム、データ判別装置およびデータ判別方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
まず、クラス間の出現頻度に大きな偏りがある場合の、グラフ構造に基づく半教師あり学習(SSL)の適用結果について、図14~図16を参照して説明する。なお、実施例では、暑熱環境での作業者の各種計測データからN段階の熱ストレスのレベル(ラベル)を推定する場合を説明する。実施例では、Nは4であるとするが、これに限定されるものではない。
[グラフ構造に基づくSSLの適用結果の参考例]
図14は、ラベル間の出現頻度に大きな偏りがある場合のSSLの適用結果(分布)の参考例を示す図である。図14左図に示すように、特徴量空間上においてラベルなしデータ(NA)が13,602点存在するとする。特徴量空間上においてラベルありデータが、クラス1、2、3、4について、それぞれ2,116点、72点、253点、75点存在するとする。ラベルありデータは、ラベルなしデータより少ない。ラベルありデータには、クラス間の出現頻度に大きな偏りがある。すなわち、クラス1の出現頻度は、0.8410を示し、他のクラス2、3、4と比較して高頻度である。
図14中図に示すように、特徴量空間上には、ラベルありのデータ点と、ラベルなしのデータ点の分布が表わされている。
このようなラベルありのデータ点およびラベルなしのデータ点について、データ判別装置は、グラフ構造に基づくSSLを実行する。すると、図14右図に示すように、データ判別装置は、ラベルなしのデータ点に、出現頻度が最も高いクラス1を擬似正解クラスとして付与してしまう。これは、ラベルありのデータ点のクラス1が非常に高頻度であるため、ラベルなしのデータ点に対して近辺に存在するラベルありのデータ点と同種のラベルを付けていくと、クラス1ばかりになってしまうからである。
さらに、具体的に説明する。図15は、クラス間の出現頻度に大きな偏りがある場合のSSL実行の参考例を示す図である。図15左図には、ラベルありのデータ点およびラベルなしのデータ点が表わされている。ラベルありのデータ点には、作業者ID(Identifier)および日付時刻が省略されている。また、ラベルなしのデータ点には、作業者IDが省略されている。ラベルなしのデータ点は、ラベルありのデータ点より非常に多い。
図15右図に示すように、データ判別装置は、図15左図で表わされたラベルありのデータ点およびラベルなしのデータ点に対して、グラフ構造に基づくSSLを実行し、各ラベルなしのデータ点に対して、各クラスの確信度を算出する。一例として、「8/26 10:00」のラベルなしのデータ点では、擬似正解クラスが「クラス1」となる確信度が「0.861118」と算出される。擬似正解クラスが「クラス2」となる確信度が「0.022338」と算出される。擬似正解クラスが「クラス3」となる確信度が「0.091225」と算出される。擬似正解クラスが「クラス4」となる確信度が「0.025319」と算出される。
図16は、クラス間の出現頻度に大きな偏りがある場合のSSLの適用結果の参考例を示す図である。図16左図に示すように、各ラベルなしのデータ点に対して、SSLにより算出されたクラス別の確信度が表わされている。表の各行が各データ点のクラス別の確信度である。
SSLは、各ラベルなしのデータ点に対して、各クラスの確信度の中で値の最も大きいクラスを選択して、推定クラス(擬似正解クラス)とする。図16中図に示すように、一例として、「8/26 9:50」のラベルなしのデータ点では、クラス1~4の各確信度の中で値の最も大きい「クラス1」を推定クラスとする。「8/26 9:55」のラベルなしのデータ点では、クラス1~4の各確信度の中で値の最も大きい「クラス1」を推定クラスとする。同様に、「8/26 11:10」のラベルなしのデータ点では、クラス1~4の各確信度の中で値の最も大きい「クラス1」を推定クラスとする。つまり、クラス1の頻度が非常に高いため、SSLが実行されると、多くのラベルなしのデータ点でクラス1の確信度が最も大きくなり、推定クラスとしてクラス1ばかりが選ばれてしまう。
ここで、各ラベルなしのデータ点の正解クラスが、推定クラスの右横に記載されているクラスであるとする。この場合には、各ラベルなしのデータ点に対する正解クラスおよび推定クラスは、図16右図のグラフにより表わされる。図16右図のグラフは、各ラベルなしのデータ点に対する、各クラスの確信度と、推定クラスおよび正解クラスとを表したものである。各ラベルなしのデータ点に対する推定クラスおよび正解クラスに着目すると、正解クラスが、クラス2~4のデータ点であっても、推定クラスは、クラス1を表わしている。
これにより、グラフ構造に基づくSSLを実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合、ラベルなしのデータ点のクラスを精度良く判別することができない。
そこで、以降では、SSLを実行する際に、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合でも、ラベルなしのデータ点のクラスを精度良く判別することができるデータ判別装置について説明する。
[実施例に係るデータ判別装置の構成]
図1は、実施例に係るデータ判別装置の構成を示す機能ブロック図である。図1に示すデータ判別装置1は、SSLを実行した際の各ラベルなしデータ点に対し、その得られるクラス別の確信度ベクトルがラベルありデータ点に対してSSLを実行した際に得られるクラス別の確信度ベクトルと最も類似するラベルありデータ点と同じクラスを推定クラスとして付与する。ここでいうクラス別の確信度ベクトルとは、クラス別の各確信度を要素として、この順序で配列してベクトル化したものである。なお、実施例では、SSLによって分類される「レベル」のことを「クラス」または「ラベル」と呼ぶことにする。
ここで、実施例に係るデータ判別に到った着目点について説明する。図2は、実施例に係るデータ判別に到った着目点について説明する図である。図2に示すグラフは、図16右図で示したグラフの中で、ラベルなしのデータ点に対する正解クラスとクラス別確信度の推移を表わしたグラフである。なお、図16右図で示したグラフの例では、ラベルなしのデータ点に対する推定クラスは、全て「ラベル1」であったものである。
図2のグラフに示すように、正解クラスが推定クラス1より高い2~4に上がっている時間区間Bでは、他の時間区間Aと比べてクラス1の確信度が低くなり、クラス2~4の確信度が高くなっている。これは、クラス1で推移する区間Aと、クラスが変動する区間Bとで観測対象の状態が異なるためと考えられる。例えば、区間Aは、観測対象である作業者の体調に問題のない区間、区間Bは、同じ対象者の体調に問題が生じている区間、等と考えられる。したがって、SSLで算出されるクラス別確信度と正解クラスとの関係は、最大の確信度のクラスが正解クラスになるというよりは、クラス別確信度がある割合(バランス)になっている場合に所定のクラスになるという性質があると推測される。発明者は、かかる性質に注目して、出現頻度が低いクラスがより的確に推定クラスとして選ばれる仕組みを考えた。
データ判別装置1は、制御部10および記憶部20を有する。
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、特徴量化部11、第1のSSL実行部12、正解クラス付き確信度情報生成部13、第2のSSL実行部14、クラス推定部15および推定結果出力部16を有する。なお、第1のSSL実行部12は、実行部の一例である。正解クラス付き確信度情報生成部13は、第1の生成部の一例である。第2のSSL実行部14は、第2の生成部の一例である。クラス推定部15は、特定部の一例である。推定結果出力部16は、出力部の一例である。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、計測データ群21、ラベルありデータ群22、ラベルなしデータ群23、正解クラス付き確信度情報24、ラベルなし確信度情報25および推定クラス付き確信度情報26を有する。
計測データ群21は、各種の計測値のデータ群である。各種の計測値には、運動強度(METs:Metabolic equivalents)、歩数、パルス、温度、湿度等が挙げられる。運動強度、歩数およびパルスは、例えば、対象者のウェアラブルセンサからネットワークを介して取得される。温度は、例えば、対象者が存在する暑熱環境の温度計からネットワークを介して取得される。湿度は、例えば、対象者が存在する暑熱環境の湿度計からネットワークを介して取得される。1つの計測データには、作業者IDおよび日付時刻に対応付けて各種の計測値が設定される。
ラベルありデータ群22は、計測データ群21から特徴量化されたデータ群であって正解クラス(ラベル)があるラベルありのデータ群である。計測データ群21からの特徴量化は、同一の作業者ID(IDentification)について、一定間隔で各種計測値がそれぞれ特徴となる値を特徴量とすれば良く、例えば、5分間隔で各種計測値がそれぞれ最大となる値を特徴量としても良い。ラベルありデータ群22それぞれのラベルは、専門家によって付けられる。
ラベルなしデータ群23は、計測データ群21から特徴量化されたデータ群であって正解クラス(ラベル)がないラベルなしのデータ群である。計測データ群21からの特徴量化は、ラベルありデータ群22の場合と同様に行われる。
正解クラス付き確信度情報24は、ラベルありデータ群22を用いてSSLを実行した際に出力されるラベルありデータに対するクラス別確信度を正解クラスと対応付けた情報である。なお、正解クラス付き確信度情報24は、正解クラス付き確信度情報生成部13によって生成される。また、正解クラス付き確信度情報24の詳細は、後述する。
ラベルなし確信度情報25は、ラベルありデータ群22とラベルなしデータ群23とを用いてSSLを実行した際に出力されるラベルなしデータに対するクラス別確信度の情報である。なお、ラベルなし確信度情報25は、第2のSSL実行部14によって生成される。また、ラベルなし確信度情報25は、図15のSSL実行の参考例で示したSSL実行結果と同じとなる。
推定クラス付き確信度情報26は、ラベルなし確信度情報25に含まれる各ラベルなしデータに対するクラス別確信度に推定クラスを対応付けた情報である。なお、推定クラス付き確信度情報26は、クラス推定部15によって生成される。
特徴量化部11は、計測データ群21を特徴量化し、特徴量化されたデータ群を生成する。例えば、特徴量化部11は、計測データ群21に含まれる同じ対象者IDの計測データ群について、一定間隔で各種計測値がそれぞれ特徴となる値を特徴量としたデータ群を生成する。
ここで、計測データ群21の特徴量化の一例を、図3を参照して説明する。図3は、計測データ群の特徴量化の一例を示す図である。図3左図に示すように、各種計測値を日付時刻(datetime)に対応付けた計測データ群21が表わされている。なお、この計測データ群21は、同じ対象者IDのデータ群である。
特徴量化部11は、計測データ群21に含まれる同じ対象者IDの計測データ群について、5分間隔で各種計測値の各最大値を特徴量としたデータ群21´を生成する。特徴量化されたデータ群21´は、ラベルありデータ群22およびラベルなしデータ群23に用いられる。
ここで、ラベルありデータ群22の一例を、図4を参照して説明する。図4は、ラベルありデータ群の一例を示す図である。図4に示すように、ラベルありデータ群22は、日付時刻(datetime)に正解クラスおよび各種特徴量(図示せず)を対応付けた情報である。正解クラスは専門家によって付けられた熱ストレスのレベルである。ここでは、4段階の熱ストレスのレベルをクラスとして付けられている。クラス1は、熱ストレスが最も低いレベルである。レベルの数字が高くなる程、熱ストレスが高くなり、クラス4は、熱ストレスが最も高いレベルである。ラベルありデータに付けられるクラスは、手間がかかるため、ラベルありデータ群22の数は、ラベルなしデータ群23に比べて非常に少ない。
図1に戻って、第1のSSL実行部12は、ラベルありデータ群22を用いて、SSLを実行する。すなわち、第1のSSL実行部12は、正解クラスと対応付けられたラベルありデータ群22から複数の部分データ群を生成し、複数の部分データ群のうち、一部の部分データ群および当該一部の部分データ群に対応した正解クラスと、当該一部の部分データ群以外の部分データ群とを用いて、SSLを実行する。例えば、第1のSSL実行部12は、ラベルありデータ群22を用いて、SSLでk-fold CV(Cross Validation)を実行する。ここでいうk-fold CVとは、ラベルありデータ群22をランダムに各クラスの頻度を保ちながらk個のサンプル(部分データ群)に分割し、1個のサンプルを用いて他のサンプルに含まれるデータのクラス別確信度を推定するというサイクルを、サンプルを代えてk回繰り返すことをいう。すなわち、第1のSSL実行部12は、1個のサンプルをラベルあり、k-1個のサンプルをそのラベルをマスクしたラベルなしとして、ラベルありのサンプルでラベルなしのサンプルに含まれるデータのクラス別確信度を推定するというサイクルをk回繰り返す。この結果、ラベルありデータ群22に含まれる各ラベルありデータについてのクラス別確信度が算出される。なお、各サンプルについて、各クラスの頻度を保つようにするのは、後述する第2のSSL実行部14のSSLも含め、SSLにおけるラベルありデータの分布を共通にするためである。
正解クラス付き確信度情報生成部13は、一部の部分データ群以外の部分データ群の各ラベルありデータに対し、第1のSSL実行部12によって算出された複数のクラスそれぞれの確信度の組と当該ラベルありデータに付けられた既知の正解クラスとを対応付けた正解クラス付き確信度情報24を生成する。例えば、正解クラス付き確信度情報生成部13は、ラベルなしとしたk-1個のサンプルの各ラベルありデータに対し、第1のSSL実行部12によって算出されたクラス別確信度の組と当該ラベルありデータに付けられた既知の正解クラスとを対応付けた正解クラス付き確信度情報24を生成する。正解クラス付き確信度情報生成部13は、生成した正解クラス付き確信度情報24を記憶部20に格納する。
第2のSSL実行部14は、ラベルありデータ群22およびラベルなしデータ群23を用いて、SSLを実行する。例えば、第2のSSL実行部14は、ラベルありデータ群22およびラベルなしデータ群23に対してSSLを実行し、各ラベルなしデータのクラス別確信度を算出する。第2のSSL実行部14は、ラベルなしデータごとにクラス別確信度を対応付けたラベルなし確信度情報25を生成する。そして、第2のSSL実行部14は、生成したラベルなし確信度情報25を記憶部20に格納する。なお、第2のSSL実行部14は、ラベルありデータ群22を全て用いるので、第1のSSL実行部12でサンプルを代えて実行したSSLにおけるラベルありデータの分布と共通した分布で、SSLを実行することができる。
クラス推定部15は、ラベルなし確信度情報25のラベルなしデータそれぞれについて、当該ラベルなしデータの複数のクラスそれぞれの確信度の組と類似する類似データを、正解クラス付き確信度情報24から特定する。クラス推定部15は、ラベルなし確信度情報25のラベルなしデータそれぞれについて、類似データの正解クラスをラベルなしデータのラベルとして推定する。例えば、クラス推定部15は、ラベルなし確信度情報25から、ラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでいう「クラス別確信度ベクトル」とは、クラス別確信度に含まれるクラス1、クラス2、クラス3およびクラス4の各確信度を要素として、この順序で配列してベクトル化したものである。言い換えれば、「クラス別確信度ベクトル」とは、複数のクラスそれぞれの確信度の組のことをいう。クラス推定部15は、選択したクラス別確信度ベクトルと、正解クラス付き確信度情報24内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算し、計算した各距離を比較する。クラス推定部15は、クラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスをラベルなしデータの推定クラスとする。クラス推定部15は、ラベルなし確信度情報25のラベルなしデータごとに推定クラスを対応付けた推定クラス付き確信度情報26を生成する。そして、クラス推定部15は、生成した推定クラス付き確信度情報26を記憶部20に格納する。
クラスがn個ある場合のクラス別確信度ベクトル間距離は、以下のように求めれば良い。ラベルなしデータ点vのクラス別確信度ベクトルがv(p1,...,pn)であり、ラベルありデータ点wのクラス別確信度ベクトルがw(q1,...,qn)であるとする。すると、クラス推定部15は、クラス別確信度ベクトル間距離d(p,q)を以下の式(1)に基づいて算出する。
d(p,q)=|p(v)-q(w)|=sqrt((p1-q1)2+・・・+(pn-qn)2)・・・式(1)
なお、クラス推定部15は、ラベルなしデータとのクラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスを、ラベルなしデータの推定クラスとすると説明した。しかしながら、クラス推定部15は、これに限定されず、ラベルなしデータとのクラス別確信度ベクトル間距離が小さい上位k個のラベルありデータの正解クラスの中で最頻出のクラスを、ラベルなしデータの推定クラスとしても良い。かかる推定は、例えば、k-nearest neighbor法を利用すれば良い。
ここで、クラス推定部15は、ラベルなしデータとのクラス別確信度ベクトル間距離が最も小さいラベルありデータの正解クラスを、ラベルなしデータの推定クラスとする。すなわち、クラス推定部15は、ラベルなしデータについて、クラス別確信度ベクトルを用いて、正解クラス付き確信度情報24から類似する正解クラス付きのデータを特定し、特定したデータの正解クラスを推定クラスとして選択する。かかるクラス推定の原理について以下に説明する。グラフ構造に基づくSSLの仕組みは、特徴量空間上でデータ点が近いものどうしを繋げていくことによってグラフ構造を形成し、そのグラフ構造上でクラスが既知のデータ点からクラスが未知のデータ点へと自己のグラフ情報を伝播させていくというものである。すなわち、グラフ構造に基づくSSLの仕組みは、各データ点に対して、その周辺のデータ点群から各クラスの情報がどのくらい多く伝播されてくるかを反映したものをクラス別確信度として付与する。例えば、4通りのクラスが存在する場合、各データ点xについて、p(x)=(p1,p2,p3,p4)のようなクラス別確信度ベクトルの情報が付与される。
クラスの出現頻度に大きい偏りがある場合、出現頻度の低いクラスは局所的な分布に従っていると考えられる。局所的とは、例えば、ある特別な条件を満たした場合にだけ出現するようなクラスであり、例えば、リスクレベルのようなドメインでは、通常の状態であると問題なし(クラス1)の状態が続いているが、特定の条件が重なったために状態が悪くなるとクラス2以上の状態に変わる性質をいう。このようなドメインでは、各データ点に対してクラス別確信度のうち最大の確信度のクラスばかりを選んでしまうと、局所的な分布を考慮することができない。
グラフ構造に基づくSSLのクラス別確信度ベクトルは、グラフ構造上のクラス情報の伝播を反映していることから、データ点のクラスの局所的な分布は、クラス別確信度ベクトルp(x)=(p1,p2,p3,p4)の値の出方に反映されると考えらえる。このため、クラスが未知のデータ点は、自己のクラス別確信度ベクトルが類似するデータ点と同じクラスを持つ可能性が高いと考えられる。つまり、ラベルなしデータは、自己のクラス別確信度ベクトルに類似するデータのクラスと同じクラスを推定クラスとして選択される。
なお、類似の現象を取り扱った研究分野として、「クラスバランス変化」(標本選択バイアスや環境の非定常性により、訓練標本とテスト標本のクラスのバランスが変化すること)の考え方が知られている(川久保秀子、ドゥ・プレシマーティヌス・クリストフェル、杉山 将:「分類問題におけるクラスバランス変化への対処法:エネルギー距離を用いたクラス事前確率の推定」IBISML, 2014)。
また、かかるラベル推定の原理について以下のように説明することもできる。第1のSSL実行部12と第2のSSL実行部14のSSLにおけるラベルありデータは共通の分布に従い、第1のSSL実行部12では、全てのラベルありデータを均等に用いてラベルをマスクした各ラベルありデータのクラス別確信度を計算し、第2のSSL実行部14では、全てのラベルありデータとラベルなしデータを用いて、ラベルなしデータについてクラス別確信度を計算する。ラベルなしデータについて計算されたクラス別確信度と、ラベルをマスクした各ラベルありデータについて計算されたクラス別確信度とは、共通の分布のもとで、計算されたものである。したがって、クラス推定部15は、ラベルなしデータについてクラス別確信度のバランスが最も類似するラベルありデータの正解クラスを推定クラスとして選択する。このようにして選択された推定クラスは、ラベルなしデータが仮にラベルありデータであった場合の正解クラスと一致する可能性が高い。
推定結果出力部16は、ラベルなしデータの推定クラスを出力する。例えば、推定結果出力部16は、推定クラス付き確信度情報26を参照して、ラベルなしデータの推定クラスを推定結果として出力する。
ここで、実施例に係るデータ判別の一例を、図5~図9を参照して説明する。
[第1のSSL実行の一例]
まず、実施例に係る第1のSSL実行の一例を、図5を参照して説明する。図5は、実施例に係る第1のSSL実行の一例を示す図である。
符号F0に示すように、ラベルありデータ群22に含まれる各ラベルありデータは、クラス間の出現頻度に大きな偏りがある。ここでは、クラス1の頻度が2116、クラス2の頻度が72、クラス3の頻度が253、クラス4の頻度が75であり、クラス1の頻度が他のクラスに比べて非常に高い。すなわち、クラス間の出現頻度に大きな偏りがある。
符号F1に示すように、第1のSSL実行部12は、SSLで5-fold CVを実行するために、符号F0で示したラベルありデータを、ランダムに、各クラスの頻度を保ちながら5分割する。ここでは、ラベルありデータが、L0,L1,L2,L3,L4に分割される。L0,L1,L2,L3,L4に分割されたラベルありデータは、各クラスの頻度を保つ。
符号F2に示すように、第1のSSL実行部12は、Ljに含まれるラベルありデータをラベルありとし、Lj以外のUjに含まれるラベルありデータをそのラベル(クラス)をマスクしてラベルなしとして、SSLを実行する。ここでは、第1のSSL実行部12は、jが0であるとき、L0に含まれるラベルありデータをラベルありとし、L0以外のU0であるL1,L2,L3,L4に含まれるラベルありデータをそのラベル(クラス)をマスクしてラベルなしとして、SSLを実行する。
符号F3に示すように、第1のSSL実行部12は、Ujに含まれる各データ点についてのクラスごとの確信度を算出する。ここでは、U0であるL1,L2,L3,L4に含まれる各データ点についてのクラス別確信度が算出される。そして、第1のSSL実行部12は、Ujに含まれる各データ点について既知の正解クラスを紐付ける。ここでは、U0であるL1,L2,L3,L4に含まれる各データ点について既知の正解クラスが紐付けられる。
符号F4に示すように、正解クラス付き確信度情報生成部13は、SSLが実行された判別結果であるUjに含まれるデータごとに、クラス別確信度の組とデータの既知の正解クラスとを対応付けて正解クラス付き確信度情報24に追加する。図5に示す正解クラス付き確信度情報24のq1は、ラベル1の確信度であることを示す。同様に、q2,q3,q4は、それぞれラベル2,3,4の確信度であることを示す。
続いて、第1のSSL実行部12は、jを1に変更して、L1に含まれるラベルありデータをラベルありとし、L1以外のU1であるL0,L2,L3,L4に含まれるラベルありデータをそのラベル(クラス)をマスクしてラベルなしとして、SSLを実行する(符号F2の処理)。そして、第1のSSL実行部12は、U1であるL0,L2,L3,L4に含まれる各データ点についてのクラス別確信度を算出し、既知の正解クラスと紐付ける(符号F3の処理)。そして、正解クラス付き確信度情報生成部13は、SSLが実行された判別結果であるU1に含まれるデータごとに、クラス別確信度の組とデータの既知の正解クラスとを対応付けて正解クラス付き確信度情報24に追加する(符号F4の処理)。同様に、第1のSSL実行部12は、および正解クラス付き確信度情報生成部13は、jを2~4に順番に変更して、符号F2の処理、符号F3の処理、符号F4の処理をそれぞれ行う。この結果、正解クラス付き確信度情報S(24)が生成される。
[第2のSSL実行の一例]
次に、実施例に係る第2のSSL実行の一例を、図6を参照して説明する。図6は、実施例に係る第2のSSL実行の一例を示す図である。
第2のSSL実行部14は、ラベルありデータ群22に含まれるラベルありデータと、ラベルなしデータ群23に含まれるラベルなしデータを用いて、SSLを実行する。ここでいうラベルありデータは、第1のSSL実行部12によって用いられたデータと同じである。すなわち、クラス1の頻度が他のクラスに比べて非常に高い、クラス間の出現頻度に大きな偏りがある。また、ここでいうラベルなしデータの数は、ラベルありデータの数よりも非常に多い。
そして、第2のSSL実行部14は、各ラベルなしデータのクラス別確信度を算出し、ラベルなしデータごとのクラス別確信度を表すラベルなし確信度情報25を生成する。図6に示すラベルなし確信度情報25のp1は、クラス1の確信度であることを示す。同様に、p2,p3,p4は、それぞれクラス2,3,4の確信度であることを示す。
[ラベル推定の一例]
次に、実施例に係るクラス推定の一例を、図7A~図7Cを参照して説明する。図7A~図7Cは、実施例に係るクラス推定の一例を示す図である。
クラス推定部15は、ラベルなし確信度情報25のラベルなしデータについて、正解クラス付き確信度情報S(24)とのクラス別確信度ベクトル間距離d(p,q)を算出し、距離が最小のラベルありデータを特定する。クラス推定部15は、特定したラベルありデータの正解クラスを、このラベルなしデータの推定クラスとする。なお、ラベルなし確信度ベクトルは、(p1,p2,p3,p4)である。S内のラベルあり確信度ベクトルは、(q1,q2,q3,q4)である。d(p,q)は、式(1)を用いて算出される。
図7Aに示すように、クラス推定部15は、ラベルなし確信度情報25から、符号a1で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「8/26 10:05」のラベルなしデータに対するクラス別確信度ベクトルとして(0.880676,0.022711,0.075283,0.02133)が選択される。
そして、クラス推定部15は、符号a1で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報S(24)内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、S内の符号s1で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、0.0655685と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図7Aのように算出される。
そして、クラス推定部15は、各距離(クラス別確信度ベクトル間距離)を比較し、距離が最も小さいラベルありデータの正解クラスを、符号a1で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号s2で示すラベルありデータのクラス別確信度ベクトルとの間の距離である0.0015547である。そこで、符号s2で示すラベルありデータの正解クラス「1」を、符号a1で示すラベルなしデータの推定クラスとする。
そして、クラス推定部15は、符号a1で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「1」(符号r1)とを対応付けた情報を推定クラス付き確信度情報26に追加する。
図7Bに示すように、クラス推定部15は、ラベルなし確信度情報25から、符号a2で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「8/26 10:10」のラベルなしデータに対するクラス別確信度ベクトルとして(0.71954,0.052965,0.178919,0.048576)が選択される。
そして、クラス推定部15は、符号a2で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報S(24)内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、S内の符号s1で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、0.2614284と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図7Bのように算出される。
そして、クラス推定部15は、各距離(クラス別確信度ベクトル間距離)を比較し、距離が最も小さいラベルありデータの正解クラスを、符号a2で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号s3で示すラベルありデータのクラス別確信度ベクトルとの間の距離である0.0084395である。そこで、符号s3で示すラベルありデータの正解クラス「1」を、符号a2で示すラベルなしデータの推定クラスとする。
そして、クラス推定部15は、符号a2で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「1」(符号r2)とを対応付けた情報を推定クラス付き確信度情報26に追加する。
図7Cに示すように、クラス推定部15は、ラベルなし確信度情報25から、符号a3で示すラベルなしデータに対するクラス別確信度ベクトルを選択する。ここでは、「8/26 10:15」のラベルなしデータに対するクラス別確信度ベクトルとして(0.704572,0.051781,0.191827,0.05182)が選択される。
そして、クラス推定部15は、符号a3で示すラベルなしデータに対するクラス別確信度ベクトルと、正解クラス付き確信度情報S(24)内の各ラベルありデータのクラス別確信度ベクトルとの間の各距離を計算する。ここでは、S内の符号s1で示すラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離は、0.2809013と算出される。同様に、次行、・・・、最終行のそれぞれのラベルありデータのクラス別確信度ベクトルとの間のクラス別確信度ベクトル間距離が、図7Cのように算出される。
そして、クラス推定部15は、各距離(クラス別確信度ベクトル間距離)を比較し、距離が最も小さいラベルありデータの正解クラスを、符号a3で示すラベルなしデータの推定クラスとする。ここでは、最も小さい距離は、符号s4で示すラベルありデータのクラス別確信度ベクトルとの間の距離である0.00839278である。そこで、符号s4で示すラベルありデータの正解クラス「3」を、符号a3で示すラベルなしデータの推定クラスとする。
そして、クラス推定部15は、符号a3で示すラベルなしデータのクラス別確信度ベクトルと、推定クラス「3」(符号r3)とを対応付けた情報を推定クラス付き確信度情報26に追加する。
[適用結果の一例]
次に、実施例に係る適用結果の一例を、図8A,図8Bを参照して説明する。図8A,図8Bは、実施例に係る適用結果の一例を示す図である。
図8Aに示すように、ラベルなしデータ群23に含まれるラベルなしデータごとに、クラス別確信度、推定クラスおよび正解クラスを対応付けた表が表わされている。クラス別確信度は、第2のSSL実行部14によって実行された結果を示す。推定クラスは、クラス推定部15によって推定された結果を示す。正解クラスは、専門家が付けたクラスを示す。
かかる表では、各ラベルなしデータに対する推定クラスは、グラフ構造に基づくSSLを実行した場合に全てクラス1であったところ、データ判別を適用した場合には正解クラスに近づいていることがわかる。
また、図8Bに示すように、ラベルなしデータ群23に含まれるラベルなしデータごとに、クラス別確信度、推定クラスおよび正解クラスを対応付けたグラフが表わされている。クラス別確信度は、第2のSSL実行部14によって実行された結果でを示す。推定クラスは、クラス推定部15によって推定された結果を示す。正解クラスは、専門家が付けたラベルを示す。
かかるグラフでは、各ラベルなしデータに対する推定クラスは、グラフ構造に基づくSSLを実行した場合に全てクラス1であったところ、データ判別を適用した場合には正解クラスに近づいていることがわかる。
これにより、データ判別装置1は、ラベルありのデータ点について、クラス間の出現頻度に大きな偏りがある場合であっても、ラベルなしのデータの推定クラスを正解クラスに近づけることができる。すなわち、データ判別装置1は、グラフ構造に基づくSSLを実行する場合と比べて、ラベルなしのデータの推定クラスを精度良く判別することができる。
[適用結果(分布)の一例]
次に、実施例に係る適用結果(分布)の一例を、図9を参照して説明する。図9は、実施例に係る適用結果(分布)の一例を示す図である。
図9左図に示すように、ラベルなしデータ(NA)、クラス1~4のラベルありデータが、特徴量空間上に存在することを表わしている。ラベルありデータには、クラス間の出現頻度に大きな偏りがあることを示している。すなわち、クラス1の出現頻度は、0.8410を示し、他のクラス2、3、4と比較して高頻度である。
図9中図に示すように、特徴量空間上には、ラベルありのデータ点と、ラベルなしのデータ点の分布が表わされている。
このようなラベルありのデータおよびラベルなしのデータについて、データ判別装置1は、データ判別処理を適用した結果、ラベルなしのデータに、推定クラス(擬似ラベル)を付与する。図9右図に示すように、擬似ラベル付きのデータ点の分布が表わされている。
これにより、データ判別装置1は、元のクラス分布に大きな偏りがある場合であっても、ラベルなしのデータのクラスを精度良く推定することができる。すなわち、データ判別装置1は、図14で示したグラフ構造に基づくSSLを適用した結果(分布)と比べて、ラベルなしのデータのクラスを精度良く推定することができる。この結果、データ判別装置1は、多量に存在するラベルなしデータに、質の良い推定クラス(擬似ラベル)を付けて、クラス分類モデルの構築に利用することが可能となる。
[データ判別処理のフローチャート]
図10は、実施例に係るデータ判別処理のフローチャートの一例を示す図である。なお、クラスは、N個あるものとする。
第1のSSL実行部12は、ラベルありデータに対して、SSLでk-fold CVを実行する(ステップS11)。例えば、第1のSSL実行部12は、ラベルありデータ群22をランダムに各クラスの頻度を保ちながらk個のサンプルに分割する。そして、第1のSSL実行部12は、1個のサンプルに含まれるデータをラベルありとし、その他のk-1個のサンプルに含まれるデータをそのラベル(クラス)をマスクしてラベルなしとして、SSLを実行する。この結果、第1のSSL実行部12は、ラベルなしとしたk-1個のサンプルに含まれる各データについて、SSLによって算出されたクラス別確信度を出力する。そして、第1のSSL実行部12は、このサイクルを、サンプルを代えてk回繰り返す。
そして、正解クラス付き確信度情報生成部13は、ラベルありデータwに対する正解クラスcと、クラス別の確信度ベクトルq(w)=(q1,・・・,qN)とのデータセットを生成し、正解クラス付き確信度情報S(24)を生成する(ステップS12)。例えば、正解クラス付き確信度情報生成部13は、第1のSSL実行部12によって出力された各ラベルありデータwのクラス別の確信度ベクトルq(w)と各ラベルありデータに付けられた既知の正確クラスcとを対応付けた正解クラス付き確信度情報S(24)を生成する。そして、正解クラス付き確信度情報生成部13は、正解クラス付き確信度情報S(24)を記憶部20に格納する。
続いて、第2のSSL実行部14は、ラベルありデータとラベルなしデータとを用いて、SSLを実行する(ステップS13)。例えば、第2のSSL実行部14は、ラベルありデータ群22およびラベルなしデータ群23に対してSSLを実行し、各ラベルなしデータのクラス別確信度を算出する。
そして、第2のSSL実行部14は、ラベルなしデータvに対するクラス別確信度ベクトルp(v)=(p1,・・・,pN)のデータセットを生成し、ラベルなし確信度情報A(25)を生成する(ステップS14)。そして、第2のSSL実行部14は、ラベルなし確信度情報A(25)を記憶部20に格納する。
続いて、クラス推定部15は、各ラベルなしデータのクラスを推定する(ステップS15)。なお、クラス推定部15のフローチャートは、後述する。
そして、推定結果出力部16は、クラス推定部15によって推定された推定結果を出力する(ステップS16)。例えば、推定結果出力部16は、各ラベルなしデータの推定クラスを推定結果として出力する。
[クラス推定処理のフローチャート]
図11は、実施例に係るクラス推定処理のフローチャートの一例を示す図である。
クラス推定部15は、ラベルなし確信度情報A(25)からラベルなしデータvを選択する(ステップS21)。
クラス推定部15は、ラベルなしデータvのp(v)と、正解クラス付き確信度情報S(24)内の各ラベルありデータwのq(w)とのクラス別確信度ベクトル間距離|p(v)-q(w)|を算出する(ステップS22)。p(v)、q(w)は、それぞれクラス別確信度ベクトルを示す。なお、クラス別確信度ベクトル間距離|p(v)-q(w)|は、式(1)を用いて算出されれば良い。
そして、クラス推定部15は、クラス別確信度ベクトル間距離が最小のラベルありデータwに対する正解クラスcをラベルなしデータvの推定クラスとして設定する(ステップS23)。例えば、クラス推定部15は、各ラベルありデータwごとに算出されたクラス別確信度ベクトル間距離を比較し、クラス別確信度ベクトル間距離が最も小さいラベル有りデータwの正確クラスcをラベルなしデータvの推定クラスとする。クラス推定部15は、ラベルなしデータvのクラス別確信度ベクトルp(v)と推定クラスとを対応付けた情報を推定クラス付き確信度情報26に追加する。
そして、クラス推定部15は、ラベルなし確信度情報A(25)から全てのラベルなしデータを選択したか否かを判定する(ステップS24)。全てのラベルなしデータを選択していないと判定した場合には(ステップS24;No)、クラス推定部15は、次のラベルなしデータを選択すべく、ステップS21に移行する。
一方、全てのラベルなしデータを選択したと判定した場合には(ステップS24;Yes)、クラス推定部15は、クラス推定処理を終了する。
[データ判別の別の適用例]
図12Aおよび図12Bは、実施例に係るデータ判別の別の適用例を示す図である。図12Aおよび図12Bで示す適用例は、特定の観測地点での特定時刻の気象予報データから天気を推定する場合である。ここでは、データ判別装置1は、首都圏の4箇所の観測地点(千代田区、さいたま市、千葉市、横浜市)における2011/07/29~2018/02/02の各予報日の朝6時の気象予報データから4クラスの天気(晴、曇、雨、雪)を推定する。
図12Aに示すように、首都圏の4箇所の観測地点(千代田区、さいたま市、千葉市、横浜市)における2011/07/29~2018/02/02の各予報日の朝6時の気象予報データと天気とを対応付けたラベルありデータの分布が表わされている。ここでいう気象予報データは、気温(temp)、気圧(atm_press)および湿度(humid)である。ラベルありには、クラス間の出現頻度に偏りがあることを示している。すなわち、晴クラスの出現頻度は、4591を示し、曇クラスの出現頻度は、2991を示し、他のクラス雨、雪と比較して頻度が高い。
図12B左図に示すように、図12Aで示したラベルありデータのうちランダムに20%のラベルありデータを残したデータ点の分布である。さらに、この分布には、ラベルなしデータ(NA)が表わされている。このようなラベルありデータおよびラベルなしデータについて、データ判別装置1は、データ判別処理を適用した結果、ラベルなしデータに推定クラス(擬似ラベル)を付与する。図12B上図には、データ判別処理の適用結果(分布)である、擬似ラベル付きのデータ点が表わされている。擬似ラベル付きのデータ点は、出現頻度が高い晴クラスや曇クラスだけでなく雨、雪のクラスを擬似ラベルとして付与されている。
これに対して、図12B下図には、同じデータ点についてグラフ構造に基づくSSLを実行した結果(分布)である、擬似ラベル付きのデータ点が表わされている。擬似ラベル付きのデータ点は、出現頻度が高い晴クラスや曇クラスばかりを擬似ラベルとして付与されている。
これにより、データ判別装置1は、元のクラス分布に偏りがある場合であっても、グラフ構造に基づくSSLを適用した結果(分布)と比べて、ラベルなしのデータのクラスを精度良く推定することが可能となる。
[実施例の効果]
上記実施例によれば、データ判別装置1は、正解ラベルと対応付けられたテストデータから複数の部分テストデータを生成する。データ判別装置1は、複数の部分テストデータのうち、一部の部分テストデータおよび当該一部の部分テストデータに対応した正解ラベルと、一部の部分テストデータ以外の部分テストデータとを用いて、学習モデルに対するSSLを実行する。データ判別装置1は、一部の部分テストデータ以外の前記部分テストデータの各データに対し、学習モデルの判別結果である複数のラベルそれぞれの確信度の組と、当該データに対応付けられた正解ラベルとを対応付けた対応情報(正解クラス付き確信度情報24)を生成する。データ判別装置1は、正解のラベルの対応付けが存在しない複数の検証対象データそれぞれについて、学習モデルを用いて、複数のラベルそれぞれの確信度を生成する。データ判別装置1は、複数の検証対象データそれぞれについて、当該検証対象データの複数のラベルそれぞれの確信度の組と類似する類似データを、正解クラス付き確信度情報24から特定する。データ判別装置1は、類似データの正解ラベルを検証対象データのラベルとして出力する。かかる構成によれば、データ判別装置1は、正解ラベルと対応付けられたテストデータ(ラベルありデータ)について、複数のラベル(クラス)の分布に偏りがある場合でも、ラベルなしデータについて、SSLを利用した適切なラベル(クラス)の判別を可能とする。
また、上記実施例によれば、データ判別装置1は、ラベルありのテストデータを用いて、学習モデルのSSLでk-fold CVを実行する。かかる構成によれば、データ判別装置1は、ラベルありデータに対する複数のラベルごとの確信度と正解のラベル(クラス)とを対応付けた正解クラス付き確信度情報24を取得することができる。
また、上記実施例によれば、データ判別装置1は、ラベルありのテストデータから、ランダムに各ラベルの頻度を保ちながらkグループの複数の部分テストデータを生成する。データ判別装置1は、1グループの部分テストデータに対応した正解ラベルと、k-1個のグループのグ部分テストデータを用いて、学習モデルに対するSSLを実行する。データ判別装置1は、k-1個のグループに含まれる各データの複数のラベルそれぞれの確信度を生成する。かかる構成によれば、データ判別装置1は、学習モデルのラベル(クラス)分布を、元のラベル(クラス)分布と共通にして、SSLを実行することができる。
また、上記実施例によれば、データ判別装置1は、検証対象データそれぞれについて、複数のラベルそれぞれの確信度の組と、対応情報(正解クラス付き確信度情報24)に含まれる各データの複数のラベルそれぞれの確信度の組とを比較する。データ判別装置1は、組で示される複数のラベルそれぞれの確信度を用いた距離が最も小さいデータを類似データとして特定する。かかる構成によれば、データ判別装置1は、検証対象データの複数のラベルそれぞれの確信度の組と正解クラス付き確信度情報24に含まれる各データの複数のラベルそれぞれの確信度の組との距離を用いることで、ラベルありデータについて、複数のラベル(クラス)の分布に偏りがある場合でも、ラベルなしデータについて、SSLを利用した適切なラベル(クラス)の判別を可能とする。
[その他]
なお、図示したデータ判別装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、データ判別装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第1のSSL実行部12と正解クラス付き確信度情報生成部13とを1つの部として統合しても良い。また、クラス推定部15を、クラス別確信度ベクトル間距離を算出する算出部と、算出したクラス別確信度ベクトル間距離からクラスを推定する推定部とに分離しても良い。また、記憶部20をデータ判別装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したデータ判別装置1と同様の機能を実現するデータ判定プログラムを実行するコンピュータの一例を説明する。図13は、データ判定プログラムを実行するコンピュータの一例を示す図である。
図13に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、データ判別プログラム205aおよびデータ判別処理関連情報205bを記憶する。
CPU203は、データ判別プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、データ判別装置1の各機能部に対応する。データ判別処理関連情報205bは、計測データ群21、ラベルありデータ群22、ラベルなしデータ群23、正解クラス付き確信度情報24、ラベルなし確信度情報25および推定クラス付き確信度情報26に対応する。そして、例えばリムーバブルディスク210が、データ判別プログラム205aなどの各情報を記憶する。
なお、データ判別プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからデータ判別プログラム205aを読み出して実行するようにしても良い。