(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-21
(45)【発行日】2023-03-02
(54)【発明の名称】機械学習プログラム、機械学習方法および機械学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20230222BHJP
【FI】
G06N20/00
(21)【出願番号】P 2019137027
(22)【出願日】2019-07-25
【審査請求日】2022-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】小林 健一
【審査官】松平 英
(56)【参考文献】
【文献】特表2015-525413(JP,A)
【文献】特開平9-54764(JP,A)
【文献】特開2019-113915(JP,A)
【文献】特開2017-49674(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
G06N 3/00-3/12
7/08-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
データ集合から抽出された複数の第1の訓練データを用いて、機械学習により前記複数の第1の訓練データに対応する複数の第1のモデルを学習し、
前記データ集合から抽出された第1のテストデータに含まれる2以上のレコードそれぞれを前記複数の第1のモデルに入力することで、前記複数の第1のモデルと前記2以上のレコードとの組み合わせ毎に算出された予測誤差を示す誤差情報を生成し、
前記誤差情報に基づいて、テストデータのサイズとテストデータを用いて算出されるモデルの精度の測定値が有する分散との間の対応関係を判定し、
前記データ集合から抽出された第2の訓練データを用いて学習された第2のモデルの精度を、前記データ集合から抽出される第2のテストデータを用いて測定する場合に、前記対応関係に基づいて、前記第2のモデルに対して算出される精度の測定値の分散が所定条件を満たすように前記第2のテストデータのサイズを決定する、
処理を実行させる機械学習プログラム。
【請求項2】
前記対応関係は、テストデータのサイズの増加に応じて分散が下限に漸近するように減少する非線形関係であり、前記第2のテストデータのサイズは、サイズの所定増加量に対する分散の減少度を示す効率性指標に基づいて決定される、
請求項1記載の機械学習プログラム。
【請求項3】
前記所定条件は、前記効率性指標の値が閾値以上であることであり、前記第2のテストデータのサイズは、前記所定条件を満たす範囲で最大のサイズに決定される、
請求項2記載の機械学習プログラム。
【請求項4】
前記対応関係の判定では、前記2以上のレコードそれぞれについて前記複数の第1のモデルに対して算出された予測誤差を平均化した予測バイアスを算出し、前記2以上のレコードの前記予測バイアスを合成して、前記対応関係を表すパラメータの値を決定する、
請求項1記載の機械学習プログラム。
【請求項5】
前記対応関係の判定では、訓練データのサイズに依存しない第1のパラメータと訓練データのサイズに依存する第2のパラメータとテストデータのサイズを示す第3のパラメータとを用いて分散を算出する分散関数に対して、前記第1のパラメータの値を推定し、
前記第2のテストデータのサイズの決定では、前記第2のモデルの学習結果に基づいて前記第2のパラメータの値を推定し、前記第3のパラメータの値を変動させることで、分散が前記所定条件を満たすテストデータのサイズを探索する、
請求項1記載の機械学習プログラム。
【請求項6】
前記第2のテストデータのサイズの決定では、前記第1のテストデータを前記第2のモデルに入力して算出される予測誤差に基づいて前記第2のパラメータの値を仮選択し、前記仮選択した第2のパラメータの値を用いてテストデータのサイズを仮選択し、前記データ集合から抽出された前記仮選択したサイズのテストデータを前記第2のモデルに入力して算出される予測誤差に基づいて前記第2のパラメータの値を決定する、
請求項5記載の機械学習プログラム。
【請求項7】
コンピュータが、
データ集合から抽出された複数の第1の訓練データを用いて、機械学習により前記複数の第1の訓練データに対応する複数の第1のモデルを学習し、
前記データ集合から抽出された第1のテストデータに含まれる2以上のレコードそれぞれを前記複数の第1のモデルに入力することで、前記複数の第1のモデルと前記2以上のレコードとの組み合わせ毎に算出された予測誤差を示す誤差情報を生成し、
前記誤差情報に基づいて、テストデータのサイズとテストデータを用いて算出されるモデルの精度の測定値が有する分散との間の対応関係を判定し、
前記データ集合から抽出された第2の訓練データを用いて学習された第2のモデルの精度を、前記データ集合から抽出される第2のテストデータを用いて測定する場合に、前記対応関係に基づいて、前記第2のモデルに対して算出される精度の測定値の分散が所定条件を満たすように前記第2のテストデータのサイズを決定する、
機械学習方法。
【請求項8】
データ集合を記憶する記憶部と、
前記データ集合から抽出された複数の第1の訓練データを用いて、機械学習により前記複数の第1の訓練データに対応する複数の第1のモデルを学習し、前記データ集合から抽出された第1のテストデータに含まれる2以上のレコードそれぞれを前記複数の第1のモデルに入力することで、前記複数の第1のモデルと前記2以上のレコードとの組み合わせ毎に算出された予測誤差を示す誤差情報を生成し、前記誤差情報に基づいて、テストデータのサイズとテストデータを用いて算出されるモデルの精度の測定値が有する分散との間の対応関係を判定し、前記データ集合から抽出された第2の訓練データを用いて学習された第2のモデルの精度を、前記データ集合から抽出される第2のテストデータを用いて測定する場合に、前記対応関係に基づいて、前記第2のモデルに対して算出される精度の測定値の分散が所定条件を満たすように前記第2のテストデータのサイズを決定する処理部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【0002】
コンピュータを利用したデータ分析の1つとして、機械学習が行われることがある。機械学習では、幾つかの既知の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因(説明変数や独立変数と言うことがある)と結果(目的変数や従属変数と言うことがある)との間の関係を一般化したモデルを学習する。学習されたモデルを用いることで、未知の事例についての結果を予測することができる。
【0003】
機械学習では、学習されるモデルの正確さ、すなわち、未知の事例の結果を正確に予測する能力(モデルの精度、予測性能、性能などと言うことがある)が問題となる。モデルの精度は、分析対象とする事象の性質、モデルの学習に使用する訓練データのサイズ、機械学習アルゴリズムなど様々な側面に依存する。精度が不十分なモデルが生成された場合、訓練データのサイズを増加させる、機械学習アルゴリズムを変更するなどの調整を行って、機械学習を再実行することもある。そこで、データ母集合から訓練データとは異なる既知の事例を示すテストデータを抽出し、訓練データを用いて学習されたモデルに対してテストデータを入力することで、モデルの精度を評価することが多い。
【0004】
なお、同一のデータ母集合から、異なる分割方法によって訓練データとテストデータのペアを複数通り生成し、ペア毎に訓練データを用いたモデルの学習とテストデータを用いた精度の評価を行い、精度の平均を算出する汎化能力評価方法が提案されている。また、データベースから訓練データを抽出して回帰分析を行い、回帰モデルの精度を評価し、精度が不十分である場合には訓練データを追加して回帰分析を再度行う結果予測装置が提案されている。また、教師ラベルが付されたサンプルのデータ母集合から、訓練データと類似するテストデータを抽出し、訓練データを用いて学習された分類モデルの精度を、訓練データと類似するテストデータを用いて評価する情報処理システムが提案されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平9-54764号公報
【文献】特開2014-13560号公報
【文献】国際公開第2017/183548号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、モデルの精度を評価するにあたり、テストデータのサイズをどの様に決定すればよいかが問題となる。テストデータが少な過ぎると、テストデータとして選択されるサンプルの偶然性の影響を強く受けて、算出される精度が不正確になり信頼性が低下する。一方、テストデータが多過ぎると、精度の評価に長時間かかることになり非効率である。この点、従来の機械学習では、訓練データのサイズの2分の1から4分の1程度をテストデータのサイズとするなど、経験則に基づいてサイズを決定していた。そのため、テストデータを用いたモデルの精度の評価について改善の余地があった。
【0007】
1つの側面では、本発明は、機械学習のテストデータのサイズを適切に決定できる機械学習プログラム、機械学習方法および機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。データ集合から抽出された複数の第1の訓練データを用いて、機械学習により複数の第1の訓練データに対応する複数の第1のモデルを学習する。データ集合から抽出された第1のテストデータに含まれる2以上のレコードそれぞれを複数の第1のモデルに入力することで、複数の第1のモデルと2以上のレコードとの組み合わせ毎に算出された予測誤差を示す誤差情報を生成する。誤差情報に基づいて、テストデータのサイズとテストデータを用いて算出されるモデルの精度の測定値が有する分散との間の対応関係を判定する。データ集合から抽出された第2の訓練データを用いて学習された第2のモデルの精度を、データ集合から抽出される第2のテストデータを用いて測定する場合に、対応関係に基づいて、第2のモデルに対して算出される精度の測定値の分散が所定条件を満たすように第2のテストデータのサイズを決定する。
【0009】
また、1つの態様では、コンピュータが実行する機械学習方法が提供される。また、1つの態様では、記憶部と処理部とを有する機械学習装置が提供される。
【発明の効果】
【0010】
1つの側面では、機械学習のテストデータのサイズが適切に決定される。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の機械学習装置の例を説明する図である。
【
図2】第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【
図3】訓練データサイズと予測性能の関係例を示すグラフである。
【
図4】予測性能の測定値の分散例を示すグラフである。
【
図5】予測性能の期待ロスおよび期待バイアスの例を示すグラフである。
【
図6】機械学習装置の機能例を示すブロック図である。
【
図7】誤差プロファイルテーブルの例を示す図である。
【
図9】機械学習の手順例を示すフローチャートである。
【
図10】機械学習の手順例を示すフローチャート(続き)である。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の機械学習装置の例を説明する図である。
第1の実施の形態の機械学習装置10は、訓練データを用いて機械学習によりモデルを生成し、テストデータを用いてモデルの精度を測定する。機械学習装置10を、情報処理装置やコンピュータと言うこともできる。機械学習装置10は、ユーザが操作するクライアント装置でもよいし、他の装置からアクセスされるサーバ装置でもよい。
【0014】
機械学習装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【0015】
記憶部11は、データ集合13を記憶する。データ集合13は、既知の事例を示す複数のレコードを含む。レコードを、サンプルや行やデータブロックと言うこともできる。各レコードは、1以上の説明変数の値と1つの目的変数の値とを含む。説明変数を、カラムと言うこともできる。目的変数の値は、ユーザから与えられる正解であり、教師ラベルと言うこともできる。データ集合13は、100万レコード以上の多数のレコードを含んでもよく、ビッグデータと言われる大規模データであってもよい。
【0016】
処理部12は、データ集合13から、訓練データ14a,14b,14cを含む複数セットの訓練データ(第1の訓練データ)を抽出する。ここで抽出する訓練データのセット数は少数でよく、各訓練データのサイズは小さくてよい。例えば、訓練データのセット数を10セット程度とし、各訓練データのサイズを1万レコード程度とする。各訓練データのサイズは、後述する訓練データ18のサイズの100分の1程度でよい。処理部12は、同一のレコードが異なる訓練データに含まれないようにデータ集合13からレコードを抽出してもよいし、同一のレコードが異なる訓練データに含まれることを許容してもよい。処理部12は、データ集合13からランダムにレコードを抽出してもよい。
【0017】
また、処理部12は、データ集合13からテストデータ15(第1のテストデータ)を抽出する。テストデータ15のサイズは、訓練データ14a,14b,14cのサイズより小さくてよい。テストデータ15のサイズは、訓練データ14a,14b,14cのサイズの2分の1から4分の1程度でもよく、例えば、5000レコード程度とする。処理部12は、テストデータ15に属するレコードを、訓練データ14a,14b,14cと重複しないようにデータ集合13から抽出することが好ましい。
【0018】
処理部12は、訓練データ14a,14b,14cを含む複数セットの訓練データを用いて、機械学習によりそれら複数セットの訓練データに対応する複数のモデルを学習する。訓練データ14aから1つのモデルが学習され、それと独立に訓練データ14bから1つのモデルが学習され、それと独立に訓練データ14cから1つのモデルが学習される。
【0019】
複数のモデルの学習には、同一の機械学習アルゴリズムが使用される。使用する機械学習アルゴリズムは、ユーザにより指定されてもよい。機械学習アルゴリズムとして、回帰分析、サポートベクタマシン、ランダムフォレストなどが挙げられる。モデルは、説明変数と目的変数との間の関係を示し、通常、1以上の説明変数と1以上の係数と1つの目的変数とを含む。係数は、機械学習を通じて訓練データに基づいて決定される。
【0020】
次に、処理部12は、テストデータ15および学習した複数のモデルを用いて、誤差情報16を生成する。誤差情報16を、誤差プロファイルと言うこともできる。誤差情報16は、複数セットの訓練データに対応する複数のモデルとテストデータ15に含まれる2以上のレコードとの組み合わせ毎に算出された予測誤差を示す。
【0021】
このとき、処理部12は、ある訓練データから学習された1つのモデルに、テストデータ15に含まれる1つのレコードを入力することで、当該1つのモデルと当該1つのレコードの組に対応する1つの予測誤差を算出する。例えば、処理部12は、テストデータ15のレコードに含まれる説明変数の値をモデルの説明変数に代入する。処理部12は、モデルによって算出される目的変数の値である予測値と、テストデータ15のレコードに含まれる目的変数の値である正解値とを比較し、両者の差を予測誤差として算出する。
【0022】
次に、処理部12は、誤差情報16に基づいて対応関係17を判定する。対応関係17は、テストデータのサイズと、テストデータを用いて算出されるモデルの精度の測定値が有するばらつきの程度である分散との間の対応関係を示す。モデルの精度は、未知の事例の結果を正確に予測する能力であり、予測性能や性能と言うこともできる。モデルの精度の指標として、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(MSE)、二乗平均平方根誤差(RMSE)などが挙げられる。
【0023】
対応関係17は、例えば、テストデータのサイズの増加に応じて分散が下限に漸近するように減少する非線形関係である。一般に、データ集合13からのテストデータの抽出には、レコードの選択の偶然性がある。このため、テストデータのサイズが小さいと、レコードの選択の偶然性の影響を強く受けて、精度の測定値が真の値からずれるリスクが高くなる。テストデータのサイズを大きくすることで、分散を小さくすることができる。ただし、データ集合13からの訓練データの抽出にも、レコードの選択の偶然性がある。テストデータのサイズの増加だけでは、精度の測定値の分散は0にならない。
【0024】
対応関係17は、機械学習に使用するデータ集合13や機械学習アルゴリズムに依存し得る。そこで、処理部12は、誤差情報16に基づいて対応関係17を判定する。例えば、処理部12は、誤差情報16が示す予測誤差のうち、テストデータ15のレコードが同一でモデルが異なる予測誤差を平均化することで、テストデータ15のレコード毎に予測バイアスを算出する。処理部12は、テストデータ15の2以上のレコードの予測バイアスを合成して、対応関係17を規定するパラメータの値を決定する。
【0025】
対応関係17は、訓練データのサイズに依存しない第1のパラメータと、訓練データのサイズに依存する第2のパラメータと、テストデータのサイズを示す第3のパラメータとから分散を算出する分散関数であってもよい。この場合、処理部12は、誤差情報16を用いて第1のパラメータの値を推定してもよい。これにより、分散関数は、変数として第2のパラメータと第3のパラメータをもつ関数になる。
【0026】
次に、処理部12は、データ集合13から訓練データ18(第2の訓練データ)を抽出する。訓練データ18のサイズは、訓練データ14a,14b,14cより十分に大きくてもよく、ユーザから指定されてもよい。例えば、訓練データ18のサイズを100万レコード程度とする。処理部12は、訓練データ18を用いてモデルを学習する。
【0027】
モデルが学習されると、処理部12は、データ集合13からテストデータ19(第2のテストデータ)を抽出する。処理部12は、テストデータ19に属するレコードを、訓練データ18と重複しないようにデータ集合13から抽出することが好ましい。処理部12は、訓練データ18から学習されたモデルの精度を、テストデータ19を用いて測定する。例えば、処理部12は、テストデータ19のレコードに含まれる説明変数の値をモデルの説明変数に代入し、モデルによって算出される目的変数の予測値とテストデータ19のレコードに含まれる目的変数の正解値とを比較して、精度を測定する。
【0028】
このとき、処理部12は、対応関係17に基づいて、モデルの精度の測定値の分散が所定条件を満たすように、テストデータ19のサイズを決定する。例えば、処理部12は、対応関係17において、サイズの所定増加量に対する分散の減少度を示す効率性指標を算出し、効率性指標に基づいてテストデータ19のサイズを決定する。対応関係17が、テストデータのサイズの増加に応じて分散が下限に漸近する非線形関係である場合、効率性指標の値は、テストデータのサイズの増加に応じて減少する。テストデータ19のサイズは、効率性指標の値が閾値以上である範囲で最大のサイズとしてもよい。
【0029】
また、例えば、処理部12は、訓練データ18を用いたモデルの学習結果に基づいて、分散関数に含まれる訓練データのサイズに依存する第2のパラメータの値を決定する。そして、処理部12は、決定された上記の第1のパラメータの値および第2のパラメータの値のもとで、テストデータのサイズを示す第3のパラメータの値を変動させることで、分散が所定条件を満たすテストデータのサイズを探索する。
【0030】
なお、誤差情報16の生成および対応関係17の判定は、訓練データ18を用いた機械学習の前に行ってもよいし後に行ってもよい。処理部12は、訓練データ18を用いて学習されたモデルと、テストデータ19を用いて測定された精度を出力する。処理部12は、学習されたモデルと測定された精度を、記憶装置に保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。
【0031】
第1の実施の形態の機械学習装置10によれば、小さいサイズの訓練データ14a,14b,14cを用いて複数のモデルが学習される。小さいサイズのテストデータ15を用いて、それら複数のモデルとテストデータ15の2以上のレコードとの組み合わせ毎に算出された予測誤差を示す誤差情報16が生成される。誤差情報16に基づいて、テストデータのサイズとモデルの精度の測定値が有する分散との間の対応関係17が判定される。そして、訓練データ18を用いて学習されたモデルの精度を、テストデータ19を用いて測定するにあたり、対応関係17に基づいて、精度の測定値の分散が所定条件を満たすようにテストデータ19のサイズが決定される。
【0032】
これにより、テストデータ19のサイズがモデル精度の測定値の分散に与える影響を考慮して、テストデータ19のサイズを適切に決定することができる。よって、テストデータ19のサイズが小さ過ぎることによる測定値の信頼性の低下を抑制できる。また、テストデータ19のサイズが大き過ぎることによる処理時間の増大を抑制できる。このため、機械学習により学習されたモデルの精度を、高信頼かつ短時間で測定することができ、モデルの精度の測定を効率化できる。特に、テストデータのサイズを訓練データのサイズの2分の1から4分の1程度とする経験則と比べて、テストデータのサイズを削減できる。
【0033】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【0034】
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、機械学習装置100の内部でバスに接続されている。機械学習装置100は、第1の実施の形態の機械学習装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0035】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0036】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0037】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0038】
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
【0039】
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。機械学習装置100に複数種類の入力デバイスが接続されてもよい。
【0040】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0041】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0042】
次に、機械学習における訓練データサイズと予測性能について説明する。
第2の実施の形態の機械学習では、既知の事例を示す複数のレコードを含むデータ集合を予め収集しておく。レコードを、サンプル、インスタンス、行、データブロック、単位データなどと言うこともできる。機械学習装置100または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク114経由でデータ集合を収集してもよい。収集されるデータ集合は、「ビッグデータ」と言われるサイズの大きなものであってもよい。各レコードは、通常、1以上の説明変数の値と1つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
【0043】
機械学習装置100は、収集されたデータ集合の中から一部のレコードを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常、1以上の説明変数と1以上の係数と1つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
【0044】
学習されたモデルを用いることで、未知の事例の説明変数の値(要因)から、未知の事例の目的変数の値(結果)を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、0以上1以下の確率などの連続量であってもよいし、YES/NOの2値などの離散値であってもよい。
【0045】
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置100は、収集されたデータ集合の中から訓練データ以外のレコードをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。機械学習装置100は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値(予測値)とテストデータに含まれる目的変数の値(実績値)とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【0046】
予測性能の指標としては、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(MSE)、二乗平均平方根誤差(RMSE)などが挙げられる。例えば、結果がYES/NOの2値で表されるとする。また、n件のテストデータのレコードのうち、予測値=YESかつ実績値=YESの件数をTp、予測値=YESかつ実績値=NOの件数をFp、予測値=NOかつ実績値=YESの件数をFn、予測値=NOかつ実績値=NOの件数をTnとする。正答率は予測が当たった割合であり、(Tp+Tn)/nと算出される。適合率は「YES」の予測を間違えない確率であり、Tp/(Tp+Fp)と算出される。平均二乗誤差MSEは、各事例の実績値をYと表し予測値をyと表すと、sum(Y-y)2/nと算出される。二乗平均平方根誤差RMSEは、(sum(Y-y)2/n)1/2と算出される。MSE=RMSE2である。
【0047】
ここで、訓練データからモデルを学習する手順(機械学習アルゴリズム)には様々なものが存在する。機械学習装置100が使用する機械学習アルゴリズムは、ユーザから指定されてもよいし、機械学習装置100が所定の評価方法に従って選択するようにしてもよい。機械学習装置100が使用できる機械学習アルゴリズムの数は、数十~数百程度あってもよい。機械学習アルゴリズムの一例として、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなどを挙げることができる。
【0048】
ロジスティック回帰分析は、目的変数yの値と説明変数x1,x2,…,xdの値をS字曲線にフィッティングする回帰分析である。目的変数yおよび説明変数x1,x2,…,xdは、log(y/(1-y))=a1x1+a2x2+…+adxd+bの関係を満たすと仮定される。a1,a2,…,ad,bは係数であり、回帰分析によって決定される。
【0049】
サポートベクタマシンは、空間に配置されたレコードの集合を、2つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離(マージン)が最大になるように算出される。
【0050】
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、データ集合からレコードをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングしたレコードを分類する。説明変数の選択とレコードの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。レコードのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、レコードを分類するための最終的なモデルを生成する。
【0051】
あるデータ集合に1つの機械学習アルゴリズムを適用する場合、訓練データとしてサンプリングするレコードの数(訓練データサイズ)が大きいほど予測性能は高くなる。
図3は、訓練データサイズと予測性能の関係例を示すグラフである。
【0052】
曲線31は、モデルの予測性能と訓練データサイズとの間の関係を示す。訓練データサイズs1,s2,s3,s4,s5の間の大小関係は、s1<s2<s3<s4<s5である。例えば、s2はs1の2倍または4倍であり、s3はs2の2倍または4倍であり、s4はs3の2倍または4倍であり、s5はs4の2倍または4倍である。
【0053】
曲線31が示すように、訓練データサイズがs2の場合の予測性能はs1の場合よりも高い傾向にある。同様に、訓練データサイズがs3の場合の予測性能はs2の場合よりも高い傾向にある。訓練データサイズがs4の場合の予測性能はs3の場合よりも高い傾向にある。訓練データサイズがs5の場合の予測性能はs4の場合よりも高い傾向にある。このように、訓練データサイズが大きくなるほど予測性能も高くなる傾向にある。ただし、予測性能が低いうちは、訓練データサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、訓練データサイズの増加量に対する予測性能の上昇量の比は逓減する。すなわち、曲線31は、訓練データサイズの増加に応じて、ある上限に漸近するように予測性能が増加することを示している。
【0054】
このような訓練データサイズと予測性能との間の関係は、使用する機械学習アルゴリズムによって異なり、収集したデータ集合の性質(データ集合の種類)によっても異なる。このため、曲線31に示すような予測性能の上限や各訓練データサイズにおける予測性能を、機械学習を開始する前に推定することは容易でない。
【0055】
次に、予測性能の測定値の信頼性について説明する。
図4は、予測性能の測定値の分散例を示すグラフである。
ある訓練データサイズのもとで学習されたモデルの予測性能の測定値は、機械学習アルゴリズムとデータ集合の性質とから決まる期待値から乖離するリスクがある。すなわち、同じデータ集合を使用しても、訓練データおよびテストデータとして選択するレコードの偶然性によって、予測性能の測定値にばらつきが生じる。測定値の「ばらつき」は、分散や標準偏差などと解釈することもできる。分散は、訓練データサイズが小さいほど大きく、訓練データサイズが大きいほど小さくなる傾向にある。また、分散は、テストデータサイズが小さいほど大きく、テストデータサイズが大きいほど小さくなる傾向にある。
【0056】
グラフ32は、訓練データサイズと予測性能との間の関係を示す。ここでは、同じ機械学習アルゴリズムおよび同じデータ集合を用いて、訓練データサイズ1つ当たり50回ずつモデルの生成および予測性能の測定を行っている。また、テストデータサイズは、訓練データサイズの2分の1または4分の1とするなど、訓練データサイズに比例するようにして訓練データサイズに従属させている。グラフ32は、1つの訓練データサイズにつき50個の予測性能の測定値をプロットしたものである。なお、グラフ32では、予測性能の指標として、値が大きいほど予測性能が高いことを示す正答率を用いている。
【0057】
グラフ32では、訓練データサイズ=100の場合の予測性能の測定値は、約0.58~0.68であり広範囲に広がっている。訓練データサイズ=500の場合の予測性能の測定値は、約0.69~0.75であり、訓練データサイズ=100の場合よりも範囲が狭くなっている。以降、訓練データサイズが大きくなるに従って測定値の範囲は狭くなる。訓練データサイズが十分に大きくなると、測定値は約0.76に収束している。
【0058】
以下では、予測性能の測定値の分散について更に検討する。
まず、バイアス・バリアンス分解について説明する。バイアス・バリアンス分解は、ある機械学習アルゴリズムの良否を評価するために用いられることがある。バイアス・バリアンス分解では、ロス(損失)とバイアスとバリアンスという3つの指標が用いられる。ロス=バイアスの二乗+バリアンスという関係が成立する。
【0059】
ロスは、機械学習によって生成されるモデルが予測を外す度合いを示す指標である。ロスの種類には0-1ロスや二乗ロスなどがある。0-1ロスは、予測に成功すれば0を付与し予測に失敗すれば1を付与することで算出されるロスであり、その期待値は予測が失敗する確率を示す。予測が外れることが少ないほど0-1ロスの期待値は小さく、予測が外れることが多いほど0-1ロスの期待値は大きい。二乗ロスは、予測値と真の値との差(予測誤差)の二乗である。予測誤差が小さいほど二乗ロスは小さく、予測誤差が大きいほど二乗ロスは大きい。期待ロス(ロスの期待値)と予測性能とは相互に変換できる。
【0060】
予測性能が正答率(Accuracy)でありロスが0-1ロスである場合、期待ロス=1-予測性能である。予測性能が平均二乗誤差(MSE)でありロスが二乗ロスである場合、期待ロス=MSEである。予測性能が二乗平均平方根誤差(RMSE)でありロスが二乗ロスである場合、期待ロス=RMSEの二乗である。
【0061】
バイアスは、機械学習によって生成されるモデルの予測値が真の値に対して偏る程度を示す指標である。バイアスが小さいほど精度の高いモデルであると言うことができる。バリアンスは、機械学習によって生成されるモデルの予測値がばらつく程度を示す指標である。バリアンスが小さいほど精度の高いモデルであると言うことができる。ただし、バイアスとバリアンスの間にはトレードオフの関係があることが多い。
【0062】
次数の小さい多項式など複雑性の低いモデル(表現力の低いモデルと言うこともできる)では、モデルの係数をどの様に調整しても、複数のレコードの全てについて真の値に近い予測値を出力するようにすることは難しい。すなわち、複雑性の低いモデルを用いると複雑な事象を表現できない。よって、複雑性の低いモデルのバイアスは大きくなる傾向にある。この点、次数の大きい多項式など複雑性の高いモデル(表現力の高いモデルと言うこともできる)では、モデルの係数を適切に調整することで、複数のレコードの全てについて真の値に近い予測値を出力することができる余地がある。よって、複雑性の高いモデルのバイアスは小さくなる傾向にある。
【0063】
一方で、複雑性の高いモデルでは、訓練データとして使用するレコードの特徴に過度に依存したモデルが生成されるという過学習が生じるリスクがある。過学習によって生成されたモデルは、他のレコードについて適切な予測値を出力できないことが多い。例えば、d次の多項式を用いると、d+1個のレコードについて真の値と完全に一致する予測値を出力するモデル(残差が0のモデル)を生成できる。
【0064】
しかし、あるレコードについて残差が0になるモデルは、通常は過度に複雑なモデルであり、他のレコードについて予測誤差が著しく大きい予測値を出力してしまうリスクが高くなる。よって、複雑性の高いモデルのバリアンスは大きくなる傾向にある。この点、複雑性の低いモデルでは、予測誤差が著しく大きい予測値を出力してしまうリスクは低く、バリアンスは小さくなる傾向にある。このように、ロスの成分としてのバイアスとバリアンスは、モデルを生成する機械学習アルゴリズムの特性に依存している。
【0065】
次に、ロスとバイアスとバリアンスの形式的定義を説明する。ここでは、二乗ロスをバイアスとバリアンスに分解する例について説明する。
同一のデータ集合からm個の訓練データDk(k=1,2,…,m)が抽出され、m個のモデルが生成されたとする。また、上記のデータ集合からi個のレコードを含むテストデータTが抽出されたとする。i番目のレコード(テストケースと言うこともできる)は、説明変数の値Xiと目的変数の真の値Yiとを含む(i=1,2,…,n)。k番目のモデルからは説明変数の値Xiに対して目的変数の予測値yikが算出される。
【0066】
すると、k番目のモデルとi番目のレコードとの間で算出される予測誤差eikはeik=Yi-yikと定義され、そのロス(ここでは二乗ロス)はeik
2と定義される。i番目のレコードに対しては、バイアスBiとバリアンスViとロスLiが定義される。バイアスBiはBi=ED[eik]と定義される。ED[]はm個の訓練データの間の平均値(期待値)を表す。バリアンスViはVi=VD[eik]と定義される。VD[]はm個の訓練データの間の分散を表す。ロスLiはLi=ED[eik
2]と定義される。前述のロスとバイアスとバリアンスの間の関係からLi=Bi
2+Viが成立する。
【0067】
テストデータT全体に対しては、期待バイアスEB2と期待バリアンスEVと期待ロスELが定義される。期待バイアスEB2はEB2=Ex[Bi
2]と定義される。Ex[]はn個のレコードの間の平均値(期待値)を表す。期待バリアンスEVはEV=Ex[Vi]と定義される。期待ロスELはEL=Ex[Li]と定義される。前述のロスとバイアスとバリアンスの間の関係からEL=EB2+EVが成立する。
【0068】
バイアス・バリアンス分解の考え方を応用して、予測性能の測定値に生じる分散を推定することができる。測定値の分散は、次の数式によって近似される。VL=C×(EL+EB2)×(EL-EB2)。VLは訓練データサイズsにおける予測性能の測定値の分散を表す。Cは定数である。ELは訓練データサイズsにおける期待ロスを表す。EB2は期待バイアスを表す。以下、この数式の意味について説明を加える。
【0069】
図5は、予測性能の期待ロスおよび期待バイアスの例を示すグラフである。
曲線33は、訓練データサイズとロスの推定値との間の関係を示すロス曲線である。
図3では縦軸が予測性能であるのに対し、
図5では縦軸がロスに変換されている。前述のように予測性能とロスは、予測性能の指標とロスの指標に応じて相互に変換可能である。曲線33は、訓練データサイズの増加に応じてロスが単調に減少し一定の下限ロスに漸近する非線形曲線である。訓練データサイズが小さいうちはロスの減少量が大きく、訓練データサイズが大きくなるとロスの減少量が小さくなる。
【0070】
訓練データサイズs
pにおける曲線33上の点のロス(ロス=0から曲線33上の点までの距離)は、訓練データサイズs
pの期待ロスEL
pに相当する。曲線33によって特定される下限ロスは、
図3の曲線31によって特定される予測性能の上限に対応しており、0より大きい値である。例えば、予測性能の上限をcとおくと、予測性能が正答率である場合、下限ロスは1-cとなる。予測性能が平均二乗誤差(MSE)である場合、下限ロスはcとなる。予測性能が二乗平均平方根誤差(RMSE)である場合、下限ロスはc
2となる。下限ロスは、この機械学習アルゴリズムにとっての期待バイアスEB2に相当する。訓練データサイズが十分大きくなると、機械学習に用いる訓練データの特徴がデータ集合の特徴に一致し、期待バリアンスが0に近づくためである。
【0071】
期待ロスEL
pと期待バイアスEB2の差は、訓練データサイズs
pにおけるギャップと言うことができる。ギャップは、訓練データサイズを大きくすることでその機械学習アルゴリズムがロスを低減できる余地を表している。ギャップは、
図3の曲線31上の点と予測性能の上限との間の距離に対応し、訓練データサイズを大きくすることでその機械学習アルゴリズムが予測性能を改善できる余地を表しているとも言える。ギャップは、訓練データサイズs
pにおける期待バリアンスの影響を受ける。
【0072】
次に、予測性能の測定値の分散を示す数式の数学的根拠について説明する。
(a)問題の形式的な記述
同一のデータ集合からmセットの訓練データD1,D2,…,DmとテストデータTが抽出されたとする。ある機械学習アルゴリズムに訓練データDkを与えて学習されたモデルをfkとする(k=1,2,…,m)。テストデータTをレコード<Yi,Xi>の集合とする(i=1,2,…,n)。Xiは説明変数の値(入力値)であり、Yiは入力値Xiに対応する目的変数の既知の値(真値)である。入力値Xiに対してモデルfkが予測した値(予測値)をyik=fk(Xi)とする。入力値Xiに対するモデルfkによる予測の誤差はeik=Yi-yikと定義される。テストデータTに含まれるレコードの数、すなわち、テストデータTのサイズはnである。以下では主に、i,jはテストデータTのレコードを識別する添え字、kはモデルを識別する添え字として使用する。
【0073】
機械学習アルゴリズムが回帰を目的とする場合、予測値は連続量であり、ロスの指標として数式(1)の二乗ロスが用いられることが多い。この二乗ロスをテストデータTの全てのレコードについて平均したものが数式(2)のMSE(平均二乗誤差)である。
【0074】
【0075】
【0076】
ここで、E[・]は期待値を求める演算子であり、V[・]は分散を求める演算子である。E[・],V[・]に付加する添え字Xは、この演算子がテストデータTの複数のレコードの間の演算であることを示す。E[・],V[・]に付加する添え字Mは、この演算子が複数のモデルの間の演算であることを示す。すなわち、EX[・]はテストデータTの複数のレコードの間で平均化した期待値を示し、EM[・]は複数のモデルの間で平均化した期待値を示す。VX[・]はテストデータTの複数のレコードの間の分散を示し、VM[・]は複数のモデルの間の分散を示す。また、cov(・,・)は共分散を求める共分散関数であり、cor(・,・)は相関係数を求める相関係数関数である。cov(・,・),cor(・,・)にも添え字X,Mが付加される。
【0077】
機械学習アルゴリズムが二値分類を目的とする場合、予測値は{-1,1}のような二値の離散値であり、ロスの指標として数式(3)の0-1ロスが用いられることが多い。この0-1ロスをテストデータTの全てのレコードについて平均して1から引いたものが、数式(4)の正答率(Accuracy)である。
【0078】
【0079】
【0080】
MSEは値が小さいほど予測性能が高いことを示し、正答率は値が大きいほど予測性能が高いことを示す。ただし、両者ともテストデータT全体について平均化したロスがモデルの予測性能の良否を表している点で共通しており、モデルロスと言うことができる。モデルfkに対するモデルロスMLkは数式(5)の通りである。予測性能の分散は、数式(6)のように複数のモデルの間のモデルロスの分散として表される。
【0081】
【0082】
【0083】
(b)バイアス・バリアンス分解
モデルによる予測で生じるロスはバイアスとバリアンスに分解できる。バイアスはモデルの予測値の偏りを示す量である。バイアスが低いモデルほど正確なモデルであると言える。表現力の低いモデル(調整可能な係数が少ないような複雑性の低いモデルなど)はバイアスが高くなる傾向にある。バリアンスはモデルの予測値のばらつきを示す量である。バリアンスが低いほど正確なモデルであると言える。表現力の高いモデル(調整可能な係数が多いような複雑性の高いモデルなど)はバリアンスが高くなる傾向にある。表現力の高いモデルには、訓練データに過剰適合するという過学習のリスクがある。
【0084】
テストデータTの入力値Xiに対するロスLi、バイアスBiおよびバリアンスViは、数式(7)~(9)のように定義される。ロスLiは複数のモデルの間の二乗誤差の期待値であり、バイアスBiは複数のモデルの間の誤差の期待値であり、バリアンスViは複数のモデルの間の誤差の分散である。ロスLiとバイアスBiとバリアンスViとの間には、数式(10)の関係(バイアス・バリアンス分解)が成立する。
【0085】
【0086】
【0087】
【0088】
【0089】
様々な入力値Xiに対するロスLiの期待値を期待ロスEL、バイアスBiの二乗の期待値を期待バイアスEB2、バリアンスViの期待値を期待バリアンスEVとする。期待ロスEL、期待バイアスEB2、期待バリアンスEVは、数式(11)~(13)のように定義される。期待ロスELと期待バイアスEB2と期待バリアンスEVとの間には、数式(14)の関係(バイアス・バリアンス分解)が成立する。
【0090】
【0091】
【0092】
【0093】
【0094】
ここでの目的は、EL,EB2,EVとモデルロスの分散との間の関係を導出することである。なお、期待ロスELとモデルロスMLkの期待値とは、数式(15)に示すように等価である。一方、ロスLiの分散とモデルロスMLkの分散とは等価でない。以下では、予測性能の分散を推定する数式を次の流れで導出する。第1に、ロスの分散をバイアスとバリアンスで記述する。第2に、モデルロスの分散をインスタンス成分と相互作用成分に分解する。第3に、インスタンス成分を算出する。第4に、相互作用成分を算出する。第5に、モデルロスの分散をバイアスとバリアンスで記述する。
【0095】
【0096】
(c)ロスの分散をバイアスとバリアンスで記述
テストデータTの入力値Xiを固定して複数のモデルの誤差を並べた誤差ベクトルを考える。誤差eを確率変数とみなしてその分布が正規分布に従うと仮定すると、複数のモデルの間のロスの分散は数式(16)のように定義され、バイアスBiとバリアンスViの組またはロスLiとバイアスBiの組によって記述することができる。数式(16)の1行目から2行目への変形では、数式(17)に示す統計学上の性質(確率変数の4乗の期待値)が利用されている。数式(17)においてXは確率変数であり、Sは歪度であり、Kは尖度である。正規分布の場合はS=0かつK=3である。
【0097】
【0098】
【0099】
(d)モデルロスの分散をインスタンス成分と相互作用成分に分解
分散の基本的性質から、予測性能の分散(複数のモデルの間のモデルロスの分散)について数式(18)が成立する。これをn×n行列の成分の平均と考えると、i=jである対角成分は入力値Xiに対するロスの分散を表しており、その相関係数は1になる。一方、i≠jである非対角成分の相関係数は異なる入力値の間のロスの相関を表している。異なる入力値に対する誤差の発生状況は共通点が少ないため、その相関係数の絶対値は十分に小さくなることが多く、予測性能の高いモデルほどその相関係数は0に近づく。対角成分と非対角成分とは性質が異なるため、数式(19)のように両者を分離して考える。
【0100】
【0101】
【0102】
数式(19)では、モデルロスの分散を第1項のインスタンス成分と第2項の相互作用成分とに分解している。第1項はロスの分散の期待値を表しており、モデルロスの分散の大部分を占めることが多い。第2項は異なる入力値の間の共分散の期待値を表しており、モデルロスの分散に対する寄与は小さいことが多い。第1項はテストデータTのサイズnに反比例するため、テストデータTのレコードを増やすことでモデルロスの分散を低減できる。ただし、第2項が存在することから低減効果には限界がある。
(e)インスタンス成分を算出
数式(19)の第1項について検討する。上記の数式(16)より数式(20)が成立する。ここで、数式(20)の第1項と第2項を算出するために幾つかの仮定をおく。多くの機械学習アルゴリズムは不偏推定量を出力するようにモデルを学習することから、数式(21)のように誤差の期待値が0になるという仮定をおく。数式(21)からバイアスBiについて数式(22)の性質が導出される。
【0103】
【0104】
【0105】
【0106】
確率分布の中には、訓練データサイズや訓練データのサンプリング方法に依存して期待値や分散が変化することはあっても、確率分布の形状を示す歪度や尖度は変化しない(または、変化が非常に緩やかである)ものがあると仮定する。具体的には、入力値Xiに対する複数のモデルの間の誤差の分布は正規分布を形成し、尖度=3かつ歪度=0になることを仮定する。また、バイアスBiの分布の尖度K1は変化しないことを仮定する。バイアスBiの分布の尖度K1は、数式(23)のように定義される。数式(23)と上記の数式(12)から数式(24)が算出される。
【0107】
【0108】
【0109】
また、モデルfkに対する複数の入力値の間の誤差の分布の尖度K2は、モデル間で共通でありかつ変化しないことを仮定する。尖度K2は数式(25)のように定義される。K1,K2の値はそれぞれ3~10の範囲内であることが多く、両者は近いことが多い。
【0110】
【0111】
数式(25)から数式(26)が導出される。数式(26)を数式(18),(19)に代入することで数式(27)が算出される。ここで、尖度K2はサイズnより十分に小さいため、1-K2/nは1に近似される。数式(20),(23)を数式(18),(19)に代入することで数式(28)が算出される。数式(28)から数式(27)を減算して数式(29)が算出される。そして、数式(20),(24),(29)から数式(30)が算出される。これが、数式(19)の第1項の主要成分である。
【0112】
【0113】
【0114】
【0115】
【0116】
【0117】
(f)相互作用成分を算出
不動点Cor1vを数式(31)のように定義する。不動点Cor1vは、訓練データサイズを変化させても値が変化しないかまたは非常に緩やかに変化することが多いため、ここでは訓練データサイズに依存しないと仮定する。不動点Cor1vの値は0.001~0.1程度であることが多い。
【0118】
【0119】
ここで、数式(32)に示す統計学上の性質(誤差の相関係数の期待値)を利用する。誤差の期待値が0であるとき、2つの誤差の相関係数の期待値は0に近似する。この性質から数式(33)が成立し、上記の数式(31)から数式(34)が算出される。
【0120】
【0121】
【0122】
【0123】
また、数式(35)が成立する。数式(35)の2行目から3行目への変形では、相関係数corMとバリアンスVi,Vjとは互いに独立であることを仮定している。数式(35)の3行目から4行目への変形では、上記の数式(34)を利用しており、Vi・Vjの期待値がEV2に近似することを利用している。数式(35)の4行目の近似では、テストデータサイズnが1より十分に大きいため1/(n-1)2を無視している。
【0124】
【0125】
ここで、数式(36)に示す統計学上の性質(共分散の二乗と二乗の共分散の関係)を利用する。確率変数X,Yの結合確率が二次元正規分布に従うならば数式(36)が成立する。誤差の分散が正規分布に従うため、数式(36)を利用して数式(37)が算出される。また、数式(38)が成立する。数式(38)の1行目から2行目への変形では、共分散covMとバイアスBi,Bjは概ね独立であることを仮定している。数式(38)の2行目の近似では、BiBjの期待値はバイアスBiの期待値の二乗に近似しその結果0に近似するという性質を利用している。数式(35),(38)を数式(37)に代入することで数式(39)が算出される。これが、数式(19)の第2項の主要成分である。
【0126】
【0127】
【0128】
【0129】
【0130】
(g)モデルロスの分散をバイアスとバリアンスで記述
上記の数式(18),(19),(30),(39)より数式(40)の近似式が成立する。尖度K2は尖度K1に近似するため、数式(40)は数式(41)のように近似される。典型的にはK1(EL+EB2)はcor1v(EL-EB2)より十分に大きいため、数式(41)は更に数式(42)のように近似される。尖度K1は事前には不明であるが、分散の比が判明すれば実用上十分であることも多い。そこで、数式(42)は比例定数Cを用いて数式(43)のように単純化できる。これにより、予測性能の測定値の分散が、期待ロスELと期待バイアスEB2の差に比例し、かつ、期待ロスELと期待バイアスEB2の和に比例するという数式が導出される。
【0131】
【0132】
【0133】
【0134】
【0135】
予測性能の測定値の分散を示す数式(41)は、数式(44)のように変形することができる。テストデータサイズnに着目すると、数式(44)の第1項は、予測性能の測定値の分散のうち、テストデータサイズnの増大に応じて減少するテストデータ依存成分に相当する。一方、数式(44)の第2項は、予測性能の測定値の分散のうち、テストデータサイズnの増大によっては減少しない訓練データ依存成分に相当する。このため、数式(44)は、予測性能の測定値の分散が、テストデータサイズnの増大によって減少するものの、0より大きい下限が存在することを示している。
【0136】
【0137】
前述の
図4では、テストデータサイズを訓練データサイズの2分の1や4分の1とするなど、テストデータサイズを訓練データサイズに比例するように決定していた。しかし、このようなテストデータサイズの決定方法は、予測性能の測定値の信頼性と予測性能の測定の負荷とを両立させる観点から、改善の余地がある。テストデータサイズが小さ過ぎると、予測性能の測定値が有する潜在的な分散が大きくなり、算出される測定値の信頼性が低下する。一方、テストデータサイズが大き過ぎると、予測性能の測定値の分散があまり減少せず、測定値の信頼性の向上にあまり寄与しないにもかかわらず、テスト処理を無駄に繰り返すことになり、テスト処理の負荷が増大する。
【0138】
この点、数式(44)が示す予測性能の測定値の分散とテストデータサイズnとの間の対応関係によれば、測定値の信頼性とテスト負荷とを両立させるような効率的なテストデータサイズnが存在することになる。そこで、第2の実施の形態の機械学習装置100は、数式(44)に基づいて、適切なテストデータサイズを決定する。
【0139】
データ集合と機械学習アルゴリズムが特定されると、機械学習装置100は、数式(44)の尖度K1と不動点Cor1vと期待バイアスEB2を決定する。これにより、機械学習装置100は、テストデータサイズnと期待ロスELを引数として有し、予測性能の測定値の分散を推定する分散関数f(n,EL)を生成する。尖度K1と不動点Cor1vと期待バイアスEB2は、訓練データサイズに依存しないパラメータである。そのため、データ集合と機械学習アルゴリズムが同じであれば、訓練データサイズが異なっても、同じ分散関数を用いて予測性能の測定値の分散を推定することができる。
【0140】
あるデータ集合と機械学習アルゴリズムの組に対する尖度K1と不動点Cor1vと期待バイアスEB2を決定するには、前述のように、mセットの訓練データと1セットのテストデータの間の網羅的な誤差を示す誤差プロファイルを用意することが好ましい。そこで、機械学習装置100は、予測性能を測定したいモデルの訓練データサイズよりも十分に小さい訓練データを、同一のデータ集合からmセット抽出し、mセットの訓練データを用いて機械学習によりm個のモデルを生成する。また、機械学習装置100は、十分に小さいテストデータを当該データ集合から抽出し、テストデータに含まれる複数のレコードとm個のモデルとの間で網羅的に誤差を算出する。
【0141】
例えば、予測性能を測定したいモデルの訓練データサイズが100万レコードであるとする。この場合、誤差プロファイル生成のための訓練データの個数を10セットとし、各訓練データのサイズを1万レコードとする。また、テストデータサイズを、訓練データサイズの2分の1である5000レコードとする。これにより、10個のモデルとテストデータの5000レコードとの間で、10×5000個の誤差が算出される。機械学習装置100は、この誤差プロファイルを用いて、数式(23)の尖度K1と、数式(31)の不動点Cor1vと、数式(12)の期待バイアスEB2を算出する。
【0142】
分散関数f(n,EL)が生成されると、機械学習装置100は、予測性能を測定したいモデルに対応する期待ロスELを分散関数に代入する。期待ロスELは、
図5に示すように、データ集合と機械学習アルゴリズムが同じでも訓練データサイズに応じて変化する。そのため、対象のモデルに対応する期待ロスELを使用することになる。
【0143】
ある訓練データサイズに対応する期待ロスELは、測定せずに与えられることもあるし対象のモデルから測定して求めることもある。測定しない場合として、データ集合および機械学習アルゴリズムが同一であり訓練データサイズが異なる複数のモデルの予測性能が、既に測定済みである場合が考えられる。その場合、回帰分析などの統計的方法により、それら測定値から未知の期待ロスELを推定することが考えられる。未知の期待ロスELの推定には、
図3や
図5の非線形曲線を利用することができる。
【0144】
対象のモデルから測定する場合、例えば、機械学習装置100は、誤差プロファイルの生成に使用した小さなテストデータを対象のモデルに入力し、テストデータに含まれる複数のレコードに対応する誤差を算出する。そして、機械学習装置100は、それら誤差から数式(11)の期待ロスELを算出する。例えば、5000レコードのテストデータから5000個の誤差が算出され、期待値としての期待ロスELが算出される。
【0145】
上記の方法で測定される期待ロスELは、対象のモデルが大きい訓練データサイズで学習されているため、当該大きい訓練データサイズに対応した測定値になる。ただし、小さいテストデータを使用するため、大きいテストデータを使用して測定される本来の期待ロスELと比較すると、測定値の分散が大きくなる。その点で、小さなテストデータで測定される期待ロスELは、近似値または推定値であると言える。
【0146】
分散関数f(n,EL)に入力する期待ロスELの精度を上げるため、機械学習装置100は、期待ロスELの推定とテストデータサイズnの選択を2回繰り返してもよい。例えば、機械学習装置100は、小さなテストデータで測定した期待ロスELを分散関数f(n,EL)に入力し、以下で説明する方法でテストデータサイズnを仮選択する。機械学習装置100は、データ集合から当該仮選択したサイズのテストデータを抽出し、抽出したテストデータを用いて期待ロスELを再測定する。機械学習装置100は、再測定した期待ロスELを分散関数f(n,EL)に入力し、以下で説明する方法でテストデータサイズnを再選択し、これを最終的なテストデータサイズと決定する。
【0147】
期待ロスELを分散関数f(n,EL)に入力して期待ロスELを固定すると、分散関数は、テストデータサイズnと分散の推定値とを1対1に対応付ける対応関係を表す。機械学習装置100は、分散関数のテストデータサイズnを変動させながら分散の推定値を評価することで、適切なテストデータサイズnを決定する。
【0148】
テストデータサイズnと分散の推定値との対応関係は、テストデータサイズnの増加に応じて、分散の推定値が下限に漸近するように減少する非線形曲線に相当する。テストデータサイズnが小さいうちは、テストデータサイズnの単位増加量あたりの分散の推定値の減少量が大きい。テストデータサイズnが大きいほど、テストデータサイズnの単位増加量あたりの分散の推定値の減少量が小さくなる。予測性能の測定値の信頼性を維持しつつテストデータサイズnを小さくするため、適切なテストデータサイズnは、分散の推定値が許容できる程度に小さい範囲で、できる限り小さいサイズとする。
【0149】
例えば、機械学習装置100は、効果指標としてf(n,EL)/f(2*n,EL)を算出する。この効果指標は、テストデータサイズnを2倍にした場合の分散の減少率に相当し、分散減少効果の評価指標である。効果指標の値が大きいほど分散減少効果が大きいことを示し、効果指標の値が小さいほど分散減少効果が小さいことを示す。テストデータサイズnと分散の推定値の関係から、nが大きいほど効果指標の値は小さくなる。
【0150】
機械学習装置100は、小さいテストデータサイズnで効果指標の値を算出し、閾値と比較する。閾値は、1.1などと予め決めておく。効果指標の値が閾値以上である場合、機械学習装置100は、テストデータサイズnを2倍にし、効果指標の値が閾値未満になるまで上記を繰り返す。効果指標の値が閾値未満になると、機械学習装置100は、その時点のテストデータサイズnを適切なテストデータサイズとして決定する。
【0151】
なお、上記の方法におけるテストデータサイズnの増加速度である「2倍」や閾値の「1.1」は調整可能パラメータであり、ユーザがこれらのパラメータを変更することも可能である。また、分散関数f(n,EL)から適切なテストデータサイズnを探索する他の方法として、例えば、機械学習装置100は、テストデータサイズnを無限大にした場合の分散の推定値の下限を算出する。そして、機械学習装置100は、分散の推定値が下限の所定倍(例えば、1.1倍)になるようなテストデータサイズnを選択する。
【0152】
このようにして機械学習装置100によって決定されるテストデータサイズは、訓練データサイズの2分の1または4分の1をテストデータサイズとする慣習的方法と比べて、十分に小さいサイズとなる。例えば、訓練データサイズが100万レコードである場合、慣習的方法では、テストデータサイズが50万レコードまたは25万レコードとなる。これに対して、第2の実施の形態の方法によれば、予測性能の測定値の分散を慣習的方法と同程度に維持しつつ、テストデータサイズを数万レコード程度に削減できる。よって、予測性能の測定値の信頼性を維持しつつ、テスト処理を高速化できる。
【0153】
なお、第2の実施の形態で決定される最終的なテストデータサイズnは、慣習的方法よりも十分に小さい。そのため、テストデータを用いて期待ロスELを算出することを1回または2回行っても、全体のテスト処理の負荷は慣習的方法よりも十分に小さくなる。
【0154】
次に、機械学習装置100の機能および処理手順について説明する。
図6は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、データ記憶部121、制御情報記憶部122、学習結果記憶部123、モデル生成部124、テスト実行部125、テストサイズ決定部126および機械学習制御部127を有する。データ記憶部121、制御情報記憶部122および学習結果記憶部123は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。モデル生成部124、テスト実行部125、テストサイズ決定部126および機械学習制御部127は、例えば、CPU101が実行するプログラムを用いて実現される。
【0155】
データ記憶部121は、訓練データまたはテストデータに使用可能な多数のレコードを含むデータ集合を記憶する。各レコードは、説明変数の値と教師ラベルである目的変数の値とを含む。データ集合は、数百万レコードなどサイズの大きなものであってもよい。機械学習装置100は、ユーザからデータ集合を受け付けてもよいし、他の情報処理装置からデータ集合を受信してもよいし、センサデバイスからデータ集合を収集してもよい。
【0156】
制御情報記憶部122は、訓練データを用いたモデルの学習やテストデータを用いたモデルの予測性能の測定の過程で生成される各種の制御情報を記憶する。制御情報には、分散関数の生成に用いられる誤差プロファイルや分散関数のパラメータが含まれる。
【0157】
学習結果記憶部123は、機械学習の結果を記憶する。機械学習の結果には、学習されたモデルおよび当該モデルの予測性能の測定値が含まれる。
モデル生成部124は、機械学習によりモデルを生成する。モデル生成部124は、機械学習制御部127から機械学習アルゴリズムの指定と訓練データを受け付ける。モデル生成部124は、指定された機械学習アルゴリズムに従って、訓練データに含まれるレコードを用いてモデルの係数を決定することでモデルを学習する。機械学習アルゴリズムには、回帰分析、サポートベクタマシン、ランダムフォレストなどが含まれる。モデル生成部124は、学習されたモデルを機械学習制御部127に提供する。
【0158】
テスト実行部125は、モデルのテストを行う。テスト実行部125は、機械学習制御部127からモデルとテストデータを受け付ける。テスト実行部125は、テストデータのレコードに含まれる説明変数の値をモデルに入力し、モデルに従って目的変数の予測値を算出する。テスト実行部125は、テストデータのレコードに含まれる目的変数の真値とモデルから算出された予測値とを比較して、誤差を算出する。そして、テスト実行部125は、誤差を列挙した誤差プロファイルを生成する。
【0159】
テスト実行部125は、誤差プロファイルを機械学習制御部127に提供する。または、テスト実行部125は、誤差プロファイルを予測性能または期待ロスに変換し、予測性能または期待ロスを機械学習制御部127に提供する。予測性能の指標には、正答率、適合率、平均二乗誤差、二乗平均平方根誤差などが含まれる。予測性能または期待ロスは、テストデータに含まれる複数のレコードに対応する誤差から算出することができる。機械学習制御部127に提供される情報は、機械学習制御部127の要求に応じて変わる。
【0160】
テストサイズ決定部126は、テストデータサイズを決定する。まず、テストサイズ決定部126は、機械学習制御部127から誤差プロファイルを受け付ける。この誤差プロファイルは、mセットの小さな訓練データを用いて学習されたm個のモデルに対して、小さなテストデータを用いて測定された誤差を列挙したものである。テストサイズ決定部126は、この誤差プロファイルを用いて、予測性能の測定値の分散を推定するための分散関数のパラメータを決定する。分散関数のパラメータには、尖度K1と不動点Cor1vと期待バイアスEB2が含まれる。テストサイズ決定部126は、分散関数の式や分散関数のパラメータの決定方法を予め知っている。テストサイズ決定部126は、分散関数のパラメータを機械学習制御部127に提供する。
【0161】
また、テストサイズ決定部126は、機械学習制御部127から、先に算出した分散関数のパラメータと、対象のモデルの訓練データサイズに対応する期待ロスELを受け付ける。テストサイズ決定部126は、分散関数f(n,EL)に期待ロスELを代入し、テストデータサイズnを変えながら分散の推定値を算出する。そして、テストサイズ決定部126は、適切なテストデータサイズnを決定して機械学習制御部127に提供する。例えば、テストサイズ決定部126は、分散の推定値から算出される効果指標の値が閾値以上である範囲で、最大のテストデータサイズnを検出する。
【0162】
機械学習制御部127は、機械学習を制御する。まず、機械学習制御部127は、モデルの学習および予測性能の測定の対象とする機械学習アルゴリズムおよび訓練データサイズを特定する。対象の機械学習アルゴリズムおよび訓練データサイズは、ユーザから指定されてもよいし、所定の規則に従って機械学習制御部127が選択してもよい。
【0163】
次に、機械学習制御部127は、テストサイズ決定部126に分散関数のパラメータを決定させる。ただし、分散関数のパラメータの決定は、予測性能を測定する対象のモデルが学習された後に行うようにすることも可能である。
【0164】
分散関数のパラメータの決定では、機械学習制御部127は、mセットの小さな訓練データと1セットの小さなテストデータを、データ記憶部121に記憶されたデータ集合から抽出する。機械学習制御部127は、mセットの訓練データをモデル生成部124に提供し、m個のモデルをモデル生成部124から取得する。機械学習制御部127は、m個のモデルと1セットのテストデータをテスト実行部125に提供し、誤差プロファイルをテスト実行部125から取得する。そして、機械学習制御部127は、誤差プロファイルをテストサイズ決定部126に提供し、分散関数のパラメータをテストサイズ決定部126から取得し、制御情報として制御情報記憶部122に格納する。
【0165】
次に、機械学習制御部127は、モデル生成部124に対象のモデルを学習させる。機械学習制御部127は、先に特定したサイズの訓練データを、データ記憶部121に記憶されたデータ集合から抽出する。機械学習制御部127は、抽出した訓練データをモデル生成部124に提供し、学習されたモデルをテスト実行部125から取得する。機械学習制御部127は、モデルを学習結果記憶部123に格納する。
【0166】
次に、機械学習制御部127は、対象のモデルの予測性能を測定するための適切なテストデータサイズをテストサイズ決定部126に決定させる。まず、機械学習制御部127は、学習結果記憶部123に記憶されたモデルと、分散関数のパラメータの決定の際に使用した小さなテストデータとを、テスト実行部125に提供する。機械学習制御部127は、このために小さなテストデータを保存しておいてもよい。また、機械学習制御部127は、分散関数のパラメータの決定の際に使用したテストデータに代えて、同等のサイズのテストデータを、データ記憶部121に記憶されたデータ集合から抽出してもよい。
【0167】
機械学習制御部127は、テスト実行部125から期待ロスを取得し、制御情報記憶部122に記憶された分散関数のパラメータと期待ロスをテストサイズ決定部126に提供する。ただし、機械学習制御部127は、対象のモデルを用いて期待ロスを測定する代わりに、回帰分析などの統計的方法によって期待ロスを推定してもよい。機械学習制御部127は、テストサイズ決定部126からテストデータサイズを取得する。
【0168】
すると、機械学習制御部127は、データ記憶部121に記憶されたデータ集合から、決定されたサイズのテストデータを抽出する。テストデータに含まれるレコードは訓練データと重複しないことが好ましい。機械学習制御部127は、抽出したテストデータと学習結果記憶部123に記憶されたモデルとをテスト実行部125に提供する。機械学習制御部127は、テスト実行部125から予測性能の測定値を取得し、学習結果記憶部123に格納する。ただし、機械学習制御部127は、上記のテストデータに対して、更新された期待ロスをテスト実行部125から取得し、更新された期待ロスに基づいて、更新されたテストデータサイズをテストサイズ決定部126から取得してもよい。
【0169】
モデルの学習と予測性能の測定が完了すると、機械学習制御部127は、モデルおよび予測性能の測定値を出力する。例えば、機械学習制御部127は、表示装置111にモデルおよび予測性能の測定値を表示する。機械学習制御部127は、他の出力デバイスにモデルおよび予測性能の測定値を出力してもよい。また、例えば、機械学習制御部127は、他の情報処理装置にモデルおよび予測性能の測定値を送信する。
【0170】
図7は、誤差プロファイルテーブルの例を示す図である。
誤差プロファイルテーブル131は、制御情報記憶部122に記憶される。誤差プロファイルテーブル131は、mセットの訓練データとnレコードのテストデータとの間で網羅的に算出されたm×n個の誤差を記憶する。誤差プロファイルテーブル131の列は、訓練データD
1,D
2,…,D
mに対応する。誤差プロファイルテーブル131の行は、テストデータのn個のレコードに含まれる入力値X
1,X
2,…,X
nに対応する。1つの訓練データD
kから学習された1つのモデルに、テストデータの1つのレコードに含まれる入力値X
iを入力することで、予測値と真値との差である誤差e
ikが算出される。
【0171】
図8は、分散関数テーブルの例を示す図である。
分散関数テーブル132は、制御情報記憶部122に記憶される。分散関数テーブル132は、尖度K1、不動点Cor1vおよび期待バイアスEB2の3つのパラメータに対応する値を記憶する。これら3つのパラメータは、数式(44)に含まれるパラメータであって、訓練データサイズに依存しないパラメータである。分散関数テーブル132に記憶される値は、誤差プロファイルテーブル131から算出される。
【0172】
図9は、機械学習の手順例を示すフローチャートである。
(S10)機械学習制御部127は、機械学習アルゴリズムと訓練データサイズを指定する。機械学習アルゴリズムと訓練データサイズの指定はユーザから受け付けてもよい。
【0173】
(S11)機械学習制御部127は、データ記憶部121からmセットの小サイズの訓練データと1セットの小サイズのテストデータを抽出する。例えば、1万レコードの訓練データが10セット抽出され、5000レコードのテストデータが1セット抽出される。
【0174】
(S12)モデル生成部124は、ステップS10で指定された機械学習アルゴリズムに従って、mセットの訓練データからm個のモデルを学習する。
(S13)テスト実行部125は、ステップS12で学習されたm個のモデルに、ステップS11のテストデータの各レコードを入力して誤差を算出し、算出した誤差を列挙した誤差プロファイルテーブル131を生成する。具体的には、テスト実行部125は、1つのモデルとテストデータの1つのレコードの組毎に、レコードに含まれる説明変数の値をモデルに入力し、モデルから算出された目的変数の予測値とレコードに含まれる真値との差を誤差として算出する。例えば、10個のモデルと5000レコードのテストデータから、10×5000個の誤差を含む誤差プロファイルテーブル131が生成される。
【0175】
(S14)テストサイズ決定部126は、誤差プロファイルテーブル131から、所定の数式に従って、分散関数f(n,EL)を規定するパラメータの値を決定する。パラメータには、尖度K1と不動点Cor1vと期待バイアスEB2が含まれる。ここで決定されるパラメータの値は、使用するデータ集合と指定された機械学習アルゴリズムに依存するものである一方、訓練データサイズに依存しないものである。
【0176】
(S15)機械学習制御部127は、データ記憶部121から、ステップS10で指定されたサイズの訓練データを抽出する。
(S16)モデル生成部124は、ステップS10で指定された機械学習アルゴリズムに従って、ステップS15で抽出された訓練データからモデルを学習する。
【0177】
図10は、機械学習の手順例を示すフローチャート(続き)である。
(S17)テスト実行部125は、ステップS16で学習されたモデルに、ステップS11で抽出された小サイズのテストデータの各レコードを入力して誤差を算出する。ただし、ステップS11で抽出されたものとは異なるテストデータを使用してもよい。
【0178】
(S18)テスト実行部125は、ステップS17で算出された誤差から、所定の数式に従って、ステップS16で学習されたモデルの期待ロスELを推定する。
(S19)テストサイズ決定部126は、ステップS14で決定されたパラメータの値をもつ分散関数f(n,EL)に、ステップS18で推定された期待ロスELを代入する。テストサイズ決定部126は、分散関数f(n,EL)により算出される分散が所定条件を満たす範囲で、最大のテストデータサイズn1を判定する。例えば、テストサイズ決定部126は、テストデータサイズnを2倍にした場合の分散の減少率を示す効果指標の値と所定の閾値とを比較し、効果指標の値が閾値未満になるまでテストデータサイズnを2倍にすることを繰り返す。これにより、最大のテストデータサイズn1が選択される。
【0179】
(S20)機械学習制御部127は、データ記憶部121から、ステップS19で判定されたサイズn1のテストデータを抽出する。
(S21)テスト実行部125は、ステップS16で学習されたモデルに、ステップS20で抽出されたテストデータの各レコードを入力して誤差を算出する。
【0180】
(S22)テスト実行部125は、ステップS21で算出された誤差から、所定の数式に従って、ステップS16で学習されたモデルの期待ロスELを再推定する。
(S23)テストサイズ決定部126は、ステップS14で決定されたパラメータの値をもつ分散関数f(n,EL)に、ステップS22で再推定された期待ロスELを代入する。テストサイズ決定部126は、分散関数f(n,EL)により算出される分散が所定条件を満たす範囲で、最大のテストデータサイズn2を判定する。テストデータサイズn2の判定方法は、ステップS19と同様の方法でよい。
【0181】
(S24)機械学習制御部127は、データ記憶部121から、ステップS23で判定されたサイズn2のテストデータを抽出する。
(S25)テスト実行部125は、ステップS16で学習されたモデルに、ステップS24で抽出されたテストデータの各レコードを入力して誤差を算出する。テスト実行部125は、算出された誤差から、当該モデルの予測性能の測定値を算出する。
【0182】
(S26)機械学習制御部127は、ステップS16で学習されたモデルとステップS25で算出された予測性能の測定値を、学習結果記憶部123に保存する。また、機械学習制御部127は、モデルおよび予測性能の測定値を表示装置111に表示する。
【0183】
なお、上記のフローチャートでは、対象となるモデルの期待ロスELの推定を2回繰り返している。期待ロスELの推定を1回だけ行う場合、上記のステップS19~S22を省略することができる。また、対象となるモデルを使用せずに統計的方法により期待ロスELを推定する場合、上記のステップS17~S22を省略することができる。
【0184】
第2の実施の形態の機械学習装置100によれば、複数セットの小さい訓練データと1セットの小さいテストデータを用いて、同一のデータ集合および機械学習アルゴリズムのもとで生じる誤差の分布を示す誤差プロファイルが生成される。誤差プロファイルに基づいて、期待ロスとテストデータサイズを引数としてもち、予測性能の測定値の分散を算出する分散関数が決定される。そして、大きい訓練データを用いて学習された対象モデルの期待ロスが推定され、分散関数が示すテストデータサイズと分散の対応関係に基づいて、対象モデルの予測性能を測定するための適切なテストデータサイズが決定される。
【0185】
テストデータサイズは、予測性能の測定値が実用上十分な信頼性をもつ範囲、すなわち、その分散が許容できる範囲で、できる限り小さいサイズに決定される。これにより、テストデータサイズが小さ過ぎることにより予測性能の測定値の信頼性が低下することを抑制できる。また、テストデータサイズが大き過ぎることにより予測性能の測定値の信頼性向上に寄与しない無駄なテスト処理が発生することを抑制でき、テスト処理の負荷を軽減してテスト時間を短縮できる。よって、学習されたモデルの予測性能を高信頼かつ短時間で測定することができ、テスト処理を効率化することができる。例えば、テストデータサイズを訓練データサイズの2分の1から4分の1程度とする慣習的方法と比べて、測定値の分散を同程度に抑えつつ、テストデータサイズを削減することができる。
【符号の説明】
【0186】
10 機械学習装置
11 記憶部
12 処理部
13 データ集合
14a,14b,14c,18 訓練データ
15,19 テストデータ
16 誤差情報
17 対応関係