(57)【要約】【課題】複数の機械学習アルゴリズムを繰り返し実行する機械学習においてモデルの予測性能が上がる速度を向上させる。【解決手段】複数の機械学習アルゴリズムそれぞれを実行することで生成された複数のモデルに対応する複数の予測性能の中から、最大予測性能１４を特定する。最大予測性能１４をもつモデルを生成した機械学習アルゴリズム１３ａについて、最大予測性能１４と推定予測性能１５ａ，１５ｂと推定実行時間１６ａ，１６ｂとに基づいて、機械学習アルゴリズム１３ａを次に実行するときに使用する訓練データサイズ１７ａを決定する。機械学習アルゴリズム１３ａと異なる機械学習アルゴリズム１３ｂについて、最大予測性能１４と推定予測性能１５ｃ，１５ｄと推定実行時間１６ｃ，１６ｄとに基づいて、機械学習アルゴリズム１３ｂを次に実行するときに使用する訓練データサイズ１７ｂを決定する。【選択図】図１
2018010475.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.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記の非特許文献１に記載されたプログレッシブサンプリング法では、あるサイズの訓練データで機械学習アルゴリズムを実行した後、再度その機械学習アルゴリズムを実行する場合、次に使用する訓練データサイズは予め決まっている。すなわち、予め決められた複数の訓練データサイズを小さい方から順に１つずつ選択していくことになる。
【００１１】
また、機械学習アルゴリズムには、ロジスティック回帰分析、サポートベクタマシン（ＳＶＭ：Support Vector Machine）、ランダムフォレストなど様々なアルゴリズムが存在する。使用する訓練データが同じでも、使用する機械学習アルゴリズムが異なるとモデルの予測性能が異なることが多い。これについて、非特許文献１に記載されたプログレッシブサンプリング法は１つの機械学習アルゴリズムのみを使用する場合を想定しており、複数の機械学習アルゴリズムを使用する場合について検討していない。
【００１２】
よって、機械学習アルゴリズムの候補が複数あり訓練データサイズの候補が複数ある場合に、どのようにすれば予測性能の高いモデルを効率的に生成できるかが問題となる。
１つの側面では、本発明は、複数の機械学習アルゴリズムを繰り返し実行する機械学習においてモデルの予測性能が上がる速度を向上できる機械学習管理プログラム、機械学習管理装置および機械学習管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
１つの態様では、コンピュータに以下の処理を実行させる機械学習管理プログラムが提供される。複数の機械学習アルゴリズムそれぞれを１以上の訓練データサイズで実行することで生成された複数のモデルに対応する複数の予測性能の中から、最大予測性能を特定する。複数の機械学習アルゴリズムのうち最大予測性能をもつモデルを生成した第１の機械学習アルゴリズムについて、１以上の訓練データサイズの実行結果から、２以上の他の訓練データサイズそれぞれで実行した場合の第１の推定予測性能と第１の推定実行時間とを算出し、最大予測性能と第１の推定予測性能と第１の推定実行時間とに基づいて、第１の機械学習アルゴリズムを次に実行するときに使用する第１の訓練データサイズを決定する。複数の機械学習アルゴリズムのうち第１の機械学習アルゴリズムと異なる第２の機械学習アルゴリズムについて、１以上の訓練データサイズの実行結果から、２以上の他の訓練データサイズそれぞれで実行した場合の第２の推定予測性能と第２の推定実行時間とを算出し、最大予測性能と第２の推定予測性能と第２の推定実行時間とに基づいて、第２の機械学習アルゴリズムを次に実行するときに使用する第２の訓練データサイズを決定する。
【００１４】
また、１つの態様では、記憶部と制御部とを有する機械学習管理装置が提供される。また、１つの態様では、コンピュータが実行する機械学習管理方法が提供される。
【発明の効果】
【００１５】
１つの側面では、複数の機械学習アルゴリズムを繰り返し実行する機械学習においてモデルの予測性能が上がる速度を向上できる。
【図面の簡単な説明】
【００１６】
【図１】機械学習管理装置の例を示す図である。
【図２】機械学習装置のハードウェア例を示すブロック図である。
【図３】サンプルサイズと予測性能の関係例を示すグラフである。
【図４】実行時間と予測性能の関係例を示すグラフである。
【図５】複数の機械学習アルゴリズムの使用例を示す図である。
【図６】学習ステップの実行順序例を示すグラフである。
【図７】サンプルサイズの動的選択例を示す第１のグラフである。
【図８】サンプルサイズの動的選択例を示す第２のグラフである。
【図９】サンプルサイズの動的選択例を示す第３のグラフである。
【図１０】サンプルサイズの減少に関するシナリオ例を示す図である。
【図１１】打ち切り率の算出例を示す図である。
【図１２】打ち切り率の他の算出例を示す図である。
【図１３】機械学習進行画面の例を示す図である。
【図１４】機械学習装置の機能例を示すブロック図である。
【図１５】履歴テーブルと関数テーブルとスケジュールテーブル例を示す図である。
【図１６】機械学習の手順例を示すフローチャートである。
【図１７】機械学習の手順例を示すフローチャート（続き）である。
【図１８】ステップ実行の手順例を示すフローチャートである。
【図１９】時間推定の手順例を示すフローチャートである。
【図２０】性能改善量推定の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１８】
図１は、機械学習管理装置の例を示す図である。
第１の実施の形態の機械学習管理装置１０は、未知の事例の結果を予測するためのモデルを訓練データから生成する機械学習を管理する。訓練データからモデルを生成する機械学習自体は、機械学習管理装置１０が行ってもよいし他の装置が行ってもよい。機械学習管理装置１０は、ユーザが操作するクライアントコンピュータでもよいし、クライアントコンピュータからネットワーク経由でアクセスされるサーバコンピュータでもよい。
【００１９】
機械学習管理装置１０は、記憶部１１および制御部１２を有する。記憶部１１は、ＲＡＭ（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）ディスプレイなどを用いることができる。
【００４１】
入力信号処理部１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００４２】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００４３】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４４】
通信インタフェース１０７は、ネットワーク１１４に接続され、ネットワーク１１４を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００４５】
次に、機械学習におけるサンプルサイズと予測性能と実行時間の間の関係、および、プログレッシブサンプリング法について説明する。
第２の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。機械学習装置１００または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク１１４経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常は、１つ以上の説明変数の値と１つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
【００４６】
機械学習装置１００は、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常は、２以上の説明変数と２以上の係数と１つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
【００４７】
学習されたモデルを用いることで、未知の事例の説明変数の値（要因）から、未知の事例の目的変数の値（結果）を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、０以上１以下の確率値などの連続値であってもよいし、ＹＥＳ／ＮＯの２値などの離散値であってもよい。
【００４８】
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置１００は、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの１／２程度とする。機械学習装置１００は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値（予測値）とテストデータに含まれる目的変数の値（実績値）とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【００４９】
予測性能の指標としては、正答率（Accuracy）、適合率（Precision）、平均二乗誤差（ＲＭＳＥ）などが挙げられる。例えば、結果がＹＥＳ／ＮＯの２値で表されるとする。また、Ｎ件のテストデータの事例のうち、予測値＝ＹＥＳ・実績値＝ＹＥＳの件数をＴｐ、予測値＝ＹＥＳ・実績値＝ＮＯの件数をＦｐ、予測値＝ＮＯ・実績値＝ＹＥＳの件数をＦｎ、予測値＝ＮＯ・実績値＝ＮＯの件数をＴｎとする。この場合、正答率は予測が当たった割合であり、（Ｔｐ＋Ｔｎ）／Ｎと算出される。適合率は「ＹＥＳ」の予測を間違えない確率であり、Ｔｐ／（Ｔｐ＋Ｆｐ）と算出される。平均二乗誤差は、各事例の実績値をｙと表し予測値をｙ＾と表すと、（ｓｕｍ（ｙ−ｙ＾）２／Ｎ）１／２と算出される。
【００５０】
ここで、ある１つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数（サンプルサイズ）が大きいほど予測性能は一般的に高くなる。
図３は、サンプルサイズと予測性能の関係例を示すグラフである。
【００５１】
曲線２１は、モデルの予測性能とサンプルサイズとの間の関係を示す。サンプルサイズｓ１，ｓ２，ｓ３，ｓ４，ｓ５の間の大小関係は、ｓ１＜ｓ２＜ｓ３＜ｓ４＜ｓ５である。例えば、ｓ２はｓ１の２倍または４倍、ｓ３はｓ２の２倍または４倍、ｓ４はｓ３の２倍または４倍、ｓ５はｓ４の２倍または４倍である。
【００５２】
曲線２１が示すように、サンプルサイズがｓ２の場合の予測性能はｓ１の場合よりも高い。サンプルサイズがｓ３の場合の予測性能はｓ２の場合よりも高い。サンプルサイズがｓ４の場合の予測性能はｓ３の場合よりも高い。サンプルサイズがｓ５の場合の予測性能はｓ４の場合よりも高い。このように、サンプルサイズが大きくなるほど一般的に予測性能も高くなる。ただし、予測性能が低いうちは、サンプルサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプルサイズの増加量に対する予測性能の上昇量の比は逓減する。
【００５３】
また、サンプルサイズが大きいほど、機械学習に要する学習時間も大きくなる。このため、サンプルサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図３の例の場合、サンプルサイズをｓ４とすると、上限に近い予測性能を短時間で達成できる。一方、サンプルサイズをｓ３とすると、予測性能が不十分であるおそれがある。また、サンプルサイズをｓ５とすると、予測性能は上限に近いものの、単位実行時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。
【００５４】
このようなサンプルサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質（データの種類）によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプルサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法という機械学習方法が提案されている。プログレッシブサンプリング法については、例えば、前述の非特許文献１（"Efficient Progressive Sampling"）に記載がある。
【００５５】
プログレッシブサンプリング法では、サンプルサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、機械学習装置１００は、サンプルサイズｓ１で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、機械学習装置１００は、サンプルサイズｓ２で機械学習を行って予測性能を評価する。このとき、サンプルサイズｓ２の訓練データは、サンプルサイズｓ１の訓練データ（前に使用した訓練データ）の一部または全部を包含していてもよい。同様に、機械学習装置１００は、サンプルサイズｓ３で機械学習を行って予測性能を評価し、サンプルサイズｓ４で機械学習を行って予測性能を評価する。サンプルサイズｓ４で予測性能が十分になると、機械学習装置１００は、機械学習を停止し、サンプルサイズｓ４で学習したモデルを採用する。このとき、機械学習装置１００は、サンプルサイズｓ５の機械学習を行わなくてよい。
【００５６】
上記のように、プログレッシブサンプリング法では、１つのサンプルサイズに対する処理（１つの学習ステップ）毎に、モデルの学習と当該モデルの予測性能の評価とを行う。各学習ステップ内の手順（バリデーション方法）としては、例えば、クロスバリデーションやランダムサブサンプリングバリデーションなどを用いることができる。
【００５７】
クロスバリデーションでは、機械学習装置１００は、サンプリングしたデータをＫ個（Ｋは２以上の整数）のブロックに分割し、このうちＫ−１個のブロックを訓練データとして使用して１個のブロックをテストデータとして使用する。機械学習装置１００は、テストデータとして使用するブロックを変えながらモデルの学習と予測性能の評価をＫ回繰り返す。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。クロスバリデーションは、限定された量のデータを活用して予測性能の評価を可能とする。
【００５８】
ランダムサブサンプリングバリデーションでは、機械学習装置１００は、データの母集合から訓練データとテストデータをランダムにサンプリングし、訓練データを用いてモデルを学習し、テストデータを用いてモデルの予測性能を算出する。機械学習装置１００は、サンプリングとモデルの学習と予測性能の評価をＫ回繰り返す。
【００５９】
各サンプリングは、非復元抽出サンプリングである。すなわち、１回のサンプリングの中で、訓練データ内に同じ単位データは重複して含まれず、テストデータ内に同じ単位データは重複して含まれない。また、１回のサンプリングの中で、訓練データとテストデータに同じ単位データは重複して含まれない。ただし、Ｋ回のサンプリングの間で、同じ単位データが選択されることはあり得る。１つの学習ステップの結果として、例えば、Ｋ個のモデルのうち最も予測性能の高いモデルと、Ｋ回の予測性能の平均値とが出力される。
【００６０】
ところで、訓練データからモデルを学習する手順（機械学習アルゴリズム）には様々なものが存在する。機械学習装置１００は、複数の機械学習アルゴリズムを使用することができる。機械学習装置１００が使用できる機械学習アルゴリズムの数は、数十〜数百程度であってもよい。機械学習アルゴリズムの一例として、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなどを挙げることができる。
【００６１】
ロジスティック回帰分析は、目的変数ｙの値と説明変数ｘ１，ｘ２，…，ｘｋの値をＳ字曲線にフィッティングする回帰分析である。目的変数ｙおよび説明変数ｘ１，ｘ２，…，ｘｋは、ｌｏｇ（ｙ／（１−ｙ））＝ａ１ｘ１＋ａ２ｘ２＋…＋ａｋｘｋ＋ｂの関係を満たすと仮定される。ａ１，ａ２，…，ａｋ，ｂは係数であり、回帰分析によって決定される。
【００６２】
サポートベクタマシンは、Ｎ次元空間に配置された単位データの集合を、２つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離（マージン）が最大になるように算出される。
【００６３】
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、母集合から単位データをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングした単位データを分類する。説明変数の選択と単位データの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。単位データのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、単位データを分類するための最終的なモデルを生成する。
【００６４】
なお、機械学習アルゴリズムは、その挙動を制御するための１または２以上のハイパーパラメータをもつことがある。ハイパーパラメータは、モデルに含まれる係数（パラメータ）と異なり機械学習を通じて値が決定されるものではなく、機械学習アルゴリズムの実行前に値が与えられるものである。ハイパーパラメータの例として、ランダムフォレストにおける決定木の生成本数、回帰分析のフィッティング精度、モデルに含まれる多項式の次数などが挙げられる。ハイパーパラメータの値として、固定値が使用されることもあるし、ユーザから指定された値が使用されることもある。生成されるモデルの予測性能は、ハイパーパラメータの値にも依存する。機械学習アルゴリズムとサンプルサイズが同じでも、ハイパーパラメータの値が変わるとモデルの予測性能も変化し得る。
【００６５】
第２の実施の形態では、機械学習アルゴリズムの種類が同じでハイパーパラメータの値が異なる場合、異なる機械学習アルゴリズムを使用したものとして取り扱ってもよい。機械学習アルゴリズムの種類とハイパーパラメータの値の組み合わせを、コンフィギュレーションと言うこともある。すなわち、機械学習装置１００は、異なるコンフィギュレーションを異なる機械学習アルゴリズムとして取り扱ってもよい。
【００６６】
図４は、実行時間と予測性能の関係例を示すグラフである。
曲線２２〜２４は、著名なデータ集合（ＣｏｖｅｒＴｙｐｅ）を用いて測定された実行時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線２２は、機械学習アルゴリズムとしてロジスティック回帰を用いた場合の実行時間と予測性能の間の関係を示す。曲線２３は、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の実行時間と予測性能の間の関係を示す。曲線２４は、機械学習アルゴリズムとしてランダムフォレストを用いた場合の実行時間と予測性能の間の関係を示す。なお、図４の横軸は、実行時間について対数目盛になっている。
【００６７】
曲線２２が示すように、ロジスティック回帰を使用した場合、サンプルサイズ＝８００における予測性能は約０．７１、実行時間は約０．２秒である。サンプルサイズ＝３２００における予測性能は約０．７５、実行時間は約０．５秒である。サンプルサイズ＝１２８００における予測性能は約０．７５５、実行時間は１．５秒である。サンプルサイズ＝５１２００における予測性能は約０．７６、実行時間は約６秒である。
【００６８】
曲線２３が示すように、サポートベクタマシンを使用した場合、サンプルサイズ＝８００における予測性能は約０．７０、実行時間は約０．２秒である。サンプルサイズ＝３２００における予測性能は約０．７７、実行時間は約２秒である。サンプルサイズ＝１２８００に対応する予測性能は約０．７８５、実行時間は約２０秒である。
【００６９】
曲線２４が示すように、ランダムフォレストを使用した場合、サンプルサイズ＝８００における予測性能は約０．７４、実行時間は約２．５秒である。サンプルサイズ＝３２００における予測性能は約０．７９、実行時間は約１５秒である。サンプルサイズ＝１２８００に対応する予測性能は約０．８２、実行時間は約２００秒である。
【００７０】
このように、上記のデータ集合に対しては、ロジスティック回帰は、全体的に実行時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰よりも実行時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に実行時間が長く予測性能が高い。ただし、図４の例では、サンプルサイズが小さいときのサポートベクタマシンの予測性能は、ロジスティック回帰の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。
【００７１】
また、前述のように、個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、以下では、複数の機械学習アルゴリズムを使用しかつ複数のサンプルサイズを使用する場合に、予測性能の高いモデルを効率的に得られるようにする方法を検討する。
【００７２】
図５は、複数の機械学習アルゴリズムの使用例を示す図である。
ここでは説明を簡単にするため、機械学習アルゴリズムＡ，Ｂ，Ｃの３つの機械学習アルゴリズムが存在する場合を考える。機械学習アルゴリズムＡのみを使用してプログレッシブサンプリング法を行う場合、機械学習装置１００は、学習ステップ３１，３２，３３（Ａ１，Ａ２，Ａ３）を順に実行する。機械学習アルゴリズムＢのみを使用してプログレッシブサンプリング法を行う場合、機械学習装置１００は、学習ステップ３４，３５，３６（Ｂ１，Ｂ２，Ｂ３）を順に実行する。機械学習アルゴリズムＣのみを使用してプログレッシブサンプリング法を行う場合、機械学習装置１００は、学習ステップ３７，３８，３９（Ｃ１，Ｃ２，Ｃ３）を順に実行する。なお、ここでは、学習ステップ３３，３６，３９でそれぞれ停止条件が満たされるものと仮定する。
【００７３】
学習ステップ３１，３４，３７のサンプルサイズは同じである。例えば、学習ステップ３１，３４，３７の単位データ数はそれぞれ１万である。学習ステップ３２，３５，３８のサンプルサイズは同じであり、学習ステップ３１，３４，３７のサンプルサイズの２倍または４倍程度である。例えば、学習ステップ３２，３５，３８の単位データ数はそれぞれ４万である。学習ステップ３３，３６，３９のサンプルサイズは同じであり、学習ステップ３２，３５，３８のサンプルサイズの２倍または４倍程度である。例えば、学習ステップ３３，３６，３９の単位データ数はそれぞれ１６万である。
【００７４】
機械学習アルゴリズムＡ，Ｂ，Ｃとプログレッシブサンプリング法を組み合わせる方法としては、例えば、次のような方法が考えられる。各機械学習アルゴリズムについて、サンプルサイズが１段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して学習ステップを１つだけ進める方法である。学習ステップを１つ進める毎に、改善速度の推定値が見直される。このため、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に機械学習アルゴリズムが限定されていく。
【００７５】
改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値（達成予測性能と言うことがある）との差である。達成予測性能は、第１の実施の形態の最大予測性能１４に対応する。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプルサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプルサイズとに基づいて推定される。
【００７６】
機械学習装置１００は、機械学習アルゴリズムＡの学習ステップ３１と、機械学習アルゴリズムＢの学習ステップ３４と、機械学習アルゴリズムＣの学習ステップ３７とを実行する。機械学習装置１００は、学習ステップ３１，３４，３７の実行結果に基づいて、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムＡの改善速度＝２．５、機械学習アルゴリズムＢの改善速度＝２．０、機械学習アルゴリズムＣの改善速度＝１．０と推定されたとする。すると、機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＡを選択し、学習ステップ３２を実行する。
【００７７】
学習ステップ３２が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．７３、機械学習アルゴリズムＢの改善速度＝１．０、機械学習アルゴリズムＣの改善速度＝０．５と推定されたとする。学習ステップ３２によって達成予測性能が上昇したため、機械学習アルゴリズムＢ，Ｃの改善速度も低下している。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３５を実行する。
【００７８】
学習ステップ３５が実行されると、機械学習装置１００は、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．０、機械学習アルゴリズムＢの改善速度＝０．８、機械学習アルゴリズムＣの改善速度＝０．０と推定されたとする。機械学習装置１００は、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３６を実行する。学習ステップ３６によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムＡの学習ステップ３３や機械学習アルゴリズムＣの学習ステップ３８，３９は実行されない。
【００７９】
なお、次の学習ステップの予測性能を推定するにあたっては、統計誤差を考慮し、予測性能が今後上昇する可能性のある機械学習アルゴリズムを早期に切り捨ててしまうリスクを低減することが好ましい。例えば、機械学習装置１００は、回帰分析によって予測性能の期待値とその９５％予測区間を算出し、９５％予測区間の上限値（ＵＣＢ：Upper Confidence Bound）を、改善速度を算出する際の予測性能を推定値として使用することが考えられる。９５％予測区間は、測定される予測性能（測定値）のばらつきを示すものであり、新たな予測性能が９５％の確率でこの区間に収まると予想されることを示す。すなわち、統計上の期待値よりも統計誤差に応じた幅だけ大きい値を使用する。ＵＣＢは、９７．５％分位点を表していると言うこともできる。
【００８０】
ただし、ＵＣＢに代えて、機械学習装置１００は、推定される予測性能の分布を積分して予測性能が達成予測性能を超える確率（ＰＩ：Probability of Improvement）を算出してもよい。また、機械学習装置１００は、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える期待値（ＥＩ：Expected Improvement）を算出してもよい。
【００８１】
上記の方法では、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
【００８２】
しかし、上記の方法では各機械学習アルゴリズムのサンプルサイズを固定倍率で１段階ずつ大きくしている。このため、学習効率を更に向上させる余地がある。
第１に、ある機械学習アルゴリズムの大きいサンプルサイズの学習ステップが達成予測性能の向上に成功した場合、結果的に、当該機械学習アルゴリズムの小さいサンプルサイズの学習ステップの実行時間が無駄になってしまう。大きいサンプルサイズの学習ステップが達成予測性を向上させる可能性が高い場合、小さいサンプルサイズの学習ステップをスキップすることで学習時間を短縮できる余地がある。
【００８３】
第２に、予測性能の推定精度が低く予測性能を過大評価したために、実行した学習ステップが達成予測性能の向上に失敗することがある。大きいサンプルサイズの学習ステップが達成予測性能の向上に失敗した場合、結果的に、当該大きいサンプルサイズの学習ステップは実行しない方が好ましかったことになる。これについては、大きいサンプルサイズの学習ステップが達成予測性を向上させる可能性が高くない場合、サンプルサイズの上昇量を抑えた学習ステップを挿入することで予測性能の測定値が増え、推定精度を向上させることができる。その結果、大きいサンプルサイズの学習ステップが達成予測性能の向上に失敗する可能性が高いと判断できれば、当該機械学習アルゴリズムについては大きいサンプルサイズの学習ステップを回避することができる。
【００８４】
第３に、計算量の大きい機械学習アルゴリズムについては、サンプルサイズを固定倍率で増加させることによる非効率性の影響が大きく、その機械学習アルゴリズムの実行時間が膨大になってしまう可能性がある。例えば、計算量がＯ（Ｎ３）の機械学習アルゴリズムでは、サンプルサイズの増加に対する実行時間の増加速度が非常に大きい。
【００８５】
第４に、機械学習アルゴリズムの中には、複数のプロセッサに処理を分散化する前処理などのオーバヘッドが大きいものがある。オーバヘッドは、サンプルサイズの影響を受けずに固定であることがある。その場合、サンプルサイズが小さいうちはサンプルサイズを１段階大きくしても実行時間があまり変化しない。オーバヘッドが大きい機械学習アルゴリズムについては、サンプルサイズの増加量が小さいと非効率になる。
【００８６】
図６は、学習ステップの実行順序例を示すグラフである。
ここでは、サンプルサイズを固定倍率で１段階ずつ大きくする場合を考える。
曲線２５は、ある機械学習アルゴリズム（機械学習アルゴリズム＃１）について、訓練データのサンプルサイズを変化させたときの実行時間と予測性能の関係を示している。曲線２６は、別の機械学習アルゴリズム（機械学習アルゴリズム＃２）について、訓練データのサンプルサイズを変化させたときの実行時間と予測性能の関係を示している。
【００８７】
この例では、１番目に、機械学習装置１００は、機械学習アルゴリズム＃１およびサンプルサイズ＝１０００の学習ステップを実行する。２番目に、機械学習装置１００は、機械学習アルゴリズム＃２およびサンプルサイズ＝１０００の学習ステップを実行する。３番目に、機械学習装置１００は、機械学習アルゴリズム＃１およびサンプルサイズ＝２０００の学習ステップを実行する。４番目に、機械学習装置１００は、機械学習アルゴリズム＃２およびサンプルサイズ＝２０００の学習ステップを実行する。
【００８８】
５番目に、機械学習装置１００は、機械学習アルゴリズム＃１およびサンプルサイズ＝４０００の学習ステップを実行する。５番目の学習ステップについて、機械学習装置１００は、予測性能が４番目の学習ステップよりも高くなる可能性があると判断して機械学習アルゴリズム＃１を実行している。しかし、５番目の学習ステップの予測性能は、結果的に４番目の学習ステップの予測性能（この時点の達成予測性能）よりも低い。
【００８９】
６番目に、機械学習装置１００は、機械学習アルゴリズム＃２およびサンプルサイズ＝４０００の学習ステップを実行する。７番目に、機械学習装置１００は、機械学習アルゴリズム＃２およびサンプルサイズ＝８０００の学習ステップを実行する。
【００９０】
８番目に、機械学習装置１００は、機械学習アルゴリズム＃１およびサンプルサイズ＝８０００の学習ステップを実行する。８番目の学習ステップについて、機械学習装置１００は、予測性能が７番目の学習ステップよりも高くなる可能性があると判断して機械学習アルゴリズム＃１を実行している。しかし、８番目の学習ステップの予測性能は、結果的に７番目の学習ステップの予測性能（この時点の達成予測性能）よりも低い。
【００９１】
ここで、５番目の学習ステップを実行した後、機械学習アルゴリズム＃１およびサンプルサイズ＝８０００の学習ステップが達成予測性能の向上に成功する可能性が高いと判断できる場合があり得る。その場合、機械学習装置１００は、サンプルサイズ＝４０００の学習ステップをスキップしてサンプルサイズ＝８０００学習ステップを実行することで、サンプルサイズ＝４０００の学習ステップの実行時間を節約できる。途中のサンプルサイズをスキップすることは、機械学習アルゴリズムの候補が多いときに特に有効である。達成予測性能が早期に大きくなれば、多くの機械学習アルゴリズムが早期に脱落し、実行する機械学習アルゴリズムを迅速に絞り込めるためである。
【００９２】
一方、７番目の学習ステップを実行した後、１・３・５番目の学習ステップの結果のみからは機械学習アルゴリズム＃１の予測性能を高精度で推定できないために、機械学習アルゴリズム＃１の予測性能が今後高くなる可能性を捨てられない場合があり得る。その場合、機械学習装置１００は、サンプルサイズを４０００から８０００に増やすのではなく、８０００より小さいサンプルサイズ（例えば、５０００）で機械学習アルゴリズム＃１を実行することが考えられる。その結果として推定精度が向上し、機械学習アルゴリズム＃１の予測性能が機械学習アルゴリズム＃２を逆転する可能性が低いと判断できれば、サンプルサイズ＝８０００の学習ステップの実行時間を節約できる。
【００９３】
サンプルサイズの増加量を小さくすることは、機械学習アルゴリズムの候補が多いときに特に有効である。現在の達成予測性能より明らかに低い予測性能しか出力していない機械学習アルゴリズムについて予測性能の推定精度が向上すれば、多くの機械学習アルゴリズムが早期に脱落し、実行する機械学習アルゴリズムを迅速に絞り込めるためである。
【００９４】
このように、複数の機械学習アルゴリズムに対してサンプルサイズの増加倍率または増加量を固定に設定すると、機械学習に非効率性が生じ得る。また、複数の機械学習アルゴリズムを用いた機械学習の進行状況によって、次に実行する学習ステップのサンプルサイズを大きくした方が好ましい場合と小さくした方が好ましい場合とがある。そこで、第２の実施の形態の機械学習装置１００は、以下のように学習ステップを制御する。
【００９５】
以下の説明では、次のような記号を用いることがある。
予測性能の測定値をｐ、予測性能の推定値をｐ＊、達成予測性能をＰ、実行時間の測定値をｔ、実行時間の推定値をｔ＊と表すことがある。また、性能改善量をｇ＊、性能改善量を求める関数をｆｇ（）、予測性能の確率分布をＸｐと表すことがある。性能改善量はＵＣＢなどの確率分布から求まる値と達成予測性能とに依存するため、ｇ＊＝ｆｇ（Ｘｐ，Ｐ）と表すことができる。また、改善速度をｒ＊と表すことがある。改善速度は性能改善量を実行時間で割ったものであるため、ｒ＊＝ｇ＊／ｔ＊と表すことができる。
【００９６】
また、改善速度の閾値をＲと表すことがある。Ｒは機械学習の停止条件に関連する。例えば、Ｒ＝０．００１／３６００などと予め決めておく。また、機械学習アルゴリズムをａ、機械学習アルゴリズムの集合をＡ、データ集合をＤ、データ集合から抽出したサンプルデータをＳ、サンプルサイズをｓ、機械学習アルゴリズムの数をＮと表すことがある。
【００９７】
また、予測性能の推定値を求める関数をｆｐ（）と表すことがある。予測性能の推定値はサンプルサイズに依存するため、ｐ＊＝ｆｐ（ｓ）と表すことができる。ｆｐ（）は上に有界な関数であり、例えば、ｆｐ（ｓ）＝β１−α１×ｓ−γである。α１，β１，γは、ｓを説明変数としｐを目的変数とする回帰分析によって決定される係数である。ｆｐ（）は機械学習アルゴリズム毎に定義される。機械学習アルゴリズムａの関数であることを、ａ．ｆｐ（）と表すことがある。
【００９８】
また、予測性能の確率分布を求める関数をｆＸｐ（）と表すことがある。予測性能の確率分布はサンプルサイズに依存するため、Ｘｐ＝ｆＸｐ（ｓ）と表すことができる。ｐ＊はＸｐの期待値である。ｆＸｐ（）は、例えば、ｓを説明変数としｐを目的変数とする回帰分析によって算出される。ｆｐ（）をｆＸｐ（）から導出することも可能である。ｆＸｐ（）は機械学習アルゴリズム毎に定義される。機械学習アルゴリズムａの関数であることを、ａ．ｆＸｐ（）と表すことがある。
【００９９】
また、実行時間の推定値を求める関数をｆｔ（）と表すことがある。実行時間の推定値はサンプルサイズに依存するため、ｔ＊＝ｆｔ（ｓ）と表すことができる。ｆｔ（）はサンプルサイズについて単調増加の関数であり、例えば、ｆｔ（ｓ）＝β２＋α２×ｓである。α２，β２は、ｓを説明変数としｔを目的変数とする回帰分析によって決定される係数である。ｆｔ（）は機械学習アルゴリズム毎に定義される。機械学習アルゴリズムａの関数であることを、ａ．ｆｔ（）と表すことがある。なお、上記の記号においてアスタリスク（＊）は、その値が推定値であることを表している。
【０１００】
図７は、サンプルサイズの動的選択例を示す第１のグラフである。
ここでは、図６の５番目の学習ステップを実行した後、機械学習アルゴリズム＃２を実行するときのサンプルサイズを決定する場合を考える。
【０１０１】
曲線４１は、２番目および４番目の学習ステップの結果から推定される、機械学習アルゴリズム＃２の予測性能の期待値と実行時間との関係を示している。曲線４２は、機械学習アルゴリズム＃２の予測性能のＵＣＢと実行時間との関係を示している。直線４３は、実行時間＝０かつ予測性能＝達成予測性能となる点から曲線４２へと伸びる接線である。曲線４２上の点と達成予測性能との差は、性能改善量に相当する。直線４３の傾きは、改善速度の最大値に相当する。図７の例では、曲線４２と直線４３の接点における予測性能および実行時間を実現するためのサンプルサイズは６０００である。
【０１０２】
機械学習装置１００は、機械学習アルゴリズム＃２を次に実行するときのサンプルサイズとして、４番目の学習ステップより大きいサンプルサイズの中で、改善速度が最大になるサンプルサイズを選択する。最大の改善速度は、直線４３の傾きに相当する。よって、図７の例ではサンプルサイズ＝６０００が選択される。機械学習装置１００は、例えば、数値解析により、幾つかのサンプルサイズについて改善速度を試算して、改善速度が最大になるサンプルサイズを探索する。機械学習装置１００は、二分探索法などによって、改善速度が最大になるサンプルサイズの存在するサイズ区間を段階的に絞り込んでもよい。なお、機械学習装置１００は、選択するサンプルサイズを１０００の倍数に限定するなど、選択するサンプルサイズを一定条件を満たす離散的な値に限定してもよい。
【０１０３】
ある機械学習アルゴリズムａについて、実行済みのサンプルサイズのうち最大のサンプルサイズをｓ０、そのときの実行時間の測定値をｔ０とする。また、機械学習アルゴリズムａについて、次に選択すべきサンプルサイズをｓ２、そのときの実行時間の推定値をｔ２＊＝ａ．ｆｔ（ｓ２）とする。ｓ２は、ｆｇ（ａ．ｆＸｐ（ｓ），Ｐ）／ａ．ｆｔ（ｓ）が最大になるようなｓである。ただし、ｓ２は、ｓ２＞ｓ０かつｔ２＊≧ｋ１×ｔ０という制約を満たす。ｋ１は１以上の定数であり、例えば、ｋ１＝１．２とする。また、制限時間がある場合、ｔ２＊は残り時間以下であることが好ましい。
【０１０４】
以上のように、各機械学習アルゴリズムの次のサンプルサイズは、原則として改善速度が最大になるサンプルサイズである。ただし、機械学習装置１００は、他の機械学習アルゴリズムの実行結果を考慮して、各機械学習アルゴリズムの次のサンプルサイズを調整することがある。すなわち、機械学習装置１００は、次のサンプルサイズを、改善速度が最大になるサンプルサイズより意図的に大きくすることもあるし、改善速度が最大になるサンプルサイズより意図的に小さくすることもある。
【０１０５】
まず、サンプルサイズを大きくする場合について説明する。
図８は、サンプルサイズの動的選択例を示す第２のグラフである。
曲線４２は、図７と同様に、機械学習アルゴリズム＃２の予測性能のＵＣＢと実行時間との関係を示している。直線４３は、図７と同様に、実行時間＝０かつ予測性能＝達成予測性能となる点から曲線４２へと伸びる接線である。直線４３の傾きは、機械学習アルゴリズム＃２の改善速度の最大値を示している。機械学習アルゴリズム＃２の改善速度が最大になるサンプルサイズは６０００である。なお、図８の縦軸は、達成予測性能からの予測性能の相対値、すなわち、性能改善量になっている。
【０１０６】
曲線４４は、別の機械学習アルゴリズム（機械学習アルゴリズム＃３）の予測性能のＵＣＢと実行時間との関係を示している。直線４５は、実行時間＝０かつ予測性能＝達成予測性能となる点から曲線４４へと伸びる接線である。直線４５の傾きは、機械学習アルゴリズム＃３の改善速度の最大値を示している。機械学習アルゴリズム＃３の改善速度が最大になるサンプルサイズは８０００である。
【０１０７】
ここでは、複数の機械学習アルゴリズムの中で、機械学習アルゴリズム＃２の改善速度の最大値（直線４３の傾き）が他の機械学習アルゴリズムよりも大きいとする。また、機械学習アルゴリズム＃３の改善速度の最大値（直線４５の傾き）が、機械学習アルゴリズム＃２に次いで２番目に大きいものとする。この場合、機械学習アルゴリズム＃２で使用するサンプルサイズを、曲線４２と直線４５の交点に相当するサンプルサイズまで大きくしても、次の学習ステップで機械学習アルゴリズム＃２が実行されることは変わらない。曲線４２と直線４５の交点に相当するサンプルサイズを１２０００とすると、もし機械学習アルゴリズム＃２をサンプルサイズ＝６０００で実行しても、その後に機械学習アルゴリズム＃２をサンプルサイズ＝１２０００で実行することになる可能性が高いと言える。
【０１０８】
そこで、機械学習装置１００は、ある機械学習アルゴリズムを実行するとき、当該機械学習アルゴリズムの改善速度が２番目の機械学習アルゴリズムの改善速度の最大値を下回らない範囲で、サンプルサイズを増加させる。これにより、小さなサンプルサイズによる無駄な学習ステップを省略することができる。機械学習装置１００は、例えば、数値解析により、幾つかのサンプルサイズについて改善速度を試算して、上記条件を満たすサンプルサイズを探索する。機械学習装置１００は、二分探索法などによって、上記条件を満たすサンプルサイズの存在するサイズ区間を段階的に絞り込んでもよい。なお、機械学習装置１００は、選択するサンプルサイズを１０００の倍数に限定するなど、選択するサンプルサイズを一定条件を満たす離散的な値に限定してもよい。
【０１０９】
複数の機械学習アルゴリズムの中で改善速度が最も大きい機械学習アルゴリズムをａ、機械学習アルゴリズムａの改善速度を最大化するサンプルサイズをｓ２、そのときの実行時間の推定値をｔ２＊＝ａ．ｆｔ（ｓ２）とする。また、複数の機械学習アルゴリズムの中で改善速度が２番目に大きい機械学習アルゴリズムの改善速度をｒsec＊とする。また、機械学習アルゴリズムａの増加後のサンプルサイズをｓ３とする。ｓ３は、ｆｇ（ａ．ｆＸｐ（ｓ），Ｐ）／ａ．ｆｔ（ｓ）≧ｒsec＊かつｓ≧ｓ２を満たす最大のｓである。
【０１１０】
ただし、制限時間がある場合、サンプルサイズｓ３における実行時間の推定値ｔ３＊＝ａ．ｆｔ（ｓ３）が残り時間以下であることが好ましい。また、ｆｇ（ａ．ｆＸｐ（ｓ），Ｐ）の傾き、すなわち、ｆｇ（ａ．ｆＸｐ（ｓ），Ｐ）をａ．ｆｔ（ｓ）で微分した値が、所定の正の定数以上であることを制約条件に加えてもよい。または、ａ．ｆｔ（ｓ）≦ｋ２×ｔ２＊を制約条件に加えてもよい。ｋ２は１より大きい定数である。これにより、過度にサンプルサイズが大きくなることを抑制できる。
【０１１１】
次に、サンプルサイズを小さくする場合について説明する。
図９は、サンプルサイズの動的選択例を示す第３のグラフである。
ここでは、図６の７番目の学習ステップを実行した後、機械学習アルゴリズム＃１を実行するときのサンプルサイズを決定する場合を考える。
【０１１２】
曲線５１は、１番目、３番目および５番目の学習ステップの結果から推定される、機械学習アルゴリズム＃１の予測性能の期待値と実行時間との関係を示している。曲線５２は、機械学習アルゴリズム＃１の予測性能のＵＣＢと実行時間との関係を示している。直線５３は、実行時間＝０かつ予測性能＝達成予測性能となる点から曲線５２へと伸びる接線である。曲線５２と直線５３の接点に相当するサンプルサイズは１６０００である。すなわち、サンプルサイズ＝１６０００で改善速度が最大になる。
【０１１３】
図９の例では、機械学習アルゴリズム＃１の予測性能の測定値は３つしか存在しない。このため、予測性能の期待値の推定精度は高くなく、予測性能の分散が大きくなっている。その結果、サンプルサイズ＝１６０００において、予測性能の期待値は現在の達成予測性能を下回っているものの、予測性能のＵＣＢが現在の達成予測性能を超えている。このままでは、機械学習アルゴリズム＃１が達成予測性能を向上できる可能性を捨てきれず、サンプルサイズ＝１６０００で機械学習アルゴリズム＃１が実行され得る。
【０１１４】
しかしながら、機械学習アルゴリズム＃１が達成予測性能を向上できない可能性も高いため、実行時間の長い大きなサンプルサイズで機械学習アルゴリズム＃１を実行することは、リスクが高いと言える。そこで、機械学習装置１００は、改善速度が最大になるサンプルサイズで機械学習アルゴリズムを実行しても、達成予測性能の向上に寄与しない可能性が比較的高い場合には、それより小さいサンプルサイズで当該機械学習アルゴリズムを実行してみる。小さいサンプルサイズで機械学習アルゴリズムを実行すると、予測性能の測定値が増えるため、大きなサンプルサイズの予測性能の推定精度が向上する。推定精度が向上した結果として、予測性能のＵＣＢが現在の達成予測性能を超えないことが明らかになった場合、当該機械学習アルゴリズムは以降実行されなくなる。
【０１１５】
例えば、機械学習装置１００は、８番目の学習ステップとして、サンプルサイズ＝５０００で機械学習アルゴリズム＃１を実行する。すると、図９に示すような曲線５４，５５が算出される。曲線５４は、１番目、３番目、５番目および８番目の学習ステップの結果から推定される、機械学習アルゴリズム＃１の予測性能の期待値と実行時間との関係を示している。曲線５５は、機械学習アルゴリズム＃１の予測性能のＵＣＢと実行時間との関係を示している。推定精度が向上した結果、曲線５４が示す予測性能の期待値は曲線５１よりも低くなっている。また、予測性能の分散が小さくなり、曲線５５が示す予測性能のＵＣＢは曲線５２よりも顕著に低くなっている。この場合、機械学習装置１００は、機械学習アルゴリズム＃１をサンプルサイズ＝１６０００で実行しなくてよい。
【０１１６】
ある機械学習アルゴリズムａについて、実行済みのサンプルサイズのうち最大のサンプルサイズをｓ０、そのときの実行時間の測定値をｔ０、予測性能の測定値をｐ０、サンプルサイズｓ０の学習ステップが終了した時刻をＴとする。また、機械学習アルゴリズムａについて、改善速度が最大になるサンプルサイズをｓ２、そのときの実行時間の推定値をｔ２＊＝ａ．ｆｔ（ｓ２）、予測性能の推定値をｐ２＊＝ａ．ｆｐ（ｓ２）とする。また、減少後のサンプルサイズをｓ１、そのときの実行時間の推定値をｔ１＊＝ａ．ｆｔ（ｓ１）、予測性能の推定値をｐ１＊＝ａ．ｆｐ（ｓ１）とする。
【０１１７】
機械学習装置１００は、以下のようにして、サンプルサイズｓ２の前にサンプルサイズｓ１で機械学習アルゴリズムを実行するか否か判定する。
図１０は、サンプルサイズの減少に関するシナリオ例を示す図である。
【０１１８】
機械学習装置１００は、学習時間の観点から、サンプルサイズｓ１で実行した方が有利か、サンプルサイズｓ２で実行した方が有利かを判定する。このとき、サンプルサイズの選択方法と機械学習アルゴリズムの実行結果から、３通りのシナリオが考えられる。
【０１１９】
曲線６１は、第１のシナリオにおける予測性能と時刻との関係を示す。第１のシナリオは、時刻Ｔにおいてサンプルサイズｓ０の学習ステップが終了した後、サンプルサイズｓ１は選択せずにサンプルサイズｓ２を選択した場合である。時刻Ｔ＋ｔ２＊において、サンプルサイズｓ２の学習ステップが終了して予測性能ｐ２＊が得られる。
【０１２０】
曲線６２は、第２のシナリオにおける予測性能と時刻との関係を示す。第２のシナリオは、時刻Ｔにおいてサンプルサイズｓ０の学習ステップが終了した後、サンプルサイズｓ１を選択し、これによって得られた予測性能ｐ１＊が低かった場合である。時刻Ｔ＋ｔ１＊において、サンプルサイズｓ１の学習ステップが終了し、サンプルサイズｓ２の学習ステップは実行されない。すなわち、機械学習アルゴリズムａの実行は打ち切られる。
【０１２１】
曲線６３は、第３のシナリオにおける予測性能と時刻との関係を示す。第３のシナリオは、時刻Ｔにおいてサンプルサイズｓ０の学習ステップが終了した後、サンプルサイズｓ１を選択し、これによって得られた予測性能ｐ１＊が高かった場合である。時刻Ｔ＋ｔ１＊において、サンプルサイズｓ１の学習ステップが終了した後、更にサンプルサイズｓ２の学習ステップが開始される。そして、時刻Ｔ＋ｔ１＊＋ｔ２＊において、サンプルサイズｓ２の学習ステップが終了して予測性能ｐ２＊が得られる。
【０１２２】
機械学習装置１００がサンプルサイズｓ２を選択した場合、第１のシナリオが発生する。一方、機械学習装置１００がサンプルサイズｓ１を選択した場合、第２のシナリオと第３のシナリオの何れか一方が確率的に発生する。第２のシナリオの累積実行時間は第１のシナリオより短い一方、第３のシナリオの累積実行時間は第１のシナリオより長い。このため、サンプルサイズｓ１とサンプルサイズｓ２の何れを選択した方が累積実行時間が短くなるかは、第２のシナリオの発生確率に依存する。
【０１２３】
ここでは、サンプルサイズｓ１を選択した後に第２のシナリオが生じる確率（機械学習アルゴリズムａの打ち切り率）をＰｓｔｏｐとし、サンプルサイズｓ１を選択した後に第３のシナリオが生じる確率を１−Ｐｓｔｏｐとする。Ｐｓｔｏｐの計算方法については後述する。時刻Ｔより後に機械学習アルゴリズムａに費やす実行時間の期待値をｔ１２＊とすると、ｔ１２＊＝Ｐｓｔｏｐ×ｔ１＊＋（１−Ｐｓｔｏｐ）×（ｔ１＊＋ｔ２＊）となる。これは、ｔ１２＊＝ｔ１＊＋（１−Ｐｓｔｏｐ）×ｔ２＊と変形することができる。
【０１２４】
ｔ１２＊＜ｔ２＊が成立すれば、サンプルサイズｓ１を選択することで実行時間の短縮が期待される。よって、機械学習装置１００がサンプルサイズｓ１を選択する条件は、ｔ１＊＜Ｐｓｔｏｐ×ｔ２＊を満たすようなサンプルサイズｓ１が、ｓ０＜ｓ１＜ｓ２の範囲に存在することである。最適なサンプルサイズｓ１は、ｔ１２＊を最小にするサイズ、すなわち、ａ．ｆｔ（ｓ）＋（１−Ｐｓｔｏｐ）×ｔ２＊を最小にするｓである。ただし、ｓ０＜ｓ１＜ｓ２かつｔ１＊≧ｋ１×ｔ０という制約を満たす。なお、Ｐｓｔｏｐはサンプルサイズｓ１に応じて変化する。
【０１２５】
図１１は、打ち切り率の算出例を示す図である。
打ち切り率Ｐｓｔｏｐは、以下のようにして算出することができる。
機械学習装置１００が、時刻Ｔ０に機械学習アルゴリズムａをサンプルサイズｓ１で実行し始める場合を考える。時刻Ｔ０における達成予測性能はＰＴ０である。サンプルサイズｓ１の実行時間の推定値はｔ１＊＝ａ．ｆｔ（ｓ１）である。ここでは、推定通りに時刻Ｔ０＋ｔ１＊にサンプルサイズｓ１の学習ステップが終了するものとする。確率分布６４は、サンプルサイズｓ１の学習ステップによって得られる予測性能の確率分布ａ．ｆＸｐ（ｓ１）である。確率分布ａ．ｆＸｐ（ｓ１）に従う確率変数をｐｘとする。
【０１２６】
また、時刻Ｔ０＋ｔ１＊より後である時刻Ｔ１に、機械学習アルゴリズムａをサンプルサイズｓ２で実行し始める場合を考える。時刻Ｔ０＋ｔ１＊と時刻Ｔ１の間に、他の機械学習アルゴリズムが実行される可能性がある。時刻Ｔ１における達成予測性能はＰＴ１である。サンプルサイズｓ２の実行時間の推定値はｔ２＊＝ａ．ｆｔ（ｓ２）である。ここでは、推定通りに時刻Ｔ１＋ｔ２＊にサンプルサイズｓ２の学習ステップが終了するものとする。
【０１２７】
この状況において、機械学習装置１００は以下のようなシミュレーションを行う。機械学習装置１００は、サンプルサイズｓ１の学習ステップを実行した結果として予測性能ｐｘが得られたと仮定する。機械学習装置１００は、ｐｘとＰＴ０とを比較し、ｐｘ＞ＰＴ０である場合には時刻Ｔ０＋ｔ１＊において達成予測性能がｐｘに更新されると判断する。達成予測性能が更新される場合、機械学習装置１００は、各機械学習アルゴリズムの改善速度を仮想的に更新する。また、機械学習装置１００は、予測性能の測定値ｐｘを用いて機械学習アルゴリズムａの予測性能の推定式を仮想的に更新し、サンプルサイズｓ２の予測性能の推定値ａ．ｆｐ（ｓ２）および確率分布ａ．ｆＸｐ（ｓ２）を再計算する。
【０１２８】
確率分布６５は、ｐｘが確率分布６４の期待値より大きい１つの予測性能であると仮定した場合に計算される確率分布ａ．ｆＸｐ（ｓ２）である。確率分布６６は、ｐｘが確率分布６４の期待値より小さい１つの予測性能であると仮定した場合に計算される確率分布ａ．ｆＸｐ（ｓ２）である。このようにして、機械学習装置１００は、サンプルサイズｓ１を選択した後、サンプルサイズｓ２を更に選択しようとする場合における機械学習アルゴリズムａの改善速度を算出する。ここで算出される改善速度をｒ２＊とする。
【０１２９】
機械学習装置１００は、時刻Ｔ０＋ｔ１＊において、改善速度ｒ２＊が他の何れの機械学習アルゴリズムの改善速度よりも大きく、ｒ２＊が閾値Ｒ以上であり、かつ、ｔ２＊が残り時間を超えないか判断する。この条件を満たす場合、機械学習装置１００は、機械学習アルゴリズムａがサンプルサイズｓ２で実行されると判断する。
【０１３０】
また、時刻Ｔ０＋ｔ１＊において改善速度がｒ２＊より大きい他の機械学習アルゴリズムが存在する場合、機械学習装置１００は、他の機械学習アルゴリズムが期待値通りの予測性能を達成できると仮定して達成予測性能ＰＴ１を算出する。機械学習装置１００は、この達成予測性能ＰＴ１に基づいて改善速度ｒ２＊を更新する。そして、機械学習装置１００は、時刻Ｔ１において、更新された改善速度ｒ２＊が閾値Ｒ以上であり、かつ、ｔ２＊が残り時間を超えないか判断する。この条件を満たす場合、機械学習装置１００は、機械学習アルゴリズムａがサンプルサイズｓ２で実行されると判断する。それ以外の場合、機械学習装置１００は、機械学習アルゴリズムａがサンプルサイズｓ２で実行されない（機械学習アルゴリズムａが打ち切られる）と判断する。
【０１３１】
機械学習装置１００は、モンテカルロ法によって、確率分布６４に従う多数のｐｘをランダムに選択して上記の処理を繰り返す。これにより、打ち切り率Ｐｓｔｏｐは数式（１）のように算出される。数式（１）に含まれるｆ（ｘ）は、確率分布６４の確率密度関数を示す。数式（１）に含まれるｈ（ｘ）は、機械学習アルゴリズムａがサンプルサイズｓ２で実行される場合に「０」、実行されない場合に「１」をとる関数である。
【０１３２】
【数１】
2018010475.tif 000003
【０１３３】
上記の打ち切り率Ｐｓｔｏｐは、サンプルサイズｓ１が変わると変化する。図１０で説明した方法で最適なサンプルサイズｓ１を探索する場合、機械学習装置１００は、図１１で説明したシミュレーションを様々なサンプルサイズｓ１について繰り返すことになる。機械学習装置１００は、二分探索法などによって、最適なサンプルサイズｓ１の存在するサイズ区間を段階的に絞り込んでもよい。また、機械学習装置１００は、サンプルサイズｓ１の候補を１０００の倍数に限定するなど、サンプルサイズｓ１の候補を一定条件を満たす離散的な値に限定してもよい。
【０１３４】
なお、打ち切り率Ｐｓｔｏｐを上記より簡易的な方法で近似することも可能である。
図１２は、打ち切り率の他の算出例を示す図である。
図１１の場合と同様に、機械学習装置１００が、時刻Ｔ０に機械学習アルゴリズムａをサンプルサイズｓ１で実行し始めるとする。時刻Ｔ０における達成予測性能はＰＴ０である。サンプルサイズｓ１の学習ステップは時刻Ｔ０＋ｔ１＊に終了する。確率分布６４は、サンプルサイズｓ１の学習ステップによって得られる予測性能の確率分布ａ．ｆＸｐ（ｓ１）である。サンプルサイズｓ１についての予測性能の期待値はｐ１＊＝ａ．ｆｐ（ｓ１）である。時刻Ｔ０＋ｔ１＊における達成予測性能はＰＴ０＋ｔ１＊である。
【０１３５】
その後、図１１の場合とは異なり、機械学習装置１００が、時刻Ｔ０＋ｔ１＊に機械学習アルゴリズムａをサンプルサイズｓ２で実行し始めるとする。すなわち、他の機械学習アルゴリズムは考慮されない。サンプルサイズｓ２の学習ステップは時刻Ｔ０＋ｔ１＊＋ｔ２＊に終了する。確率分布６７は、サンプルサイズｓ２の学習ステップによって得られる予測性能の確率分布ａ．ｆＸｐ（ｓ２）である。確率分布６７は、サンプルサイズｓ１の学習ステップで得られる予測性能が期待値ｐ１＊であると仮定して推定される。
【０１３６】
打ち切り率Ｐｓｔｏｐは、数式（２）のように近似計算できる。ｆ（ｘ）は確率分布６７の確率密度関数である。達成予測性能ＰＴ０＋ｔ１＊はｍａｘ（ＰＴ０，ｐ１＊）である。すなわち、サンプルサイズｓ１の予測性能の期待値が時刻Ｔ０における達成予測性能より大きい場合のみ、達成予測性能が更新されると仮定する。ｐ１＊はサンプルサイズｓ１に依存するため、打ち切り率Ｐｓｔｏｐはサンプルサイズｓ１に応じて変化する。
【０１３７】
【数２】
2018010475.tif 000004
【０１３８】
確率分布６７が示す予測性能の下限が達成予測性能ＰＴ０＋ｔ１＊よりも十分に大きい場合、サンプルサイズｓ２の学習ステップを実行することになる可能性が高いため、打ち切り率Ｐｓｔｏｐは「０」に近くなる。一方、確率分布６７が示す予測性能の上限が達成予測性能ＰＴ０＋ｔ１＊よりも若干大きい程度である場合、サンプルサイズｓ１の予測性能がｐ１＊より小さいならば、予測性能のＵＣＢがＰＴ０＋ｔ１＊を超えずサンプルサイズｓ２の学習ステップを実行しないことになる可能性が高い。この場合、打ち切り率Ｐｓｔｏｐは「０．５」に近くなる。
【０１３９】
また、更に簡易的な方法でサンプルサイズｓ１を近似することも可能である。
時刻Ｔ０＋ｔ１＊における達成予測性能ＰＴ０＋ｔ１＊がサンプルサイズｓ１に依存せず一定であると仮定する。例えば、ＰＴ０＋ｔ１＊＝ＰＴ０であると仮定する。すると、前述のｔ１２＊はｓ１に対して単調増加となる。機械学習装置１００は、ｔ１２＊＝ｋ１×ｔ０＝ａ．ｆｔ（ｓ１）を満たすｓ１を求める。そのｓ１についてｓ０＜ｓ１＜ｓ２かつｔ１＊＜Ｐｓｔｏｐ×ｔ２＊が成立するのであれば、機械学習装置１００は当該ｓ１を選択すればよい。
【０１４０】
上記のようにして、機械学習装置１００は、学習ステップが１つ終了する毎に次の学習ステップで使用する機械学習アルゴリズムとサンプルサイズを決定する。機械学習装置１００は、学習ステップの進行状況をディスプレイ１１１に表示してもよい。
【０１４１】
図１３は、機械学習進行画面の例を示す図である。
機械学習装置１００は、機械学習の進行中、機械学習進行画面１１５をディスプレイ１１１に表示する。機械学習進行画面１１５は、実行された１以上の学習ステップについて、ステップ番号と機械学習アルゴリズムの識別情報とサンプルサイズと達成予測性能とを列挙する。なお、機械学習装置１００は、機械学習進行画面１１５に相当する情報を、ディスプレイ１１１以外の出力デバイスから出力してもよい。また、機械学習装置１００は、機械学習進行画面１１５に相当する情報を他の装置に送信してもよい。
【０１４２】
次に、機械学習装置１００の機能および処理について説明する。
図１４は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、データ記憶部１２１、管理テーブル記憶部１２２、学習結果記憶部１２３、制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５を有する。データ記憶部１２１、管理テーブル記憶部１２２および学習結果記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域を用いて実現できる。制限時間入力部１３１、ステップ実行部１３２、時間推定部１３３、性能改善量推定部１３４および学習制御部１３５は、例えば、ＣＰＵ１０１が実行するプログラムモジュールを用いて実現できる。
【０１４３】
データ記憶部１２１は、機械学習に使用できるデータ集合を記憶する。データ集合は、それぞれが目的変数の値（結果）と１または２以上の説明変数の値（要因）とを含む単位データの集合である。データ記憶部１２１に記憶されたデータは、機械学習装置１００または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置１００または他の情報処理装置に対してユーザが入力したものでもよい。
【０１４４】
管理テーブル記憶部１２２は、機械学習の進行を管理するテーブルを記憶する。管理テーブル記憶部１２２に記憶されるテーブルの詳細は後述する。
学習結果記憶部１２３は、機械学習の最終結果を記憶する。機械学習の最終結果には、目的変数と１または２以上の説明変数との間の関係を示すモデルが含まれる。例えば、各説明変数の重みを示す係数が機械学習によって決定される。また、機械学習の最終結果には、学習されたモデルの予測性能が含まれる。また、機械学習の最終結果には、モデルの学習に用いた機械学習アルゴリズムとサンプルサイズの情報が含まれる。
【０１４５】
制限時間入力部１３１は、機械学習の制限時間の情報を取得し、制限時間を学習制御部１３５に通知する。制限時間の情報は、入力デバイス１１２を通じてユーザから入力されてもよい。また、制限時間の情報は、ＲＡＭ１０２またはＨＤＤ１０３に記憶された設定ファイルから読み出すようにしてもよい。また、制限時間の情報は、ネットワーク１１４を介して他の情報処理装置から受信してもよい。
【０１４６】
ステップ実行部１３２は、複数の機械学習アルゴリズムを実行することができる。ステップ実行部１３２は、学習制御部１３５から、機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、ステップ実行部１３２は、データ記憶部１２１に記憶されたデータを用いて、指定された機械学習アルゴリズムおよび指定されたサンプルサイズについての学習ステップを実行する。すなわち、ステップ実行部１３２は、指定されたサンプルサイズに基づいて、データ記憶部１２１から訓練データとテストデータを抽出する。ステップ実行部１３２は、訓練データと指定された機械学習アルゴリズムを用いてモデルを学習し、テストデータを用いて予測性能を算出する。
【０１４７】
モデルの学習と予測性能の算出について、ステップ実行部１３２は、クロスバリデーションやランダムサブサンプリングバリデーションなどの各種のバリデーション方法を使用できる。使用するバリデーション方法は、ステップ実行部１３２に予め設定されてもよい。また、ステップ実行部１３２は、１つの学習ステップに要した実行時間を測定する。ステップ実行部１３２は、モデルと予測性能と実行時間を学習制御部１３５に出力する。
【０１４８】
時間推定部１３３は、ある機械学習アルゴリズムとサンプルサイズの組に対する実行時間を推定する。時間推定部１３３は、学習制御部１３５から、機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、時間推定部１３３は、指定された機械学習アルゴリズムについてこれまで測定された実行時間と、指定されたサンプルサイズと、所定の推定式とから、指定されたサンプルサイズの実行時間を推定する。時間推定部１３３は、推定した実行時間を学習制御部１３５に出力する。
【０１４９】
性能改善量推定部１３４は、ある機械学習アルゴリズムとサンプルサイズの組に対する性能改善量を推定する。性能改善量推定部１３４は、学習制御部１３５から、機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、性能改善量推定部１３４は、指定された機械学習アルゴリズムについてこれまで測定された予測性能と、指定されたサンプルサイズと、所定の推定式とから、指定されたサンプルサイズの予測性能を推定する。このとき、性能改善量推定部１３４は、統計誤差を考慮して、ＵＣＢなど予測性能の期待値よりも大きい値を用いる。性能改善量推定部１３４は、現在の達成予測性能からの性能改善量を算出し、学習制御部１３５に出力する。
【０１５０】
学習制御部１３５は、複数の機械学習アルゴリズムを用いた機械学習を制御する。学習制御部１３５は、複数の機械学習アルゴリズムそれぞれを小さなサンプルサイズでステップ実行部１３２に実行させる。学習制御部１３５は、１つの学習ステップが実行される毎に、同じ機械学習アルゴリズムについて次に実行すべきサンプルサイズを決定する。次に実行すべきサンプルサイズは、改善速度が最大になるサンプルサイズである。学習制御部１３５は、当該機械学習アルゴリズムと当該サンプルサイズの組に対応する実行時間を時間推定部１３３に推定させると共に性能改善量を性能改善量推定部１３４に推定させ、当該機械学習アルゴリズムを次に実行した場合の改善速度を算出する。また、学習制御部１３５は、１つの学習ステップが実行された結果として達成予測性能が上昇した場合、他の機械学習アルゴリズムの改善速度も更新する。
【０１５１】
そして、学習制御部１３５は、複数の機械学習アルゴリズムの中から改善速度が最大のものを選択し、選択した機械学習アルゴリズムをステップ実行部１３２に実行させる。このとき、学習制御部１３５は、選択した機械学習アルゴリズムを、予定のサンプルサイズよりも小さいサンプルサイズで実行させることがある。また、学習制御部１３５は、選択した機械学習アルゴリズムを、予定のサンプルサイズよりも大きいサンプルサイズで実行させることがある。学習制御部１３５は、改善速度の更新と機械学習アルゴリズムの選択とを、改善速度が十分に小さくなるか学習時間が制限時間を超えるまで繰り返す。
【０１５２】
学習制御部１３５は、機械学習の停止までに得られたモデルのうち予測性能が最大のモデルを学習結果記憶部１２３に保存する。また、学習制御部１３５は、予測性能と機械学習アルゴリズムの情報とサンプルサイズの情報を学習結果記憶部１２３に保存する。なお、学習制御部１３５は、機械学習の実行中に、機械学習進行画面１１５をディスプレイ１１１に表示するなど進行情報を適時出力するようにしてもよい。
【０１５３】
図１５は、履歴テーブルと関数テーブルとスケジュールテーブル例を示す図である。
履歴テーブル１２４は、管理テーブル記憶部１２２に記憶される。履歴テーブル１２４は、アルゴリズムＩＤ、サンプルサイズ、予測性能および実行時間の項目を有する。履歴テーブル１２４の１つのレコードは、実行された１つの学習ステップに対応する。アルゴリズムＩＤの項目には、実行された機械学習アルゴリズムの識別子が登録される。サンプルサイズの項目には、学習ステップで使用された訓練データのサンプルサイズが登録される。予測性能の項目には、学習ステップで算出された予測性能の測定値が登録される。実行時間の項目には、学習ステップで算出された実行時間の測定値が登録される。
【０１５４】
履歴テーブル１２４に登録された予測性能のうちの最大値が、現在の達成予測性能に相当する。履歴テーブル１２４は、例えば、ステップ実行部１３２が出力した学習ステップの実行結果に基づいて学習制御部１３５によって更新される。履歴テーブル１２４の内容は、時間推定部１３３や性能改善量推定部１３４によって参照される。
【０１５５】
関数テーブル１２５は、管理テーブル記憶部１２２に記憶される。関数テーブル１２５は、アルゴリズムＩＤ、予測性能関数、確率分布関数および実行時間関数の項目を有する。関数テーブル１２５の１つのレコードは、１つの機械学習アルゴリズムに対応する。アルゴリズムＩＤの項目には、機械学習アルゴリズムの識別子が登録される。予測性能関数の項目には、当該機械学習アルゴリズムについて算出された関数ｆｐ（）、すなわち、予測性能の推定値を求める関数が登録される。確率分布関数の項目には、当該機械学習アルゴリズムについて算出された関数ｆＸｐ（）、すなわち、予測性能の確率分布を求める関数が登録される。実行時間関数の項目には、当該機械学習アルゴリズムについて算出された関数ｆｔ（）、すなわち、実行時間の推定値を求める関数が登録される。
【０１５６】
ある機械学習アルゴリズムの予測性能関数、確率分布関数および実行時間関数は、当該機械学習アルゴリズムについての予測性能の測定値や実行時間の測定値が増える毎に、すなわち、当該機械学習アルゴリズムの学習ステップが実行される毎に更新される。関数テーブル１２５は、例えば、時間推定部１３３や性能改善量推定部１３４によって更新される。また、関数テーブル１２５は、時間推定部１３３や性能改善量推定部１３４や学習制御部１３５によって参照される。
【０１５７】
スケジュールテーブル１２６は、管理テーブル記憶部１２２に記憶される。スケジュールテーブル１２６は、アルゴリズムＩＤ、サンプルサイズおよび改善速度の項目を有する。スケジュールテーブル１２６の１つのレコードは、１つの機械学習アルゴリズムに対応する。アルゴリズムＩＤの項目には、機械学習アルゴリズムの識別子が登録される。サンプルサイズの項目には、当該機械学習アルゴリズムについて、次に実行する予定のサンプルサイズが登録される。改善速度の項目には、当該機械学習アルゴリズムを当該サンプルサイズで実行した場合に期待される予測性能の改善速度が登録される。
【０１５８】
スケジュールテーブル１２６から、改善速度が最大の機械学習アルゴリズムが選択されて実行されることになる。スケジュールテーブル１２６の改善速度は、１つの学習ステップが実行された結果として達成予測性能が上昇する毎に更新される。改善速度の初期値は無限大である。一方、スケジュールテーブル１２６のサンプルサイズは、当該機械学習アルゴリズムが前回実行されたときに更新され、他の機械学習アルゴリズムによって達成予測性能が上昇しても更新されない。サンプルサイズの初期値は、例えば、データ集合Ｄのサイズの１／１０２４である。スケジュールテーブル１２６は、時間推定部１３３や性能改善量推定部１３４が出力した情報に基づいて学習制御部１３５によって更新される。
【０１５９】
図１６は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）学習制御部１３５は、データ記憶部１２１を参照して、最小サンプルサイズｓｉｎｉｔを算出する。例えば、学習制御部１３５は、データ記憶部１２１に記憶されたデータ集合Ｄのサイズに基づいて、ｓｉｎｉｔ＝｜Ｄ｜／２１０と算出する。
【０１６０】
（Ｓ１１）学習制御部１３５は、スケジュールテーブル１２６に記憶された複数の機械学習アルゴリズムそれぞれのサンプルサイズをｓｉｎｉｔに初期化し、複数の機械学習アルゴリズムそれぞれの改善速度を無限大（∞）に初期化する。また、学習制御部１３５は、達成予測性能Ｐを無限小に初期化する。
【０１６１】
（Ｓ１２）学習制御部１３５は、スケジュールテーブル１２６の中から改善速度が最大の機械学習アルゴリズムを選択する。ここで選択した機械学習アルゴリズムをａとする。
（Ｓ１３）学習制御部１３５は、機械学習アルゴリズムａの改善速度ｒ＊が、閾値Ｒ未満であるか判断する。閾値Ｒは、予め学習制御部１３５に設定されていてもよい。例えば、閾値Ｒ＝０．００１／３６００とする。改善速度ｒ＊が閾値Ｒ未満である場合はステップＳ３１に処理が進み、それ以外の場合はステップＳ１４に処理が進む。
【０１６２】
（Ｓ１４）学習制御部１３５は、スケジュールテーブル１２６から、機械学習アルゴリズムａに対応するサンプルサイズをサンプルサイズｓ２として取得する。学習制御部１３５は、前述の方法によって、サンプルサイズｓ２よりも小さいサンプルサイズｓ１であって、期待実行時間ｔ１２＊が最小になるｓ１を探索する。
【０１６３】
（Ｓ１５）学習制御部１３５は、ステップＳ１４に該当するサンプルサイズｓ１が存在するか判断する。該当するサンプルサイズｓ１が存在する場合はステップＳ１６に処理が進み、存在しない場合はステップＳ１７に処理が進む。
【０１６４】
（Ｓ１６）学習制御部１３５は、機械学習アルゴリズムａおよびサンプルサイズｓ１を用いた学習ステップをステップ実行部１３２に実行させる。ステップ実行部１３２の処理については後述する。そして、ステップＳ１９に処理が進む。
【０１６５】
（Ｓ１７）学習制御部１３５は、スケジュールテーブル１２６から、機械学習アルゴリズムａの次に改善速度が大きい２番目の機械学習アルゴリズムを検索し、その改善速度を取得する。学習制御部１３５は、前述の方法によって、２番目の改善速度に基づいてサンプルサイズｓ２をサンプルサイズｓ３に増大させる。すなわち、学習制御部１３５は、機械学習アルゴリズムａの改善速度が２番目の改善速度を下回らない範囲で、機械学習アルゴリズムａのサンプルサイズを増大させる。
【０１６６】
（Ｓ１８）学習制御部１３５は、機械学習アルゴリズムａおよびサンプルサイズｓ３を用いた学習ステップをステップ実行部１３２に実行させる。
（Ｓ１９）学習制御部１３５は、ステップ実行部１３２から、学習されたモデルｍと当該モデルの予測性能ｐと実行時間ｔとを取得する。学習制御部１３５は、機械学習アルゴリズムａおよびサンプルサイズｓ（ｓ１またはｓ３）と対応付けて、予測性能ｐと実行時間ｔを履歴テーブル１２４に保存する。
【０１６７】
（Ｓ２０）学習制御部１３５は、ステップＳ１９で取得した予測性能ｐが達成予測性能Ｐより大きいか判断する。予測性能ｐが達成予測性能Ｐより大きい場合、学習制御部１３５は、達成予測性能Ｐを予測性能ｐに更新すると共に、達成予測性能Ｐが得られた機械学習アルゴリズムａとサンプルサイズｓ（ｓ１またはｓ３）とを記録しておく。
【０１６８】
図１７は、機械学習の手順例を示すフローチャート（続き）である。
（Ｓ２１）学習制御部１３５は、ステップＳ２０で達成予測性能Ｐが更新された場合、更新された達成予測性能Ｐを用いて、スケジュールテーブル１２６に記憶された機械学習アルゴリズムａ以外の機械学習アルゴリズムそれぞれの改善速度を更新する。通常、達成予測性能Ｐが大きくなると、各機械学習アルゴリズムの改善速度は小さくなる。更新後の改善速度は、前回改善速度の算出に用いたｆｇ（Ｘｐ，Ｐ）／ｔ＊という式のＰのみを入れ替えることで算出することができる。なお、スケジュールテーブル１２６に記憶された各機械学習アルゴリズムのサンプルサイズは更新しなくてよい。
【０１６９】
（Ｓ２２）学習制御部１３５は、時間推定部１３３および性能改善量推定部１３４に、機械学習アルゴリズムａについての関数を更新させる。時間推定部１３３は、ステップＳ１９で取得された実行時間ｔを含む過去の実行時間の測定値を用いて、回帰分析により関数ａ．ｆｔ（）を算出する。性能改善量推定部１３４は、ステップＳ１９で取得された予測性能ｐを含む過去の予測性能の測定値を用いて、回帰分析により関数ａ．ｆｐ（）およびａ．ｆＸｐ（）を算出する。更新された関数ａ．ｆｐ（），ａ．ｆＸｐ（），ａ．ｆｔ（）は、関数テーブル１２５に記憶される。
【０１７０】
（Ｓ２３）学習制御部１３５は、前述の方法により、機械学習アルゴリズムａの改善速度を最大にするサンプルサイズｓｎｅｗを算出する。学習制御部１３５は、幾つかのサンプルサイズについて、時間推定部１３３に実行時間の推定値を算出させ性能改善量推定部１３４に性能改善量を算出させることで、改善速度を試算してもよい。このとき、ステップＳ２２で更新された関数ａ．ｆｐ（），ａ．ｆＸｐ（），ａ．ｆｔ（）が使用される。サンプルサイズｓｎｅｗは、ｆｇ（ｆＸｐ（ｓ），Ｐ）／ｆｔ（ｓ）を最大にするｓである。
【０１７１】
（Ｓ２４）学習制御部１３５は、サンプルサイズｓｎｅｗとデータ記憶部１２１に記憶されたデータ集合Ｄのサイズとを比較し、前者が後者より大きいか判断する。サンプルサイズｓｎｅｗがデータ集合Ｄのサイズよりも大きい場合はステップＳ２５に処理が進み、それ以外の場合はステップＳ２６に処理が進む。
【０１７２】
（Ｓ２５）学習制御部１３５は、スケジュールテーブル１２６に記憶された機械学習アルゴリズムａに対応する改善速度を「０」に更新する。これにより、機械学習アルゴリズムａは実行されなくなる。そして、ステップＳ１２に処理が進む。
【０１７３】
（Ｓ２６）学習制御部１３５は、時間推定部１３３に、機械学習アルゴリズムａおよびサンプルサイズｓｎｅｗを用いた学習ステップの実行時間ｔ＊を推定させる。時間推定部１３３の処理については後述する。
【０１７４】
（Ｓ２７）学習制御部１３５は、性能改善量推定部１３４に、機械学習アルゴリズムａおよびサンプルサイズｓｎｅｗを用いた学習ステップの性能改善量ｇ＊を推定させる。性能改善量推定部１３４の処理については後述する。
【０１７５】
（Ｓ２８）学習制御部１３５は、ステップＳ２６で推定された実行時間ｔ＊およびステップＳ２７で推定された性能改善量ｇ＊に基づいて、機械学習アルゴリズムａおよびサンプルサイズｓｎｅｗに対応する改善速度ｒｎｅｗ＊＝ｇ＊／ｔ＊を算出する。
【０１７６】
（Ｓ２９）学習制御部１３５は、機械学習を開始してからの経過時間が、制限時間入力部１３１から指定された制限時間を超えたか判断する。経過時間が制限時間を超えた場合はステップＳ３１に処理が進み、それ以外の場合はステップＳ３０に処理が進む。
【０１７７】
（Ｓ３０）学習制御部１３５は、スケジュールテーブル１２６に＜ａ，ｓｎｅｗ，ｒｎｅｗ＊＞の組を保存する。すなわち、学習制御部１３５は、スケジュールテーブル１２６に記憶された機械学習アルゴリズムａに対応するサンプルサイズをｓｎｅｗに更新する。また、学習制御部１３５は、スケジュールテーブル１２６に記憶された機械学習アルゴリズムａに対応する改善速度をｒｎｅｗ＊に更新する。そして、ステップＳ１２に処理が進む。
【０１７８】
（Ｓ３１）学習制御部１３５は、達成予測性能Ｐとその予測性能が得られたモデルｍとを学習結果記憶部１２３に保存する。また、学習制御部１３５は、達成予測性能Ｐに対応付けられた機械学習アルゴリズムの識別情報と、達成予測性能Ｐに対応付けられたサンプルサイズとを、学習結果記憶部１２３に保存する。
【０１７９】
図１８は、ステップ実行の手順例を示すフローチャートである。
ここでは、バリデーション方法として、データ集合Ｄのサイズに応じて、ランダムサブサンプリングバリデーションまたはクロスバリデーションを実行する場合を考える。ただし、ステップ実行部１３２は、他のバリデーション方法を用いてもよい。
【０１８０】
（Ｓ４０）ステップ実行部１３２は、学習制御部１３５から指定された機械学習アルゴリズムａとサンプルサイズｓとを特定する。また、ステップ実行部１３２は、データ記憶部１２１に記憶されているデータ集合Ｄを特定する。
【０１８１】
（Ｓ４１）ステップ実行部１３２は、サンプルサイズｓが、データ集合Ｄのサイズの２／３よりも大きいか判断する。サンプルサイズｓが２／３×｜Ｄ｜よりも大きい場合、ステップ実行部１３２は、データ量が不足しているためクロスバリデーションを選択する。そして、ステップＳ４８に処理が進む。サンプルサイズｓが２／３×｜Ｄ｜以下である場合、ステップ実行部１３２は、データ量が十分あるためランダムサブサンプリングバリデーションを選択する。そして、ステップＳ４２に処理が進む。
【０１８２】
（Ｓ４２）ステップ実行部１３２は、データ集合Ｄからサンプルサイズｓの訓練データＤｔをランダムに抽出する。訓練データの抽出は、非復元抽出サンプリングとして行う。よって、訓練データには、互いに異なるｓ個の単位データが含まれる。
【０１８３】
（Ｓ４３）ステップ実行部１３２は、データ集合Ｄのうち訓練データＤｔを除いた部分から、サイズｓ／２のテストデータＤｓをランダムに抽出する。テストデータの抽出は、非復元抽出サンプリングとして行う。よって、テストデータには、訓練データＤｔと異なりかつ互いに異なるｓ／２個の単位データが含まれる。なお、ここでは訓練データＤｔのサイズとテストデータＤｓのサイズの比を２：１としたが、比を変更してもよい。
【０１８４】
（Ｓ４４）ステップ実行部１３２は、機械学習アルゴリズムａとデータ集合Ｄから抽出した訓練データＤｔとを用いてモデルを学習する。
（Ｓ４５）ステップ実行部１３２は、学習したモデルとデータ集合Ｄから抽出したテストデータＤｓとを用いて、モデルの予測性能を算出する。予測性能を表す指標として、正答率、適合率、ＲＭＳＥなど任意の指標を用いることができる。予測性能を表す指標が、予めステップ実行部１３２に設定されてもよい。
【０１８５】
（Ｓ４６）ステップ実行部１３２は、上記ステップＳ４２〜Ｓ４５の繰り返し回数と閾値Ｋとを比較し、前者が後者未満であるか判断する。閾値Ｋは、予めステップ実行部１３２に設定されていてもよい。例えば、閾値Ｋ＝１０とする。繰り返し回数が閾値Ｋ未満の場合はステップＳ４２に処理が進み、それ以外の場合はステップＳ４７に処理が進む。
【０１８６】
（Ｓ４７）ステップ実行部１３２は、ステップＳ４５で算出されたＫ個の予測性能の平均値を算出し、予測性能ｐとして出力する。また、ステップ実行部１３２は、ステップＳ４０が開始されてからステップＳ４２〜Ｓ４６の繰り返しが終了するまでの実行時間ｔを算出して出力する。また、ステップ実行部１３２は、ステップＳ４４で学習されたＫ個のモデルのうち予測性能が最大のモデルｍを出力する。そして、ランダムサブサンプリングバリデーションによる１つの学習ステップが終了する。
【０１８７】
（Ｓ４８）ステップ実行部１３２は、上記のランダムサブサンプリングバリデーションに代えて、前述したクロスバリデーションを実行する。例えば、ステップ実行部１３２は、データ集合Ｄからサンプルサイズｓのサンプルデータをランダムに抽出し、抽出したサンプルデータをＫ個のブロックに均等に分割する。ステップ実行部１３２は、Ｋ−１個のブロックを訓練データとして使用し１個のブロックをテストデータとして使用することを、テストデータのブロックを変えながらＫ回繰り返す。ステップ実行部１３２は、Ｋ個の予測性能の平均である予測性能ｐと実行時間ｔと予測性能が最大のモデルｍを出力する。
【０１８８】
図１９は、時間推定の手順例を示すフローチャートである。
（Ｓ５０）時間推定部１３３は、学習制御部１３５から指定された機械学習アルゴリズムａとサンプルサイズｓとを特定する。
【０１８９】
（Ｓ５１）時間推定部１３３は、機械学習アルゴリズムａが２以上のサンプルサイズで実行済みであるか判断する。機械学習アルゴリズムａが２以上のサンプルサイズで実行済みである場合はステップＳ５２に処理が進み、１つのサンプルサイズでのみ実行されている場合はステップＳ５５に処理が進む。
【０１９０】
（Ｓ５２）時間推定部１３３は、履歴テーブル１２４から、機械学習アルゴリズムａに対応する２組以上のサンプルサイズと実行時間ｔを検索する。
（Ｓ５３）時間推定部１３３は、サンプルサイズを説明変数とし実行時間ｔを目的変数とする回帰分析により、関数ａ．ｆｔ（）を算出する。例えば、時間推定部１３３は、線形回帰分析によりａ．ｆｔ（ｓ）＝β２＋α２×ｓの係数α２，β２を決定する。別の例としては、時間推定部１３３は、線形回帰分析によりａ．ｆｔ（ｓ）＝β２＋α２×ｌｏｇ（ｓ）の係数α２，β２を決定することにしてもよい。時間推定部１３３は、関数テーブル１２５の関数ａ．ｆｔ（）を更新する。ただし、関数ａ．ｆｔ（）を前回算出してから機械学習アルゴリズムａについての履歴が増えていない場合、時間推定部１３３は関数ａ．ｆｔ（）を更新しなくてもよい。その場合、時間推定部１３３は、関数テーブル１２５から最新の関数ａ．ｆｔ（）を取得できる。
【０１９１】
（Ｓ５４）時間推定部１３３は、ステップＳ５３で算出した関数ａ．ｆｔ（）とステップＳ５０で特定したサンプルサイズｓを用いて、機械学習アルゴリズムａおよびサンプルサイズｓに対応する実行時間ｔ＊＝ａ．ｆｔ（ｓ）を推定する。時間推定部１３３は、推定した実行時間ｔ＊を出力する。そして、時間推定が終了する。
【０１９２】
（Ｓ５５）時間推定部１３３は、履歴テーブル１２４から、機械学習アルゴリズムａに対応する１組のサンプルサイズと実行時間ｔを検索する。
（Ｓ５６）時間推定部１３３は、検索されたサンプルサイズをｓ１とし実行時間をｔ１とすると、機械学習アルゴリズムａおよびサンプルサイズｓに対応する実行時間ｔ＊＝ｔ１×ｓ／ｓ１を推定する。時間推定部１３３は、推定した実行時間ｔ＊を出力する。
【０１９３】
図２０は、性能改善量推定の手順例を示すフローチャートである。
（Ｓ６０）性能改善量推定部１３４は、学習制御部１３５から指定された機械学習アルゴリズムａとサンプルサイズｓとを特定する。
【０１９４】
（Ｓ６１）性能改善量推定部１３４は、履歴テーブル１２４から、機械学習アルゴリズムａに対応する１組以上のサンプルサイズと予測性能ｐを検索する。
（Ｓ６２）性能改善量推定部１３４は、サンプルサイズを説明変数とし予測性能ｐを目的変数とする回帰分析により、関数ａ．ｆｐ（）と関数ａ．ｆＸｐ（）を算出する。例えば、性能改善量推定部１３４は、非線形回帰分析によりａ．ｆｐ（ｓ）＝β１−α１×ｓ−γの係数α１，β１，γを決定する。各サンプルサイズにおける予測性能の確率分布を示す関数ａ．ｆＸｐ（）は、回帰分析を通じて求めることができる。ただし、ａ．ｆＸｐ（）からａ．ｆｐ（）を導出することも可能である。
【０１９５】
性能改善量推定部１３４は、関数テーブル１２５の関数ａ．ｆｐ（），ａ．ｆＸｐ（）を更新する。ただし、関数ａ．ｆｐ（），ａ．ｆＸｐ（）を前回算出してから機械学習アルゴリズムａについての履歴が増えていない場合、性能改善量推定部１３４は関数ａ．ｆｐ（），ａ．ｆＸｐ（）を更新しなくてもよい。その場合、性能改善量推定部１３４は、関数テーブル１２５から最新の関数ａ．ｆｐ（），ａ．ｆＸｐ（）を取得できる。
【０１９６】
（Ｓ６３）性能改善量推定部１３４は、ステップＳ６２で算出した関数ａ．ｆＸｐ（）とステップＳ６０で特定したサンプルサイズｓを用いて、機械学習アルゴリズムａおよびサンプルサイズｓに対応する確率分布Ｘｐ＝ａ．ｆＸｐ（ｓ）を算出する。性能改善量推定部１３４は、サンプルサイズｓにおける確率分布Ｘｐに基づいて、９５％予測区間の上限値ｕを算出する。この上限値ｕを、ＵＣＢや９７．５％分位点と呼ぶこともある。ただし、ＵＣＢに代えて、予測性能が達成予測性能Ｐを超える期待値（ＥＩ）などを確率分布Ｘｐの積分によって算出し、上限値ｕとして用いてもよい。
【０１９７】
（Ｓ６４）性能改善量推定部１３４は、現在の達成予測性能Ｐと上限値ｕを比較して性能改善量ｇ＊＝Ｍａｘ（０，ｕ−Ｐ）を推定し、推定した性能改善量ｇ＊を出力する。性能改善量ｇ＊は、ｕ＞Ｐであればｕ−Ｐであり、ｕ≦Ｐであれば０である。
【０１９８】
第２の実施の形態の機械学習装置１００によれば、複数の機械学習アルゴリズムそれぞれについて、次に使用する予定のサンプルサイズが選択され、そのサンプルサイズにおける改善速度が推定される。そして、複数の機械学習アルゴリズムの中から改善速度が最大の機械学習アルゴリズムが選択され、選択された機械学習アルゴリズムが１つのサンプルサイズで実行される。以上の学習ステップが１つずつ進められる。
【０１９９】
これにより、達成予測性能の向上に寄与しなくなった機械学習アルゴリズムは実行されなくなり、全体の機械学習時間を短縮することができる。また、改善速度が最大の機械学習アルゴリズムが選択されるため、機械学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最良のモデルとなる。また、少しでも達成予測性能の向上に寄与する機械学習アルゴリズムは、実行順序が後になっても実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムをサンプルサイズが小さいうちに打ち切ってしまうリスクを低減できる。
【０２００】
また、複数の機械学習アルゴリズムそれぞれのサンプルサイズの増加量は固定でなく、当該機械学習アルゴリズムや他の機械学習アルゴリズムの実行状況を考慮して調整される。すなわち、次に使用するサンプルサイズは、予測性能の改善速度が最大になるサンプルサイズを基準にして選択される。よって、達成予測性能の上昇速度が向上する。
【０２０１】
また、大きいサンプルサイズの学習ステップの実行される可能性が高い機械学習アルゴリズムについては、小さなサンプルサイズがスキップされて大きなサンプルサイズが選択される。よって、サンプルサイズを大きくする過程で生じる途中の無駄な学習ステップを削減することができる。また、大きいサンプルサイズの学習ステップの実行される可能性が高くない機械学習アルゴリズムについては、より小さなサンプルサイズが選択される。よって、大きなサンプルサイズを用いずに予測性能の推定精度を向上させることができ、予測性能の上限の低い機械学習アルゴリズムを早期に打ち切ることができる。
【０２０２】
このように、複数の機械学習アルゴリズムおよび複数のサンプルサイズを用いた機械学習を効率化でき、機械学習時間を短縮することができる。
【符号の説明】
【０２０３】
１０  機械学習管理装置
１１  記憶部
１２  制御部
１３ａ，１３ｂ  機械学習アルゴリズム
１４  最大予測性能
１５ａ，１５ｂ，１５ｃ，１５ｄ  推定予測性能
１６ａ，１６ｂ，１６ｃ，１６ｄ  推定実行時間
１７ａ，１７ｂ  訓練データサイズ
【図１】
2018010475.tif 000005
【図２】
2018010475.tif 000006
【図３】
2018010475.tif 000007
【図４】
2018010475.tif 000008
【図５】
2018010475.tif 000009
【図６】
2018010475.tif 000010
【図７】
2018010475.tif 000011
【図８】
2018010475.tif 000012
【図９】
2018010475.tif 000013
【図１０】
2018010475.tif 000014
【図１１】
2018010475.tif 000015
【図１２】
2018010475.tif 000016
【図１３】
2018010475.tif 000017
【図１４】
2018010475.tif 000018
【図１５】
2018010475.tif 000019
【図１６】
2018010475.tif 000020
【図１７】
2018010475.tif 000021
【図１８】
2018010475.tif 000022
【図１９】
2018010475.tif 000023
【図２０】
2018010475.tif 000024