(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-16
(45)【発行日】2023-10-24
(54)【発明の名称】学習装置、学習済みモデル生成方法、分類装置、分類方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231017BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2022516507
(86)(22)【出願日】2020-04-21
(86)【国際出願番号】 JP2020017163
(87)【国際公開番号】W WO2021214861
(87)【国際公開日】2021-10-28
【審査請求日】2022-10-14
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】佐藤 敦
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2017-102540(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
2クラス分類のためのスコア関数を機械学習するための装置であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化
部を備え、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする学習装置。
【請求項2】
請求項1に記載の学習装置であって、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコアを算出する、スコア算出
部を備え、
前記スコア関数最適化
部は、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数を更新する、
ことを特徴とする学習装置。
【請求項3】
2クラス分類のためのスコア関数を機械学習するための方法であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新し、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする学習済みモデル生成方法。
【請求項4】
請求項3に記載の学習済みモデル生成方法であって、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコアを算出し、
前記スコア関数の更新において、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数を更新する、
ことを特徴とする学習済みモデル生成方法。
【請求項5】
コンピュータによって、2クラス分類のためのスコア関数を機械学習するためのプログラ
ムであって、
前記コンピュータに、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新させる
、ステップを実行させ、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする
プログラム。
【請求項6】
請求項5に記載の
プログラムであって、
前記コンピュータに、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコア
を算出させ
る、ステップを更に実行させ、
前記スコア関数のパラメータの更新において、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数のパラメータを更新する、
ことを特徴とする
プログラム。
【請求項7】
テストデータをスコア関数に入力して、スコアを算出する、スコア算出
部と、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類
部と、を備え、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を
変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする分類装置。
【請求項8】
テストデータをスコア関数に入力して、スコアを算出し、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類し、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を
変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする分類方法。
【請求項9】
コンピュータに、
テストデータをスコア関数に入力して、スコアを算出させ
る、ステップと、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類させ
る、ステップと、
を実行さ
せ、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を
変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2クラス分類に用いるスコア関数のパラメータを機械学習するための、学習装置、及び学習済みモデル生成方法に関し、更には、2クラス分類を行う分類装置、分類方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
近年、観測データが正例クラス及び負例クラスのいずれであるかを判定する2クラス分類が行われている。2クラス分類では、観測データに応じて、スコアを出力するスコア関数のパラメータが機械学習され、2クラス分類を行う学習済みモデルが生成される。2クラス分類は、例えば、画像データを利用した、映像監視、故障診断、検品、及び医用画像診断等で利用されている。
【0003】
但し、2クラス分類では、負例クラスの訓練データに比べて正例クラスの訓練データが極端に少ない事態が生じ易く、この場合、十分な分類精度が確保できないことがある。この問題を解消するため、例えば、非特許文献1は、partial AUC(以下「pAUC」と表記する)が大きくなるように、スコア関数のパラメータを学習する学習方法を開示している。この学習方法によれば、負例から、分類が難しいデータが特に抽出されてパラメータの学習が行われるため、上述の問題が解消されると思われる。
【0004】
ここで、AUC(Area Under the Curve)及びpAUCについて、
図8を用いて説明する。
図8は、AUC及びpAUCを説明するための図である。
図8には、ROC(Receiver Operating Characteristic)曲線が示されている。ROC曲線は、スコア関数における正例と負例とを決める閾値を変化させて、真陽性率(縦軸)と偽陽性率(横軸)とをプロットして得られる曲線である。また、真陽性率は検出正解率を示し、偽陽性率は誤検知率を示している。
【0005】
図8の上段の図に示すように、AUCは、ROC(Receiver Operating Characteristic)曲線の横軸側(下側)の領域の面積を示す。また、
図8の下段の図に示すように、pAUCは、偽陽性率の値をある固定値βとしたときのAUCの値であり、ROC曲線、横軸、固定値βを通る縦軸とで囲まれた領域の面積を示している。
【0006】
また、特許文献1も、負例クラスの訓練データに比べて正例クラスの訓練データが極端に少ない場合における、スコア関数のパラメータの学習方法を開示している。特許文献1に開示された方法では、スコア関数として、正例クラスの確率モデルと負例クラスの学習モデルとの比を採用することで、上述の問題を解消している。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【文献】H. Narasimhan and S. Agarwal, “A Structural SVM Based Approach for Optimizing Partial AUC”, Int’l Conf. on Machine Learning (ICML), 2013.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、非特許文献1に開示された学習方法では、正例クラスのデータが極端にすくない上述の場合に、スコア関数のパラメータが訓練データに適合しすぎてしまい、観測データに対する精度が低下する過学習になり易いという問題がある。過学習とは、訓練データだけに最適化されてしまって汎用性のない状態に陥ることである。
【0010】
一方、特許文献1に開示された学習方法では、非特許文献1に開示された学習方法に比べて過学習にはなりにくいと考えられるが、2つの確率モデルが必要となるため、深層ネットワーク等の非線形モデルを使うことができず、結果、分類精度の向上に限界がある。
【0011】
本発明の目的の一例は、上記問題を解消し、正例クラスのデータが負例クラスのデータに比べて少ない場合の2クラス分類において、過学習の抑制と分類精度の向上とを図り得る、学習装置、分類装置、学習済みモデル生成方法、分類方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明の一側面における学習装置は、2クラス分類のためのスコア関数を機械学習するための装置であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化部を備え、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【0013】
また、上記目的を達成するため、本発明の一側面における学習済みモデル生成方法は、2クラス分類のためのスコア関数を機械学習するための方法であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化ステップを有し、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【0014】
更に、上記目的を達成するため、本発明の一側面における第1のプログラムは、コンピュータによって、2クラス分類のためのスコア関数を機械学習するためのプログラムであって、
前記コンピュータに、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化ステップを実行させ、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【0015】
更に、上記目的を達成するため、本発明の一側面における分類装置は、
テストデータをスコア関数に入力して、スコアを算出する、スコア算出部と、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類部と、を備え、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【0016】
更に、上記目的を達成するため、本発明の一側面における分類方法は、
テストデータをスコア関数に入力して、スコアを算出する、スコア算出ステップと、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類ステップと、を有し、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【0017】
更に、上記目的を達成するため、本発明の一側面における第2のプログラムは、
コンピュータに、
テストデータをスコア関数に入力して、スコアを算出する、スコア算出ステップと、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類ステップと、
を実行させ、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする。
【発明の効果】
【0018】
以上のように本発明によれば、正例クラスのデータが負例クラスのデータに比べて少ない場合の2クラス分類において、過学習の抑制と分類精度の向上とを図ることができる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、実施の形態1における学習装置の概略構成を示す構成図である。
【
図2】
図2は、実施の形態1における学習装置の構成を具体的に示す構成図である。
【
図3】
図3は、実施の形態1における学習装置の動作を示すフロー図である。
【
図4】
図4は、従来技術において学習対象となる訓練データの一例と、実施の形態1において学習対象となる訓練データの一例とを示す図である。
【
図5】
図5は、実施の形態2における分類装置の構成を示すブロック図である。
【
図6】
図6は、実施の形態2における分類装置の動作を示すフロー図である。
【
図7】
図7は、実施の形態1における学習装置及び実施の形態2における分類装置を実現するコンピュータの一例を示すブロック図である。
【
図8】
図8は、AUC及びpAUCを説明するための図である。
【発明を実施するための形態】
【0020】
(実施の形態1)
以下、実施の形態1における、学習装置、学習済みモデル生成方法、及びプログラムについて、
図1~
図4を参照しながら説明する。
【0021】
[装置構成]
最初に、実施の形態1における学習装置の概略構成について
図1を用いて説明する。
図1は、実施の形態1における学習装置の概略構成を示す構成図である。
【0022】
図1に示す、実施の形態1における学習装置100は、2クラス分類のためのスコア関数を機械学習するための装置である。
図1に示すように、実施の形態1における学習装置100は、スコア関数最適化部10を備えている。
【0023】
スコア関数最適化部10は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、重みλの値を減少させながら、指標が最大化するように、訓練データを用いて、スコア関数のパラメータを機械学習によって更新する。
【0024】
ここで、AUCは、背景技術の欄でも述べたように、スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示す。pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり上述の、曲線、横軸、固定値を通る縦軸とで囲まれた領域の面積を示す。
【0025】
このように、実施の形態1では、pAUCだけでなく、AUCも指標として用いて、スコア関数のパラメータの機械学習が行われるので、pAUCだけを用いた場合の過学習が抑制される。また、実施の形態1では、2つの確率モデルは不要で、深層ネットワークなどの非線形モデルも学習できることから、分類精度の向上も図られる。実施の形態1によれば、正例クラスのデータが負例クラスのデータに比べて少ない場合の2クラス分類において、過学習の抑制と分類精度の向上とを図ることができる。
【0026】
続いて、
図2を用いて、実施の形態1における学習装置100の構成及び機能について具体的に説明する。
図2は、実施の形態1における学習装置の構成を具体的に示す構成図である。
【0027】
図2に示すように、実施の形態1では、学習装置100は、訓練データを入力する端末装置200に、データ通信可能に接続されている。端末装置200の具体例としては、汎用のコンピュータ、スマートフォン、タブレット型端末装置などが挙げられる。
【0028】
また、
図2に示すように、実施の形態1では、学習装置100は、上述したスコア関数最適化部10に加えて、スコア算出部20と、訓練データ格納部30とを備えている。
【0029】
訓練データ格納部30は、端末装置200から送信されてきた訓練データを格納する。訓練データには、正例と負例とが含まれている。スコア算出部20は、訓練データ格納部30に格納されている各訓練データを、スコア関数に入力して、訓練データ毎にスコアを算出する。
【0030】
スコア関数最適化部10は、実施の形態1では、拡張AUC計算部11と、重み可変部12とを備えている。拡張AUC計算部11は、AUCに重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を、指標eAUCとして計算する。また、スコア関数がf(x;θ)で表され、そのパラメータがθであるとすると、指標eAUC(θ,λ)は、下記の数1によって計算される。
【0031】
【0032】
上記の数1は、具体的には下記の数2及び数3に書き換えられる。数2において、I*( )は0-1関数を微分可能にしたものである。I*( )としては、例えば、シグモイド関数、又は任意の単調増加関数が用いられる。xi
+は正例の訓練データ、xj
-は負例の訓練データ、N+は正例の訓練データの数、N-は負例の訓練データの数を示している。Zは、予め設定した偽陽性率βに対して偽陽性となる負例の訓練データの集合を表す。
【0033】
【0034】
【0035】
スコア関数最適化部10は、スコア算出部20で算出されたスコアの値から、予め設定した偽陽性率βに対して偽陽性となる負例の訓練データの集合Zを選定し、集合Zに含まれる負例の訓練データxjについてはwjを1に、そうでない負例の訓練データxjについてはwjをλに設定した後、拡張AUC計算部11に上記数2に基づく指標eAUC(θ,λ)を計算させ、重み可変部12に重みλの値を減少させながら、スコア関数最適化部10は、上記数3を用いて指標eAUC(θ,λ)を最大化するパラメータθを計算し、パラメータθを更新する。
【0036】
[装置動作]
次に、実施の形態1における学習装置100の動作について
図3を用いて説明する。
図3は、実施の形態1における学習装置の動作を示すフロー図である。以下の説明においては、適宜
図1及び
図2を参照する。また、実施の形態1では、学習装置100を動作させることによって、学習済みモデル生成方法が実施される。よって、実施の形態1における学習済みモデル生成方法の説明は、以下の学習装置100の動作説明に代える。
【0037】
図3に示すように、スコア関数最適化部10は、まず、重みλの値を初期値である「1」に設定する(ステップA1)。次に、スコア算出部20は、訓練データ格納部30から、予め格納されている訓練データを取得し、訓練データ毎に、スコア関数を用いてスコアを算出する(ステップA2)。
【0038】
次に、スコア関数最適化部10は、拡張AUC計算部11によって、上記数2を用いて、指標eAUC(θ,λ)を計算する(ステップA3)。
【0039】
具体的には、ステップA3では、スコア関数最適化部10は、ステップA2で算出されたスコアの値から、予め設定した偽陽性率βに対して偽陽性となる負例の訓練データの集合Zを選定し、集合Zに含まれる負例の訓練データxjについてはwjを1に、そうでない負例の訓練データxjについてはwjをλに設定した後、拡張AUC計算部11によって上記数2を用いて指標eAUC(θ,λ)を計算する。
【0040】
そして、スコア関数最適化部10は、上記数3を用いて、ステップA3で算出した指標eAUC(θ,λ)を最大化するパラメータθを算出し、パラメータθを更新する(ステップA4)。
【0041】
具体的には、スコア関数最適化部10は、一般的な山登り法により、現在のパラメータθの近傍で、目的関数である指標eAUC(θ,λ)の値が最も大きくなる近傍を探索する。つまり、スコア関数最適化部10は、現在のパラメータθに、微小な値△θを加え、指標eAUC(θ,λ)の値を最大にする△θを特定すると、θ+△θを、新たなパラメータθに更新する。
【0042】
次に、重み可変部12は、現在の重みλの値を一定値分減少させた値を、新たな重みλに更新する(ステップA5)。
【0043】
次に、スコア関数最適化部10は、終了条件が満たされているかどうかを判定する(ステップA6)。ステップA6の終了条件としては、例えば、重みλの値が0に近い値(閾値)以下であることが挙げられる。
【0044】
ステップA6の判定の結果、終了条件が満たされていない場合は、更新後のパラメータθと更新後の重みλを用いてステップA2に戻る。
【0045】
一方、ステップA6の判定の結果、終了条件が満たされている場合は、スコア関数最適化部10は、算出したスコア関数のパラメータθを出力する(ステップA7)。
【0046】
[実施の形態1における効果]
図4を用いて、実施の形態1における効果を説明する。
図4は、従来技術において学習対象となる訓練データのスコアの一例と、実施の形態1において学習対象となる訓練データのスコアの一例とを示す図である。s
i
+は正例の訓練データx
i
+のスコアであり、s
i
+=f(x
i
+;θ)として得られる。s
j
-は負例の訓練データx
j
-のスコアであり、s
j
-=f(x
j
-;θ)として得られる。ただし、負例についてはスコアの大きい順にソートされている。
【0047】
従来技術は、pAUCが指標となるので、偽陽性となるβN-個の負例とN+個の正例のペア、つまりβN-×N+個のペアが学習対象となり、si
+>sj
-となるペアの数が増えるように、スコア関数のパラメータθが更新される。
【0048】
実施の形態1では、学習の初期段階では重みλの値が1に設定されるのでAUCが指標となる。すなわち、N-×N+個の正例と負例とのすべてのペアが学習対象となり、si
+>sj
-となるペアの数が増えるように、スコア関数のパラメータθが更新される。学習が進むにつれ重みλの値が0に近づくので、目的関数におけるAUCの影響は徐々に軽減され、eAUCは従来技術の指標であるpAUCに近づくことになる。ここで、予め設定した偽陽性率βに対してスコア上位のβN-個の負例が、偽陽性となる負例の訓練データの集合Zである。
【0049】
ただし、λが0になる前に学習は終了するため、従来技術のようにβN-×N+個のペアが学習対象として限定されることはなく、N-×N+個の正例と負例とのすべてのペアが学習対象となる。つまり、従来技術では、学習対象となるペアの数が少ないため過学習となるが、実施の形態1では、すべてのペアが学習対象となるため過学習は抑制される。また、実施の形態1では、2つの確率モデルは必要ないため、深層ネットワーク等の非線形モデルを使うことができ、分類精度の向上も図られる。
【0050】
[プログラム]
実施の形態1におけるプログラムは、コンピュータに、
図3に示すステップA1~A7を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1における学習装置100と学習済みモデル生成方法とを実現することができる。この場合、コンピュータのプロセッサは、スコア関数最適化部10及びスコア算出部20として機能し、処理を行なう。
【0051】
また、本実施の形態1では、訓練データ格納部30は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0052】
実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、スコア関数最適化部10及びスコア算出部20のいずれかとして機能しても良い。
【0053】
(実施の形態2)
次に、実施の形態2では、分類装置、分類方法、及びこれらを実現するためのプログラムについて、
図5及び
図6を参照しながら説明する。
【0054】
[装置構成]
最初に、実施の形態2における分類装置の構成について
図5を用いて説明する。
図5は、実施の形態2における分類装置の構成を示すブロック図である。
【0055】
図5に示す、実施の形態2における分類装置101は、スコア関数を用いてテストデータを2クラスに分類するための装置である。
図5に示すように、実施の形態2では、分類装置101は、実施の形態1と同様に、端末装置200に、データ通信可能に接続されている。端末装置200の具体例としては、汎用のコンピュータ、スマートフォン、タブレット型端末装置などが挙げられる。但し、実施の形態2では、端末装置200は、分類装置101に対して、2クラス分類の対象となるテストデータを入力する。
【0056】
また、
図5に示すように、実施の形態2における分類装置101は、スコア算出部40と、分類部50と、テストデータ格納部60と、スコア関数格納部70とを備えている。このうち、テストデータ格納部60は、入力されたテストデータを格納する。
【0057】
スコア関数格納部70は、2クラス分類に用いるスコア関数を格納している。スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、指標が最大化するように、訓練データを用いた機械学習を行うことによって、パラメータが更新された関数である。具体的には、実施の形態2で用いられるスコア関数は、実施の形態1によってパラメータが更新されたスコア関数である。
【0058】
スコア算出部40は、スコア関数格納部70からスコア関数を取得し、取得したスコア関数に、テストデータ格納部60から取り出したテストデータを入力して、スコアを算出する。なお、実施の形態2におけるスコア算出部40は、実施の形態1において
図2に示したスコア算出部20と同様の機能を有している。
【0059】
分類部50は、スコア算出部40によって算出されたスコアの値に基づいて、テストデータを2クラス、例えば、正例又は負例に分類する。また、分類部50は、分類結果を、端末装置200に送信することができる。
【0060】
[装置動作]
次に、実施の形態2における分類装置101の動作について
図6を用いて説明する。
図6は、実施の形態2における分類装置の動作を示すフロー図である。以下の説明においては、適宜
図5を参照する。また、実施の形態2では、分類装置101を動作させることによって、分類方法が実施される。よって、実施の形態2における分類方法の説明は、以下の分類装置101の動作説明に代える。
【0061】
図6に示すように、最初に、スコア算出部40は、テストデータ格納部60からテストデータを取得する(ステップB1)。
【0062】
次に、スコア算出部40は、スコア関数格納部70からスコア関数を取得し、取得したスコア関数に、ステップB1で取得したテストデータを入力して、スコアを算出する(ステップB2)。
【0063】
次に、分類部50は、ステップB2によって算出されたスコアの値に基づいて、テストデータを2クラス、例えば、正例又は負例に分類する(ステップB3)。また、分類部50は、分類結果を、端末装置200に送信する。
【0064】
以上のように、実施の形態2によれば、実施の形態1でパラメータが更新されたスコア関数を用いて、テストデータを2クラスに分類することができる。また、このため、高い分類精度が得られることになる。
【0065】
[プログラム]
実施の形態2におけるプログラムは、コンピュータに、
図6に示すステップB1~B3を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2における分類装置101と分類方法とを実現することができる。この場合、コンピュータのプロセッサは、スコア算出部40及び分類部50として機能し、処理を行なう。
【0066】
また、本実施の形態2では、テストデータ格納部60及びスコア関数格納部70は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現されていても良いし、別のコンピュータの記憶装置によって実現されていても良い。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0067】
実施の形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、スコア算出部40及び分類部50のいずれかとして機能しても良い。
【0068】
(物理構成)
ここで、実施の形態1又は2におけるプログラムを実行することによって、各装置を実現するコンピュータについて
図7を用いて説明する。
図7は、実施の形態1における学習装置及び実施の形態2における分類装置を実現するコンピュータの一例を示すブロック図である。
【0069】
図7に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0070】
また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。この態様では、GPU又はFPGAが、実施の形態1におけるプログラムを実行することができる。
【0071】
CPU111は、記憶装置113に格納された、コード群で構成された実施の形態1におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。
【0072】
また、実施の形態1におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態1におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0073】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0074】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0075】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0076】
なお、実施の形態1における学習装置100及び実施の形態2における分類装置101は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、実施の形態1における学習装置100及び実施の形態2における分類装置101は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0077】
上述した実施の形態1の一部又は全部は、以下に記載する(付記1)~(付記9)によって表現することができるが、以下の記載に限定されるものではない。
【0078】
(付記1)
2クラス分類のためのスコア関数を機械学習するための装置であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化部を備え、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする学習装置。
【0079】
(付記2)
付記1に記載の学習装置であって、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコアを算出する、スコア算出部を備え、
前記スコア関数最適化部は、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数のパラメータを更新する、
ことを特徴とする学習装置。
【0080】
(付記3)
2クラス分類のためのスコア関数を機械学習するための方法であって、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化ステップを有し、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする学習済みモデル生成方法。
【0081】
(付記4)
付記3に記載の学習済みモデル生成方法であって、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコアを算出する、スコア算出ステップを更に有し、
前記スコア関数最適化ステップにおいて、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数のパラメータを更新する、
ことを特徴とする学習済みモデル生成方法。
【0082】
(付記5)
コンピュータによって、2クラス分類のためのスコア関数を機械学習するためのプログラムを記録したプログラムであって、
前記コンピュータに、
AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いて、前記スコア関数のパラメータを機械学習によって更新する、スコア関数最適化ステップを実行させ、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とするプログラム。
【0083】
(付記6)
付記5に記載のプログラムであって、
前記コンピュータに、
前記訓練データを前記スコア関数に入力して、前記訓練データ毎にスコアを算出する、スコア算出ステップを更に実行させ、
前記スコア関数最適化ステップにおいて、
予め設定した偽陽性率に対して偽陽性となる負例の訓練データについては、正例の訓練データとのペアに対する重みを1に、そうでない負例の訓練データについては、正例の訓練データとのペアに対する重みをλに設定し、
前記重みλの値を減少させながら、
前記スコア関数のパラメータを更新する、
ことを特徴とするプログラム。
【0084】
(付記7)
テストデータをスコア関数に入力して、スコアを算出する、スコア算出部と、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類部と、を備え、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする分類装置。
【0085】
(付記8)
テストデータをスコア関数に入力して、スコアを算出する、スコア算出ステップと、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類ステップと、を有し、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とする分類方法。
【0086】
(付記9)
コンピュータに、
テストデータをスコア関数に入力して、スコアを算出する、スコア算出ステップと、
算出された前記スコアの値に基づいて、前記テストデータを2クラスに分類する、分類ステップと、
を実行させ、
前記スコア関数は、AUCに正の実数である重みλを乗算した値とpAUCに重み(1-λ)を乗算した値との合計値を指標とし、前記重みλの値を減少させながら、前記指標が最大化するように、訓練データを用いた、機械学習を行うことによって、パラメータが更新された関数であり、
前記AUCは、前記スコア関数における正例と負例とを決める閾値を変化させ、縦軸を真陽性率、横軸を偽陽性率として得られる曲線の横軸側の領域の面積を示し、
前記pAUCは、偽陽性率の値を特定の固定値としたときのAUCの値であり、前記曲線、前記横軸、前記固定値を通る縦軸とで囲まれた領域の面積を示している、
ことを特徴とするプログラム。
【0087】
以上、実施の形態1を参照して本願発明を説明したが、本願発明は上記実施の形態1に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0088】
以上のように本発明によれば、正例クラスのデータが負例クラスのデータに比べて少ない場合の2クラス分類において、過学習の抑制と分類精度の向上とを図ることができる。本発明は、2クラス分類が実行される各種システムに有用である。
【符号の説明】
【0089】
10 スコア関数最適化部
11 拡張AUC計算部
12 重み可変部
20 スコア算出部
30 訓練データ格納部
40 スコア算出部
50 分類部
60 テストデータ格納部
70 スコア関数格納部
100 学習装置
101 分類装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
200 端末装置