(57)【特許請求の範囲】
【請求項１】
コンピュータに、
一のデータ集合から得られる複数のサイズの訓練データを用いて機械学習により複数のモデルを生成し、テストデータを用いて前記複数のモデルそれぞれの予測性能を測定して前記複数のサイズに対応する複数の測定値を算出し、
訓練データのサイズに対する予測性能の推定値を示す曲線であってサイズの増加に応じて推定値が上限値に漸近する予測性能曲線を生成する際に、前記上限値と前記複数の測定値それぞれとの差分を算出して前記複数のサイズに対応する複数の差分値を算出し、前記複数のサイズおよび前記複数の差分値を用いて回帰分析を行い、前記回帰分析の結果に基づいて、前記予測性能曲線を表す係数の期待値および分散を決定し、
前記分散に応じて前記係数の値を前記期待値から変動させることで、前記予測性能曲線からずれた曲線であって測定値が所定の確率で収まる予測性能の範囲を示す他の予測性能曲線を生成し、
前記複数のサイズと異なる他のサイズが指定された場合、前記他の予測性能曲線を用いて、前記他のサイズの訓練データから生成されるモデルの予測性能の推定変動範囲を示す推定情報を出力する、
処理を実行させる予測性能曲線推定プログラム。
【請求項２】
前記期待値および前記分散の決定では、複数の上限値の候補それぞれに対して前記回帰分析を行い、前記回帰分析の結果と前記複数の測定値との間の誤差に基づいて前記上限値を推定する、
請求項１記載の予測性能曲線推定プログラム。
【請求項３】
前記期待値および前記分散の決定では、前記複数のサイズを複数の第１の対数に変換し、前記複数の差分値を複数の第２の対数に変換し、前記複数の第１の対数と前記複数の第２の対数との間で線形回帰分析を行う、
請求項１記載の予測性能曲線推定プログラム。
【請求項４】
一のデータ集合から得られる複数のサイズの訓練データを用いて機械学習により複数のモデルを生成し、テストデータを用いて前記複数のモデルそれぞれの予測性能を測定することで算出された、前記複数のサイズに対応する複数の測定値を記憶する記憶部と、
訓練データのサイズに対する予測性能の推定値を示す曲線であってサイズの増加に応じて推定値が上限値に漸近する予測性能曲線を生成する際に、前記上限値と前記複数の測定値それぞれとの差分を算出して前記複数のサイズに対応する複数の差分値を算出し、前記複数のサイズおよび前記複数の差分値を用いて回帰分析を行い、前記回帰分析の結果に基づいて、前記予測性能曲線を表す係数の期待値および分散を決定し、前記分散に応じて前記係数の値を前記期待値から変動させることで、前記予測性能曲線からずれた曲線であって測定値が所定の確率で収まる予測性能の範囲を示す他の予測性能曲線を生成し、前記複数のサイズと異なる他のサイズが指定された場合、前記他の予測性能曲線を用いて、前記他のサイズの訓練データから生成されるモデルの予測性能の推定変動範囲を示す推定情報を出力する生成部と、
を有する予測性能曲線推定装置。
【請求項５】
コンピュータが実行する予測性能曲線推定方法であって、
一のデータ集合から得られる複数のサイズの訓練データを用いて機械学習により複数のモデルを生成し、テストデータを用いて前記複数のモデルそれぞれの予測性能を測定して前記複数のサイズに対応する複数の測定値を算出し、
訓練データのサイズに対する予測性能の推定値を示す曲線であってサイズの増加に応じて推定値が上限値に漸近する予測性能曲線を生成する際に、前記上限値と前記複数の測定値それぞれとの差分を算出して前記複数のサイズに対応する複数の差分値を算出し、前記複数のサイズおよび前記複数の差分値を用いて回帰分析を行い、前記回帰分析の結果に基づいて、前記予測性能曲線を表す係数の期待値および分散を決定し、
前記分散に応じて前記係数の値を前記期待値から変動させることで、前記予測性能曲線からずれた曲線であって測定値が所定の確率で収まる予測性能の範囲を示す他の予測性能曲線を生成し、
前記複数のサイズと異なる他のサイズが指定された場合、前記他の予測性能曲線を用いて、前記他のサイズの訓練データから生成されるモデルの予測性能の推定変動範囲を示す推定情報を出力する、
予測性能曲線推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は予測性能曲線推定プログラム、予測性能曲線推定装置および予測性能曲線推定方法に関する。
【背景技術】
【０００２】
コンピュータを利用したデータ分析の１つとして、機械学習が行われることがある。機械学習では、幾つかの既知の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因（説明変数や独立変数と言うことがある）と結果（目的変数や従属変数と言うことがある）との間の関係を一般化したモデルを学習する。学習されたモデルを用いることで、未知の事例についての結果を予測することができる。
【０００３】
機械学習では、学習されるモデルの正確さ、すなわち、未知の事例の結果を正確に予測する能力（予測性能と言うことがある）が高いことが好ましい。予測性能は、学習に用いる訓練データのサイズが大きいほど高くなる。一方、訓練データのサイズが大きいほど、モデルの学習時間も長くなる。そこで、実用上十分な予測性能をもつモデルを効率的に得られるようにする方法として、プログレッシブサンプリング法が提案されている。
【０００４】
プログレッシブサンプリング法では、コンピュータは、まず小さなサイズの訓練データを用いてモデルを学習する。コンピュータは、訓練データとは異なる既知の事例を示すテストデータを用いて、モデルによって予測した結果と既知の結果とを比較し、学習されたモデルの予測性能を評価する。予測性能が十分でない場合、コンピュータは、前回よりもサイズが大きい訓練データを用いてモデルを再度学習する。以上を予測性能が十分に高くなるまで繰り返すことで、過度にサイズの大きな訓練データを使用することを抑制でき、モデルの学習時間を短縮することができる。
【０００５】
プログレッシブサンプリング法において、予測性能が十分高くなったと判定する基準として、最新のモデルと１つ前のモデルとの間の予測性能の差（予測性能の上昇量）が所定の閾値未満になったことを基準とする方法が提案されている。また、予測性能が十分高くなったと判定する基準として、単位学習時間当たりの予測性能の上昇量が所定の閾値未満になったことを基準とする方法も提案されている。
【０００６】
また、小さなサイズの訓練データに対応する予測性能の実測値を用いて、訓練データのサイズと予測性能との間の関係を示す予測性能曲線を推定し、推定した予測性能曲線を用いて大きなサイズの訓練データに対応する予測性能を算出する方法が提案されている。提案の方法では、予測性能曲線を示す推定式として、訓練データのサイズが小さいうちは予測性能の上昇量が大きく、訓練データのサイズが大きくなると予測性能が一定の上限値に収束する非線形関数が仮定される。提案の方法では、予測性能の実測値を用いて非線形回帰分析を行い、推定式に含まれる未知の係数を決定する。
【０００７】
また、非線形回帰分析によって予測性能曲線を推定する際に、複数の予測性能の実測値に対して異なる重みを付与する方法も提案されている。提案の方法では、小さなサイズの訓練データに対応する実測値には小さな重みを付与し、大きなサイズの訓練データに対応する実測値には大きな重みを付与する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】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.
【非特許文献２】Christopher Meek, Bo Thiesson and David Heckerman, "The Learning-Curve Sampling Method Applied to Model-Based Clustering", Journal of Machine Learning Research, Volume 2 (Feb), pp. 397-418, 2002.
【非特許文献３】Prasanth Kolachina, Nicola Cancedda, Marc Dymetman and Sriram Venkatapathy, "Prediction of Learning Curves in Machine Translation", Proc. of the 50th Annual Meeting of the Association for Computational Linguistics, pp. 22-30, 2012.
【非特許文献４】Rosa L Figueroa, Qing Zeng-Treitler, Sasikiran Kandula and Long H Ngo, "Predicting sample size required for classification performance", BMC Medical Informatics and Decision Making, Vol. 12 No. 8, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の非特許文献１，２に記載された判定基準では、最新のモデルの予測性能が前回のモデルの予測性能と比べてあまり改善していないことを確認してから、機械学習を停止することになる。このような判断手法では、機械学習を停止するタイミングは、予測性能の改善にあまり寄与しない機械学習を完了した後となるおそれがある。
【００１０】
そこで、予測性能曲線を推定し、推定した予測性能曲線に基づいて機械学習の停止を判断することが好ましい。予測性能曲線を用いることで、訓練データのサイズを現在より大きくしても予測性能の大きな上昇が見込めない場合には、その実行前に機械学習を停止できる。
【００１１】
しかし、予測性能の実測値は、訓練データおよびテストデータの選択の偶然性などの影響を受けて、期待値から乖離させる誤差を含んでいる。実測値の誤差は、訓練データのサイズが小さいときほど、偶然性の影響を強く受けて大きくなる傾向にある。
【００１２】
一方、上記の非特許文献３，４に記載の推定方法では、訓練データのサイズが異なると実測値の誤差が異なる（いわゆる等分散性が成立していない）にもかかわらず、非線形回帰分析によって実測値と曲線を直接フィッティングしている。このため、予測性能曲線の推定精度を向上させるのが難しいという問題がある。また、推定精度が向上しづらい条件のもとで回帰分析を行っているため、推定誤差を考慮した推定値の変動範囲（いわゆる予測区間など）が過度に広く算出されてしまうことがある。このため、予測性能の推定について信頼性の高い情報が提供されないという問題がある。
【００１３】
１つの側面では、本発明は、機械学習の予測性能の推定について信頼性の高い情報を提供できる予測性能曲線推定プログラム、予測性能曲線推定装置および予測性能曲線推定方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
１つの態様では、コンピュータに以下の処理を実行させる予測性能曲線推定プログラムが提供される。一のデータ集合から得られる複数のサイズの訓練データを用いて複数のモデルを生成し、複数のモデルに対応する複数の予測性能値を算出する。訓練データのサイズに対する予測性能の推定を示す曲線であって予測性能が上限値に漸近する予測性能曲線を、複数のサイズそれぞれにおける、予測性能値に生じる誤差と、予測性能曲線上の推定値と上限値との差との間の関係に基づいて、算出された複数の予測性能値を用いて生成する。生成された予測性能曲線と算出された複数の予測性能値とを用いて、予測性能曲線に対する推定誤差を含む他の予測性能曲線を生成する。
【００１５】
また、１つの態様では、記憶部と生成部とを有する予測性能曲線推定装置が提供される。また、１つの態様では、コンピュータが実行する予測性能曲線推定方法が提供される。
【発明の効果】
【００１６】
１つの側面では、機械学習の予測性能の推定について信頼性の高い情報を提供できる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態の予測性能曲線推定装置の例を示す図である。
【図２】機械学習装置のハードウェア例を示すブロック図である。
【図３】サンプリングサイズと予測性能の関係例を示すグラフである。
【図４】学習時間と予測性能の関係例を示すグラフである。
【図５】複数の機械学習アルゴリズムの使用例を示す図である。
【図６】予測性能の分布例を示すグラフである。
【図７】予測性能曲線の第１の推定例を示すグラフである。
【図８】予測性能の上限値と推定値と標準誤差の関係例を示すグラフである。
【図９】説明変数と目的変数の変換例を示すグラフである。
【図１０】予測性能曲線の第２の推定例を示すグラフである。
【図１１】機械学習装置の機能例を示すブロック図である。
【図１２】管理テーブルの例を示す図である。
【図１３】第２の実施の形態の性能改善量推定部の機能例を示すブロック図である。
【図１４】機械学習の手順例を示すフローチャートである。
【図１５】機械学習の手順例を示すフローチャート（続き）である。
【図１６】ステップ実行の手順例を示すフローチャートである。
【図１７】時間推定の手順例を示すフローチャートである。
【図１８】性能改善量推定の手順例を示すフローチャートである。
【図１９】推定式生成の手順例を示すフローチャートである。
【図２０】予測性能推定の手順例を示すフローチャートである。
【図２１】第３の実施の形態の性能改善量推定部の機能例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１９】
図１は、第１の実施の形態の予測性能曲線推定装置の例を示す図である。
第１の実施の形態の予測性能曲線推定装置１０は、機械学習に用いる訓練データのサイズと学習されるモデルの予測性能との対応を示す予測性能曲線を推定する。予測性能曲線推定装置１０は、ユーザが操作するクライアントコンピュータでもよいし、クライアントコンピュータからネットワーク経由でアクセスされるサーバコンピュータでもよい。
【００２０】
予測性能曲線推定装置１０は、記憶部１１および生成部１２を有する。記憶部１１は、ＲＡＭ（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）、プラズマディスプレイ（ＰＤＰ：Plasma Display Panel）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなどを用いることができる。
【００３７】
入力信号処理部１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００３８】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３９】
通信インタフェース１０７は、ネットワーク１１４に接続され、ネットワーク１１４を介して他の装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００４０】
なお、機械学習装置１００は、クライアントコンピュータなどのクライアント装置でもよいし、サーバコンピュータなどのサーバ装置でもよい。機械学習装置１００は、媒体リーダ１０６を備えていなくてもよく、サーバ装置である場合には画像信号処理部１０４や入力信号処理部１０５を備えていなくてもよい。また、ディスプレイ１１１や入力デバイス１１２が、機械学習装置１００の筐体と一体に形成されていてもよい。
【００４１】
次に、機械学習におけるサンプリングサイズと予測性能と学習時間の間の関係、および、プログレッシブサンプリング法について説明する。
第２の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。機械学習装置１００または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク１１４経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常は、２以上の説明変数の値と１つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
【００４２】
機械学習装置１００は、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常は、２以上の説明変数と２以上の係数と１つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
【００４３】
学習されたモデルを用いることで、未知の事例の説明変数の値（要因）から、未知の事例の目的変数の値（結果）を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、０以上１以下の確率値などの連続値であってもよいし、ＹＥＳ／ＮＯの２値などの離散値であってもよい。
【００４４】
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置１００は、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの１／２程度とする。機械学習装置１００は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値（予測値）とテストデータに含まれる目的変数の値（実績値）とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【００４５】
予測性能の指標としては、正答率（Accuracy）、適合率（Precision）、平均二乗誤差（ＲＭＳＥ）などが挙げられる。例えば、結果がＹＥＳ／ＮＯの２値で表されるとする。また、Ｎ1件のテストデータの事例のうち、予測値＝ＹＥＳ・実績値＝ＹＥＳの件数をＴｐ、予測値＝ＹＥＳ・実績値＝ＮＯの件数をＦｐ、予測値＝ＮＯ・実績値＝ＹＥＳの件数をＦｎ、予測値＝ＮＯ・実績値＝ＮＯの件数をＴｎとする。正答率は予測が当たった割合であり、（Ｔｐ＋Ｔｎ）／Ｎ1と算出される。適合率は「ＹＥＳ」の予測を間違えない確率であり、Ｔｐ／（Ｔｐ＋Ｆｐ）と算出される。平均二乗誤差は、各事例の実績値をｙと表し予測値をｙ＾と表すと、（ｓｕｍ（ｙ−ｙ＾）2／Ｎ1）1/2と算出される。
【００４６】
ここで、ある１つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数（サンプリングサイズ）が大きいほど予測性能は高くなる。
図３は、サンプリングサイズと予測性能の関係例を示すグラフである。
【００４７】
曲線２１は、モデルの予測性能とサンプリングサイズとの間の関係を示す。サンプリングサイズｓ1，ｓ2，ｓ3，ｓ4，ｓ5の間の大小関係は、ｓ1＜ｓ2＜ｓ3＜ｓ4＜ｓ5である。例えば、ｓ2はｓ1の２倍または４倍、ｓ3はｓ2の２倍または４倍、ｓ4はｓ3の２倍または４倍、ｓ5はｓ4の２倍または４倍である。
【００４８】
曲線２１が示すように、サンプリングサイズがｓ2の場合の予測性能はｓ1の場合よりも高い。サンプリングサイズがｓ3の場合の予測性能はｓ2の場合よりも高い。サンプリングサイズがｓ4の場合の予測性能はｓ3の場合よりも高い。サンプリングサイズがｓ5の場合の予測性能はｓ4の場合よりも高い。このように、サンプリングサイズが大きくなるほど予測性能も高くなる。ただし、予測性能が低いうちは、サンプリングサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプリングサイズの増加量に対する予測性能の上昇量の比は逓減する。
【００４９】
また、サンプリングサイズが大きいほど、機械学習に要する学習時間も大きくなる。このため、サンプリングサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図３の例の場合、サンプリングサイズをｓ4とすると、上限に近い予測性能を短時間で達成できる。一方、サンプリングサイズをｓ3とすると、予測性能が不十分であるおそれがある。また、サンプリングサイズをｓ5とすると、予測性能は上限に近いものの、単位学習時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。
【００５０】
このようなサンプリングサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質（データの種類）によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプリングサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法という機械学習方法が提案されている。プログレッシブサンプリング法については、例えば、前述の非特許文献１（"Efficient Progressive Sampling"）に記載がある。
【００５１】
プログレッシブサンプリング法では、サンプリングサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、機械学習装置１００は、サンプリングサイズｓ1で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、機械学習装置１００は、サンプリングサイズｓ2で機械学習を行って予測性能を評価する。このとき、サンプリングサイズｓ2の訓練データは、サンプリングサイズｓ1の訓練データ（前に使用した訓練データ）の一部または全部を包含していてもよい。同様に、機械学習装置１００は、サンプリングサイズｓ3で機械学習を行って予測性能を評価し、サンプリングサイズｓ4で機械学習を行って予測性能を評価する。サンプリングサイズｓ4で予測性能が十分と判断すると、機械学習装置１００は、機械学習を停止しサンプリングサイズｓ4で学習したモデルを採用する。
【００５２】
上記のように、プログレッシブサンプリング法では、１つのサンプリングサイズに対する処理（１つの学習ステップ）毎に、モデルの学習と当該モデルの予測性能の評価とを行う。各学習ステップ内の手順（バリデーション方法）としては、例えば、クロスバリデーションやランダムサブサンプリングバリデーションなどを用いることができる。
【００５３】
クロスバリデーションでは、機械学習装置１００は、サンプリングしたデータをＫ個（Ｋは２以上の整数）のブロックに分割し、このうちＫ−１個のブロックを訓練データとして使用して１個のブロックをテストデータとして使用する。機械学習装置１００は、テストデータとして使用するブロックを変えながらモデルの学習と予測性能の評価をＫ回繰り返す。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。クロスバリデーションは、限定された量のデータを活用して予測性能の評価を可能とする。
【００５４】
ランダムサブサンプリングバリデーションでは、機械学習装置１００は、データの母集合から訓練データとテストデータをランダムにサンプリングし、訓練データを用いてモデルを学習し、テストデータを用いてモデルの予測性能を算出する。機械学習装置１００は、サンプリングとモデルの学習と予測性能の評価をＫ回繰り返す。
【００５５】
各サンプリングは、非復元抽出サンプリングである。すなわち、１回のサンプリングの中で、訓練データ内に同じ単位データは重複して含まれず、テストデータ内に同じ単位データは重複して含まれない。また、１回のサンプリングの中で、訓練データとテストデータに同じ単位データは重複して含まれない。ただし、Ｋ回のサンプリングの間で、同じ単位データが選択されることはあり得る。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。
【００５６】
ところで、訓練データからモデルを学習する手順（機械学習アルゴリズム）には様々なものが存在する。機械学習装置１００は、複数の機械学習アルゴリズムを使用することができる。機械学習装置１００が使用できる機械学習アルゴリズムの数は、数十〜数百程度であってもよい。機械学習アルゴリズムの一例として、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなどを挙げることができる。
【００５７】
ロジスティック回帰分析は、目的変数ｙの値と説明変数ｘ1，ｘ2，…，ｘkの値をＳ字曲線にフィッティングする回帰分析である。目的変数ｙおよび説明変数ｘ1，ｘ2，…，ｘkは、ｌｏｇ（ｙ／（１−ｙ））＝ａ1ｘ1＋ａ2ｘ2＋…＋ａkｘk＋ｂの関係を満たすと仮定される。ａ1，ａ2，…，ａk，ｂは係数であり、回帰分析によって決定される。
【００５８】
サポートベクタマシンは、空間に配置された単位データの集合を、２つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離（マージン）が最大になるように算出される。
【００５９】
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、母集合から単位データをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングした単位データを分類する。説明変数の選択と単位データの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。単位データのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、単位データを分類するための最終的なモデルを生成する。
【００６０】
図４は、学習時間と予測性能の関係例を示すフラグである。
曲線２２〜２４は、著名なデータ集合（ＣｏｖｅｒＴｙｐｅ）を用いて測定された学習時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線２２は、機械学習アルゴリズムとしてロジスティック回帰を用いた場合の学習時間と予測性能の間の関係を示す。曲線２３は、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の学習時間と予測性能の間の関係を示す。曲線２４は、機械学習アルゴリズムとしてランダムフォレストを用いた場合の学習時間と予測性能の間の関係を示す。なお、図４の横軸は、学習時間について対数目盛になっている。
【００６１】
曲線２２が示すように、ロジスティック回帰を使用した場合、サンプリングサイズ＝８００における予測性能は約０．７１、学習時間は約０．２秒である。サンプリングサイズ＝３２００における予測性能は約０．７５、学習時間は約０．５秒である。サンプリングサイズ＝１２８００における予測性能は約０．７５５、学習時間は１．５秒である。サンプリングサイズ＝５１２００における予測性能は約０．７６、学習時間は約６秒である。
【００６２】
曲線２３が示すように、サポートベクタマシンを使用した場合、サンプリングサイズ＝８００における予測性能は約０．７０、学習時間は約０．２秒である。サンプリングサイズ＝３２００における予測性能は約０．７７、学習時間は約２秒である。サンプリングサイズ＝１２８００に対応する予測性能は約０．７８５、学習時間は約２０秒である。
【００６３】
曲線２４が示すように、ランダムフォレストを使用した場合、サンプリングサイズ＝８００における予測性能は約０．７４、学習時間は約２．５秒である。サンプリングサイズ＝３２００における予測性能は約０．７９、学習時間は約１５秒である。サンプリングサイズ＝１２８００に対応する予測性能は約０．８２、学習時間は約２００秒である。
【００６４】
このように、上記のデータ集合に対しては、ロジスティック回帰は全体的に学習時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰よりも学習時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に学習時間が長く予測性能が高い。ただし、図４の例では、サンプリングサイズが小さい場合のサポートベクタマシンの予測性能は、ロジスティック回帰の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。
【００６５】
また、前述のように、個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、機械学習装置１００は、以下のように複数の機械学習アルゴリズムを使用して、予測性能の高いモデルを効率的に得られるようにする。
【００６６】
図５は、複数の機械学習アルゴリズムの使用例を示す図である。
ここでは説明を簡単にするため、機械学習アルゴリズムＡ，Ｂ，Ｃの３つの機械学習アルゴリズムが存在する場合を考える。機械学習アルゴリズムＡのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３１，３２，３３（Ａ１，Ａ２，Ａ３）が順に実行される。機械学習アルゴリズムＢのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３４，３５，３６（Ｂ１，Ｂ２，Ｂ３）が順に実行される。機械学習アルゴリズムＣのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ３７，３８，３９（Ｃ１，Ｃ２，Ｃ３）が順に実行される。なお、ここでは、学習ステップ３３，３６，３９でそれぞれ停止条件が満たされるものと仮定する。
【００６７】
学習ステップ３１，３４，３７のサンプリングサイズは同じである。例えば、学習ステップ３１，３４，３７の単位データ数はそれぞれ１万である。学習ステップ３２，３５，３８のサンプリングサイズは同じであり、学習ステップ３１，３４，３７のサンプリングサイズの２倍または４倍程度である。例えば、学習ステップ３２，３５，３８の単位データ数はそれぞれ４万である。学習ステップ３３，３６，３９のサンプリングサイズは同じであり、学習ステップ３２，３５，３８のサンプリングサイズの２倍または４倍程度である。例えば、学習ステップ３３，３６，３９の単位データ数はそれぞれ１６万である。
【００６８】
機械学習装置１００は、各機械学習アルゴリズムについて、サンプリングサイズが１段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して実行する。学習ステップを１つ進める毎に、改善速度の推定値が見直される。このため、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に使用する機械学習アルゴリズムが限定されていく。
【００６９】
改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値（以下では達成予測性能と言うことがある）との差である。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプリングサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプリングサイズとに基づいて推定される。
【００７０】
機械学習装置１００は、機械学習アルゴリズムＡの学習ステップ３１と、機械学習アルゴリズムＢの学習ステップ３４と、機械学習アルゴリズムＣの学習ステップ３７とを実行する。機械学習装置１００は、学習ステップ３１，３４，３７の実行結果に基づいて、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムＡの改善速度＝２．５、機械学習アルゴリズムＢの改善速度＝２．０、機械学習アルゴリズムＣの改善速度＝１．０と推定されたとする。すると、機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＡを選択し、学習ステップ３２を実行する。
【００７１】
学習ステップ３２が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．７３、機械学習アルゴリズムＢの改善速度＝１．０、機械学習アルゴリズムＣの改善速度＝０．５と推定されたとする。学習ステップ３２によって達成予測性能が上昇したため、機械学習アルゴリズムＢ，Ｃの改善速度も低下している。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３５を実行する。
【００７２】
学習ステップ３５が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．０、機械学習アルゴリズムＢの改善速度＝０．８、機械学習アルゴリズムＣの改善速度＝０．０と推定されたとする。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３６を実行する。学習ステップ３６によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムＡの学習ステップ３３や機械学習アルゴリズムＣの学習ステップ３８，３９は実行されない。
【００７３】
なお、次の学習ステップの予測性能を推定するにあたっては、統計誤差を考慮し、予測性能が今後上昇する可能性のある機械学習アルゴリズムを早期に切り捨ててしまうリスクを低減することが好ましい。例えば、機械学習装置１００は、回帰分析によって予測性能の期待値とその９５％予測区間を算出し、９５％予測区間の上限値（ＵＣＢ：Upper Confidence Bound）を、改善速度を算出する際の予測性能を推定値として使用することが考えられる。９５％予測区間は、測定される予測性能（測定値）のばらつきを示すものであり、新たな予測性能が９５％の確率でこの区間に収まると予想されることを示す。すなわち、統計上の期待値よりも統計誤差に応じた幅だけ大きい値を使用する。
【００７４】
このように、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
【００７５】
次に、予測性能の推定について説明する。
図６は、予測性能の分布例を示すグラフである。
あるサンプリングサイズについて算出された予測性能の実測値は、機械学習アルゴリズムとデータの母集合の性質とから決まる期待値から乖離するリスクがある。すなわち、同じデータの母集合を使用しても、訓練データおよびテストデータの選択の偶然性によって、予測性能の実測値にばらつきが生じる。予測性能のばらつき（分散）は、サンプリングサイズが小さいほど大きく、サンプリングサイズが大きいほど小さくなる傾向にある。
【００７６】
グラフ４１は、サンプリングサイズと予測性能との間の関係を示す。ここでは、同じ機械学習アルゴリズムおよび同じデータの母集合を用いて、サンプリングサイズ１つ当たり５０回ずつ学習ステップを実行している。グラフ４１は、１つのサンプリングサイズにつき５０個の予測性能の実測値をプロットしたものである。なお、グラフ４１では、予測性能を示す指標として正答率を用いている。
【００７７】
この例では、グラフ４１に示すように、サンプリングサイズが「１００」の場合の予測性能の実測値は、約０．５８〜０．６８であり広範囲に広がっている。サンプリングサイズが「５００」の場合の予測性能の実測値は、約０．６９〜０．７５であり、サンプリングサイズが「１００」の場合よりもその範囲が狭くなっている。以降、サンプリングサイズが大きくなるに従い、予測性能の実測値の範囲は狭くなる。サンプリングサイズが十分に大きくなると、予測性能の実測値は約０．７６に収束している。
【００７８】
上記のように、機械学習装置１００は、機械学習アルゴリズム毎に、次の学習ステップを実行した場合に達成される予測性能を推定する。予測性能の推定のため、機械学習装置１００は、それまでに取得した予測性能の実測値に基づいて予測性能曲線を推定する。しかし、予測性能の実測値（特に、小さなサンプリングサイズに対応する予測性能の実測値）は、期待値から乖離することがある。また、グラフ４１ではサンプリングサイズ１つ当たり５０回ずつ学習ステップを実行しているが、時間的制約から、サンプリングサイズ１つ当たりの学習ステップの実行回数は実際には１回または少数回になることが好ましい。よって、推定される予測性能曲線の精度が問題となる。
【００７９】
図７は、予測性能曲線の第１の推定例を示すグラフである。
ここでは、複数のサンプリングサイズのうち小さい方から６つについて学習ステップを実行して予測性能の実測値を取得し、その６つの予測性能の実測値を用いて予測性能曲線を推定している。そして、それ以降のサンプリングサイズについて学習ステップを進め、取得された予測性能の実測値と推定した予測性能曲線とを対比している。
【００８０】
（Ａ）曲線４２は、前述の非特許文献３（"Prediction of Learning Curves in Machine Translation"）の方法によって推定された予測性能曲線である。非特許文献３の方法は、予測性能の実測値を非線形関数に直接フィッティングして、非線形回帰分析によって予測性能曲線を算出するものである。この例では、４番目と５番目の実測値が期待値よりも小さくなっている。このため、曲線４２は、４番目と５番目の実測値の影響を受けて、予測性能の上限を小さく見積もったものとなっている。その結果、７番目以降のサンプリングサイズについて、曲線４２が示す予測性能の推定値は実測値を大きく下回っている。
【００８１】
曲線４２ａは、曲線４２に対する予測区間の上限を示す。曲線４２ｂは、曲線４２に対する予測区間の下限を示す。予測区間は、同じ条件で実測値を繰り返し取得した場合に、取得した実測値の９５％が収まると予想される範囲である。予測区間は、回帰分析の過程で、曲線４２と併せて算出することができる。曲線４２ａ，４２ｂが示すように、予測性能の実測値を非線形関数に直接フィッティングすると、予測区間が広くなっている。そのため、予測性能が推定値から乖離するリスクを適切に評価することが難しい。
【００８２】
（Ｂ）曲線４３は、前述の非特許文献４（"Predicting sample size required for classification performance"）の方法によって推定された予測性能曲線である。非特許文献４の方法は、予測性能の実測値を重み付けして非線形関数にフィッティングし、非線形回帰分析によって予測性能曲線を算出するものである。使用する予測性能の実測値は、曲線４２の算出に用いたものと同じである。ただし、６番目の実測値に対して大きな重みが付与され、１番目の実測値に対しては小さな重みが付与される。このため、曲線４３は、曲線４２と比べて予測性能の上限を大きく見積もったものとなっている。その結果、８番目のサンプリングサイズについて、曲線４３が示す予測性能の推定値は実測値に近い。
【００８３】
曲線４３ａは、曲線４３に対する予測区間の上限を示す。曲線４３ｂは、曲線４３に対する予測区間の下限を示す。曲線４３ａ，４３ｂが示すように、曲線４３に対する予測区間は曲線４２に対する予測区間よりも広くなっている。特に、サンプリングサイズが、最も大きな重みを付与した６番目のサンプリングサイズから離れるほど、予測区間が広くなっている。これは、サンプリングサイズが小さいほど曲線４３と実測値との間の残差を大きく許容した結果として、回帰分析技術上生じたものである。そのため、予測性能が推定値から乖離するリスクを適切に評価することが難しい。
【００８４】
このように、単純な非線形回帰分析では、算出される予測性能曲線の推定精度が高くならないおそれがある。これは、サンプリングサイズによって予測性能のばらつきが異なる、すなわち、等分散性が成立しないことが一因である。等分散性は、推定式に含まれる説明変数の何れの値に対しても、目的変数の実測値と推定値の差（残差）の分散が等しくなるという統計上の性質である。通常、回帰分析では等分散性が成立していることを仮定する。これに対し、グラフ４１に示したように、サンプリングサイズと予測性能には等分散性が成立しない。そのため、サンプリングサイズを説明変数とし予測性能を目的変数とすると、回帰分析によって予測性能曲線を高精度に推定することは容易でない。
【００８５】
そこで、機械学習装置１００は、以下のようにして予測性能曲線を推定する。
図８は、予測性能の上限値と推定値と標準誤差の関係例を示すグラフである。
曲線４４は、機械学習アルゴリズムとデータの母集合の性質とから決まる予測性能の期待値を示す曲線、すなわち、理想的な予測性能曲線である。曲線４４が示す予測性能の上限を上限値４４ａとする。また、あるサンプリングサイズに対応する曲線４４上の予測性能の値を推定値４４ｂとする。この場合に、当該サンプリングサイズにおける予測性能の実測値の標準誤差は、多くの場合、上限値４４ａと推定値４４ｂの差に比例するという性質をもつ。実測値の標準誤差は、推定値４４ｂと実測値の差（残差）の標準偏差である。この性質は、任意のサンプリングサイズに対して成立する。
【００８６】
すなわち、サンプリングサイズが小さい場合、予測性能の実測値の標準誤差は大きい。また、サンプリングサイズが小さい場合、予測性能の推定値（期待値）と上限値４４ａとの差も大きい。一方、サンプリングサイズが大きい場合、予測性能の実測値の標準誤差は小さい。また、サンプリングサイズが大きい場合、予測性能の推定値と上限値４４ａとの差も小さい。多くの場合、全てのサンプリングサイズに対して、予測性能の実測値の標準誤差と、予測性能の推定値と上限値４４ａとの差が、比例するという関係をもつ。
【００８７】
機械学習装置１００は、この性質を利用して予測性能の実測値から曲線４４を推定する。第２の実施の形態では、機械学習装置１００は、予測性能曲線を示す推定式として次の推定式を使用する：ｙ＝ｃ−ｅｘｐ（ａ×ｆ（ｘ）＋ｂ）。ｘは当初の説明変数でありサンプリングサイズを表す。ｙは当初の目的変数であり予測性能を表す。ａ，ｂ，ｃは未知の係数であり、回帰分析を通じてその値が決定される。係数ｃは、予測性能の上限値を表す。ｆ（ｘ）は、サンプリングサイズを示す説明変数ｘを引数として含み未知の係数を含まない関数である。以下では一例として、ｆ（ｘ）＝ｌｏｇ（ｘ）であると仮定する。
【００８８】
上記の推定式は、次のように変形することができる：ｌｏｇ（ｃ−ｙ）＝ａ×ｌｏｇ（ｘ）＋ｂ。ここで、機械学習装置１００は、回帰分析に用いる説明変数および目的変数を次のように変換する：ｘ*＝ｌｏｇ（ｘ），ｙ*＝ｌｏｇ（ｃ−ｙ）。これにより、上記の推定式は次のように表現される：ｙ*＝ａ×ｘ*＋ｂ。機械学習装置１００は、（ｘ，ｙ）について回帰分析を行う代わりに、（ｘ*，ｙ*）について線形回帰分析を行う。
【００８９】
（ｘ，ｙ）に対する回帰分析は非線形回帰分析である一方、（ｘ*，ｙ*）に対する回帰分析は線形回帰分析である。また、前述のように予測性能の標準誤差が上限値と推定値の差に比例するため、任意のｘ*＝ｌｏｇ（ｘ）に対してｙ*＝ｌｏｇ（ｃ−ｙ）の標準誤差が概ね一定になり、ｘ*，ｙ*について等分散性が成立する。このように、線形性および等分散性が成立するため、変数変換後の回帰分析によれば変数変換前の回帰分析よりも適切な予測性能曲線が得られる可能性が高くなる。
【００９０】
ただし、変換後の目的変数ｙ*＝ｌｏｇ（ｃ−ｙ）は、回帰分析によって値が決定されるべき未知の係数ｃを含んでいる。そこで、機械学習装置１００は、試行錯誤により適切な係数ｃの値を探索する。すなわち、機械学習装置１００は、最初に係数ｃの値を仮定して線形回帰分析を行い、係数ａ，ｂの値を算出する。機械学習装置１００は、この係数ａ，ｂ，ｃの値によって特定される予測性能曲線を評価し、係数ｃの値を変更して再び線形回帰分析を行う。機械学習装置１００は、評価値が十分に良好な予測性能曲線が得られるまで、係数ｃの値の変更と係数ａ，ｂの値の算出とを繰り返す。
【００９１】
図９は、説明変数と目的変数の変換例を示すグラフである。
（Ａ）グラフ４５は、前述のグラフ４１から変換されたデータを表す。グラフ４５の横軸は、ｘ*＝ｌｏｇ（ｘ）でありグラフ４１と同じである。グラフ４５の縦軸は、ｙ*＝ｌｏｇ（１−ｙ）である。すなわち、グラフ４５は、係数ｃの値（予測性能の上限値）を１と仮定して予測性能の実測値を変換したものである。グラフ４５に示すように、ｃ＝１とした場合、ｘ*，ｙ*に線形性も等分散性も成立していない。これは、係数ｃの値が不適切である（予測性能の上限値が間違っている）ためである。
【００９２】
（Ｂ）グラフ４６の横軸は、グラフ４５と同じである。グラフ４６の縦軸は、ｙ*＝ｌｏｇ（０．８−ｙ）である。すなわち、グラフ４６は、係数ｃの値（予測性能の上限値）を０．８と仮定して予測性能の実測値を変換したものである。グラフ４６に示すように、ｃ＝０．８とした場合、線形性や等分散性がまだ不十分である。
【００９３】
（Ｃ）グラフ４７の横軸は、グラフ４５，４６と同じである。グラフ４７の縦軸は、ｙ*＝ｌｏｇ（０．７６２−ｙ）である。すなわち、グラフ４７は、係数ｃの値（予測性能の上限値）を０．７６２と仮定して予測性能の実測値を変換したものである。グラフ４７に示すように、ｃ＝０．７６２とした場合、概ね線形性および等分散性が成立している。このように、予測性能の上限値を適切に判定することで、線形性および等分散性が成立するように変数変換を行うことができ、線形回帰分析が可能となる。
【００９４】
図１０は、予測性能曲線の第２の推定例を示すグラフである。
曲線４８は、図７と同じ予測性能の実績値を用いて機械学習装置１００が推定した予測性能曲線である。曲線４８が示す推定値は、前述の曲線４２，４３と比べて、サンプリングサイズが大きくなっても実測値との乖離が小さく推定精度が高いと言える。曲線４８ａは、曲線４８に対する予測区間の上限を示す。曲線４８ｂは、曲線４８に対する予測区間の下限を示す。曲線４８ａ，４８ｂが示すように、サンプリングサイズが大きくなっても予測区間は十分に狭い。そのため、予測区間の情報を、予測性能が推定値から乖離するリスクを考慮する上で有用な情報として活用できる。
【００９５】
次に、機械学習装置１００が行う処理について説明する。
図１１は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、データ記憶部１２１、管理テーブル記憶部１２２、学習結果記憶部１２３、制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５を有する。データ記憶部１２１、管理テーブル記憶部１２２および学習結果記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域を用いて実現できる。制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５は、例えば、ＣＰＵ１０１が実行するプログラムモジュールを用いて実現できる。
【００９６】
データ記憶部１２１は、機械学習に使用できるデータの集合を記憶する。データの集合は、それぞれが目的変数の値（結果）と１または２以上の説明変数の値（要因）とを含む単位データの集合である。データ記憶部１２１に記憶されたデータは、機械学習装置１００または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置１００または他の情報処理装置に対してユーザが入力したものでもよい。
【００９７】
管理テーブル記憶部１２２は、機械学習の進行を管理する管理テーブルを記憶する。管理テーブルは、学習制御部１３５によって更新される。管理テーブルの詳細は後述する。
学習結果記憶部１２３は、機械学習の結果を記憶する。機械学習の結果には、目的変数と１または２以上の説明変数との間の関係を示すモデルが含まれる。例えば、各説明変数の重みを示す係数が、機械学習によって決定される。また、機械学習の結果には、学習されたモデルの予測性能が含まれる。また、機械学習の結果には、モデルの学習に用いた機械学習アルゴリズムとサンプリングサイズの情報が含まれる。
【００９８】
制限時間入力部１３１は、機械学習の制限時間の情報を取得し、制限時間を学習制御部１３５に通知する。制限時間の情報は、入力デバイス１１２を通じてユーザから入力されてもよい。また、制限時間の情報は、ＲＡＭ１０２またはＨＤＤ１０３に記憶された設定ファイルから読み出すようにしてもよい。また、制限時間の情報は、ネットワーク１１４を介して他の情報処理装置から受信してもよい。
【００９９】
ステップ実行部１３２は、複数の機械学習アルゴリズムを実行することができる。ステップ実行部１３２は、学習制御部１３５から、機械学習アルゴリズムとサンプリングサイズの指定を受け付ける。すると、ステップ実行部１３２は、データ記憶部１２１に記憶されたデータを用いて、指定された機械学習アルゴリズムおよび指定されたサンプリングサイズについての学習ステップを実行する。すなわち、ステップ実行部１３２は、指定されたサンプリングサイズに基づいて、データ記憶部１２１から訓練データとテストデータを抽出する。ステップ実行部１３２は、訓練データおよび指定された機械学習アルゴリズムを用いてモデルを学習し、テストデータを用いて予測性能を算出する。
【０１００】
モデルの学習と予測性能の算出について、ステップ実行部１３２は、クロスバリデーションやランダムサブサンプリングバリデーションなどの各種のバリデーション方法を使用できる。使用するバリデーション方法は、ステップ実行部１３２に予め設定されてもよい。また、ステップ実行部１３２は、１つの学習ステップに要した実行時間を測定する。ステップ実行部１３２は、モデルと予測性能と実行時間を学習制御部１３５に出力する。
【０１０１】
時間推定部１３３は、ある機械学習アルゴリズムの次の学習ステップの実行時間を推定する。時間推定部１３３は、学習制御部１３５から、機械学習アルゴリズムと、当該機械学習アルゴリズムの何番目の学習ステップであるかを示すステップ番号の指定を受け付ける。すると、時間推定部１３３は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの実行時間と、指定されたステップ番号に対応するサンプリングサイズと、所定の推定式とから、指定されたステップ番号の学習ステップの実行時間を推定する。時間推定部１３３は、推定した実行時間を学習制御部１３５に出力する。
【０１０２】
性能改善量推定部１３４は、ある機械学習アルゴリズムの次の学習ステップの性能改善量を推定する。性能改善量推定部１３４は、学習制御部１３５から、機械学習アルゴリズムとステップ番号の指定を受け付ける。すると、性能改善量推定部１３４は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの予測性能から、予測性能の推定式を生成する。性能改善量推定部１３４は、指定されたステップ番号に対応するサンプリングサイズと生成した推定式とから、指定されたステップ番号の学習ステップの予測性能を推定する。このとき、性能改善量推定部１３４は、統計誤差を考慮して、ＵＣＢなど予測性能の期待値よりも大きい値を用いる。性能改善量推定部１３４は、現在の達成予測性能からの改善量を算出し、学習制御部１３５に出力する。
【０１０３】
学習制御部１３５は、複数の機械学習アルゴリズムを用いた機械学習を制御する。学習制御部１３５は、複数の機械学習アルゴリズムそれぞれの最初の学習ステップをステップ実行部１３２に実行させる。学習制御部１３５は、１つの学習ステップが実行される毎に、同じ機械学習アルゴリズムの次の学習ステップの実行時間を時間推定部１３３に推定させ、次の学習ステップの性能改善量を性能改善量推定部１３４に推定させる。学習制御部１３５は、性能改善量を実行時間で割った改善速度を算出する。
【０１０４】
そして、学習制御部１３５は、複数の機械学習アルゴリズムの中から改善速度が最大のものを選択し、選択した機械学習アルゴリズムの次の学習ステップをステップ実行部１３２に実行させる。学習制御部１３５は、改善速度の更新と機械学習アルゴリズムの選択とを、予測性能が所定の停止条件を満たすか、学習時間が制限時間を超えるまで繰り返す。学習制御部１３５は、機械学習の停止までに得られたモデルのうち予測性能が最大のモデルを学習結果記憶部１２３に保存する。また、学習制御部１３５は、予測性能と機械学習アルゴリズムの情報とサンプリングサイズの情報を学習結果記憶部１２３に保存する。
【０１０５】
図１２は、管理テーブルの例を示す図である。
管理テーブル１２２ａは、学習制御部１３５によって生成されて管理テーブル記憶部１２２に記憶される。管理テーブル１２２ａは、アルゴリズムＩＤ、ステップ番号、改善速度、予測性能および実行時間の項目を含む。
【０１０６】
アルゴリズムＩＤは、機械学習アルゴリズムを識別する識別情報である。以下の説明では、ｉ番目（ｉ＝１，２，３，…）の機械学習アルゴリズムのアルゴリズムＩＤをａiと表記することがある。ステップ番号は、プログレッシブサンプリング法の学習ステップを示す番号である。管理テーブル１２２ａには、機械学習アルゴリズム毎に、次に実行される学習ステップのステップ番号が登録される。以下の説明では、ｉ番目の機械学習アルゴリズムに対応するステップ番号をｋiと表記することがある。
【０１０７】
また、ステップ番号からはサンプリングサイズを一意に特定することができる。以下の説明では、ｊ番目の学習ステップのサンプリングサイズをｓjと表記することがある。データ記憶部１２１に記憶されたデータ集合をＤとし、Ｄのサイズ（単位データの数）を｜Ｄ｜とすると、例えば、ｓ1＝｜Ｄ｜／２10，ｓj＝ｓ1×２j-1と決定される。
【０１０８】
改善速度の項目には、機械学習アルゴリズム毎に、次に実行される学習ステップの改善速度の推定値が登録される。改善速度の単位は、例えば、［秒-1］である。以下の説明では、ｉ番目の機械学習アルゴリズムに対応する改善速度をｒiと表記することがある。予測性能の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの予測性能が列挙される。以下の説明では、ｉ番目の機械学習アルゴリズムのｊ番目の学習ステップで算出された予測性能をｐi,jと表記することがある。実行時間の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの実行時間が列挙される。実行時間の単位は、例えば、［秒］である。以下の説明では、ｉ番目の機械学習アルゴリズムのｊ番目の学習ステップの実行時間をＴi,jと表記することがある。
【０１０９】
図１３は、第２の実施の形態の性能改善量推定部の機能例を示すブロック図である。
性能改善量推定部１３４は、推定式生成部１４１、上限値推定部１４２、変数変換部１４３、線形回帰部１４４、予測性能推定部１４５および予測区間算出部１４６を有する。
【０１１０】
推定式生成部１４１は、予測性能曲線を示す推定式を生成する。推定式は、例えば、ｙ＝ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ）＋ｂ）の形をとる。推定式生成部１４１は、推定式に含まれる係数集合θ＝｛ａ，ｂ，ｃ｝の値を決定することになる。推定式生成部１４１は、推定式の生成に用いる実測データとして、サンプリングサイズｘと予測性能ｙの組（ｘ，ｙ）の集合を取得する。サンプリングサイズは回帰分析における説明変数に相当し、予測性能は回帰分析における目的変数に相当する。
【０１１１】
推定式生成部１４１は、実績データを取得すると、係数集合θ＝｛ａ，ｂ，ｃ｝の値を決定するよう上限値推定部１４２に指示する。推定式生成部１４１は、係数集合θの値を上限値推定部１４２から取得する。また、推定式生成部１４１は、係数集合θについての分散共分散行列Ｖと残差分散Ｒを上限値推定部１４２から取得する。分散共分散行列Ｖおよび残差分散Ｒについては後述する。推定式生成部１４１は、係数集合θの値と分散共分散行列Ｖと残差分散Ｒを予測性能推定部１４５に出力する。
【０１１２】
上限値推定部１４２は、係数集合θ＝｛ａ，ｂ，ｃ｝のうち、予測性能の上限値を示す係数ｃの値を仮選択する。上限値推定部１４２は、係数ｃの値と実測データ（ｘ，ｙ）の集合を変数変換部１４３に通知し、変換後データ（ｘ*，ｙ*）の集合を変数変換部１４３から取得する。上限値推定部１４２は、変換後データ（ｘ*，ｙ*）の集合を線形回帰部１４４に通知し、係数ａ，ｂの値を線形回帰部１４４から取得する。また、上限値推定部１４２は、係数ａ，ｂについての分散共分散行列Ｗを線形回帰部１４４から取得する。
【０１１３】
上限値推定部１４２は、係数集合θ＝｛ａ，ｂ，ｃ｝の値と実測データ（ｘ，ｙ）の集合を用いて評価値Ｇを算出する。評価値Ｇは、実測データ（ｘ，ｙ）の空間上で算出される。例えば、評価値Ｇを次のように推定値と実測値の間の重み付き残差二乗和として定義できる：Ｇ＝ｓｕｍ｛（ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ））＋ｂ−ｙ）2×ｗｐ｝。ｗｐは各実測値の重みを表す。全ての実測値についてｗｐ＝１としてもよいし、ｗｐ＝ｘ（サンプリングサイズ）としてもよい。全ての実測値についてｗｐ＝１とした場合、評価値Ｇは次の式と等価である：ｓｕｍ｛（ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ））＋ｂ−ｙ）2｝。
【０１１４】
上限値推定部１４２は、評価値Ｇが最小になるように、係数ｃの値を変更して上記の処理を繰り返す。この数値最適化方法として、例えば、Ｎｅｌｄｅｒ−Ｍｅａｄ法などを用いることができる。また、上限値推定部１４２は、係数ｃについての分散共分散行列Ｕを算出する。上限値推定部１４２は、係数ａ，ｂについての分散共分散行列Ｗと係数ｃについての分散共分散行列Ｕを合成して、係数集合θについての分散共分散行列Ｖを生成する。また、上限値推定部１４２は、係数集合θの値と変換後データ（ｘ*，ｙ*）から、係数集合θについての残差分散Ｒを算出する。
【０１１５】
ここで、分散共分散行列Ｖと残差分散Ｒについて説明する。係数ａ，ｂについての分散共分散行列Ｗは２×２の行列である。分散共分散行列Ｗの要素のうち、ｗ11は係数ａの分散に対応し、ｗ21は係数ａと係数ｂの共分散に対応し、ｗ12は係数ｂと係数ａの共分散に対応し、ｗ22は係数ｂの分散に対応する。係数ｃについての分散共分散行列Ｕは１×１の行列である。分散共分散行列Ｕの要素であるｕ11は係数ｃの分散に対応する。
【０１１６】
係数集合θについての分散共分散行列Ｖは３×３の行列である。分散共分散行列Ｖの要素のうち、ｖ11は係数ａの分散に対応し、ｖ21は係数ａと係数ｂの共分散に対応し、ｖ31は係数ａと係数ｃの共分散に対応する。ｖ12は係数ｂと係数ａの共分散に対応し、ｖ22は係数ｂの分散に対応し、ｖ32は係数ｂと係数ｃの共分散に対応する。ｖ13は係数ｃと係数ａの共分散に対応し、ｖ23は係数ｃと係数ｂの共分散に対応し、ｖ33は係数ｃの分散に対応する。そのため、ｖ11＝ｗ11、ｖ21＝ｗ21、ｖ12＝ｗ12、ｖ22＝ｗ22となる。また、ｖ33＝ｕ11となる。一方、係数ａと係数ｃの間の関係および係数ｂと係数ｃの間の関係は無視し、ｖ13＝ｖ23＝ｖ31＝ｖ32＝０と仮定する。よって、分散共分散行列Ｖは、分散共分散行列Ｗ，Ｕを合成して数式（１）のように算出することができる。
【０１１７】
【数１】
0006536295.tif 000002
【０１１８】
一般に、最小二乗法などの回帰分析によってＮ2個の係数の値を決定すると、それに伴ってＮ2×Ｎ2の分散共分散行列が算出される。上記の分散共分散行列Ｗ，Ｕは、例えば、以下に説明する方法で算出することが可能である。数値最適化の目的関数をｆ（θ）とする。ここでは、θは係数集合（Ｎ2次元の係数ベクトル）である。目的関数ｆ（θ）はθ＝θ0のときに最小値をとるものとする。ｅｘｐ（−ｆ（θ））をガウス関数を用いて近似するラプラス近似を考える。目的関数ｆ（θ）をθ0の周辺で二次項までテーラー展開すると、数式（２）のような近似式が得られる。θ0が極値であるため、近似式から一次項は消える。数式（３）に示すように、行列Ｈは目的関数ｆ（θ）のヘッセ行列である。
【０１１９】
【数２】
0006536295.tif 000003
【０１２０】
【数３】
0006536295.tif 000004
【０１２１】
数式（２）より、ｅｘｐ（−ｆ（θ））は数式（４）のように近似される。数式（４）の右辺の近似式に正規化係数をかけたものは、期待値θ0、分散共分散行列Ｈ-1の多次元正規分布を示す。係数集合θに含まれる各係数の値は、近似的にこの正規分布に従う。よって、係数集合θについての分散共分散行列は、ヘッセ行列Ｈを算出し、ヘッセ行列Ｈの逆行列（Ｈ-1）を算出することによって得ることができる。
【０１２２】
【数４】
0006536295.tif 000005
【０１２３】
残差分散Ｒは、第２の実施の形態では、実測データ（ｘ，ｙ）の空間上で算出する代わりに変換後データ（ｘ*，ｙ*）の空間上で算出される。具体的には、残差分散Ｒは次の式によって算出される：Ｒ＝ｓｕｍ｛（ａ×ｘ*＋ｂ−ｙ*）2×ｗｐ｝／（ｓｕｍ（ｗｐ）−３）。ｓｕｍ（ｗｐ）−３は、推定式の自由度を表す。全ての実測値についてｗｐ＝１とした場合、上記の式は次の式と等価である：Ｒ＝ｓｕｍ｛（ａ×ｘ*＋ｂ−ｙ*）2｝／（Ｎ3−３）。Ｎ3は予測性能の実測値の数である。
【０１２４】
なお、上限値推定部１４２は、残差分散Ｒを算出する際に考慮されなかった残差成分であるｙ−（ｃ−ｅｘｐ（ｙ*））の分散を、残差分散Ｒ*として算出してもよい。推定式生成部１４１は、残差分散Ｒと共に残差分散Ｒ*を予測性能推定部１４５に出力してもよい。また、上記では推定式生成部１４１が分散共分散行列Ｖを出力したが、分散共分散行列Ｖに代えて予測性能の分散に関する他の情報を出力してもよい。また、推定式生成部１４１は、実測データ（ｘ，ｙ）の集合を予測性能推定部１４５に出力してもよい。
【０１２５】
変数変換部１４３は、係数ｃの値と実測データ（ｘ，ｙ）の集合を上限値推定部１４２から取得する。すると、変数変換部１４３は、実測データ（ｘ，ｙ）の集合から変換後データ（ｘ*，ｙ*）の集合を生成し、上限値推定部１４２に出力する。実測データ（ｘ，ｙ）それぞれは、例えば、次のように変換される：ｘ*＝ｌｏｇ（ｘ），ｙ*＝ｌｏｇ（ｃ−ｙ）。ただし、ｃ＜ｙの場合はｙ*＝１０―8とする。
【０１２６】
線形回帰部１４４は、変換後データ（ｘ*，ｙ*）の集合を上限値推定部１４２から取得する。すると、線形回帰部１４４は、ｘ*を説明変数の値、ｙ*を目的変数の値として用いて線形回帰分析を行う。すなわち、線形回帰部１４４は、変換後データ（ｘ*，ｙ*）の集合を用いて、線形式ｙ*＝ａ×ｘ*＋ｂにおける係数ａ，ｂの値を決定する。線形回帰部１４４は、決定した係数ａ，ｂの値を上限値推定部１４２に出力する。また、線形回帰部１４４は、線形回帰分析を通じて係数ａ，ｂについての分散共分散行列Ｗを算出し、分散共分散行列Ｗを上限値推定部１４２に出力する。
【０１２７】
予測性能推定部１４５は、係数集合θの値と分散共分散行列Ｖと残差分散Ｒを推定式生成部１４１から取得する。また、予測性能推定部１４５は、予測性能を推定すべきサンプリングサイズの情報を取得する。第２の実施の形態では、性能改善量推定部１３４が１回に推定する予測性能は１つのサンプリングサイズに対応する１つの予測性能である。ただし、予測性能推定部１４５は、同じ推定式（同じ予測性能曲線）を用いて、複数のサンプリングサイズに対応する複数の予測性能を推定することも可能である。
【０１２８】
予測性能推定部１４５は、係数集合θの値によって特定される推定式ｙ＝ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ）＋ｂ）にサンプリングサイズを代入することで、予測性能の推定値を算出する。また、予測性能推定部１４５は、係数集合θの値と分散共分散行列Ｖと残差分散Ｒとサンプリングサイズを予測区間算出部１４６に出力し、予測区間を算出するよう指示する。予測性能推定部１４５は、予測区間の上限値と下限値を、予測区間算出部１４６から取得する。予測性能推定部１４５は、推定値と予測区間上限値と予測区間下限値を出力する。前述のように、性能改善量の推定には予測区間上限値が使用される。
【０１２９】
予測区間算出部１４６は、係数集合θの値（期待値）と分散共分散行列Ｖと残差分散Ｒとサンプリングサイズを予測性能推定部１４５から取得する。予測区間算出部１４６は、モンテカルロ法によって９５％予測区間を推定する。具体的には、予測区間算出部１４６は、算出される係数ａ，ｂ，ｃの値が統計誤差を含むことを想定して、係数ａ，ｂ，ｃの期待値および分散共分散行列Ｖが示す３次元正規分布に従うように、係数ａ，ｂ，ｃの値をランダムにＱ組生成する。Ｑは十分大きな数とし、例えば、Ｑ＝１００００とする。
【０１３０】
また、予測区間算出部１４６は、期待値「０」および残差分散Ｒが示す正規分布に従うように、残差ｅの値をランダムにＱ個生成する。予測区間算出部１４６は、Ｑ組の係数ａ，ｂ，ｃおよび残差ｅの値それぞれについて、ｙ＝ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ）＋ｂ＋ｅ）を、統計誤差を考慮したシミュレーション値として算出する。推定式生成部１４１が残差分散Ｒ*を出力した場合、予測区間算出部１４６は、期待値「０」および残差分散Ｒ*が示す正規分布に従った乱数を、上記の式に更に加えてもよい。
【０１３１】
予測区間算出部１４６は、Ｑ個のシミュレーション値を用いて、予測区間の上限値および下限値を算出する。具体的には、予測区間算出部１４６は、Ｑ個のシミュレーション値をソートし、下位から２．５％の位置のシミュレーション値を予測区間下限値とする。また、予測区間算出部１４６は、上位から２．５％（下位から９７．５％）の位置のシミュレーション値を予測区間上限値とする。予測区間算出部１４６は、算出した予測区間上限値および予測区間下限値を予測性能推定部１４５に出力する。なお、予測区間算出部１４６は、予測区間の情報に代えて、シミュレーション値の分散などシミュレーション値の分布を示す情報を出力してもよい。また、予測区間算出部１４６は、モンテカルロシミュレーション以外の方法で予測区間を推定するようにしてもよい。
【０１３２】
図１４は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）学習制御部１３５は、データ記憶部１２１を参照して、プログレッシブサンプリング法における学習ステップのサンプリングサイズｓ1，ｓ2，ｓ3，…を決定する。例えば、学習制御部１３５は、データ記憶部１２１に記憶されたデータ集合Ｄのサイズに基づいて、ｓ1＝｜Ｄ｜／２10，ｓj＝ｓ1×２j-1と決定する。
【０１３３】
（Ｓ１１）学習制御部１３５は、管理テーブル１２２ａの各機械学習アルゴリズムのステップ番号を１に初期化する。また、学習制御部１３５は、各機械学習アルゴリズムの改善速度を、改善速度が取り得る最大値に初期化する。また、学習制御部１３５は、達成予測性能Ｐを、達成予測性能Ｐが取り得る最小値（例えば、０）に初期化する。
【０１３４】
（Ｓ１２）学習制御部１３５は、管理テーブル１２２ａの中から、改善速度が最大の機械学習アルゴリズムを選択する。ここで選択した機械学習アルゴリズムをａiとする。
（Ｓ１３）学習制御部１３５は、機械学習アルゴリズムａiの改善速度ｒiが、閾値Ｔｒ未満であるか判断する。閾値Ｔｒは、予め学習制御部１３５に設定されていてもよい。例えば、閾値Ｔｒ＝０．００１／３６００とする。改善速度ｒiが閾値Ｔｒ未満である場合はステップＳ２８に処理が進み、それ以外の場合はステップＳ１４に処理が進む。
【０１３５】
（Ｓ１４）学習制御部１３５は、管理テーブル１２２ａから、機械学習アルゴリズムａiに対応するステップ番号ｋiを検索する。ここでは、ｋi＝ｊであるとする。
（Ｓ１５）学習制御部１３５は、ステップ番号ｊに対応するサンプリングサイズｓjを算出し、ステップ実行部１３２に対して機械学習アルゴリズムａiとサンプリングサイズｓjを指定する。ステップ実行部１３２は、機械学習アルゴリズムａiについてｊ番目の学習ステップを実行する。ステップ実行部１３２の処理の詳細は後述する。
【０１３６】
（Ｓ１６）学習制御部１３５は、ステップ実行部１３２から、学習されたモデルと当該モデルの予測性能ｐi,jと実行時間Ｔi,jとを取得する。
（Ｓ１７）学習制御部１３５は、ステップＳ１６で取得した予測性能ｐi,jと、達成予測性能Ｐ（現在までに達成された最大の予測性能）とを比較し、前者が後者より大きいか判断する。予測性能ｐi,jが達成予測性能Ｐよりも大きい場合はステップＳ１８に処理が進み、それ以外の場合はステップＳ１９に処理が進む。
【０１３７】
（Ｓ１８）学習制御部１３５は、達成予測性能Ｐを予測性能ｐi,jに更新する。また、学習制御部１３５は、達成予測性能Ｐと対応付けて、その予測性能が得られた機械学習アルゴリズムａiとステップ番号ｊとを記憶しておく。
【０１３８】
（Ｓ１９）学習制御部１３５は、管理テーブル１２２ａに記憶されたステップ番号のうち、機械学習アルゴリズムａiに対応するステップ番号ｋiをｊ＋１に更新する。すなわち、ステップ番号ｋiをインクリメント（１だけ加算）する。また、学習制御部１３５は、合計時間ｔsum＝０に初期化する。
【０１３９】
図１５は、機械学習の手順例を示すフローチャート（続き）である。
（Ｓ２０）学習制御部１３５は、機械学習アルゴリズムａiの次の学習ステップのサンプリングサイズｓj+1を算出する。学習制御部１３５は、サンプリングサイズｓj+1とデータ記憶部１２１に記憶されたデータ集合Ｄのサイズとを比較し、前者が後者より大きいか判断する。サンプリングサイズｓj+1がデータ集合Ｄのサイズよりも大きい場合はステップＳ２１に処理が進み、それ以外の場合はステップＳ２２に処理が進む。
【０１４０】
（Ｓ２１）学習制御部１３５は、管理テーブル１２２ａに記憶された改善速度のうち、機械学習アルゴリズムａiに対応する改善速度ｒiを０に更新する。これにより、機械学習アルゴリズムａiは実行されなくなる。そして、前述のステップＳ１２に処理が進む。
【０１４１】
（Ｓ２２）学習制御部１３５は、時間推定部１３３に対して機械学習アルゴリズムａiとステップ番号ｊ＋１を指定する。時間推定部１３３は、機械学習アルゴリズムａiについて次の学習ステップ（ｊ＋１番目の学習ステップ）を実行した場合の実行時間ｔi,j+1を推定する。時間推定部１３３の処理の詳細は後述する。
【０１４２】
（Ｓ２３）学習制御部１３５は、性能改善量推定部１３４に対して機械学習アルゴリズムａiとステップ番号ｊ＋１を指定する。性能改善量推定部１３４は、機械学習アルゴリズムａiについて次の学習ステップ（ｊ＋１番目の学習ステップ）を実行した場合の性能改善量ｇi,j+1を推定する。性能改善量推定部１３４の処理の詳細は後述する。
【０１４３】
（Ｓ２４）学習制御部１３５は、時間推定部１３３から取得した実行時間ｔi,j+1に基づいて、合計時間ｔsum＝ｔsum＋ｔi,j+1に更新する。また、学習制御部１３５は、更新した合計時間ｔsumと性能改善量推定部１３４から取得した性能改善量ｇi,j+1とに基づいて、改善速度ｒi＝ｇi,j+1／ｔsumを算出する。学習制御部１３５は、管理テーブル１２２ａに記憶された改善速度ｒiを上記の値に更新する。
【０１４４】
（Ｓ２５）学習制御部１３５は、改善速度ｒiが閾値Ｔｒ未満であるか判断する。改善速度ｒiが閾値Ｔｒ未満の場合はステップＳ２６に処理が進み、改善速度ｒiが閾値Ｔｒ以上の場合はステップＳ２７に処理が進む。
【０１４５】
（Ｓ２６）学習制御部１３５は、ｊ＝ｊ＋１に更新する。そして、ステップＳ２０に処理が進む。
（Ｓ２７）学習制御部１３５は、機械学習を開始してからの経過時間が、制限時間入力部１３１から指定された制限時間を超えたか判断する。経過時間が制限時間を超えた場合はステップＳ２８に処理が進み、それ以外の場合はステップＳ１２に処理が進む。
【０１４６】
（Ｓ２８）学習制御部１３５は、達成予測性能Ｐと当該予測性能が得られたモデルとを学習結果記憶部１２３に保存する。また、学習制御部１３５は、達成予測性能Ｐに対応付けられた機械学習アルゴリズムのアルゴリズムＩＤと、達成予測性能Ｐに対応付けられたステップ番号に相当するサンプリングサイズとを、学習結果記憶部１２３に保存する。
【０１４７】
図１６は、ステップ実行の手順例を示すフローチャートである。
ここでは、バリデーション方法として、データ集合Ｄのサイズに応じて、ランダムサブサンプリングバリデーションまたはクロスバリデーションを実行する場合を考える。ただし、ステップ実行部１３２は、他のバリデーション方法を用いてもよい。
【０１４８】
（Ｓ３０）ステップ実行部１３２は、学習制御部１３５から指定された機械学習アルゴリズムａiとサンプリングサイズｓjとを特定する。また、ステップ実行部１３２は、データ記憶部１２１に記憶されているデータ集合Ｄを特定する。
【０１４９】
（Ｓ３１）ステップ実行部１３２は、サンプリングサイズｓjが、データ集合Ｄのサイズの２／３よりも大きいか判断する。サンプリングサイズｓjが２／３×｜Ｄ｜よりも大きい場合、ステップ実行部１３２は、データ量が不足しているためクロスバリデーションを選択する。そして、ステップＳ３８に処理が進む。サンプリングサイズｓjが２／３×｜Ｄ｜以下である場合、ステップ実行部１３２は、データ量が十分あるためランダムサブサンプリングバリデーションを選択する。そして、ステップＳ３２に処理が進む。
【０１５０】
（Ｓ３２）ステップ実行部１３２は、データ集合Ｄからサンプリングサイズｓjの訓練データＤtをランダムに抽出する。訓練データの抽出は、非復元抽出サンプリングとして行う。よって、訓練データには、互いに異なるｓj個の単位データが含まれる。
【０１５１】
（Ｓ３３）ステップ実行部１３２は、データ集合Ｄのうち訓練データＤtを除いた部分から、サイズｓj／２のテストデータＤsをランダムに抽出する。テストデータの抽出は、非復元抽出サンプリングとして行う。よって、テストデータには、訓練データＤtと異なりかつ互いに異なるｓj／２個の単位データが含まれる。なお、ここでは訓練データＤtのサイズとテストデータＤsのサイズの比を２：１としたが、比を変更してもよい。
【０１５２】
（Ｓ３４）ステップ実行部１３２は、機械学習アルゴリズムａiとデータ集合Ｄから抽出した訓練データＤtとを用いてモデルｍを学習する。
（Ｓ３５）ステップ実行部１３２は、学習したモデルｍとデータ集合Ｄから抽出したテストデータＤsとを用いて、モデルｍの予測性能ｐを算出する。予測性能ｐを表す指標として、正答率、適合率、ＲＭＳＥなど任意の指標を用いることができる。予測性能ｐを表す指標が、予めステップ実行部１３２に設定されてもよい。
【０１５３】
（Ｓ３６）ステップ実行部１３２は、上記ステップＳ３２〜Ｓ３５の繰り返し回数と閾値Ｋとを比較し、前者が後者未満であるか判断する。閾値Ｋは、予めステップ実行部１３２に設定されていてもよい。例えば、閾値Ｋ＝１０とする。繰り返し回数が閾値Ｋ未満の場合はステップＳ３２に処理が進み、それ以外の場合はステップＳ３７に処理が進む。
【０１５４】
（Ｓ３７）ステップ実行部１３２は、ステップＳ３５で算出されたＫ個の予測性能ｐの平均値を算出し、予測性能ｐi,jとして出力する。また、ステップ実行部１３２は、ステップＳ３０が開始されてからステップＳ３２〜Ｓ３６の繰り返しが終了するまでの実行時間Ｔi,jを算出して出力する。また、ステップ実行部１３２は、ステップＳ３４で学習されたＫ個のモデルｍのうち予測性能ｐが最大のモデルを出力する。そして、ランダムサブサンプリングバリデーションによる１つの学習ステップが終了する。
【０１５５】
（Ｓ３８）ステップ実行部１３２は、上記のランダムサブサンプリングバリデーションに代えて、前述したクロスバリデーションを実行する。例えば、ステップ実行部１３２は、データ集合Ｄからサンプリングサイズｓjのサンプルデータをランダムに抽出し、抽出したサンプルデータをＫ個のブロックに均等に分割する。ステップ実行部１３２は、Ｋ−１個のブロックを訓練データとして使用し１個のブロックをテストデータとして使用することを、テストデータのブロックを変えながらＫ回繰り返す。ステップ実行部１３２は、Ｋ個の予測性能の平均値と、実行時間と、予測性能が最大のモデルを出力する。
【０１５６】
図１７は、時間推定の手順例を示すフローチャートである。
（Ｓ４０）時間推定部１３３は、学習制御部１３５から指定された機械学習アルゴリズムａiとステップ番号ｊ＋１とを特定する。
【０１５７】
（Ｓ４１）時間推定部１３３は、機械学習アルゴリズムａiの学習ステップが２つ以上実行済みか、すなわち、ステップ番号ｊ＋１が２より大きいか判断する。ｊ＋１＞２の場合はステップＳ４２に処理が進み、それ以外の場合はステップＳ４５に処理が進む。
【０１５８】
（Ｓ４２）時間推定部１３３は、管理テーブル１２２ａから機械学習アルゴリズムａiに対応する実行時間Ｔi,1，Ｔi,2を検索する。
（Ｓ４３）時間推定部１３３は、サンプリングサイズｓ1，ｓ2と実行時間Ｔi,1，Ｔi,2を用いて、サンプリングサイズｓから実行時間ｔを推定する推定式ｔ＝α×ｓ＋βの係数α，βを決定する。係数α，βは、Ｔi,1およびｓ1をｔおよびｓにそれぞれ代入した式と、Ｔi,2およびｓ2をｔおよびｓにそれぞれ代入した式とを含む連立方程式を解くことで決定できる。ただし、機械学習アルゴリズムａiの学習ステップが３つ以上実行済みである場合、時間推定部１３３は、それら学習ステップの実行時間から回帰分析によって係数α，βを決定してもよい。実行時間をサンプリングサイズの一次式と仮定することは、例えば、前述の非特許文献２（"The Learning-Curve Sampling Method Applied to Model-Based Clustering"）にも記載がある。
【０１５９】
（Ｓ４４）時間推定部１３３は、上記の実行時間の推定式とサンプリングサイズｓj+1を用いて（ｓj+1を推定式のｓに代入して）、ｊ＋１番目の学習ステップの実行時間ｔi,j+1を推定する。時間推定部１３３は、推定した実行時間ｔi,j+1を出力する。
【０１６０】
（Ｓ４５）時間推定部１３３は、管理テーブル１２２ａから機械学習アルゴリズムａiに対応する実行時間Ｔi,1を検索する。
（Ｓ４６）時間推定部１３３は、サンプリングサイズｓ1，ｓ2と実行時間Ｔi,1を用いて、２番目の学習ステップの実行時間ｔi,2＝ｓ2／ｓ1×Ｔi,1と推定する。時間推定部１３３は、推定した実行時間ｔi,2を出力する。
【０１６１】
図１８は、性能改善量推定の手順例を示すフローチャートである。
（Ｓ５０）性能改善量推定部１３４は、学習制御部１３５から指定された機械学習アルゴリズムａiとステップ番号ｊ＋１とを特定する。
【０１６２】
（Ｓ５１）性能改善量推定部１３４は、管理テーブル１２２ａから機械学習アルゴリズムａiに対応する全ての予測性能ｐi,1，ｐi,2，…を検索する。
（Ｓ５２）性能改善量推定部１３４は、サンプリングサイズｓ1，ｓ2，…と予測性能ｐi,1，ｐi,2，…を用いて、サンプリングサイズから予測性能を推定する推定式を生成する。推定式生成の詳細は後述する。
【０１６３】
（Ｓ５３）性能改善量推定部１３４は、ステップＳ５２で生成した予測性能の推定式とサンプリングサイズｓj+1を用いて（ｓj+1を推定式に代入して）、ｊ＋１番目の学習ステップの予測性能の期待値を算出する。また、性能改善量推定部１３４は、予測性能の期待値に対する９５％予測区間の上限値を算出する。ここで算出された上限値を推定上限値Ｕｐとする。予測性能推定の詳細は後述する。
【０１６４】
（Ｓ５４）性能改善量推定部１３４は、現在の達成予測性能Ｐと推定上限値Ｕｐを比較して性能改善量ｇi,j+1を推定し、推定した性能改善量ｇi,j+1を出力する。性能改善量ｇi,j+1は、Ｕｐ＞ＰであればＵｐ−Ｐであり、Ｕｐ≦Ｐであれば０である。
【０１６５】
図１９は、推定式生成の手順例を示すフローチャートである。
（Ｓ６０）推定式生成部１４１は、実測データ（ｘ，ｙ）の集合を取得する。
（Ｓ６１）推定式生成部１４１は、係数集合θ＝｛ａ，ｂ，ｃ｝を特定する。
【０１６６】
（Ｓ６２）上限値推定部１４２は、係数ｃの初期値として、取得した予測性能の実測値の中の最大値に所定値（例えば、１０-8）を加えた値を設定する。
（Ｓ６３）変数変換部１４３は、現在の係数ｃの値を用いて、実測データ（ｘ，ｙ）の集合を変換後データ（ｘ*，ｙ*）の集合に変換する。具体的には、変数変換部１４３は、ｘ*＝ｌｏｇ（ｘ），ｙ*＝ｌｏｇ（ｃ−ｙ）と変換する。
【０１６７】
（Ｓ６４）線形回帰部１４４は、変換後データ（ｘ*，ｙ*）の集合を用いて、線形回帰分析により線形式ｙ*＝ａ×ｘ*＋ｂの係数ａ，ｂの値を算出する。例えば、線形回帰部１４４は、最小二乗法により残差二乗和が最小になる係数ａ，ｂの値を算出する。
【０１６８】
（Ｓ６５）上限値推定部１４２は、係数ａ，ｂ，ｃの値を用いて、実測データ（ｘ，ｙ）それぞれについて推定値ｙ0＝ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ）＋ｂ）を算出する。
（Ｓ６６）上限値推定部１４２は、予測性能の実測値ｙと推定値ｙ0から重み付き残差二乗和を算出し、係数ａ，ｂ，ｃの値に対する評価値Ｇとする。具体的には、上限値推定部１４２は、Ｇ＝ｓｕｍ｛(ｙ0−ｙ)2×ｗｐ｝を算出する。重みｗｐの値は、全ての実測値ｙについて共通でもよいし実測値ｙによって異なってもよい。例えば、重みｗｐの値は、サンプリングサイズｘでもよいし、サンプリングサイズｘに応じた値でもよい。
【０１６９】
（Ｓ６７）上限値推定部１４２は、係数ｃの最適化が完了したか判断する。例えば、評価値Ｇが閾値未満になった場合や、評価値Ｇが過去と比べて改善しなくなった場合に、最適化が完了したと判断してもよい。また、例えば、ステップＳ６３〜Ｓ６６の繰り返し回数が閾値に達した場合や、係数ｃの最適化を開始してから所定時間経過した場合に、最適化が完了したと判断してもよい。最適化が完了した場合はステップＳ６９に処理が進み、最適化が完了していない場合はステップＳ６８に処理が進む。
【０１７０】
（Ｓ６８）上限値推定部１４２は、係数ｃの値を変更する。上限値推定部１４２は、ランダムに係数ｃの値を選択してもよいし、現在の値から所定の方向に所定の幅だけ離れた値を選択してよい。また、上限値推定部１４２は、過去の評価値Ｇから、評価値Ｇが改善すると期待される係数ｃの値を予測してもよい。そして、ステップＳ６３に処理が進む。
【０１７１】
（Ｓ６９）上限値推定部１４２は、評価値Ｇが最小になった係数集合θの値を特定する。上限値推定部１４２は、その係数集合θの値に対応する分散共分散行列Ｖを算出する。分散共分散行列Ｖは、係数ａ，ｂについての分散共分散行列Ｗと係数ｃについての分散共分散行列Ｕとを合成することで算出される。
【０１７２】
（Ｓ７０）上限値推定部１４２は、特定した係数集合θの値に対応する残差分散Ｒを算出する。具体的には、上限値推定部１４２は、変換後データ（ｘ*，ｙ*）の集合を用いて、Ｒ＝ｓｕｍ｛（ａ×ｘ*＋ｂ−ｙ*）2×ｗｐ｝／（ｓｕｍ（ｗｐ）−３）を算出する。重みｗｐの値は、ステップＳ６６と同じものを用いる。
【０１７３】
図２０は、予測性能推定の手順例を示すフローチャートである。
（Ｓ８０）予測性能推定部１４５は、指定されたサンプリングサイズｘ0について、予測性能の推定値ｙ0＝ｃ−ｅｘｐ（ａ×ｌｏｇ（ｘ0）＋ｂ）を算出する。
【０１７４】
（Ｓ８１）予測区間算出部１４６は、係数ａ，ｂ，ｃの期待値および分散共分散行列Ｖに従うように、ランダムに係数ａ，ｂ，ｃの値ａq，ｂq，ｃqを生成する（ｑ＝１，２，…，Ｑ）。Ｑは十分大きな整数とし、例えば、Ｑ＝１００００とする。
【０１７５】
（Ｓ８２）予測区間算出部１４６は、期待値を「０」とし残差分散Ｒに従うように、ランダムに残差ｅqを生成する（ｑ＝１，２，…，Ｑ）。
（Ｓ８３）予測区間算出部１４６は、予測性能のシミュレーション値ｙq＝ｃq−ｅｘｐ（ａq×ｌｏｇ（ｘ0）＋ｂq＋ｅq）を算出する（ｑ＝１，２，…，Ｑ）。
【０１７６】
（Ｓ８４）予測区間算出部１４６は、予測性能のシミュレーション値ｙqを昇順または降順にソートする。予測区間算出部１４６は、予測性能のシミュレーション値ｙqのうち下位から２．５％の位置の値を、９５％予測区間の下限値と推定する。また、予測区間算出部１４６は、予測性能のシミュレーション値ｙqのうち上位から２．５％の位置の値を、９５％予測区間の上限値と推定する。
【０１７７】
第２の実施の形態の機械学習装置１００によれば、複数の機械学習アルゴリズムそれぞれについて、次の学習ステップを実行した場合の単位時間当たりの予測性能の改善量（改善速度）が推定される。そして、改善速度が最大の機械学習アルゴリズムが選択され、選択された機械学習アルゴリズムの学習ステップが１つだけ進められる。改善速度の推定と機械学習アルゴリズムの選択が繰り返され、最終的に１つのモデルが選択される。
【０１７８】
これにより、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、改善速度の推定値が最大の機械学習アルゴリズムが選択されるため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムをサンプリングサイズが小さいうちに切り捨ててしまうリスクを低減できる。このように、複数の機械学習アルゴリズムを利用してモデルの予測性能を効率的に向上させることができる。
【０１７９】
また、次の学習ステップで達成される予測性能を推定する際に、サンプリングサイズと予測性能の実測値とを対応付けた実測データが、線形性および等分散性が成立するように変換される。変換にあたっては、予測性能の実測値の標準誤差が、上限値と推定値の差に比例するという経験則が利用される。これにより、回帰分析の精度が向上し、誤差を含む実測値からも信頼性の高い予測性能曲線を推定することができる。また、小さなサンプリングサイズに関する少量の実測値からでも、大きなサンプリングサイズの予測性能を推定することができる。また、予測区間を正確に算出することができる。
【０１８０】
また、予測性能の推定精度が向上することで、予測性能の上限値が低い機械学習アルゴリズムを誤選択してしまうリスクが下がり、全体の学習時間を短縮することができる。また、各機械学習アルゴリズムについて予測性能が上限値に十分近づいたか否かを早い段階で判断することができ、学習ステップの打ち切りを適切なタイミングで判断できる。
【０１８１】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第２の実施の形態との違いを中心に説明し、第２の実施の形態と同様の事項については説明を省略することがある。
【０１８２】
予測性能を示す指標の中には、最大値が「１」である正答率のように、理論上有限の最大値が存在する指標がある。また、機械学習アルゴリズムの中には、予測性能の上限値が最大値近くになりやすい機械学習アルゴリズムが存在する。例えば、機械学習アルゴリズムの中には、「０．９９５」や「０．９９９」などの正答率を達成し得るものがある。この場合、予測性能の指標がもつ特性として、天井効果が生じてしまう。
【０１８３】
すなわち、予測性能の実測値の分布が最大値付近で圧縮されてしまい、サンプリングサイズと予測性能との対応関係を示す分析空間に歪みが生じてしまうおそれがある。そのままでは、説明変数や目的変数を変換しても線形性や等分散性が成立しづらくなり、回帰分析の精度が低下するおそれがある。そこで、第３の実施の形態では、予測性能の指標が有限の最大値をもつことによって生じる歪みを補正する。
【０１８４】
図２１は、第３の実施の形態の性能改善量推定部の機能例を示すブロック図である。
第３の実施の形態の機械学習装置１００ａは、性能改善量推定部１３４に代えて性能改善量推定部１３４ａを有する。性能改善量推定部１３４ａは、推定式生成部１４１、上限値推定部１４２、変数変換部１４３、線形回帰部１４４、予測性能推定部１４５、予測区間算出部１４６、実測値変換部１４７および推定値逆変換部１４８を有する。
【０１８５】
実測値変換部１４７は、予測性能の実測値ｙを、ロジット関数を用いてｙcに変換する。ロジット関数は、（０，１）の値域をもつ変数を実数全体の値域をもつ変数に変換するものであり、ｙc＝ｌｏｇ（ｙ／（１−ｙ））と定義される。これにより、最大値付近で圧縮された実測値ｙの分布を引き延ばすことができ、天井効果を除去できる。実測値変換部１４７は、ｙに代えてｙcを推定式生成部１４１に出力する。
【０１８６】
推定値逆変換部１４８は、ｙcのスケールで表現された推定値、予測区間上限値および予測区間下限値を予測性能推定部１４５から取得する。推定値逆変換部１４８は、ロジスティック関数を用いて、これらの推定値、予測区間上限値および予測区間下限値を、実測値ｙのスケールで表現された推定値、予測区間上限値および予測区間下限値に逆変換する。ロジスティック関数は、ロジット関数の逆関数である。ロジスティック関数は、実数全体の値域をもつ変数を（０，１）の値域をもつ変数に変換するものであり、ｙ＝１／（１＋ｅｘｐ（−ｙc））と定義される。推定値逆変換部１４８は、逆変換した推定値、予測区間上限値および予測区間下限値を出力する。
【０１８７】
なお、実測値変換部１４７および推定値逆変換部１４８は、予測性能の指標として正答率のように有限の最大値をもつ指標が用いられている場合のみ、上記の変換および逆変換を行うようにしてもよい。実測値変換部１４７および推定値逆変換部１４８は、予測性能の指標として有限の最大値が存在しない（最大値が無限大になる）指標が用いられている場合には、上記の変換および逆変換を行わなくてもよい。
【０１８８】
第３の実施の形態の機械学習装置１００ａによれば、第２の実施の形態の機械学習装置１００と同様の効果が得られる。更に、機械学習装置１００ａでは、予測性能の実測値の分布が最大値付近で圧縮されている場合であっても、その歪みを抑制することができる。これにより、説明変数および目的変数の変換によって線形性や等分散性が成立しやすくなり、線形回帰分析の精度を向上させることができる。
【０１８９】
なお、前述のように、第１の実施の形態の情報処理は、予測性能曲線推定装置１０にプログラムを実行させることで実現できる。第２の実施の形態の情報処理は、機械学習装置１００にプログラムを実行させることで実現できる。第３の実施の形態の情報処理は、機械学習装置１００ａにプログラムを実行させることで実現できる。
【０１９０】
プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体１１３）に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体（例えば、ＨＤＤ１０３）にプログラムをコピーして実行してもよい。
【符号の説明】
【０１９１】
１０  予測性能曲線推定装置
１１  記憶部
１２  生成部
１３ａ，１３ｂ，１３ｃ  サイズ
１４ａ，１４ｂ，１４ｃ  予測性能値
１５，１７，１８  予測性能曲線
１５ａ，１５ｂ，１５ｃ  推定値
１６  上限値
【図１】
0006536295.tif 000006
【図２】
0006536295.tif 000007
【図３】
0006536295.tif 000008
【図４】
0006536295.tif 000009
【図５】
0006536295.tif 000010
【図６】
0006536295.tif 000011
【図７】
0006536295.tif 000012
【図８】
0006536295.tif 000013
【図９】
0006536295.tif 000014
【図１０】
0006536295.tif 000015
【図１１】
0006536295.tif 000016
【図１２】
0006536295.tif 000017
【図１３】
0006536295.tif 000018
【図１４】
0006536295.tif 000019
【図１５】
0006536295.tif 000020
【図１６】
0006536295.tif 000021
【図１７】
0006536295.tif 000022
【図１８】
0006536295.tif 000023
【図１９】
0006536295.tif 000024
【図２０】
0006536295.tif 000025
【図２１】
0006536295.tif 000026