(57)【要約】【課題】予測性能曲線からの予測性能の変動性を示す分散情報を効率的に推定する。【解決手段】第１のデータサイズとモデルが備える予測性能とを対応付けた測定データ１３に基づいて、予測性能曲線１４を規定する第１のパラメータ値を算出する。異なるデータサイズそれぞれについて予測性能曲線１４から所定範囲内にある予測性能をサンプリングすることを複数回繰り返すことで、それぞれがデータサイズと予測性能の組の列であるサンプル点列１５ａ，１５ｂを生成する。サンプル点列１５ａ，１５ｂを表す予測性能曲線１４ａ，１４ｂを規定する複数の第２のパラメータ値を算出し、第２のパラメータ値と測定データ１３を用いて重みｐ１，ｐ２を決定する。予測性能曲線１４ａ，１４ｂと重みｐ１，ｐ２を用いて、予測性能曲線１４から推定される第２のデータサイズの予測性能の変動性を示す分散情報１６を生成する。【選択図】図１
2019113915.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する推定方法であって、
第１のデータサイズと前記第１のデータサイズの訓練データを用いて生成されたモデルが備える予測性能とを対応付けた測定データに基づいて、データサイズと予測性能の関係を示す第１の予測性能曲線を規定する第１のパラメータ値を算出し、
異なるデータサイズそれぞれについて前記第１の予測性能曲線から所定範囲内にある予測性能をサンプリングすることを複数回繰り返すことで、それぞれがデータサイズと予測性能の組の列である複数のサンプル点列を生成し、
前記複数のサンプル点列を表す複数の第２の予測性能曲線を規定する複数の第２のパラメータ値を算出し、前記複数の第２のパラメータ値と前記測定データを用いて、前記複数の第２の予測性能曲線に対応付ける複数の重みを決定し、
前記複数の第２の予測性能曲線と前記複数の重みを用いて、前記第１の予測性能曲線から推定される第２のデータサイズの予測性能の変動性を示す分散情報を生成する、
推定方法。
【請求項２】
データサイズが大きいほど前記所定範囲の幅を小さくする、
請求項１記載の推定方法。
【請求項３】
前記複数の重みの決定は、前記複数の第２のパラメータ値と前記測定データを用いて、前記複数の第２のパラメータ値に対応する複数の第１の生起確率を算出し、前記複数のサンプル点列と前記複数の第２のパラメータ値を用いて、前記複数の第１の生起確率を前記複数のサンプル点列に対応する複数の第２の生起確率に変換し、前記複数の第２の生起確率から前記複数の重みを決定することを含む、
請求項１記載の推定方法。
【請求項４】
第１のデータサイズと前記第１のデータサイズの訓練データを用いて生成されたモデルが備える予測性能とを対応付けた測定データを記憶する記憶部と、
前記測定データに基づいて、データサイズと予測性能の関係を示す第１の予測性能曲線を規定する第１のパラメータ値を算出し、異なるデータサイズそれぞれについて前記第１の予測性能曲線から所定範囲内にある予測性能をサンプリングすることを複数回繰り返すことで、それぞれがデータサイズと予測性能の組の列である複数のサンプル点列を生成し、前記複数のサンプル点列を表す複数の第２の予測性能曲線を規定する複数の第２のパラメータ値を算出し、前記複数の第２のパラメータ値と前記測定データを用いて、前記複数の第２の予測性能曲線に対応付ける複数の重みを決定し、前記複数の第２の予測性能曲線と前記複数の重みを用いて、前記第１の予測性能曲線から推定される第２のデータサイズの予測性能の変動性を示す分散情報を生成する処理部と、
を有する推定装置。
【請求項５】
コンピュータに、
第１のデータサイズと前記第１のデータサイズの訓練データを用いて生成されたモデルが備える予測性能とを対応付けた測定データに基づいて、データサイズと予測性能の関係を示す第１の予測性能曲線を規定する第１のパラメータ値を算出し、
異なるデータサイズそれぞれについて前記第１の予測性能曲線から所定範囲内にある予測性能をサンプリングすることを複数回繰り返すことで、それぞれがデータサイズと予測性能の組の列である複数のサンプル点列を生成し、
前記複数のサンプル点列を表す複数の第２の予測性能曲線を規定する複数の第２のパラメータ値を算出し、前記複数の第２のパラメータ値と前記測定データを用いて、前記複数の第２の予測性能曲線に対応付ける複数の重みを決定し、
前記複数の第２の予測性能曲線と前記複数の重みを用いて、前記第１の予測性能曲線から推定される第２のデータサイズの予測性能の変動性を示す分散情報を生成する、
処理を実行させる推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は推定方法、推定装置および推定プログラムに関する。
【背景技術】
【０００２】
コンピュータを利用したデータ分析の１つとして、機械学習が行われることがある。機械学習では、幾つかの既知の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因（説明変数や独立変数と言うことがある）と結果（目的変数や従属変数と言うことがある）との間の関係を一般化したモデルを学習する。学習されたモデルを用いることで、未知の事例についての結果を予測することができる。
【０００３】
機械学習では、学習されるモデルの正確さ、すなわち、未知の事例の結果を正確に予測する能力（予測性能と言うことがある）が高いことが好ましい。予測性能は、学習に用いる訓練データのサンプルサイズが大きいほど高くなる。一方、訓練データのサンプルサイズが大きいほど学習時間も長くなる。そこで、実用上十分な予測性能をもつモデルを効率的に得られるようにする方法として、プログレッシブサンプリング法が提案されている。
【０００４】
プログレッシブサンプリング法では、コンピュータは、まず小さなサンプルサイズの訓練データを用いてモデルを学習する。コンピュータは、訓練データとは異なる既知の事例を示すテストデータを用いて、モデルによって予測した結果と既知の結果とを比較し、学習されたモデルの予測性能を評価する。予測性能が十分でない場合、コンピュータは、前回よりもサンプルサイズが大きい訓練データを用いてモデルを再度学習する。以上を予測性能が十分に高くなるまで繰り返すことで、過度にサンプルサイズの大きな訓練データを使用することを抑制でき、モデルの学習時間を短縮することができる。
【０００５】
また、小さなサンプルサイズの訓練データに対応する予測性能の実測値を用いて、訓練データのサンプルサイズと予測性能との間の関係を示す予測性能曲線を推定する予測性能曲線推定装置が提案されている。提案の予測性能曲線推定装置は、予測性能曲線を用いて、大きなサンプルサイズの訓練データに対応する予測性能を推定する。予測性能曲線推定装置は、サンプルサイズが小さいほど予測性能の誤差が大きく、サンプルサイズが大きいほど予測性能の誤差が小さいという性質を考慮して回帰分析を行う。
【０００６】
なお、入力ｘと出力ｙを含む学習データから、Ｍ次元のパラメータθによって規定される線形モデルｆ（ｘ；θ）を回帰分析により推定する場合に、学習誤差が最小となる入力ｘを学習データ用に作成する統計的学習装置が提案されている。また、目的変数に関する時系列データの振れ幅を求め、振れ幅が所定の閾値より大きい場合に目的変数と説明変数を用いて回帰式を作成し、回帰式を表示する評価システムが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−４９６７４号公報
【特許文献２】特開平９−７３４３８号公報
【特許文献３】国際公開第２０１７／０３７７６８号
【非特許文献】
【０００８】
【非特許文献１】Foster Provost, David Jensen and Tim Oates, "Efficient Progressive Sampling", Proc. of the 5th International Conference on Knowledge Discovery and Data Mining, pp. 23-32, Association for Computing Machinery (ACM), 1999.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
あるサンプルサイズに対応する予測性能を推定するとき、回帰分析によって算出される予測性能曲線上の期待値だけでなく、予測性能の期待値からの変動性を示す分散情報も求めたいことがある。統計処理上の分散情報としては、信頼区間、予測区間、標準偏差、分散、確率分布などが挙げられる。しかし、サンプルサイズと予測性能の関係を示す予測性能曲線は、サンプルサイズによって予測性能の分散が異なるという異分散性をもっている（等分散性が成立しない）。そのため、回帰分析によって得た予測性能曲線に対する分散情報を効率的に推定することは容易でないという問題がある。例えば、マルコフ連鎖モンテカルロ法のようなサンプリングを伴う方法によって分散情報を推定する場合、単純に推定精度を向上させようとするとサンプル数が多くなって計算負荷が増大してしまう。
【００１０】
１つの側面では、本発明は、予測性能曲線からの予測性能の変動性を示す分散情報を効率的に推定する推定方法、推定装置および推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、コンピュータが実行する推定方法が提供される。第１のデータサイズと第１のデータサイズの訓練データを用いて生成されたモデルが備える予測性能とを対応付けた測定データに基づいて、データサイズと予測性能の関係を示す第１の予測性能曲線を規定する第１のパラメータ値を算出する。異なるデータサイズそれぞれについて第１の予測性能曲線から所定範囲内にある予測性能をサンプリングすることを複数回繰り返すことで、それぞれがデータサイズと予測性能の組の列である複数のサンプル点列を生成する。複数のサンプル点列を表す複数の第２の予測性能曲線を規定する複数の第２のパラメータ値を算出し、複数の第２のパラメータ値と測定データを用いて、複数の第２の予測性能曲線に対応付ける複数の重みを決定する。複数の第２の予測性能曲線と複数の重みを用いて、第１の予測性能曲線から推定される第２のデータサイズの予測性能の変動性を示す分散情報を生成する。
【００１２】
また、１つの態様では、記憶部と処理部とを有する推定装置が提供される。また、１つの態様では、コンピュータに実行させる推定プログラムが提供される。
【発明の効果】
【００１３】
１つの側面では、予測性能曲線からの予測性能の変動性を示す分散情報を効率的に推定できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の推定装置を説明する図である。
【図２】機械学習装置のハードウェア例を示すブロック図である。
【図３】サンプルサイズと予測性能の関係例を示すグラフである。
【図４】学習時間と予測性能の関係例を示すフラグである。
【図５】複数の機械学習アルゴリズムの使用例を示す図である。
【図６】予測性能の分布例を示すグラフである。
【図７】サンプルサイズとロスの関係例を示すグラフである。
【図８】信頼区間の第１の算出方法の例を示す図である。
【図９】信頼区間の第２の算出方法の例を示す図である。
【図１０】信頼区間の第３の算出方法の例を示す図である。
【図１１】機械学習装置の機能例を示すブロック図である。
【図１２】管理テーブルの例を示す図である。
【図１３】性能改善量推定部の機能例を示すブロック図である。
【図１４】機械学習の手順例を示すフローチャートである。
【図１５】機械学習の手順例を示すフローチャート（続き）である。
【図１６】ステップ実行の手順例を示すフローチャートである。
【図１７】時間推定の手順例を示すフローチャートである。
【図１８】性能改善量推定の手順例を示すフローチャートである。
【図１９】性能改善量推定の手順例を示すフローチャート（続き）である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１６】
図１は、第１の実施の形態の推定装置を説明する図である。
第１の実施の形態の推定装置１０は、機械学習に用いる訓練データのデータサイズと械学習によって生成されるモデルの予測性能との間の関係を示す予測性能曲線を推定する。推定装置１０は、ユーザが操作するクライアント装置でもよいしサーバ装置でもよい。推定装置１０はコンピュータを用いて実装することもできる。
【００１７】
推定装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性のストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。プログラムには推定プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【００１８】
記憶部１１は、測定データ１３を記憶する。測定データ１３は、訓練データのデータサイズ（サンプルサイズと言うこともある）と、訓練データを用いて生成されたモデルに対して測定された予測性能とを対応付ける。測定データ１３は、異なる複数のデータサイズと複数の予測性能とを対応付けている。例えば、測定データ１３は、データサイズｘ１と予測性能ｙ１を対応付け、データサイズｘ２と予測性能ｙ２を対応付け、データサイズｘ３と予測性能ｙ３を対応付ける。モデルの生成には、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなど各種の機械学習アルゴリズムを使用できる。予測性能は、未知の事例の結果を正確に予測する能力であり「精度」と言うこともできる。予測性能の指標には、正答率（Accuracy）、適合率（Precision）、平均二乗誤差（ＭＳＥ）、二乗平均平方根誤差（ＲＭＳＥ）などが含まれる。
【００１９】
処理部１２は、測定データ１３に基づいて、データサイズと予測性能の関係を示す予測性能曲線１４を規定するパラメータ値θ０を算出する。パラメータ値θ０は、予測性能曲線を示す所定の数式に含まれる調整可能なパラメータの値であり、測定データ１３を用いて学習される。予測性能曲線１４は、測定データ１３のもとで最も確率が高い予測性能曲線である。処理部１２は、回帰分析（例えば、非線形回帰分析）によって、測定データ１３から予測性能曲線１４を規定するパラメータ値θ０を算出することができる。
【００２０】
次に、処理部１２は、異なる複数のデータサイズそれぞれについて、予測性能曲線１４上の点（予測性能の期待値）から所定範囲内にある予測性能をサンプリングする。所定範囲の幅は、データサイズによって異なってもよい。例えば、予測性能曲線１４を規定するパラメータ値θ０とデータサイズから、サンプリングを行う範囲の幅が決定される。データサイズが小さいほどサンプリングを行う範囲を広くし、データサイズが大きいほどサンプリングを行う範囲を狭くすることが好ましい。サンプリングは、例えば、所定範囲の中における一様サンプリングまたは等間隔サンプリングとして行う。
【００２１】
処理部１２は、複数のデータサイズから１つずつ予測性能を選択することで、データサイズと予測性能の組（点）の列であるサンプル点列を生成することができる。このサンプリングを複数回繰り返すことで、処理部１２は、複数のサンプル点列を生成する。複数のサンプル点列は、予測性能曲線１４の周辺に位置する。例えば、処理部１２は、サンプル点列１５ａ，１５ｂを含む複数のサンプル点列を生成する。
【００２２】
次に、処理部１２は、複数のサンプル点列を表す複数の予測性能曲線を規定する複数のパラメータ値を算出する。例えば、処理部１２は、サンプル点列１５ａを表す予測性能曲線１４ａを規定するパラメータ値θ１を算出し、サンプル点列１５ｂを表す予測性能曲線１４ｂを規定するパラメータ値θ２を算出する。サンプル点列に対応する予測性能曲線は、予測性能曲線１４に対して誤差を含む予測性能曲線であり、予測性能曲線１４の周辺に位置する。各サンプル点列に含まれる点の数によっては、１つのサンプル点列から全ての点を通る１つの予測性能曲線を導出できる場合がある。処理部１２は、予測性能曲線を表す数式から解析的にパラメータ値を算出してもよいし、回帰分析によりサンプル点列を最も良く説明できるパラメータ値を算出してもよい。
【００２３】
次に、処理部１２は、パラメータ値θ１，θ２を含む複数のパラメータ値と測定データ１３を用いて、予測性能曲線１４ａ，１４ｂを含む複数の予測性能曲線に対応付ける複数の重みを決定する。例えば、処理部１２は、パラメータ値θ１と測定データ１３から、予測性能曲線１４ａに対応付ける重みｐ１を決定し、パラメータ値θ２と測定データ１３から、予測性能曲線１４ｂに対応付ける重みｐ２を決定する。重みを決定する予測性能曲線の中には、予測性能曲線１４が含まれてもよいし含まれなくてもよい。
【００２４】
予測性能曲線の重みは、例えば、測定データ１３のもとで特定のパラメータ値が観測される生起確率を用いて算出される。測定データ１３のもとでの特定のパラメータ値の生起確率は、例えば、尤度関数または事後確率として定義される。尤度関数および事後確率は、当該パラメータ値と測定データ１３から所定の計算式により算出できる。これにより、予測性能曲線の周辺に誤差を含む複数の予測性能曲線を生成することができ、それら複数の予測性能曲線の重みを決定することができる。
【００２５】
次に、処理部１２は、それら複数の予測性能曲線と複数の重みを用いて、予測性能曲線１４から推定されるデータサイズｘ０に対応する予測性能の変動性を示す分散情報１６を生成する。分散情報１６は、予測性能曲線１４上のデータサイズｘ０に対応する点（期待値）からの予測性能の振れを示す情報である。同じ予測性能曲線１４であっても、どのような測定データ１３から予測性能曲線１４が生成されたかによって予測性能曲線１４上の期待値の信頼性が変わる。また、データサイズによっても予測性能曲線１４上の期待値の信頼性が変わる。分散情報１６としては、信頼区間、予測区間、標準偏差、分散、確率分布など各種の統計処理上の指標を用いることができる。
【００２６】
例えば、処理部１２は、予測性能曲線１４ａ，１４ｂを含む複数の予測性能曲線にそれぞれデータサイズｘ０を代入して、データサイズｘ０における複数の推定値を算出する。これら複数の推定値は重み付きの推定値である。処理部１２は、複数の重み付き推定値を確率分布とみなして分散情報１６を生成することができる。例えば、処理部１２は、予測性能の小さい方から重みを累積した累積重みを算出し、累積重みが２．５％である予測性能から累積重みが９７．５％である予測性能までの区間を９５％信頼区間とみなす。
【００２７】
第１の実施の形態の推定装置１０によれば、測定データ１３に基づいて予測性能曲線１４を規定するパラメータ値θ０が算出される。異なるデータサイズそれぞれについて予測性能曲線１４から所定範囲内にある予測性能をサンプリングすることで、サンプル点列１５ａ，１５ｂが生成される。サンプル点列１５ａ，１５ｂを表す予測性能曲線１４ａ，１４ｂを規定するパラメータ値θ１，θ２が算出され、パラメータ値θ１，θ２と測定データ１３を用いて予測性能曲線１４ａ，１４ｂに対応付ける重みｐ１，ｐ２が決定される。予測性能曲線１４ａ，１４ｂと重みｐ１，ｐ２を用いて、予測性能曲線１４から推定されるデータサイズｘ０の予測性能の変動性を示す分散情報１６が生成される。
【００２８】
これにより、予測性能曲線１４がデータサイズによって予測性能の分散が異なるという異分散性をもっている（等分散性が成立しない）場合であっても、分散情報１６を効率的かつ高精度に推定することが可能となる。第１の実施の形態では重み付きサンプリングを行うため、重みが無い単純サンプリングに比べてサンプル数を減らすことができる。よって、計算負荷を低減し計算時間を短縮することができる。また、第１の実施の形態では予測性能曲線１４の周辺で予測性能をサンプリングし、サンプル点列１５ａ，１５ｂをパラメータ値θ１，θ２に変換している。このため、パラメータ値θ０の周辺からパラメータ値を直接サンプリングする方法と比べて、分散情報１６の生成に有用な適切なパラメータ値を選択することが容易となる。よって、分散情報１６を高精度に推定できると共に、サンプル数を適切な量に制御することが容易となる。
【００２９】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、機械学習装置のハードウェア例を示すブロック図である。
【００３０】
機械学習装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７は、バス１０８に接続されている。なお、機械学習装置１００は、第１の実施の形態の推定装置１０に対応する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００３１】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、機械学習装置１００は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合（マルチプロセッサ）を「プロセッサ」と呼んでもよい。
【００３２】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００３３】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには比較プログラムが含まれる。なお、機械学習装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００３４】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、機械学習装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００３５】
入力信号処理部１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００３６】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３７】
通信インタフェース１０７は、ネットワーク１１４に接続され、ネットワーク１１４を介して他の装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００３８】
次に、機械学習におけるサンプルサイズと予測性能と学習時間の間の関係、および、プログレッシブサンプリング法について説明する。
第２の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。機械学習装置１００または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク１１４経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常、１以上の説明変数の値と１つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
【００３９】
機械学習装置１００は、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常、１以上の説明変数と１以上の係数と１つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
【００４０】
学習されたモデルを用いることで、未知の事例の説明変数の値（要因）から、未知の事例の目的変数の値（結果）を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、０以上１以下の確率などの連続量であってもよいし、ＹＥＳ／ＮＯの２値などの離散値であってもよい。
【００４１】
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置１００は、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの１／２程度とする。機械学習装置１００は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値（予測値）とテストデータに含まれる目的変数の値（実績値）とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【００４２】
予測性能の指標としては、正答率（Accuracy）、適合率（Precision）、平均二乗誤差（ＭＳＥ）、二乗平均平方根誤差（ＲＭＳＥ）などが挙げられる。例えば、結果がＹＥＳ／ＮＯの２値で表されるとする。また、Ｎ１件のテストデータの事例のうち、予測値＝ＹＥＳかつ実績値＝ＹＥＳの件数をＴｐ、予測値＝ＹＥＳかつ実績値＝ＮＯの件数をＦｐ、予測値＝ＮＯかつ実績値＝ＹＥＳの件数をＦｎ、予測値＝ＮＯかつ実績値＝ＮＯの件数をＴｎとする。正答率は予測が当たった割合であり、（Ｔｐ＋Ｔｎ）／Ｎ１と算出される。適合率は「ＹＥＳ」の予測を間違えない確率であり、Ｔｐ／（Ｔｐ＋Ｆｐ）と算出される。平均二乗誤差ＭＳＥは、各事例の実績値をｙと表し予測値をｙ＾と表すと、ｓｕｍ（ｙ−ｙ＾）２／Ｎ１と算出される。二乗平均平方根誤差ＲＭＳＥは、（ｓｕｍ（ｙ−ｙ＾）２／Ｎ１）１／２と算出される。ＭＳＥ＝ＲＭＳＥ２である。
【００４３】
ここで、ある１つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数（サンプルサイズ）が大きいほど予測性能は高くなる。
図３は、サンプルサイズと予測性能の関係例を示すグラフである。
【００４４】
曲線２１は、モデルの予測性能とサンプルサイズとの間の関係を示す。サンプルサイズｓ１，ｓ２，ｓ３，ｓ４，ｓ５の間の大小関係は、ｓ１＜ｓ２＜ｓ３＜ｓ４＜ｓ５である。例えば、ｓ２はｓ１の２倍または４倍、ｓ３はｓ２の２倍または４倍、ｓ４はｓ３の２倍または４倍、ｓ５はｓ４の２倍または４倍である。
【００４５】
曲線２１が示すように、サンプルサイズがｓ２の場合の予測性能はｓ１の場合よりも高い傾向にある。サンプルサイズがｓ３の場合の予測性能はｓ２の場合よりも高い傾向にある。サンプルサイズがｓ４の場合の予測性能はｓ３の場合よりも高い傾向にある。サンプルサイズがｓ５の場合の予測性能はｓ４の場合よりも高い傾向にある。このように、サンプルサイズが大きくなるほど予測性能も高くなる傾向にある。ただし、予測性能が低いうちは、サンプルサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプルサイズの増加量に対する予測性能の上昇量の比は逓減する。
【００４６】
また、サンプルサイズが大きいほど、機械学習に要する学習時間も大きくなる傾向にある。このため、サンプルサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図３の例の場合、サンプルサイズをｓ４とすると、上限に近い予測性能を短時間で達成できる。一方、サンプルサイズをｓ３とすると、予測性能が不十分であるおそれがある。また、サンプルサイズをｓ５とすると、予測性能は上限に近いものの、単位学習時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。
【００４７】
このようなサンプルサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質（データの種類）によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプルサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法という機械学習方法が提案されている。プログレッシブサンプリング法については、例えば、前述の非特許文献１（"Efficient Progressive Sampling"）に記載がある。
【００４８】
プログレッシブサンプリング法では、サンプルサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、機械学習装置１００は、サンプルサイズｓ１で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、機械学習装置１００は、サンプルサイズｓ２で機械学習を行って予測性能を評価する。このとき、サンプルサイズｓ２の訓練データは、サンプルサイズｓ１の訓練データ（前に使用した訓練データ）の一部または全部を包含していてもよい。同様に、機械学習装置１００は、サンプルサイズｓ３で機械学習を行って予測性能を評価し、サンプルサイズｓ４で機械学習を行って予測性能を評価する。サンプルサイズｓ４で予測性能が十分と判断すると、機械学習装置１００は、機械学習を停止しサンプルサイズｓ４で学習したモデルを採用する。
【００４９】
上記のように、プログレッシブサンプリング法では、１つのサンプルサイズに対する処理（１つの学習ステップ）毎に、モデルの学習と当該モデルの予測性能の評価とを行う。各学習ステップ内の手順（バリデーション方法）としては、例えば、クロスバリデーションやランダムサブサンプリングバリデーションなどを用いることができる。
【００５０】
クロスバリデーションでは、機械学習装置１００は、サンプリングしたデータをＫ個（Ｋは２以上の整数）のブロックに分割し、このうちＫ−１個のブロックを訓練データとして使用して１個のブロックをテストデータとして使用する。機械学習装置１００は、テストデータとして使用するブロックを変えながらモデルの学習と予測性能の評価をＫ回繰り返す。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。クロスバリデーションは、限定された量のデータを活用して予測性能の評価を可能とする。
【００５１】
ランダムサブサンプリングバリデーションでは、機械学習装置１００は、データの母集合から訓練データとテストデータをランダムにサンプリングし、訓練データを用いてモデルを学習し、テストデータを用いてモデルの予測性能を算出する。機械学習装置１００は、サンプリングとモデルの学習と予測性能の評価をＫ回繰り返す。
【００５２】
各サンプリングは、非復元抽出サンプリングである。すなわち、１回のサンプリングの中で、訓練データ内に同じ単位データは重複して含まれず、テストデータ内に同じ単位データは重複して含まれない。また、１回のサンプリングの中で、訓練データとテストデータに同じ単位データは重複して含まれない。ただし、Ｋ回のサンプリングの間で、同じ単位データが選択されることはあり得る。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。
【００５３】
ところで、訓練データからモデルを学習する手順（機械学習アルゴリズム）には様々なものが存在する。機械学習装置１００は、複数の機械学習アルゴリズムを使用することができる。機械学習装置１００が使用できる機械学習アルゴリズムの数は、数十〜数百程度であってもよい。機械学習アルゴリズムの一例として、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなどを挙げることができる。
【００５４】
ロジスティック回帰分析は、目的変数ｙの値と説明変数ｘ１，ｘ２，…，ｘｋの値をＳ字曲線にフィッティングする回帰分析である。目的変数ｙおよび説明変数ｘ１，ｘ２，…，ｘｋは、ｌｏｇ（ｙ／（１−ｙ））＝ａ１ｘ１＋ａ２ｘ２＋…＋ａｋｘｋ＋ｂの関係を満たすと仮定される。ａ１，ａ２，…，ａｋ，ｂは係数であり、回帰分析によって決定される。
【００５５】
サポートベクタマシンは、空間に配置された単位データの集合を、２つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離（マージン）が最大になるように算出される。
【００５６】
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、母集合から単位データをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングした単位データを分類する。説明変数の選択と単位データの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。単位データのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、単位データを分類するための最終的なモデルを生成する。
【００５７】
なお、機械学習アルゴリズムは、その挙動を制御するための１以上のハイパーパラメータをもつことがある。ハイパーパラメータは、モデルに含まれる係数（パラメータ）と異なり機械学習を通じて値が決定されるものではなく、機械学習アルゴリズムの実行前に値が与えられるものである。ハイパーパラメータの例として、ランダムフォレストにおける決定木の生成本数、回帰分析のフィッティング精度、モデルに含まれる多項式の次数などが挙げられる。ハイパーパラメータの値として、固定値が使用されることもあるし、ユーザから指定された値が使用されることもある。生成されるモデルの予測性能は、ハイパーパラメータの値にも依存する。機械学習アルゴリズムとサンプルサイズが同じでも、ハイパーパラメータの値が変わるとモデルの予測性能も変化し得る。
【００５８】
第２の実施の形態では、機械学習アルゴリズムの種類が同じでハイパーパラメータの値が異なる場合、異なる機械学習アルゴリズムを使用したものとして取り扱ってもよい。機械学習アルゴリズムの種類とハイパーパラメータの値の組み合わせを、コンフィギュレーションと言うこともある。すなわち、機械学習装置１００は、異なるコンフィギュレーションを異なる機械学習アルゴリズムとして取り扱ってもよい。
【００５９】
図４は、学習時間と予測性能の関係例を示すフラグである。
曲線２２〜２４は、著名なデータ集合（ＣｏｖｅｒＴｙｐｅ）を用いて測定された学習時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線２２は、機械学習アルゴリズムとしてロジスティック回帰分析を用いた場合の学習時間と予測性能の間の関係を示す。曲線２３は、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の学習時間と予測性能の間の関係を示す。曲線２４は、機械学習アルゴリズムとしてランダムフォレストを用いた場合の学習時間と予測性能の間の関係を示す。なお、図４の横軸は、学習時間について対数目盛になっている。
【００６０】
曲線２２が示すように、ロジスティック回帰分析を使用した場合、サンプルサイズ＝８００における予測性能は約０．７１、学習時間は約０．２秒である。サンプルサイズ＝３２００における予測性能は約０．７５、学習時間は約０．５秒である。サンプルサイズ＝１２８００における予測性能は約０．７５５、学習時間は１．５秒である。サンプルサイズ＝５１２００における予測性能は約０．７６、学習時間は約６秒である。
【００６１】
曲線２３が示すように、サポートベクタマシンを使用した場合、サンプルサイズ＝８００における予測性能は約０．７０、学習時間は約０．２秒である。サンプルサイズ＝３２００における予測性能は約０．７７、学習時間は約２秒である。サンプルサイズ＝１２８００における予測性能は約０．７８５、学習時間は約２０秒である。
【００６２】
曲線２４が示すように、ランダムフォレストを使用した場合、サンプルサイズ＝８００における予測性能は約０．７４、学習時間は約２．５秒である。サンプルサイズ＝３２００における予測性能は約０．７９、学習時間は約１５秒である。サンプルサイズ＝１２８００における予測性能は約０．８２、学習時間は約２００秒である。
【００６３】
このように、上記のデータ集合に対しては、ロジスティック回帰分析は全体的に学習時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰分析よりも学習時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に学習時間が長く予測性能が高い。ただし、図４の例では、サンプルサイズが小さい場合のサポートベクタマシンの予測性能は、ロジスティック回帰分析の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。
【００６４】
また、前述のように、個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、機械学習装置１００は、以下のように複数の機械学習アルゴリズムを使用して、予測性能の高いモデルを効率的に得られるようにする。
【００６５】
図５は、複数の機械学習アルゴリズムの使用例を示す図である。
ここでは説明を簡単にするため、機械学習アルゴリズムＡ，Ｂ，Ｃの３つの機械学習アルゴリズムが存在する場合を考える。機械学習アルゴリズムＡのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３１，３２，３３（Ａ１，Ａ２，Ａ３）が順に実行される。機械学習アルゴリズムＢのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３４，３５，３６（Ｂ１，Ｂ２，Ｂ３）が順に実行される。機械学習アルゴリズムＣのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３７，３８，３９（Ｃ１，Ｃ２，Ｃ３）が順に実行される。なお、ここでは、学習ステップ３３，３６，３９でそれぞれ停止条件が満たされるものと仮定する。
【００６６】
学習ステップ３１，３４，３７のサンプルサイズは同じである。例えば、学習ステップ３１，３４，３７の単位データ数はそれぞれ１万である。学習ステップ３２，３５，３８のサンプルサイズは同じであり、学習ステップ３１，３４，３７のサンプルサイズの２倍または４倍程度である。例えば、学習ステップ３２，３５，３８の単位データ数はそれぞれ４万である。学習ステップ３３，３６，３９のサンプルサイズは同じであり、学習ステップ３２，３５，３８のサンプルサイズの２倍または４倍程度である。例えば、学習ステップ３３，３６，３９の単位データ数はそれぞれ１６万である。
【００６７】
機械学習装置１００は、各機械学習アルゴリズムについて、サンプルサイズが１段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して実行する。学習ステップを１つ進める毎に、改善速度の推定値が見直される。このため、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に使用する機械学習アルゴリズムが限定されていく。
【００６８】
改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値（達成予測性能と言うことがある）との差である。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプルサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプルサイズとに基づいて推定される。
【００６９】
機械学習装置１００は、機械学習アルゴリズムＡの学習ステップ３１と、機械学習アルゴリズムＢの学習ステップ３４と、機械学習アルゴリズムＣの学習ステップ３７とを実行する。機械学習装置１００は、学習ステップ３１，３４，３７の実行結果に基づいて、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムＡの改善速度＝２．５、機械学習アルゴリズムＢの改善速度＝２．０、機械学習アルゴリズムＣの改善速度＝１．０と推定されたとする。すると、機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＡを選択し、学習ステップ３２を実行する。
【００７０】
学習ステップ３２が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．７３、機械学習アルゴリズムＢの改善速度＝１．０、機械学習アルゴリズムＣの改善速度＝０．５と推定されたとする。学習ステップ３２によって達成予測性能が上昇したため、機械学習アルゴリズムＢ，Ｃの改善速度も低下している。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３５を実行する。
【００７１】
学習ステップ３５が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．０、機械学習アルゴリズムＢの改善速度＝０．８、機械学習アルゴリズムＣの改善速度＝０．０と推定されたとする。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３６を実行する。学習ステップ３６によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムＡの学習ステップ３３や機械学習アルゴリズムＣの学習ステップ３８，３９は実行されない。
【００７２】
このように、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
【００７３】
次に、予測性能の推定について説明する。
図６は、予測性能の分布例を示すグラフである。
あるサンプルサイズに対する予測性能の実測値は、機械学習アルゴリズムとデータの母集合の性質とから決まる期待値から乖離するリスクがある。すなわち、同じデータ母集合を使用しても、訓練データおよびテストデータの選択の偶然性などによって、予測性能の実測値にばらつきが生じる。予測性能のばらつきは、サンプルサイズが小さいほど大きく、サンプルサイズが大きいほど小さくなる傾向にある。すなわち、サンプルサイズによって予測性能のばらつきの程度（標準偏差や分散）が異なるという異分散性がある。
【００７４】
グラフ４１は、サンプルサイズと予測性能との間の関係を示す。ここでは、同じ機械学習アルゴリズムおよび同じデータ母集合を用いて、サンプルサイズ１つ当たり５０回ずつ学習ステップを実行している。グラフ４１は、１つのサンプルサイズにつき５０個の予測性能の実測値をプロットしたものである。なお、グラフ４１では、予測性能の指標として、値が大きいほど予測性能が高いことを示す正答率を用いている。
【００７５】
この例では、グラフ４１に示すように、サンプルサイズが「１００」の場合の予測性能の実測値は、約０．５８〜０．６８であり広範囲に広がっている。サンプルサイズが「５００」の場合の予測性能の実測値は、約０．６９〜０．７５であり、サンプルサイズが「１００」の場合よりもその範囲が狭くなっている。以降、サンプルサイズが大きくなるに従い、予測性能の実測値の範囲は狭くなる。サンプルサイズが十分に大きくなると、予測性能の実測値は約０．７６に収束している。
【００７６】
上記のように、機械学習装置１００は、機械学習アルゴリズム毎に、次の学習ステップを実行した場合に達成される予測性能を推定する。予測性能の推定のため、機械学習装置１００は、それまでに取得した予測性能の実測値に基づいて予測性能曲線を推定する。しかし、予測性能の実測値（特に、小さなサンプルサイズにおける予測性能の実測値）は、期待値から乖離することがある。よって、予測性能曲線の推定精度が問題となる。これに対し、機械学習装置１００は、以下のようにして予測性能曲線を推定する。
【００７７】
まず、バイアス・バリアンス分解の考え方について説明する。バイアス・バリアンス分解は、１つの機械学習アルゴリズムの良否や機械学習アルゴリズムに適用するハイパーパラメータの良否を評価するために用いられることがある。バイアス・バリアンス分解では、ロス（損失）とバイアスとバリアンスという３つの指標が用いられる。ロス＝バイアスの二乗＋バリアンスという関係が成立する。
【００７８】
ロスは、機械学習によって生成されるモデルが予測を外す度合いを示す指標である。ロスの種類には０−１ロスや二乗ロスなどがある。０−１ロスは、予測に成功すれば０を付与し予測に失敗すれば１を付与することで算出されるロスであり、その期待値は予測が失敗する確率を示す。予測が外れることが少ないほど０−１ロスの期待値は小さく、予測が外れることが多いほど０−１ロスの期待値は大きい。二乗ロスは、予測値と真の値との差（予測誤差）の二乗である。予測誤差が小さいほど二乗ロスは小さく、予測誤差が大きいほど二乗ロスは大きい。期待ロス（ロスの期待値）と予測性能とは相互に変換できる。予測性能が正答率（Accuracy）でありロスが０−１ロスである場合、期待ロス＝１−予測性能である。予測性能が平均二乗誤差（ＭＳＥ）でありロスが二乗ロスである場合、期待ロス＝ＭＳＥである。予測性能が二乗平均平方根誤差（ＲＭＳＥ）でありロスが二乗ロスである場合、期待ロス＝ＲＭＳＥの二乗である。
【００７９】
バイアスは、機械学習によって生成されるモデルの予測値が真の値に対して偏る程度を示す指標である。バイアスが小さいほど精度の高いモデルであると言うことができる。バリアンスは、機械学習によって生成されるモデルの予測値がばらつく程度を示す指標である。バリアンスが小さいほど精度の高いモデルであると言うことができる。ただし、バイアスとバリアンスの間にはトレードオフの関係があることが多い。
【００８０】
次数の小さい多項式など複雑性の低いモデル（表現力の低いモデルと言うこともできる）では、モデルの係数をどのように調整しても、複数のサンプルケースの全てについて真の値に近い予測値を出力するようにすることは難しい。すなわち、複雑性の低いモデルを用いると複雑な事象を表現できない。よって、複雑性の低いモデルのバイアスは大きくなる傾向にある。この点、次数の大きい多項式など複雑性の高いモデル（表現力の高いモデルと言うこともできる）では、モデルの係数を適切に調整することで、複数のサンプルケースの全てについて真の値に近い予測値を出力することができる余地がある。よって、複雑性の高いモデルのバイアスは小さくなる傾向にある。
【００８１】
一方で、複雑性の高いモデルでは、訓練データとして使用するサンプルケースの特徴に過度に依存したモデルが生成されるという過学習が生じるリスクがある。過学習によって生成されたモデルは、他のサンプルケースについて適切な予測値を出力できないことが多い。例えば、ｎ次の多項式を用いると、ｎ＋１個のサンプルケースについて真の値と完全に一致する予測値を出力するモデル（残差が０のモデル）を生成できる。しかし、あるサンプルケースについて残差が０になるモデルは、通常は過度に複雑なモデルであり、他のサンプルケースについて予測誤差が著しく大きい予測値を出力してしまうリスクが高くなる。よって、複雑性の高いモデルのバリアンスは大きくなる傾向にある。この点、複雑性の低いモデルでは、予測誤差が著しく大きい予測値を出力してしまうリスクは低く、バリアンスは小さくなる傾向にある。このように、ロスの成分としてのバイアスとバリアンスは、モデルを生成する機械学習アルゴリズムの特性に依存している。
【００８２】
次に、ロスとバイアスとバリアンスの形式的定義を説明する。ここでは、二乗ロスをバイアスとバリアンスに分解する例について説明する。
同一のデータ母集合からＫ個の訓練データＤｋ（ｋ＝１，２，…，Ｋ）が抽出され、Ｋ個のモデルが生成されたとする。また、上記のデータ母集合からｎ個のテストケースを含むテストデータＴが抽出されたとする。ｉ番目のテストケースは、説明変数の値Ｘｉと目的変数の真の値Ｙｉとを含む（ｉ＝１，２，…，ｎ）。ｋ番目のモデルからは説明変数の値Ｘｉに対して目的変数の予測値ｙｉｋが算出される。
【００８３】
すると、ｋ番目のモデルとｉ番目のテストケースとの間で算出される予測誤差ｅｉｋはｅｉｋ＝Ｙｉ−ｙｉｋと定義され、そのロス（二乗ロス）はｅｉｋ２と定義される。ｉ番目のテストケースに対しては、バイアスＢｉとバリアンスＶｉとロスＬｉが定義される。バイアスＢｉはＢｉ＝ＥＤ［ｅｉｋ］と定義される。ＥＤ［］はＫ個の訓練データの間の平均値（期待値）を表す。バリアンスＶｉはＶｉ＝ＶＤ［ｅｉｋ］と定義される。ＶＤ［］はＫ個の訓練データの間の分散を表す。ロスＬｉはＬｉ＝ＥＤ［ｅｉｋ２］と定義される。前述のロスとバイアスとバリアンスの間の関係からＬｉ＝Ｂｉ２＋Ｖｉが成立する。
【００８４】
テストデータＴ全体に対しては、期待バイアスＥＢ２と期待バリアンスＥＶと期待ロスＥＬが定義される。期待バイアスＥＢ２はＥＢ２＝Ｅｘ［Ｂｉ２］と定義される。Ｅｘ［］はｎ個のテストケースの間の平均値（期待値）を表す。期待バリアンスＥＶはＥＶ＝Ｅｘ［Ｖｉ］と定義される。期待ロスＥＬはＥＬ＝Ｅｘ［Ｌｉ］と定義される。前述のロスとバイアスとバリアンスの間の関係からＥＬ＝ＥＢ２＋ＥＶが成立する。
【００８５】
次に、予測性能曲線を推定するにあたって、各サンプルサイズで測定される予測性能に生じるばらつき度（分散度）を推定する方法を説明する。第２の実施の形態では、予測性能の分散の推定に上記のバイアス・バリアンス分解の考え方を応用する。
【００８６】
本出願の発明者らは、各サンプルサイズにおける予測性能の分散が、次の数式によって近似されることを発見した。ＶＬｊ＝Ｃ×（ＥＬｊ＋ＥＢ２）×（ＥＬｊ−ＥＢ２）。ＶＬｊはサンプルサイズｓｊにおける予測性能の分散を表す。Ｃは所定の定数である。第２の実施の形態では複数のサンプルサイズの間の分散ＶＬｊの比を予測性能曲線の推定に利用するため、定数Ｃの値は不明であってもよい。例えば、Ｃ＝１と仮定してもよい。ＥＬｊはサンプルサイズｓｊにおける期待ロスを表す。ＥＢ２は機械学習アルゴリズムの期待バイアスを表す。以下、この数式の意味について説明を加える。
【００８７】
図７は、サンプルサイズとロスの関係例を示すグラフである。
曲線４２はサンプルサイズとロスの推定値との間の関係を示すロス曲線である。図３では縦軸が予測性能であるのに対し、図７では縦軸がロスに変換されている。前述のように予測性能とロスは、予測性能の指標とロスの指標に応じて相互に変換可能である。曲線４２は、サンプルサイズの増加に応じてロスが単調に減少し一定の下限ロスに漸近する非線形曲線である。サンプルサイズが小さいうちはロスの減少量が大きく、サンプルサイズが大きくなるとロスの減少量が小さくなっていく。
【００８８】
サンプルサイズｓｊにおける曲線４２上の点のロス（ロス＝０から曲線４２上の点までの距離）は、サンプルサイズｓｊの期待ロスＥＬｊに相当する。曲線４２によって特定される下限ロスは、図３の曲線２１によって特定される予測性能上限に対応しており、０より大きい値である。例えば、予測性能上限をｃとおくと、予測性能が正答率（Accuracy）である場合、下限ロスは１−ｃとなる。予測性能が平均二乗誤差（ＭＳＥ）である場合、下限ロスはｃとなる。予測性能が二乗平均平方根誤差（ＲＭＳＥ）である場合、下限ロスはｃ２となる。下限ロスは、この機械学習アルゴリズムにとっての期待バイアスＥＢ２に相当する。サンプルサイズが十分大きくなると、機械学習に使用する訓練データの特徴がデータ母集合の特徴に一致し、期待バリアンスが０に近づくためである。
【００８９】
期待ロスＥＬｊと期待バイアスＥＢ２の差は、サンプルサイズｓｊにおけるギャップと言うことができる。ギャップは、サンプルサイズを大きくすることでその機械学習アルゴリズムがロスを低減できる余地を表している。ギャップは、図３の曲線２１上の点と予測性能上限との間の距離に対応し、サンプルサイズを大きくすることでその機械学習アルゴリズムが予測性能を改善できる余地を表しているとも言える。ギャップは、サンプルサイズｓｊにおける期待バリアンスの影響を受ける。
【００９０】
ここで、分散ＶＬｊの近似式は、ＥＬｊ＋ＥＢ２という項とＥＬｊ−ＥＢ２という項を含む。これは、分散ＶＬｊは、期待ロスと期待バイアスの和に比例する側面と、期待ロスと期待バイアスの差であるギャップに比例する側面を有していることを意味している。
【００９１】
期待バイアスＥＢ２が十分に小さい、すなわち、予測性能上限が十分に大きい機械学習アルゴリズムでは、サンプルサイズがある程度大きくなってもＥＬｊ＋ＥＢ２の値とＥＬｊ−ＥＢ２の値は共に変化する。また、この場合にはＥＬｊ＋ＥＢ２の値はＥＬｊ−ＥＢ２の値に近似する。よって、分散ＶＬｊは全体としてギャップの二乗に比例する傾向にある。一方、期待バイアスＥＢ２が十分に大きい、すなわち、予測性能上限が十分に大きいとは言えない機械学習アルゴリズムでは、サンプルサイズがある程度大きくなるとＥＬｊ＋ＥＢ２の値はほとんど変化しなくなり、早期に定数化する。よって、分散ＶＬｊは全体としてギャップに比例する傾向にある。このように、機械学習アルゴリズムによって、分散ＶＬｊが概ねギャップの二乗に比例する場合とギャップに比例する場合とがある。
【００９２】
後述するように第２の実施の形態では、上記のＶＬｊ＝Ｃ×（ＥＬｊ＋ＥＢ２）×（ＥＬｊ−ＥＢ２）という性質を利用して、異分散性のもとで予測性能曲線を推定する。
次に、予測性能曲線に対する予測性能の推定値の振れについて説明する。
【００９３】
上記のように機械学習装置１００は、性能改善量の推定値を実行時間の推定値で割った改善速度の推定値を使用する。ここで言う性能改善量の推定値としては、予測性能のばらつきを考慮して、予測性能曲線上の期待値ではなく期待値よりも大きな値を用いることが好ましい。これにより、予測性能が期待値よりも大きく上振れする可能性のある機械学習アルゴリズムを切り捨ててしまうリスクが低減される。
【００９４】
予測性能のばらつきの程度を示す情報（分散情報）としては、信頼区間、予測区間、分散、標準偏差、確率分布などが挙げられる。信頼区間は、回帰分析によって算出された回帰曲線上の点（期待値）に対する信頼区間である。９５％信頼区間は、回帰曲線に基づく推定値が期待値の周りに確率分布するとき、推定値の小さい方から累積した累積確率が２．５％から９７．５％である範囲を指す。予測区間は、信頼区間に誤差分布を付加した区間である。回帰曲線に基づく推定値の分布は更に誤差に応じて広がっており、予測区間はその広がりを考慮したものである。９５％予測区間は、誤差分布を加えた確率分布において累積確率が２．５％から９７．５％である範囲を指す。
【００９５】
信頼区間、予測区間、分散、標準偏差、確率分布などの分散情報は、相互に変換可能であることが多く、１つの分散情報を求めれば他の分散情報も算出できることが多い。第２の実施の形態では、分散情報の代表として９５％信頼区間を算出する。機械学習装置１００は、改善速度の算出に用いる予測性能の推定値として、９５％信頼区間の上限値（ＵＣＢ：Upper Confidence Bound）を使用する。これは、予測性能が期待値より上振れする可能性を数量的に評価したものである。ただし、ＵＣＢに代えて、予測性能の確率分布を積分して、予測性能が達成予測性能を超える確率（ＰＩ：Probability of Improvement）を算出することもできる。また、予測性能の確率分布を積分して、予測性能が達成予測性能を超える期待値（ＥＩ：Expected Improvement）を算出することもできる。
【００９６】
ここで、予測性能曲線は異分散性をもっていることから、各サンプルサイズに対する信頼区間をどのように算出すればよいかが問題となる。以下では、２つの算出方法の例を挙げ、その後に機械学習装置１００が採用する第３の算出方法を説明する。まず、信頼区間の算出方法の説明で使用する記号を定義する。
【００９７】
予測性能曲線（学習曲線と言うこともできる）はｙ＝ｆ（ｘ；θ）と定義される。ｙは予測性能推定値、ｆは予測性能曲線を示す関数、ｘはサンプルサイズ、θは予測性能曲線の形状を決定するパラメータの集合であるパラメータベクタである。第２の実施の形態では一例として、ｆ（ｘ；θ）＝ｃ−ａ・ｘ−ｄを用いる。この予測性能曲線の形状はパラメータａ，ｃ，ｄで決定されるため、θ＝＜ａ，ｃ，ｄ＞である。ただし、ｄ＞０である。また、誤差を含んだ予測性能曲線はＹ＝ｆ（ｘ；θ）＋ε｜ｘ，θと定義される。Ｙは誤差を含む予測性能推定値を示す確率変数である。ε｜ｘ，θは、分散がｘやθに依存するという異分散性をもち、期待値が０である誤差を示す確率変数である。誤差の分散が定数にならないことが、異分散性が成立する（等分散性が成立しない）ことを意味する。
【００９８】
予測性能曲線の推定に用いるデータはＸ＝｛＜ｘ，ｙ＞｝である。ｘはサンプルサイズ、ｙは予測性能実測値である。また、以下の尤度関数、事後確率（事後確率関数）および誤差確率密度関数が定義されているとする。尤度関数はＬ（θ；Ｘ）＝Ｐ（Ｘ｜θ）、事後確率はＰｐｏｓｔｅｒｉｏｒ（θ｜Ｘ）、ε｜ｘ，θの誤差確率密度関数はｆｅｒｒ（ε；ｘ，θ）である。尤度関数は、決定されたパラメータベクタθに従う予測性能曲線のもとで、データＸが観測される確率を表す。事後確率は、データＸのもとで、決定されたパラメータベクタθが正しい確率を表す。尤度関数と事後確率は何れか一方のみ与えられてもよい。
【００９９】
尤度関数Ｌ（θ；Ｘ）、事後確率Ｐｐｏｓｔｅｒｉｏｒ（θ｜Ｘ）および誤差確率密度関数ｆｅｒｒ（ε；ｘ，θ）の定義例を説明する。誤差ε｜ｘ，θは、期待値０かつ分散ｖ（ｘ，θ）＝（ｆ（ｘ；θ）−ｃ）２／１６の正規分布に従うと仮定する。この場合、誤差確率密度関数は、ｆｅｒｒ（ε；ｘ，θ）＝１／（２πｖ（ｘ，θ））０．５・ｅｘｐ（−ε２／（２ｖ（ｘ，θ）））と定義される。パラメータベクタθに対する尤度関数は、Ｌ（θ；Ｘ）＝Ｐ（Ｘ｜θ）＝Πｉｆｅｒｒ（ｆ（ｘｉ；θ）−ｙｉ；ｘｉ，θ）と定義される。ｘｉ，ｙｉはデータＸに含まれるｉ番目の要素＜ｘｉ，ｙｉ＞の成分である。
【０１００】
事後確率は、Ｐｐｏｓｔｅｒｉｏｒ（θ｜Ｘ）＝Ｐ（Ｘ｜θ）・Ｐｐｒｉｏｒ（θ）／Σθ’（Ｐ（Ｘ｜θ’）・Ｐ（θ’））と定義される。Σθ’（Ｐ（Ｘ｜θ’）・Ｐ（θ’））は正規化のための定数であるためＣ１と置き換える。ａ，ｃの事前分布を一様分布、ｄの事前分布をガンマ分布Ｇａｍｍａ（２，１／３）と仮定すると、事前確率Ｐｐｒｉｏｒ（θ）は正規化定数Ｃ２を用いて、Ｐｐｒｉｏｒ（θ）＝Ｃ２・９ｄ／ｅｘｐ（３ｄ）と定義される。よって、事後確率は正規化定数Ｃ３＝Ｃ２／Ｃ１を用いて、Ｐｐｏｓｔｅｒｉｏｒ（θ｜Ｘ）＝Ｃ３・Ｌ（θ；Ｘ）・９ｄ／ｅｘｐ（３ｄ）と定義される。
【０１０１】
以上の記号を用いて、信頼区間の３つの算出方法を説明する。
図８は、信頼区間の第１の算出方法の例を示す図である。
信頼区間の第１の算出方法は、単純サンプリング法である。第１の算出方法は、マルコフ連鎖モンテカルロ（ＭＣＭＣ）法などを用いてパラメータ空間５１から複数のパラメータベクタをサンプリングする。そして、データ空間５２において、サンプリングした複数のパラメータベクタに従う複数の予測性能曲線を用いて、サンプルサイズｘ０における予測性能の推定値の確率分布を近似する。
【０１０２】
まず、回帰分析により決定されたパラメータベクタθに対する尤度関数Ｌ（θ；Ｘ）または事後確率Ｐｐｏｓｔｅｒｉｏｒ（θ｜Ｘ）を確率密度関数として用いて、パラメータ空間５１から５００００個のパラメータベクタをサンプリングする。パラメータベクタのサンプリングには、Ｍｅｔｒｏｐｏｌｉｓ−ＨａｓｔｉｎｇアルゴリズムなどのＭＣＭＣ法を用いる。回帰分析により決定されたθに近いパラメータベクタほど多くサンプリングされ、決定されたθから遠いパラメータベクタほど少なくサンプリングされる。
【０１０３】
次に、データ空間５２において、サンプリングされた５００００個のパラメータベクタθｉ（ｉ＝１，２，…，５００００）に対応する５００００個の予測性能曲線ｆ（ｘ；θｉ）を想定し、所望のサンプルサイズｘ０における５００００個の予測性能ｙｉ＝ｆ（ｘ０；θｉ）を算出する。５００００個の予測性能により、サンプルサイズｘ０における推定値の確率分布が近似される。５００００個の予測性能のうち小さい方から２．５％（２．５％分位点）の予測性能をａ、小さい方から９７．５％（９７．５％分位点）の予測性能をｂとすると、サンプルサイズｘ０における９５％信頼区間は（ａ，ｂ）と算出される。
【０１０４】
第１の算出方法は、高い精度で信頼区間を算出するためには多数のパラメータベクタをサンプリングすることになり、計算負荷が高く計算時間が長いという問題がある。
図９は、信頼区間の第２の算出方法の例を示す図である。
【０１０５】
信頼区間の第２の算出方法は、重み付きサンプリング法である。第２の算出方法は、パラメータ空間５３を所定幅のグリッドに分割し、各グリッドから１つの代表値（例えば、各グリッドの中心値）であるパラメータベクタをサンプリングする。また、サンプリングしたパラメータベクタ毎に重みを決定する。そして、データ空間５４において、サンプリングした複数のパラメータベクタに従う複数の予測性能曲線と重みを用いて、サンプルサイズｘ０における予測性能の推定値の確率分布を近似する。
【０１０６】
まず、パラメータ空間５３を１０００個程度のグリッドに分割し、グリッド毎に代表点であるパラメータベクタθｉ（ｉ＝１，２，…，１０００）を選択する。また、各グリッドの確率を尤度関数または事後確率を用いて、ｐｉ＝Ｌ（θｉ｜Ｘ）またはｐｉ＝Ｐｐｏｓｔｅｒｉｏｒ（θｉ｜Ｘ）と算出し、パラメータベクタθｉに対応する重みとする。
【０１０７】
次に、データ空間５４において、サンプリングされた１０００個のパラメータベクタθｉに対応する１０００個の予測性能曲線ｆ（ｘ；θｉ）を想定し、所望のサンプルサイズｘ０における１０００個の予測性能ｙｉ＝ｆ（ｘ０；θｉ）を算出する。１０００個の予測性能とその重みにより、サンプルサイズｘ０における推定値の確率分布が近似される。１０００個の重み付き予測性能のうち、累積重みが２．５％になる予測性能（重み付き２．５％分位点）をａ、累積重みが９７．５％になる予測性能（重み付き９７．５％分位点）をｂとすると、サンプルサイズｘ０における９５％信頼区間は（ａ，ｂ）と算出される。
【０１０８】
第２の算出方法は、第１の算出方法よりもサンプリングするパラメータベクタを減らすことができる。一方で、第２の算出方法は、パラメータ空間５３をグリッドに分割する方法が問題となる。グリッド幅を大きくすると信頼区間の算出精度が低下し、グリッド幅を小さくすると計算負荷が高くなり計算時間が長くなる。また、回帰分析により決定されたθの近くのみグリッドを形成すると信頼区間の算出精度が低下し、θの遠くまでグリッドを形成すると計算負荷が高くなり計算時間が長くなる。なお、上記ではパラメータ空間５３をグリッドに分割する方法を説明したが、パラメータ空間５３から一様にパラメータベクタをサンプリングする方法など他の方法でも同様の問題が生じ得る。
【０１０９】
これに対し、第２の実施の形態の機械学習装置１００は、次に説明する第３の算出方法によって、所望のサンプルサイズにおける推定値の信頼区間を算出する。
図１０は、信頼区間の第３の算出方法の例を示す図である。
【０１１０】
上記の第２の算出方法は、パラメータ空間５３において適切なパラメータベクタを選択する基準が不明であった。それに対して第３の算出方法は、誤差を考慮した予測性能曲線は、最も確率が高い予測性能曲線、すなわち、回帰分析で決定された１つの予測性能曲線の周辺に多く分布するという性質を利用する。データ空間５５において誤差を考慮した複数の予測性能曲線をサンプリングし、それら複数の予測性能曲線をパラメータ空間５６の複数のパラメータベクタにマッピングしてパラメータベクタ毎の確率を求める。そして、パラメータ空間５６における確率をデータ空間５７における確率に変換して予測性能曲線毎の重みを求め、サンプルサイズｘ０における予測性能の推定値の確率分布を近似する。
【０１１１】
ここでは、パラメータベクタに含まれるパラメータの数（θの次元数）をＭとする。θ＝＜ａ，ｃ，ｄ＞である場合はＭ＝３である。まず、機械学習装置１００は、データＸから回帰分析により予測性能曲線ｆ（ｘ；θ０）を生成する。θ０は回帰分析により決定される最も確率が高いパラメータベクタである。次に、機械学習装置１００は、データＸに含まれるサンプルサイズ（実行済みのサンプルサイズ）の範囲の中からＭ個の異なるサンプルサイズｘ１，ｘ２，…，ｘＭ（ｘ１＜ｘ２＜…＜ｘＭ）を選択する。Ｍ＝３である場合はサンプルサイズｘ１，ｘ２，ｘ３（ｘ１＜ｘ２＜ｘ３）を選択する。選択するＭ個のサンプルサイズは偏らないことが好ましい。例えば、ｘ１をデータＸの中の２５％分位点、ｘ３をデータＸの中の７５％分位点、ｘ２をｘ１とｘ３の相乗平均（ｘ２＝（ｘ１・ｘ３）０．５）とする。
【０１１２】
次に、機械学習装置１００は、各サンプルサイズｘｉについて、誤差確率密度関数ｆｅｒｒ（ε；ｘ，θ）を用いて、確率が所定の閾値（例えば、１０−６）以上であるｙｉの範囲［ａｉ，ｂｉ］を求める。例えば、誤差確率密度関数ｆｅｒｒ（ε；ｘ１，θ）が標準正規分布の確率密度関数である場合、ｙ１の範囲はｆ（ｘ１；θ０）−４．７５≦ｙ１≦ｆ（ｘ１；θ０）＋４．７５となる。機械学習装置１００は、サンプルサイズｘｉ毎に範囲［ａｉ，ｂｉ］から１点の予測性能をサンプリングし、サンプル点列Ｙｊ＝＜ｙ１，ｙ２，…，ｙＭ＞を生成する。Ｍ＝３である場合、機械学習装置１００はサンプル点列Ｙｊ＝＜ｙ１，ｙ２，ｙ３＞を生成する。サンプル点列Ｙｊのサンプリングは、［ａ１，ｂ１］×［ａ２，ｂ２］×…×［ａＭ，ｂＭ］の中からの一様サンプリングである。この一様サンプリングは、準乱数（超一様分布列）を用いることで効率的に行うことができる。なお、一様分布に従ってサンプリングする代わりに、等間隔にサンプリングすることも可能である。
【０１１３】
機械学習装置１００は、上記のサンプリングをＮ回繰り返すことでＮ個のサンプル点列Ｙ１，Ｙ２，…，ＹＮを生成する。例えば、Ｎ＝９Ｍとする。Ｍ＝３である場合、Ｎ＝７２９であるため７２９個のサンプル点列Ｙ１，Ｙ２，…，Ｙ７２９が生成される。このように、データ空間５５においてθ０の周辺でサンプリングが行われる。なお、選択するサンプルサイズの数は、θの次元数Ｍより大きくてもよい。選択するサンプルサイズの数をＭ以上にすることで、１つのサンプル点列から１つの予測性能曲線を導出できる。選択するサンプルサイズの数をＭとした場合、１つのサンプル点列に含まれるＭ個の点を全て通る単一の予測性能曲線を確定できる。この場合は数式に従って解析的にＭ個のパラメータを算出することが可能である。一方、選択するサンプルサイズの数をＭより大きくした場合、回帰分析によって最良の予測性能曲線を算出できる。
【０１１４】
次に、機械学習装置１００は、Ｎ個のサンプル点列Ｙｊに対応するＮ個のパラメータベクタθｊを算出する。選択するサンプルサイズの数をＭとした場合、１つのパラメータベクタは１つのサンプル点列の全ての点を通る予測性能曲線を表している。パラメータベクタθｊは解析的に解いてもよいし回帰分析によって算出してもよい。これにより、パラメータ空間５６においてＮ個のパラメータベクタθｊがサンプリングされたことになる。これらのパラメータベクタθｊはθ０を中心として適切にサンプリングされたものである。
【０１１５】
次に、機械学習装置１００は、Ｎ個のパラメータベクタθｊそれぞれについて、データＸ上での生起確率ｑｊを算出する。生起確率は、尤度関数を用いてｑｊ＝Ｌ（θｊ；Ｘ）と算出するか、または、事後確率を用いてｑｊ＝Ｐｐｏｓｔｅｒｉｏｒ（θｊ｜Ｘ）と算出する。なお、下に凸の曲線を示すサンプル点列など幾つかのサンプル点列からは、適切なパラメータベクタを算出できない場合がある。その場合には生起確率をｑｊ＝０とすればよい。
【０１１６】
次に、機械学習装置１００は、パラメータ空間５６におけるＮ個のパラメータベクタθｊの生起確率ｑｊを、データ空間５７におけるＮ個のサンプル点列Ｙｊの生起確率ｐｊに変換する。サンプル点列Ｙｊの生起確率ｐｊは、パラメータベクタθｊの生起確率ｑｊを用いて数式（１）のように算出される。数式（１）においてｄｅｔは行列式を表し、Ｊはヤコビ行列を表す。Ｍ＝３の場合のヤコビ行列は数式（２）のように定義される。
【０１１７】
【数１】
2019113915.tif 000003
【０１１８】
【数２】
2019113915.tif 000004
【０１１９】
次に、機械学習装置１００は、データ空間５７において、Ｎ個のパラメータベクタθｊに対応するＮ個の予測性能曲線ｆ（ｘ；θｊ）を想定し、所望のサンプルサイズｘ０におけるＮ個の予測性能ｙｊ＝ｆ（ｘ０；θｊ）を算出する。機械学習装置１００は、Ｎ個のサンプル点列Ｙｊの生起確率ｐｊを、Ｎ個の予測性能ｙｊの重みとして使用する。Ｎ個の予測性能ｙｊと重みｐｊによって、サンプルサイズｘ０における推定値の確率分布が近似される。予測性能ｙｊが重みｐｊで重点サンプリングされたことになる。機械学習装置１００は、累積重みが２．５％になる予測性能（重み付き２．５％分位点）をａ、累積重みが９７．５％になる予測性能（重み付き９７．５％分位点）をｂとし、サンプルサイズｘ０における９５％信頼区間を（ａ，ｂ）と算出する。
【０１２０】
第３の算出方法は、データ空間５５において当初の予測性能曲線の周辺でサンプル点列をサンプリングし、サンプル点列をパラメータ空間５６のパラメータベクタに変換して重みを計算し、データ空間５７でサンプルサイズｘ０の推定値の確率分布を近似する。これにより、適切なパラメータベクタのサンプリングが可能となる。よって、少ないサンプリング数でも信頼区間を精度よく算出することができる。
【０１２１】
次に、機械学習装置１００が行う処理について説明する。
図１１は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、データ記憶部１２１、管理テーブル記憶部１２２、学習結果記憶部１２３、制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５を有する。データ記憶部１２１、管理テーブル記憶部１２２および学習結果記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域を用いて実装される。制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【０１２２】
データ記憶部１２１は、機械学習に使用できるデータの集合を記憶する。データの集合は、それぞれが目的変数の値（結果）と１以上の説明変数の値（要因）とを含む単位データの集合である。データ記憶部１２１に記憶されたデータは、機械学習装置１００または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置１００または他の情報処理装置に対してユーザが入力したものでもよい。
【０１２３】
管理テーブル記憶部１２２は、機械学習の進行を管理する管理テーブルを記憶する。管理テーブルは、学習制御部１３５によって更新される。管理テーブルの詳細は後述する。
学習結果記憶部１２３は、機械学習の結果を記憶する。機械学習の結果には、目的変数と１以上の説明変数との間の関係を示すモデルが含まれる。例えば、各説明変数の重みを示す係数が機械学習によって決定される。また、機械学習の結果には、学習されたモデルの予測性能が含まれる。また、機械学習の結果には、モデルの学習に用いた機械学習アルゴリズムとサンプルサイズを示す情報が含まれる。機械学習アルゴリズムを示す情報には、使用されたハイパーパラメータが含まれることがある。
【０１２４】
制限時間入力部１３１は、機械学習の制限時間の情報を取得し、制限時間を学習制御部１３５に通知する。制限時間の情報は、入力デバイス１１２を通じてユーザから入力されてもよい。また、制限時間の情報は、ＲＡＭ１０２またはＨＤＤ１０３に記憶された設定ファイルから読み出すようにしてもよい。また、制限時間の情報は、ネットワーク１１４を介して他の情報処理装置から受信してもよい。
【０１２５】
ステップ実行部１３２は、複数の機械学習アルゴリズムそれぞれを実行する。ステップ実行部１３２は、学習制御部１３５から、機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、ステップ実行部１３２は、データ記憶部１２１に記憶されたデータを用いて、指定された機械学習アルゴリズムおよび指定されたサンプルサイズについての学習ステップを実行する。すなわち、ステップ実行部１３２は、指定されたサンプルサイズに基づいて、データ記憶部１２１から訓練データとテストデータを抽出する。ステップ実行部１３２は、訓練データおよび指定された機械学習アルゴリズムを用いてモデルを学習し、テストデータを用いて予測性能を算出する。
【０１２６】
モデルの学習と予測性能の算出について、ステップ実行部１３２は、クロスバリデーションやランダムサブサンプリングバリデーションなどの各種のバリデーション方法を使用できる。使用するバリデーション方法は、ステップ実行部１３２に予め設定されてもよい。また、ステップ実行部１３２は、１つの学習ステップに要した実行時間を測定する。ステップ実行部１３２は、モデルと予測性能と実行時間を学習制御部１３５に出力する。
【０１２７】
時間推定部１３３は、ある機械学習アルゴリズムのある学習ステップの実行時間を推定する。時間推定部１３３は、学習制御部１３５から機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、時間推定部１３３は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの実行時間から、実行時間の推定式を生成する。時間推定部１３３は、指定されたサンプルサイズと生成した推定式から実行時間を推定する。時間推定部１３３は、推定した実行時間を学習制御部１３５に出力する。
【０１２８】
性能改善量推定部１３４は、ある機械学習アルゴリズムのある学習ステップの性能改善量を推定する。性能改善量推定部１３４は、学習制御部１３５から機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、性能改善量推定部１３４は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの予測性能から、予測性能の推定式を生成する。性能改善量推定部１３４は、指定されたサンプルサイズと生成した推定式から予測性能を推定する。このとき、性能改善量推定部１３４は、予測性能のばらつきを考慮して、ＵＣＢなど期待値よりも大きい予測性能を用いる。性能改善量推定部１３４は、現在の達成予測性能からの改善量を算出し、学習制御部１３５に出力する。
【０１２９】
学習制御部１３５は、複数の機械学習アルゴリズムを用いた機械学習を制御する。学習制御部１３５は、まず複数の機械学習アルゴリズムそれぞれについて少なくとも１つの学習ステップをステップ実行部１３２に実行させる。学習制御部１３５は、学習ステップが進むと、同じ機械学習アルゴリズムの次の学習ステップの実行時間を時間推定部１３３に推定させ、次の学習ステップの性能改善量を性能改善量推定部１３４に推定させる。学習制御部１３５は、性能改善量を実行時間で割った改善速度を算出する。
【０１３０】
そして、学習制御部１３５は、複数の機械学習アルゴリズムの中から改善速度が最大のものを選択し、選択した機械学習アルゴリズムの次の学習ステップをステップ実行部１３２に実行させる。学習制御部１３５は、改善速度の更新と機械学習アルゴリズムの選択とを、予測性能が所定の停止条件を満たすか学習時間が制限時間を超えるまで繰り返す。学習制御部１３５は、機械学習の停止までに得られたモデルのうち予測性能が最大のモデルを学習結果記憶部１２３に保存する。また、学習制御部１３５は、予測性能と機械学習アルゴリズムの情報とサンプルサイズの情報を学習結果記憶部１２３に保存する。
【０１３１】
図１２は、管理テーブルの例を示す図である。
管理テーブル１２２ａは、学習制御部１３５によって生成されて管理テーブル記憶部１２２に記憶される。管理テーブル１２２ａは、アルゴリズムＩＤ、サンプルサイズ、改善速度、予測性能および実行時間の項目を含む。
【０１３２】
アルゴリズムＩＤの項目には、機械学習アルゴリズムを識別する識別情報が登録される。以下では、ｉ番目（ｉ＝１，２，３，…）の機械学習アルゴリズムのアルゴリズムＩＤをａｉと表記することがある。サンプルサイズの項目には、ある機械学習アルゴリズムについて次に実行すべき学習ステップのサンプルサイズが登録される。以下では、ｉ番目の機械学習アルゴリズムに対応するサンプルサイズをｋｉと表記することがある。
【０１３３】
なお、ステップ番号とサンプルサイズとは１対１に対応する。以下では、ｊ番目の学習ステップのサンプルサイズをｓｊと表記することがある。データ記憶部１２１に記憶されたデータ集合をＤとし、Ｄのサイズ（単位データの数）を｜Ｄ｜とすると、例えば、ｓ１＝｜Ｄ｜／２１０，ｓｊ＝ｓ１×２ｊ−１と決定される。
【０１３４】
改善速度の項目には、機械学習アルゴリズム毎に、次に実行すべき学習ステップの改善速度の推定値が登録される。改善速度の単位は、例えば、［秒−１］である。以下では、ｉ番目の機械学習アルゴリズムに対応する改善速度をｒｉと表記することがある。予測性能の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの予測性能の実測値が列挙される。以下では、ｉ番目の機械学習アルゴリズムのｊ番目の学習ステップで算出された予測性能をｐｉ，ｊと表記することがある。実行時間の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの実行時間の実測値が列挙される。実行時間の単位は、例えば、［秒］である。以下では、ｉ番目の機械学習アルゴリズムのｊ番目の学習ステップの実行時間をＴｉ，ｊと表記することがある。
【０１３５】
図１３は、性能改善量推定部の機能例を示すブロック図である。
性能改善量推定部１３４は、推定式生成部１４１、重み設定部１４２、非線形回帰部１４３、分散推定部１４４、サンプリング部１４５、パラメータ記憶部１４６、予測性能推定部１４７および性能改善量出力部１４８を有する。
【０１３６】
推定式生成部１４１は、ある機械学習アルゴリズムの実行履歴を示すデータＸから、当該機械学習アルゴリズムについてサンプルサイズと予測性能の関係を示す予測性能曲線を推定する。予測性能曲線は、サンプルサイズの増加に応じて予測性能が一定の限界値に漸近する曲線であって、サンプルサイズが小さいうちは予測性能の増加量が大きくサンプルサイズが大きくなると予測性能の増加量が小さくなる曲線である。予測性能曲線は、例えば、ｙ＝ｃ−ａ・ｘ−ｄなどの非線形式によって表される。推定式生成部１４１が生成する予測性能曲線は、データＸのもとで最も確率の高い最良の予測性能曲線である。
【０１３７】
推定式生成部１４１は、データＸに基づいて、最良の予測性能曲線を表すパラメータベクタθ０＝＜ａ，ｃ，ｄ＞を決定するよう重み設定部１４２に指示する。推定式生成部１４１は、決定されたパラメータベクタθ０をサンプリング部１４５に出力する。
【０１３８】
重み設定部１４２は、非線形回帰分析に用いるデータＸの中の各サンプルサイズｘｊに対して重みｗｊを設定する。重み設定部１４２は最初に、重みｗｊをｗｊ＝１に初期化する。重み設定部１４２は、設定した重みｗｊを非線形回帰部１４３に通知し、非線形回帰分析によって算出されたパラメータベクタを非線形回帰部１４３から取得する。重み設定部１４２は、パラメータベクタ＜ａ，ｃ，ｄ＞が十分に収束したか判断する。
【０１３９】
十分に収束したとは言えない場合、重み設定部１４２は、パラメータｃを分散推定部１４４に通知し、パラメータｃに依存する各サンプルサイズｘｊの分散ＶＬｊを分散推定部１４４から取得する。重み設定部１４２は、分散ＶＬｊを用いて重みｗｊを更新する。通常、分散ＶＬｊと重みｗｊは反比例し、ＶＬｊが大きいほどｗｊは小さくなる。例えば、重み設定部１４２はｗｊ＝１／ＶＬｊとする。重み設定部１４２は、更新した重みｗｊを非線形回帰部１４３に通知する。このように、パラメータベクタ＜ａ，ｃ，ｄ＞が十分に収束するまで重みｗｊの更新とパラメータｃの更新が繰り返される。
【０１４０】
非線形回帰部１４３は、重み設定部１４２から通知された重みｗｊを用いて、データＸの＜ｘｊ，ｙｊ＞を上記の非線形式にフィッティングしてパラメータベクタ＜ａ，ｃ，ｄ＞を決定する。非線形回帰部１４３は、決定したパラメータベクタ＜ａ，ｃ，ｄ＞を重み設定部１４２に通知する。非線形回帰部１４３が行う非線形回帰分析は重み付き回帰分析である。重みが小さいサンプルサイズについては相対的に大きな残差が許容され、重みが大きいサンプルサイズについては相対的に残差の制限が強くなる。
【０１４１】
例えば、各サンプルサイズの重みと残差平方の積を合計した評価値が最小になるようにパラメータベクタ＜ａ，ｃ，ｄ＞が決定される。よって、重みが大きいサンプルサイズにおける残差を小さくすることが優先される。通常、サンプルサイズが大きいほど重みが大きいため、大きなサンプルサイズの残差を小さくすることが優先される。
【０１４２】
分散推定部１４４は、重み設定部１４２から通知されたパラメータｃを用いて、データＸの予測性能ｙｊに内包される誤差に関して各サンプルサイズｘｊの分散ＶＬｊを推定する。分散ＶＬｊは、期待バイアスＥＢ２とサンプルサイズｘｊにおける期待ロスＥＬｊとから算出される。具体的には、ＶＬｊ＝Ｃ×（ＥＬｊ＋ＥＢ２）×（ＥＬｊ−ＥＢ２）である。ただし、複数のサンプルサイズの間のＶＬｊの比のみが重要であり各ＶＬｊの大きさ自体は重要でないことから、分散推定部１４４は計算を簡単にするため定数Ｃ＝１とみなす。期待バイアスＥＢ２はパラメータｃから算出される。期待ロスＥＬｊは予測性能ｙｊから算出される。分散推定部１４４は、推定した分散ＶＬｊを重み設定部１４２に通知する。
【０１４３】
サンプリング部１４５は、推定式生成部１４１から取得したパラメータベクタθ０をパラメータ記憶部１４６に格納する。また、サンプリング部１４５は、パラメータベクタθ０を中心としてＮ個のパラメータベクタをサンプリングし、それらＮ個のパラメータベクタに対応するＮ個の重みを算出し、Ｎ組のパラメータベクタと重みをパラメータ記憶部１４６に格納する。例えば、サンプル数Ｎ＝９Ｍとする。
【０１４４】
パラメータベクタのサンプリングは、前述の第３の算出方法に従って行う。サンプリング部１４５は、データ空間５５において、少なくともＭ個のサンプルサイズを選択する。サンプリング部１４５は、データ空間５５において、パラメータベクタθ０が示す予測性能曲線の周辺からサンプルサイズ毎に点を１つサンプリングし、サンプル点列を生成する。サンプリング部１４５は、このサンプリングをＮ回繰り返すことでＮ個のサンプル点列を生成する。サンプリング部１４５は、Ｎ個のサンプル点列をパラメータ空間５６におけるＮ個のパラメータベクタに変換する。サンプリング部１４５は、パラメータ空間５６においてパラメータベクタの生起確率を算出し、パラメータベクタの生起確率をデータ空間５７におけるサンプル点列の生起確率に変換する。これにより、Ｎ個のパラメータベクタとそれに対応するＮ個の重みが生成される。
【０１４５】
パラメータ記憶部１４６は、推定式生成部１４１が決定したパラメータベクタθ０を記憶する。また、パラメータ記憶部１４６は、サンプリング部１４５がサンプリングしたＮ個のパラメータベクタとそれに対応するＮ個の重みを記憶する。パラメータベクタや重みは、サンプリング部１４５を介して予測性能推定部１４７に提供される。
【０１４６】
なお、ある機械学習アルゴリズムの性能改善量を性能改善量推定部１３４が算出しようとするとき、当該機械学習アルゴリズムのデータＸが前回から変化していない場合もある。その場合、推定式生成部１４１やサンプリング部１４５を実行せずに、パラメータ記憶部１４６に記憶されたパラメータベクタと重みを再利用してもよい。
【０１４７】
予測性能推定部１４７は、サンプリング部１４５からＮ個のパラメータベクタとそれに対応するＮ個の重みを取得し、学習制御部１３５から指定されたサンプルサイズにおける予測性能の推定値を算出する。ここで算出する推定値は、最も確率が高い予測性能曲線上にある期待値よりも、推定値の振れを考慮した幅だけ大きい値とする。例えば、予測性能推定部１４７は、９５％信頼区間の上限（ＵＣＢ）を算出する。予測性能推定部１４７は、算出した推定値を性能改善量出力部１４８に出力する。
【０１４８】
予測性能の推定値の算出は、前述の第３の算出方法に従って行う。予測性能推定部１４７は、データ空間５７において、サンプリングされたＮ個のパラメータベクタに対応するＮ個の予測性能曲線を想定し、指定されたサンプルサイズにおけるＮ個の予測性能を算出する。予測性能推定部１４７は、算出したＮ個の予測性能とそれに対応するＮ個の重みを、指定されたサンプルサイズにおける推定値の確率分布とみなす。予測性能推定部１４７は、予測性能の小さい方から重みを累積した累積重みに基づいて、重み付き２．５％分位点と重み付き９７．５％分位点を算出し、９５％信頼区間を決定する。
【０１４９】
性能改善量出力部１４８は、予測性能推定部１４７から予測性能の推定値Ｕｐ（例えば、ＵＣＢ）を取得し、取得した推定値Ｕｐから現在の達成予測性能Ｐを引いて性能改善量を算出する。ただし、Ｕｐ−Ｐ＜０である場合には性能改善量を０とする。性能改善量出力部１４８は、算出した性能改善量を学習制御部１３５に出力する。
【０１５０】
図１４は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）学習制御部１３５は、データ記憶部１２１を参照して、プログレッシブサンプリング法における学習ステップのサンプルサイズｓ１，ｓ２，ｓ３，…を決定する。例えば、学習制御部１３５は、データ記憶部１２１に記憶されたデータ集合Ｄのサイズに基づいて、ｓ１＝｜Ｄ｜／２１０，ｓｊ＝ｓ１×２ｊ−１と決定する。
【０１５１】
（Ｓ１１）学習制御部１３５は、管理テーブル１２２ａの各機械学習アルゴリズムのサンプルサイズｋを最小値ｓ１に初期化する。また、学習制御部１３５は、各機械学習アルゴリズムの改善速度ｒを、改善速度ｒが取り得る最大値に初期化する。また、学習制御部１３５は、達成予測性能Ｐを、達成予測性能Ｐが取り得る最低値（例えば、０）に初期化する。
【０１５２】
（Ｓ１２）学習制御部１３５は、管理テーブル１２２ａの中から、改善速度が最大の機械学習アルゴリズムを選択する。ここで選択した機械学習アルゴリズムをａｉとする。
（Ｓ１３）学習制御部１３５は、機械学習アルゴリズムａｉの改善速度ｒｉが、閾値Ｔｒ未満であるか判断する。閾値Ｔｒは、予め学習制御部１３５に設定されていてもよい。例えば、閾値Ｔｒ＝０．００１／３６００とする。改善速度ｒｉが閾値Ｔｒ未満である場合はステップＳ２８に処理が進み、それ以外の場合はステップＳ１４に処理が進む。
【０１５３】
（Ｓ１４）学習制御部１３５は、管理テーブル１２２ａから、機械学習アルゴリズムａｉに対応する次のサンプルサイズｋｉを検索する。
（Ｓ１５）学習制御部１３５は、ステップ実行部１３２に対して機械学習アルゴリズムａｉとサンプルサイズｋｉを指定する。ステップ実行部１３２は、機械学習アルゴリズムａｉとサンプルサイズｋｉとに基づく学習ステップを実行する。ステップ実行部１３２の処理の詳細は後述する。
【０１５４】
（Ｓ１６）学習制御部１３５は、ステップ実行部１３２から、学習されたモデルと当該モデルの予測性能ｐｉ，ｊと実行時間Ｔｉ，ｊとを取得する。
（Ｓ１７）学習制御部１３５は、ステップＳ１６で取得した予測性能ｐｉ，ｊと、達成予測性能Ｐ（現在までに達成された最大の予測性能）とを比較し、前者が後者より大きいか判断する。予測性能ｐｉ，ｊが達成予測性能Ｐよりも大きい場合はステップＳ１８に処理が進み、それ以外の場合はステップＳ１９に処理が進む。
【０１５５】
（Ｓ１８）学習制御部１３５は、達成予測性能Ｐを予測性能ｐｉ，ｊに更新する。また、学習制御部１３５は、達成予測性能Ｐと対応付けて、その予測性能が得られた機械学習アルゴリズムａｉとサンプルサイズｋｉとを記憶しておく。
【０１５６】
（Ｓ１９）学習制御部１３５は、管理テーブル１２２ａに記憶されたサンプルサイズｋｉを、１段階大きなサンプルサイズ（例えば、現在のサンプルサイズの２倍）に増加させる。また、学習制御部１３５は、合計時間ｔｓｕｍを０に初期化する。
【０１５７】
図１５は、機械学習の手順例を示すフローチャート（続き）である。
（Ｓ２０）学習制御部１３５は、機械学習アルゴリズムａｉの更新後のサンプルサイズｋｉとデータ記憶部１２１に記憶されたデータ集合Ｄのデータ量｜Ｄ｜とを比較し、前者が後者より大きいか判断する。サンプルサイズｋｉがデータ集合Ｄのデータ量｜Ｄ｜よりも大きい場合はステップＳ２１に処理が進み、それ以外の場合はステップＳ２２に処理が進む。
【０１５８】
（Ｓ２１）学習制御部１３５は、管理テーブル１２２ａに記憶された改善速度のうち、機械学習アルゴリズムａｉに対応する改善速度ｒｉを０に更新する。これにより、機械学習アルゴリズムａｉは実行されなくなる。そして、前述のステップＳ１２に処理が進む。
【０１５９】
（Ｓ２２）学習制御部１３５は、時間推定部１３３に対して機械学習アルゴリズムａｉとサンプルサイズｋｉを指定する。時間推定部１３３は、機械学習アルゴリズムａｉについてサンプルサイズｋｉに基づく次の学習ステップを実行した場合の実行時間ｔｉ，ｊ＋１を推定する。時間推定部１３３の処理の詳細は後述する。
【０１６０】
（Ｓ２３）学習制御部１３５は、性能改善量推定部１３４に対して機械学習アルゴリズムａｉとサンプルサイズｋｉを指定する。性能改善量推定部１３４は、機械学習アルゴリズムａｉについてサンプルサイズｋｉに基づく次の学習ステップを実行した場合の性能改善量ｇｉ，ｊ＋１を推定する。性能改善量推定部１３４の処理の詳細は後述する。
【０１６１】
（Ｓ２４）学習制御部１３５は、時間推定部１３３から取得した実行時間ｔｉ，ｊ＋１に基づいて、合計時間ｔｓｕｍをｔｓｕｍ＋ｔｉ，ｊ＋１に更新する。また、学習制御部１３５は、更新した合計時間ｔｓｕｍと性能改善量推定部１３４から取得した性能改善量ｇｉ，ｊ＋１とに基づいて、改善速度ｒｉ＝ｇｉ，ｊ＋１／ｔｓｕｍを算出する。学習制御部１３５は、管理テーブル１２２ａに記憶された改善速度ｒｉを上記の値に更新する。
【０１６２】
（Ｓ２５）学習制御部１３５は、改善速度ｒｉが閾値Ｔｒ未満であるか判断する。改善速度ｒｉが閾値Ｔｒ未満の場合はステップＳ２６に処理が進み、改善速度ｒｉが閾値Ｔｒ以上の場合はステップＳ２７に処理が進む。
【０１６３】
（Ｓ２６）学習制御部１３５は、サンプルサイズｋｉを１段階大きなサンプルサイズに増加させる。そして、ステップＳ２０に処理が進む。
（Ｓ２７）学習制御部１３５は、機械学習を開始してからの経過時間が、制限時間入力部１３１から指定された制限時間を超えたか判断する。経過時間が制限時間を超えた場合はステップＳ２８に処理が進み、それ以外の場合はステップＳ１２に処理が進む。
【０１６４】
（Ｓ２８）学習制御部１３５は、達成予測性能Ｐとその達成予測性能Ｐが得られたモデルとを学習結果記憶部１２３に保存する。また、学習制御部１３５は、達成予測性能Ｐに対応付けられた機械学習アルゴリズムのアルゴリズムＩＤと達成予測性能Ｐに対応付けられたサンプルサイズとを、学習結果記憶部１２３に保存する。このとき、当該機械学習アルゴリズムに対して設定されたハイパーパラメータを更に保存してもよい。
【０１６５】
図１６は、ステップ実行の手順例を示すフローチャートである。
ここでは、バリデーション方法として、データ集合Ｄのサイズに応じて、ランダムサブサンプリングバリデーションまたはクロスバリデーションを実行する場合を考える。ただし、ステップ実行部１３２は、他のバリデーション方法を用いてもよい。
【０１６６】
（Ｓ３０）ステップ実行部１３２は、学習制御部１３５から指定された機械学習アルゴリズムａｉとサンプルサイズｋｉ＝ｓｊ＋１とを特定する。また、ステップ実行部１３２は、データ記憶部１２１に記憶されているデータ集合Ｄを特定する。
【０１６７】
（Ｓ３１）ステップ実行部１３２は、サンプルサイズｋｉが、データ集合Ｄのサイズの２／３よりも大きいか判断する。サンプルサイズｋｉが２／３×｜Ｄ｜よりも大きい場合、ステップ実行部１３２は、データ量が不足しているためクロスバリデーションを選択する。そして、ステップＳ３８に処理が進む。サンプルサイズｋｉが２／３×｜Ｄ｜以下である場合、ステップ実行部１３２は、データ量が十分あるためランダムサブサンプリングバリデーションを選択する。そして、ステップＳ３２に処理が進む。
【０１６８】
（Ｓ３２）ステップ実行部１３２は、データ集合Ｄからサンプルサイズｋｉの訓練データＤｔをランダムに抽出する。訓練データの抽出は、非復元抽出サンプリングとして行う。よって、訓練データには互いに異なるｋｉ個の単位データが含まれる。
【０１６９】
（Ｓ３３）ステップ実行部１３２は、データ集合Ｄのうち訓練データＤｔを除いた部分から、サイズｋｉ／２のテストデータＤｓをランダムに抽出する。テストデータの抽出は、非復元抽出サンプリングとして行う。よって、テストデータには、訓練データＤｔと異なりかつ互いに異なるｋｉ／２個の単位データが含まれる。なお、ここでは訓練データＤｔのサイズとテストデータＤｓのサイズの比を２：１としたが、比を変更してもよい。
【０１７０】
（Ｓ３４）ステップ実行部１３２は、機械学習アルゴリズムａｉとデータ集合Ｄから抽出した訓練データＤｔとを用いてモデルｍを学習する。
（Ｓ３５）ステップ実行部１３２は、学習したモデルｍとデータ集合Ｄから抽出したテストデータＤｓとを用いて、モデルｍの予測性能ｐを算出する。予測性能ｐを表す指標として、正答率、適合率、ＭＳＥ、ＲＭＳＥなど任意の指標を用いることができる。予測性能ｐを表す指標が、予めステップ実行部１３２に設定されてもよい。
【０１７１】
（Ｓ３６）ステップ実行部１３２は、上記ステップＳ３２〜Ｓ３５の繰り返し回数と閾値Ｋとを比較し、前者が後者未満であるか判断する。閾値Ｋは、予めステップ実行部１３２に設定されていてもよい。例えば、閾値Ｋ＝１０とする。繰り返し回数が閾値Ｋ未満の場合はステップＳ３２に処理が進み、それ以外の場合はステップＳ３７に処理が進む。
【０１７２】
（Ｓ３７）ステップ実行部１３２は、ステップＳ３５で算出されたＫ個の予測性能ｐの平均値を算出し、予測性能ｐｉ，ｊとして出力する。また、ステップ実行部１３２は、ステップＳ３０が開始されてからステップＳ３２〜Ｓ３６の繰り返しが終了するまでの実行時間Ｔｉ，ｊを算出して出力する。また、ステップ実行部１３２は、ステップＳ３４で学習されたＫ個のモデルのうち予測性能ｐが最大のモデルを出力する。そして、ランダムサブサンプリングバリデーションによる１つの学習ステップが終了する。
【０１７３】
（Ｓ３８）ステップ実行部１３２は、上記のランダムサブサンプリングバリデーションに代えて、前述のクロスバリデーションを実行する。例えば、ステップ実行部１３２は、データ集合Ｄからサンプルサイズｋｉのサンプルデータをランダムに抽出し、抽出したサンプルデータをＫ個のブロックに均等に分割する。ステップ実行部１３２は、Ｋ−１個のブロックを訓練データとして使用し１個のブロックをテストデータとして使用することを、テストデータのブロックを変えながらＫ回繰り返す。ステップ実行部１３２は、Ｋ個の予測性能の平均値と、実行時間と、予測性能が最大のモデルとを出力する。
【０１７４】
図１７は、時間推定の手順例を示すフローチャートである。
（Ｓ４０）時間推定部１３３は、学習制御部１３５から指定された機械学習アルゴリズムａｉとサンプルサイズｋｉ＝ｓｊ＋１とを特定する。
【０１７５】
（Ｓ４１）時間推定部１３３は、機械学習アルゴリズムａｉについてサンプルサイズが異なる２以上の学習ステップを実行済みか判断する。２以上の学習ステップを実行済みである場合はステップＳ４２に処理が進み、実行済みの学習ステップが１つのみである場合はステップＳ４５に処理が進む。
【０１７６】
（Ｓ４２）時間推定部１３３は、管理テーブル１２２ａから機械学習アルゴリズムａｉに対応する実行時間Ｔｉ，１，Ｔｉ，２を検索する。
（Ｓ４３）時間推定部１３３は、サンプルサイズｓ１，ｓ２と実行時間Ｔｉ，１，Ｔｉ，２を用いて、サンプルサイズｓから実行時間ｔを推定する推定式ｔ＝α×ｓ＋βの係数α，βを決定する。係数α，βは、Ｔｉ，１をｔに代入しｓ１をｓに代入した式と、Ｔｉ，２をｔに代入しｓ２をｓに代入した式とを含む連立方程式を解くことで決定できる。ただし、機械学習アルゴリズムａｉについて３以上の学習ステップを実行済みである場合、時間推定部１３３は、それら学習ステップの実行時間から回帰分析によって係数α，βを決定してもよい。ここでは、サンプルサイズと実行時間とが一次式で説明できると仮定している。
【０１７７】
（Ｓ４４）時間推定部１３３は、上記の実行時間の推定式とサンプルサイズｋｉを用いて（ｋｉを推定式のｓに代入して）、次の学習ステップの実行時間ｔｉ，ｊ＋１を推定する。時間推定部１３３は、推定した実行時間ｔｉ，ｊ＋１を出力する。
【０１７８】
（Ｓ４５）時間推定部１３３は、管理テーブル１２２ａから機械学習アルゴリズムａｉに対応する実行時間Ｔｉ，１を検索する。
（Ｓ４６）時間推定部１３３は、サンプルサイズｓ１，ｓ２と実行時間Ｔｉ，１を用いて、２番目の学習ステップの実行時間ｔｉ，２をｓ２／ｓ１×Ｔｉ，１と推定する。時間推定部１３３は、推定した実行時間ｔｉ，２を出力する。
【０１７９】
図１８は、性能改善量推定の手順例を示すフローチャートである。
（Ｓ５０）推定式生成部１４１は、学習制御部１３５から指定された機械学習アルゴリズムａｉとサンプルサイズｘ０＝ｋｉとを特定する。
【０１８０】
（Ｓ５１）推定式生成部１４１は、予測性能の実測データであるデータＸとして、サンプルサイズｘと予測性能ｙの組である＜ｘ，ｙ＞の集合を取得する。データＸは、予測性能曲線を学習するための訓練データとしての意味をもつ。
【０１８１】
（Ｓ５２）重み設定部１４２は、各ｘｊに対する重みｗｊをｗｊ＝１に初期化する。
（Ｓ５３）非線形回帰部１４３は、ステップＳ５１で取得されたデータＸを用いて、非線形回帰分析により非線形式ｙ＝ｃ−ａ・ｘ−ｄのパラメータベクタ＜ａ，ｃ，ｄ＞を算出する。サンプルサイズｘが説明変数であり、予測性能ｙが目的変数である。この非線形回帰分析は、残差の評価に当たって各ｘｊに対する重みｗｊを考慮する重み付き回帰分析である。重みが小さいサンプルサイズについては相対的に大きな残差が許容され、重みが大きいサンプルサイズについては相対的に残差の制限が強くなる。複数のサンプルサイズの間で異なる重みを設定できる。これにより、予測性能の等分散性が成立しない（異分散性が成立する）ことによる回帰分析の精度低下をカバーすることができる。なお、上記の非線形式は推定式の一例であり、ｘが増加したときにｙが一定の限界値に漸近する曲線を示すような他の非線形式を用いてもよい。このような非線形回帰分析は、例えば、統計パッケージソフトウェアを用いて実行できる。
【０１８２】
（Ｓ５４）重み設定部１４２は、ステップＳ５３で算出された今回のパラメータベクタと前回のパラメータベクタとを比較し、パラメータベクタが所定の収束条件を満たすか判断する。例えば、重み設定部１４２は、今回のパラメータベクタと前回のパラメータベクタとが一致したとき、または、両者の差が閾値未満であるとき、収束条件を満たすと判断する。１回目に算出されたパラメータベクタは、まだ収束条件を満たしていないと判断される。収束条件を満たさない場合、ステップＳ５５に処理が進む。収束条件を満たす場合、今回のパラメータベクタをθ０として確定してステップＳ５９に処理が進む。
【０１８３】
（Ｓ５５）分散推定部１４４は、ステップＳ５３で算出されたパラメータｃを期待バイアスＥＢ２に変換する。パラメータｃは機械学習アルゴリズムａｉを用いた場合の予測性能上昇の限界を表しており、期待バイアスＥＢ２と対応している。パラメータｃと期待バイアスＥＢ２との間の関係は、予測性能ｙの指標に依存する。予測性能ｙが正答率である場合、ＥＢ２＝１−ｃである。予測性能ｙがＭＳＥである場合、ＥＢ２＝ｃである。予測性能ｙがＲＭＳＥである場合、ＥＢ２＝ｃ２である。
【０１８４】
（Ｓ５６）分散推定部１４４は、各サンプルサイズｘｊに対する予測性能ｙｊを期待ロスＥＬｊに変換する。測定された予測性能ｙｊと期待ロスＥＬｊとの間の関係は、予測性能ｙの指標に依存する。予測性能ｙが正答率である場合、ＥＬｊ＝１−ｙｊである。予測性能ｙがＭＳＥである場合、ＥＬｊ＝ｙｊである。予測性能ｙがＲＭＳＥである場合、ＥＬｊ＝ｙｊ２である。
【０１８５】
（Ｓ５７）分散推定部１４４は、ステップＳ５５の期待バイアスＥＢ２とステップＳ５６の期待ロスＥＬｊとを用いて、各サンプルサイズｘｊに対する予測性能の分散ＶＬｊを算出する。ＶＬｊ＝（ＥＬｊ＋ＥＢ２）×（ＥＬｊ−ＥＢ２）である。
【０１８６】
（Ｓ５８）重み設定部１４２は、各ｘｊに対する重みｗｊをｗｊ＝１／ＶＬｊに更新する。そして、処理がステップＳ５３に戻り、再び非線形回帰分析が行われる。
図１９は、性能改善量推定の手順例を示すフローチャート（続き）である。
【０１８７】
（Ｓ５９）サンプリング部１４５は、データＸに含まれるサンプルサイズの中から、パラメータベクタの次元数に相当するＭ個のサンプルサイズｘｉを選択する。例えば、Ｍ＝３である場合、サンプリング部１４５は、データＸに含まれるサンプルサイズのうちの２５％分位点をｘ１、７５％分位点をｘ３、ｘ１とｘ３の相乗平均をｘ２とする。
【０１８８】
（Ｓ６０）サンプリング部１４５は、選択したサンプルサイズｘｉそれぞれについて、パラメータベクタθ０が示す予測性能曲線上の点を中心にして、確率が閾値（例えば、１０−６）以上である予測性能の範囲［ａｉ，ｂｉ］を算出する。この範囲の算出には、誤差確率密度関数ｆｅｒｒ（ε；ｘｉ，θ０）を使用する。
【０１８９】
（Ｓ６１）サンプリング部１４５は、サンプル数Ｎを決定する。例えば、サンプリング部１４５は、次元数Ｍを用いてＮ＝９Ｍと決定する。
（Ｓ６２）サンプリング部１４５は、ステップＳ６０で算出したＭ個の範囲から１つずつ点をサンプリングしてサンプル点列を生成する。サンプリング部１４５は、このサンプリングをＮ回繰り返すことでＮ個のサンプル点列Ｙｊを生成する。Ｎ個のサンプル点列Ｙｊの生成は、一様サンプリングとして行う。
【０１９０】
（Ｓ６３）サンプリング部１４５は、ステップＳ６２で生成したＮ個のサンプル点列ＹｊをＮ個のパラメータベクタθｊに変換する。各サンプル点列Ｙｊに含まれる点の数がパラメータベクタの次元数に等しい場合、各サンプル点列Ｙｊからは原則として全ての点を通る１つの予測性能曲線を確定することができる。サンプリング部１４５は、ｙ＝ｃ−ａ・ｘ−ｄなどの数式を用いて解析的にパラメータベクタθｊを解いてもよい。また、サンプリング部１４５は、回帰分析によってパラメータベクタθｊを決定してもよい。なお、サンプル点列によっては、パラメータベクタの解が得られないこともある。
【０１９１】
（Ｓ６４）サンプリング部１４５は、ステップＳ６３で変換された各パラメータベクタθｊに対して、データＸのもとでの生起確率ｑｊを算出する。尤度関数を用いてｑｊ＝Ｌ（θｊ；Ｘ）とする。または、事後確率を用いてｑｊ＝Ｐｐｏｓｔｅｒｉｏｒ（θｊ｜Ｘ）とする。なお、パラメータベクタθｊの解が得られなかった場合はｑｊ＝０とする。
【０１９２】
（Ｓ６５）サンプリング部１４５は、ステップＳ６４で算出したＮ個のパラメータベクタθｊの生起確率ｑｊを、Ｎ個のサンプル点列Ｙｊの生起確率ｐｊに変換する。生起確率ｐｊは、ヤコビ行列を用いて前述の数式（１）のように算出される。サンプリング部１４５は、生起確率ｐｊをパラメータベクタθｊに対応する重みとみなす。サンプリング部１４５は、ステップＳ５４で決定されたパラメータベクタθ０を保存する。また、サンプリング部１４５は、Ｎ個のパラメータベクタθｊとそれに対応するＮ個の重みｐｊを保存する。
【０１９３】
（Ｓ６６）予測性能推定部１４７は、Ｎ個のパラメータベクタθｊと予測性能曲線の関数ｆ（ｘ；θ）からＮ個の予測性能曲線を形成し、学習制御部１３５から指定されたサンプルサイズｘ０におけるＮ個の予測性能ｙｊ＝ｆ（ｘ０；θｊ）を算出する。
【０１９４】
（Ｓ６７）予測性能推定部１４７は、ステップＳ６６で算出したＮ個の予測性能ｙｊとそれに対応するＮ個の重みｐｊによって、サンプルサイズｘ０における推定値の確率分布を形成する。予測性能推定部１４７は、予測性能ｙｊの小さい方から重みｐｊを累積した累積重みが２．５％になる重み付き２．５％分位点ａと、累積重みが９７．５％になる重み付き９７．５％分位点ｂとを算出し、（ａ，ｂ）を９５％信頼区間とする。
【０１９５】
（Ｓ６８）性能改善量出力部１４８は、ステップＳ６７で算出された９５％信頼区間の上限（ＵＣＢ）を、サンプルサイズｘ０における予測性能の推定値Ｕｐとして特定する。性能改善量出力部１４８は、現在の達成予測性能Ｐを取得し、Ｕｐ−Ｐを性能改善量として出力する。ただし、Ｕｐ−Ｐ＜０である場合は０を性能改善量として出力する。
【０１９６】
第２の実施の形態の機械学習装置１００によれば、複数の機械学習アルゴリズムそれぞれについて、１段階大きなサンプルサイズを用いた次の学習ステップを実行した場合の単位時間当たりの予測性能の改善量（改善速度）が推定される。そして、改善速度が最大の機械学習アルゴリズムが選択され、選択された機械学習アルゴリズムの次の学習ステップが実行される。改善速度の推定と機械学習アルゴリズムの選択とが繰り返され、予測性能が最も高くなったモデルが最終的に出力される。
【０１９７】
これにより、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、改善速度の推定値が最大の機械学習アルゴリズムが選択されるため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムをサンプルサイズが小さいうちに切り捨ててしまうリスクを低減できる。このように、複数の機械学習アルゴリズムを利用してモデルの予測性能を効率的に向上させることができる。
【０１９８】
また、改善速度の推定にあたっては、最も確率が高い予測性能曲線上の期待値ではなく、誤差を考慮して期待値よりも大きい値（９５％信頼区間の上限など）が使用される。これにより、予測性能が期待値より上振れする可能性を考慮でき、予測性能の高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
【０１９９】
また、所望のサンプルサイズにおける信頼区間の推定では、データ空間において当初の予測性能曲線の周辺でサンプル点列がサンプリングされ、サンプル点列がパラメータ空間のパラメータベクタに変換されると共にその重みが算出される。そして、データ空間に戻って、所望のサンプルサイズにおける推定値の確率分布が推定される。これにより、異分散性をもつ予測性能曲線に対して、信頼区間の推定精度を向上させることができる。また、最初からパラメータ空間でパラメータベクタをサンプリングする場合と比べて、適切なパラメータベクタをサンプリングすることが容易となる。よって、適切な推定精度のもとでサンプル数を減らすことが可能となり、計算負荷が低減し計算時間を短縮できる。
【符号の説明】
【０２００】
１０  推定装置
１１  記憶部
１２  処理部
１３  測定データ
１４，１４ａ，１４ｂ  予測性能曲線
１５ａ，１５ｂ  サンプル点列
１６  分散情報
【図１】
2019113915.tif 000005
【図２】
2019113915.tif 000006
【図３】
2019113915.tif 000007
【図４】
2019113915.tif 000008
【図５】
2019113915.tif 000009
【図６】
2019113915.tif 000010
【図７】
2019113915.tif 000011
【図８】
2019113915.tif 000012
【図９】
2019113915.tif 000013
【図１０】
2019113915.tif 000014
【図１１】
2019113915.tif 000015
【図１２】
2019113915.tif 000016
【図１３】
2019113915.tif 000017
【図１４】
2019113915.tif 000018
【図１５】
2019113915.tif 000019
【図１６】
2019113915.tif 000020
【図１７】
2019113915.tif 000021
【図１８】
2019113915.tif 000022
【図１９】
2019113915.tif 000023