(57)【要約】【課題】ハイパーパラメータ値の探索を効率化する。【解決手段】探索装置１０は、サンプルサイズｓ１とハイパーパラメータ値θ１とを用いる学習処理１４ａを実行させ、サンプルサイズｓ１とハイパーパラメータ値θ２とを用いる学習処理１４ｂを実行させる。探索装置１０は、サンプルサイズｓ１より大きいサンプルサイズｓ２とハイパーパラメータ値θ１とを用いる学習処理１４ｃが未実行である場合、学習処理１４ａ，１４ｂで使用されたリソースに基づいて、サンプルサイズｓ１に対応する合計リソース１５を算出する。探索装置１０は、合計リソース１５が閾値１６を超える場合、学習処理１４ｃの実行を許容し、合計リソース１５が閾値１６以下である場合、学習処理１４ｃの実行を制限して、サンプルサイズｓ１以下のサンプルサイズとハイパーパラメータ値θ３とを用いる学習処理１４ｄの実行を許容する。【選択図】図１
2019079214.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する探索方法であって、
第１のサンプルサイズの訓練データと第１のハイパーパラメータ値とを用いてモデルを生成する第１の学習処理を実行させ、前記第１のサンプルサイズの訓練データと第２のハイパーパラメータ値とを用いてモデルを生成する第２の学習処理を実行させ、
前記第１のサンプルサイズより大きい第２のサンプルサイズの訓練データと前記第１のハイパーパラメータ値とを用いてモデルを生成する第３の学習処理が未実行である場合、前記第１の学習処理で使用されたリソースおよび前記第２の学習処理で使用されたリソースに基づいて、前記第１のサンプルサイズに対応する合計リソースを算出し、
前記合計リソースが閾値を超える場合、前記第３の学習処理の実行を許容し、
前記合計リソースが前記閾値以下である場合、前記第３の学習処理の実行を制限して、前記第１のサンプルサイズ以下の訓練データと第３のハイパーパラメータ値とを用いてモデルを生成する第４の学習処理の実行を許容する、
探索方法。
【請求項２】
前記第１の学習処理、前記第２の学習処理、前記第３の学習処理および前記第４の学習処理はそれぞれ、複数の単位処理を含むパイプラインであり、
前記第１のハイパーパラメータ値、前記第２のハイパーパラメータ値および前記第３のハイパーパラメータ値はそれぞれ、前記複数の単位処理に対応付けて設定される複数の処理アルゴリズムを示す複数のハイパーパラメータ要素値を含む、
請求項１記載の探索方法。
【請求項３】
前記コンピュータが更に、
前記第３の学習処理で使用されるリソースの推定値と、前記第２のサンプルサイズに対応する所定のリソース係数とに基づいて、前記閾値を算出する、
請求項１記載の探索方法。
【請求項４】
前記コンピュータが更に、
前記第３の学習処理を含む、ハイパーパラメータ値が異なる未実行の複数の学習処理それぞれの優先度を、生成されるモデルの予測性能の推定値に基づいて決定し、
前記複数の学習処理の中で前記第３の学習処理の優先度が最も高くかつ前記第３の学習処理の実行を制限する場合、前記複数の学習処理のうち前記第２のサンプルサイズ以上の訓練データを用いる学習処理の実行を制限する、
請求項１記載の探索方法。
【請求項５】
前記合計リソースの算出では、前記第１のサンプルサイズが複数存在する場合、複数の第１のサンプルサイズそれぞれに対して前記合計リソースを算出し、
前記複数の第１のサンプルサイズの全てについて前記合計リソースが前記閾値を超える場合、前記第３の学習処理の実行を許容し、
前記複数の第１のサンプルサイズの少なくとも１つについて前記合計リソースが前記閾値以下である場合、前記第３の学習処理の実行を制限する、
請求項１記載の探索方法。
【請求項６】
前記合計リソースの算出では、前記第１のサンプルサイズが複数存在する場合、複数の第１のサンプルサイズそれぞれに対して前記合計リソースを算出し、
前記複数の第１のサンプルサイズの少なくとも１つについて前記合計リソースが前記閾値を超える場合、前記第３の学習処理の実行を許容し、
前記複数の第１のサンプルサイズの全てについて前記合計リソースが前記閾値以下である場合、前記第３の学習処理の実行を制限する、
請求項１記載の探索方法。
【請求項７】
１つのサンプルサイズの訓練データと１つのハイパーパラメータ値とを用いてモデルを生成する学習処理の履歴を示す探索履歴を記憶する記憶部と、
前記探索履歴から、第１のサンプルサイズの訓練データと第１のハイパーパラメータ値とを用いる第１の学習処理が実行済みであり、前記第１のサンプルサイズの訓練データと第２のハイパーパラメータ値とを用いる第２の学習処理が実行済みであり、前記第１のサンプルサイズより大きい第２のサンプルサイズの訓練データと前記第１のハイパーパラメータ値とを用いる第３の学習処理が未実行であることを検出し、前記第１の学習処理で使用されたリソースおよび前記第２の学習処理で使用されたリソースに基づいて、前記第１のサンプルサイズに対応する合計リソースを算出し、前記合計リソースが閾値を超える場合、前記第３の学習処理の実行を許容し、前記合計リソースが前記閾値以下である場合、前記第３の学習処理の実行を制限して、前記第１のサンプルサイズ以下の訓練データと第３のハイパーパラメータ値とを用いる第４の学習処理の実行を許容する処理部と、
を有する探索装置。
【請求項８】
コンピュータに、
第１のサンプルサイズの訓練データと第１のハイパーパラメータ値とを用いてモデルを生成する第１の学習処理を実行させ、前記第１のサンプルサイズの訓練データと第２のハイパーパラメータ値とを用いてモデルを生成する第２の学習処理を実行させ、
前記第１のサンプルサイズより大きい第２のサンプルサイズの訓練データと前記第１のハイパーパラメータ値とを用いてモデルを生成する第３の学習処理が未実行である場合、前記第１の学習処理で使用されたリソースおよび前記第２の学習処理で使用されたリソースに基づいて、前記第１のサンプルサイズに対応する合計リソースを算出し、
前記合計リソースが閾値を超える場合、前記第３の学習処理の実行を許容し、
前記合計リソースが前記閾値以下である場合、前記第３の学習処理の実行を制限して、前記第１のサンプルサイズ以下の訓練データと第３のハイパーパラメータ値とを用いてモデルを生成する第４の学習処理の実行を許容する、
処理を実行させる探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は探索方法、探索装置および探索プログラムに関する。
【背景技術】
【０００２】
コンピュータを利用したデータ分析の１つとして、機械学習が行われることがある。機械学習では、複数の既知の事例を示す訓練データをコンピュータに入力する。コンピュータは、訓練データを分析して、要因（説明変数や独立変数と言うことがある）と結果（目的変数や従属変数と言うことがある）との間の関係を一般化したモデルを生成する。生成されたモデルを用いることで未知の事例の結果を予測することができる。
【０００３】
機械学習では、生成されるモデルの正確さ、すなわち、未知の事例の結果を正確に予測する能力（予測性能と言うことがある）が高いことが好ましい。予測性能は、学習に用いる訓練データのサイズ（サンプルサイズ）が大きいほど高くなる。ただし、サンプルサイズが大きいほどモデルの生成に要する実行時間も長くなる。
【０００４】
また、機械学習では、同じ訓練データを使用する場合であっても、ハイパーパラメータ値を変えることで予測性能の異なるモデルが生成される。ハイパーパラメータは、機械学習の挙動を調整する設定項目である。ハイパーパラメータ値は、機械学習を通じて算出されるモデル係数とは異なり、モデルを生成する前に指定される。ハイパーパラメータには、例えば、ロジスティック回帰分析、サポートベクタマシン（ＳＶＭ：Support Vector Machine）、ランダムフォレストなどの機械学習アルゴリズムを示すものが含まれる。また、ハイパーパラメータには、例えば、ＲＢＦ（Radial Basis Function）カーネルＳＶＭという機械学習アルゴリズムで使用される「Ｃ」や「γ」などの変数が含まれる。
【０００５】
ある訓練データに対して、モデルの予測性能が最も高くなるようなハイパーパラメータ値が事前にわからないことも多い。そこで、予測性能が高くなるハイパーパラメータ値をコンピュータに探索させることが考えられる。
【０００６】
例えば、１つのサンプルサイズに対して、複数のハイパーパラメータ値それぞれを用いてモデル生成を試行し、最も高い予測性能をもつモデルを出力する機械学習装置が提案されている。この機械学習装置は、取り得るハイパーパラメータ値の集合であるハイパーパラメータ空間の中から、ランダムにまたは一定間隔を空けてグリッド状に、試行する所定数のハイパーパラメータ値を選択する。また、ベイズ最適化方法を用いて、次に試行するハイパーパラメータ値を選択する機械学習システムが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１７−４９６７７号公報
【特許文献２】国際公開第２０１４／１９４１６１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ハイパーパラメータ探索では最終的に、十分に大きなサンプルサイズの訓練データを用いた場合に予測性能が高くなるハイパーパラメータ値を発見したい。一方、様々なハイパーパラメータ値について、最初から大きなサンプルサイズの訓練データを用いてモデル生成を試行することは、多大な実行時間を要することになり好ましくない。そこで、小さなサンプルサイズの訓練データを用いてモデルを生成し、その予測性能に基づいて、試行するハイパーパラメータ値を絞り込む方法が考えられる。ハイパーパラメータ値の絞り込みにあたって、サンプルサイズを段階的に大きくしていく方法が考えられる。
【０００９】
ここで、様々なハイパーパラメータ値のサンプルサイズをどの様な順序で大きくしていけば、試行するハイパーパラメータ値を効率的に絞り込むことができるかが問題となる。
例えば、１つの方法として、十分に小さなサンプルサイズで、できる限り多くのハイパーパラメータ値を試行することを優先する方法が考えられる。しかし、この方法では、大きいサンプルサイズの実行が遅れるため、サンプルサイズを大きくすることによる予測性能の向上も遅れることになる。また、他の１つの方法として、少数のハイパーパラメータ値を仮選択し、予測性能の伸び具合を判断できる程度までサンプルサイズを十分に大きくすることを優先する方法も考えられる。しかし、この方法では、仮選択したハイパーパラメータ値が、未試行の他のハイパーパラメータ値と比べて相対的に予測性能の低いものであった場合、大きなサンプルサイズにおける仮選択したハイパーパラメータ値の試行が結果的に無駄になってしまう。
【００１０】
１つの側面では、本発明は、ハイパーパラメータ値の探索を効率化する探索方法、探索装置および探索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、コンピュータが実行する探索方法が提供される。第１のサンプルサイズの訓練データと第１のハイパーパラメータ値とを用いてモデルを生成する第１の学習処理を実行させ、第１のサンプルサイズの訓練データと第２のハイパーパラメータ値とを用いてモデルを生成する第２の学習処理を実行させる。第１のサンプルサイズより大きい第２のサンプルサイズの訓練データと第１のハイパーパラメータ値とを用いてモデルを生成する第３の学習処理が未実行である場合、第１の学習処理で使用されたリソースおよび第２の学習処理で使用されたリソースに基づいて、第１のサンプルサイズに対応する合計リソースを算出する。合計リソースが閾値を超える場合、第３の学習処理の実行を許容する。合計リソースが閾値以下である場合、第３の学習処理の実行を制限して、第１のサンプルサイズ以下の訓練データと第３のハイパーパラメータ値とを用いてモデルを生成する第４の学習処理の実行を許容する。
【００１２】
また、１つの態様では、記憶部と処理部とを有する探索装置が提供される。また、１つの態様では、コンピュータに実行させる探索プログラムが提供される。
【発明の効果】
【００１３】
１つの側面では、ハイパーパラメータ値の探索を効率化することができる。
【図面の簡単な説明】
【００１４】
【図１】探索装置を説明する図である。
【図２】機械学習装置のハードウェア例を示すブロック図である。
【図３】機械学習のパイプラインの例を示す図である。
【図４】ハイパーパラメータ値の選択例を示す図である。
【図５】サンプルサイズと予測性能の関係例を示すグラフである。
【図６】ハイパーパラメータ探索の進行例を示す図である。
【図７】リソース係数テーブルの例を示す図である。
【図８】機械学習装置の機能例を示すブロック図である。
【図９】探索履歴テーブルの例を示す図である。
【図１０】機械学習の手順例を示すフローチャートである。
【図１１】ハイパーパラメータ値選択の手順例を示すフローチャートである。
【図１２】リソース制約判定の手順例を示すフローチャートである。
【図１３】ハイパーパラメータ値選択の他の手順例を示すフローチャートである。
【図１４】リソース制約判定の他の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１６】
図１は、探索装置を説明する図である。
第１の実施の形態の探索装置１０は機械学習の進行を管理する。機械学習では、既知の事例を示す訓練データを分析することで、未知の事例の結果を予測するモデル（学習モデルと言うことがある）を生成する。探索装置１０が自ら機械学習を行ってもよいし、探索装置１０が他の装置に機械学習を行わせてもよい。探索装置１０は、ユーザが操作するクライアントコンピュータでもよいし、クライアントコンピュータからネットワーク経由でアクセスされるサーバコンピュータでもよい。
【００１７】
探索装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性のストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。プログラムには探索プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１８】
機械学習によって生成されるモデルに対しては、既知の事例を示すテストデータを用いることで、未知の事例の結果を予測する精度を示す予測性能を算出することができる。予測性能を示す指標としては、例えば、正答率（Accuracy）、適合率（Precision）、Ｆ値、平均二乗誤差（ＭＳＥ：Mean Squared Error）、平均二乗誤差平方根（ＲＭＳＥ：Root Mean Squared Error）などが用いられる。機械学習では予測性能の高いモデルが生成されることが好ましい。モデルの予測性能は、訓練データとして使用するデータセット（データ母集合）に依存する。また、生成されるモデルの予測性能は、機械学習の挙動を調整する設定項目であるハイパーパラメータの値にも依存する。
【００１９】
ハイパーパラメータは、モデルに含まれるモデル係数のように機械学習を通じて値が決定されるものではなく、モデル生成の開始前に値が設定されるものである。ハイパーパラメータ値を変えると、生成されるモデルが変わって予測性能が変わる。ハイパーパラメータは、機械学習アルゴリズムの指定や訓練データに対する前処理方法の指定を含んでもよい。探索装置１０は、あるデータセットに対して好適なハイパーパラメータ値を探索する。ハイパーパラメータ探索では、十分に大きなサンプルサイズの訓練データを使用したときの予測性能が高いハイパーパラメータ値を発見することが目的となる。ただし、最初から大きなサンプルサイズの訓練データを使用して様々なハイパーパラメータ値を試行することは非効率である。そこで、探索装置１０は、小さなサンプルサイズから始めて、サンプルサイズを大きくしていく過程でハイパーパラメータ値を絞り込む。
【００２０】
記憶部１１は、探索履歴１３を記憶する。探索履歴１３は、１つのサンプルサイズの訓練データと１つのハイパーパラメータ値とを用いてモデルを生成する学習処理の履歴を示す。探索履歴１３は、どの様なサンプルサイズとハイパーパラメータ値の組が試行されたかを示している。ここでは、サンプルサイズｓ１の訓練データとハイパーパラメータ値θ１とを用いる学習処理１４ａが実行済みである。また、サンプルサイズｓ１の訓練データとハイパーパラメータ値θ２とを用いる学習処理１４ｂが実行済みである。一方、サンプルサイズｓ２の訓練データとハイパーパラメータ値θ１とを用いてモデルを生成する学習処理１４ｃが未実行である。また、サンプルサイズｓ１以下の訓練データとハイパーパラメータ値θ３とを用いる学習処理１４ｄが未実行である。
【００２１】
処理部１２は、記憶部１１に記憶された探索履歴１３を参照して、次に実行する学習処理を選択し、選択した学習処理を探索装置１０または他の情報処理装置に実行させる。処理部１２は、学習処理１４ａ，１４ｂを既に実行させており、学習処理１４ｃ，１４ｄをまだ実行させていない。この場合、処理部１２は、学習処理１４ａで使用されたリソースおよび学習処理１４ｂで使用されたリソースに基づいて、サンプルサイズｓ１に対応する合計リソース１５を算出し、合計リソース１５と閾値１６を比較する。
【００２２】
「リソース」は、学習処理の負荷を反映した指標であればよい。例えば、リソースとして、学習処理で使用する訓練データのサイズ（サンプルサイズ）を用いてもよいし、学習処理の実行時間を用いてもよいし、学習処理の中で行われる機械学習アルゴリズムの繰り返し回数（イテレーション数）を用いてもよい。合計リソース１５は、例えば、サンプルサイズｓ１の訓練データを使用した複数の学習処理のリソースの合計である。閾値１６は、例えば、サンプルサイズｓ２に応じて決まる閾値である。処理部１２は、学習処理１４ｃで使用されるリソースの推定値を用いて閾値１６を算出してもよい。また、処理部１２は、複数のサンプルサイズに対応して予め設定された複数のリソース係数のうち、サンプルサイズｓ２に対応するリソース係数を用いて閾値１６を算出してもよい。処理部１２は、サンプルサイズｓ１に対応するリソース係数を更に用いて閾値１６を算出してもよい。
【００２３】
処理部１２は、合計リソース１５が閾値１６を超える場合、学習処理１４ｃの実行を許容する。この場合、次に学習処理１４ｃが学習処理１４ｄより優先的に実行されることが好ましい。すなわち、試行済みのハイパーパラメータ値のサンプルサイズを大きくすることが優先される。一方、処理部１２は、合計リソース１５が閾値１６以下である場合、学習処理１４ｃの実行を制限し、学習処理１４ｄの実行を許容する。この場合、次に学習処理１４ｄが学習処理１４ｃより優先的に実行されることが好ましい。すなわち、試行したハイパーパラメータ値を増やすことが優先される。
【００２４】
第１の実施の形態の探索装置１０によれば、サンプルサイズｓ１について実行済みの学習処理１４ａ，１４ｂで使用されたリソースから、合計リソース１５が算出され、合計リソース１５と閾値１６とが比較される。合計リソース１５が閾値１６を超えれば、サンプルサイズｓ１より大きなサンプルサイズｓ２について学習処理１４ｃが許容される。合計リソース１５が閾値１６以下であれば、学習処理１４ｃが制限され、サンプルサイズｓ１以下のサンプルサイズについて学習処理１４ｄが許容される。
【００２５】
これにより、次に試行するハイパーパラメータ値とサンプルサイズの組を選択するにあたり、試行したハイパーパラメータ値を増やすこととサンプルサイズを大きくすることのバランスを図ることができる。その結果、小さいサンプルサイズの試行を優先し過ぎることによって大きいサンプルサイズで得られる予測性能の向上が遅れてしまうリスクや、大きいサンプルサイズの試行を優先し過ぎることによる無駄な試行発生のリスクを低減することができる。よって、ハイパーパラメータ値の探索を効率化することができる。
【００２６】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、機械学習装置のハードウェア例を示すブロック図である。
【００２７】
機械学習装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。上記ユニットはバスに接続されている。機械学習装置１００は、第１の実施の形態の探索装置１０に対応する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００２８】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを含んでもよく、機械学習装置１００は複数のプロセッサを有してもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００２９】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００３０】
ＨＤＤ１０３は、オペレーティングシステム（ＯＳ：Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには探索プログラムが含まれる。なお、機械学習装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００３１】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、機械学習装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００３２】
入力信号処理部１０５は、機械学習装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００３３】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００３４】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００３５】
通信インタフェース１０７は、ネットワーク１１４に接続され、ネットワーク１１４を介して他の装置と通信を行うインタフェースである。通信インタフェース１０７は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【００３６】
次に、機械学習で生成されるモデルと予測性能について説明する。
第２の実施の形態の機械学習では、既知の事例を示す複数のデータ単位（レコードやインスタンスと言うことがある）を含むデータセットを予め用意しておく。機械学習装置１００または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク１１４経由でレコードを収集してもよい。データセットは「ビッグデータ」と言われるサイズの大きなデータセットであってもよい。各レコードは、１以上の説明変数の値と目的変数の値とを含む。説明変数および目的変数それぞれを属性と言うことがあり、説明変数の値および目的変数の値それぞれを属性値と言うことがある。
【００３７】
機械学習装置１００は、データセットの中から一部のレコードを訓練データとしてサンプリングし、訓練データを用いてモデルを生成する。モデルは、説明変数と目的変数との間の関係を示し、１以上の説明変数と１以上のモデル係数と目的変数とを含む。モデルは、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されることがある。数式の形は、機械学習の前にユーザによって指定されてもよい。モデル係数は、機械学習を通じて訓練データに基づいて決定される。生成されたモデルを用いることで、未知の事例の説明変数の値（要因）から、未知の事例の目的変数の値（結果）を予測することができる。モデルによって予測される結果は、０以上１以下の確率値などの連続値であってもよいし、ＹＥＳ／ＮＯの２値などの離散値であってもよい。
【００３８】
生成されたモデルに対しては予測性能を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、精度と言うこともできる。機械学習装置１００は、データセットの中から訓練データ以外のレコードをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの１／２程度とする。機械学習装置１００は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値（予測値）とテストデータに含まれる目的変数の値（実績値）とを比較する。なお、生成したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【００３９】
予測性能の指標として、正答率、適合率、Ｆ値、平均二乗誤差、平均二乗誤差平方根などが挙げられる。例えば、結果がＹＥＳ／ＮＯの２値で表されるとする。また、Ｎ件のテストデータの事例のうち、予測値＝ＹＥＳかつ実績値＝ＹＥＳの件数をＴｐ、予測値＝ＹＥＳかつ実績値＝ＮＯの件数をＦｐ、予測値＝ＮＯかつ実績値＝ＹＥＳの件数をＦｎ、予測値＝ＮＯかつ実績値＝ＮＯの件数をＴｎとする。この場合、正答率は予測が当たった割合であり、（Ｔｐ＋Ｔｎ）／Ｎと算出される。適合率は「ＹＥＳ」の予測を間違えない確率であり、Ｔｐ／（Ｔｐ＋Ｆｐ）と算出される。Ｆ値は、（２×再現率×適合率）／（再現率＋適合率）と算出される。再現率は、Ｔｐ／（Ｔｐ＋Ｆｎ）と算出される。各事例の実績値をｙと表し予測値をｙ*と表すと、平均二乗誤差はｓｕｍ（ｙ−ｙ*）2／Ｎと算出され、平均二乗誤差平方根は（ｓｕｍ（ｙ−ｙ*）2／Ｎ）1/2と算出される。
【００４０】
次に、モデルを生成する学習ステップについて説明する。
図３は、機械学習のパイプラインの例を示す図である。
第２の実施の形態では１つのモデルを生成する１回の学習ステップは、パイプラインと言われる一連の処理手順として定義される。パイプラインはワークフローと言うこともできる。パイプラインは、処理に対応するノードと処理間のデータの引き継ぎに対応する有向エッジとを含む有向非循環グラフ（ＤＡＧ：Directed Acyclic Graph）として表現することができる。パイプラインの入力はデータセット全体またはそこからサンプリングされたデータ（まとめて以下サンプルデータと呼ぶ）であり、パイプラインの出力はモデルとその予測性能である。パイプラインの最終段の処理は、１つの機械学習アルゴリズムを用いてモデルを生成し当該モデルの予測性能を測定する処理である。最終段以外の処理は、例えば、サンプルデータに対する前処理である。
【００４１】
ここでは一例として、処理３１〜３３を含むパイプラインを説明する。
処理３１は、第１段階の前処理であり、サンプルデータに含まれるレコードの値を正規化する。処理３１は、サンプルデータを受け取り、正規化したレコードの集合を第１段階の中間データとして処理３２に引き渡す。正規化は、レコードに含まれる値の分布を所定範囲の分布に変換することで、サンプルデータによって値の上限や下限が異なることによる機械学習の精度への影響を低減するものである。
【００４２】
処理３２は、第２段階の前処理であり、第１段階の中間データに含まれるレコードの次元（説明変数の数）を削減する。処理３２は、処理３１から第１段階の中間データを受け取り、次元を減らしたレコードの集合を第２段階の中間データとして処理３３に引き渡す。次元削減は、レコードから冗長な説明変数の値を除去することで、予測性能の高いモデルを生成しやすくするものである。これは、全ての説明変数が目的変数と強い相関関係をもつとは限らず、目的変数の値を予測する上で有用であるとは限らないためである。
【００４３】
処理３３は、最終段の処理であり、モデルを生成して評価する。処理３３は、処理３２から第２段階の中間データを受け取り、モデルとその予測性能を出力する。モデル生成評価は、第２段階の中間データに含まれる一部のレコードを訓練データとして抽出し、抽出した訓練データと１つの機械学習アルゴリズムを用いてモデルを生成することを含む。また、モデル生成評価は、第２段階の中間データに含まれる他のレコードをテストデータとして抽出し、抽出したテストデータに含まれる説明変数の値をモデルに入力して目的変数の値を予測し、実績値と比較することで予測性能を測定することを含む。
【００４４】
ここで、機械学習の挙動を調整するハイパーパラメータについて説明する。ハイパーパラメータは、モデルに含まれるモデル係数のように機械学習を通じて値が決定されるものではなく、モデル生成の前に値が指定されるものである。ハイパーパラメータ値を変えると、生成されるモデルが変わり予測性能が変わる。ハイパーパラメータは、カテゴリカルハイパーパラメータと連続量ハイパーパラメータを含む。
【００４５】
カテゴリカルハイパーパラメータは、異なる値の間に大小関係が定義されないハイパーパラメータである。カテゴリカルハイパーパラメータは名義尺度に相当すると言うこともできる。異なるカテゴリカルハイパーパラメータ値を比較しても、大小関係に意味が無く差や比にも意味が無い。よって、近いカテゴリカルパラメータ値を用いて生成されたモデルは近い予測性能をもつという仮定が成立しない。カテゴリカルハイパーパラメータには、前処理方法や機械学習アルゴリズムが含まれる。また、カテゴリカルハイパーパラメータには、機械学習アルゴリズムの挙動を調整する非数値変数が含まれる。
【００４６】
連続量ハイパーパラメータは、カテゴリカルハイパーパラメータ以外のハイパーパラメータであり、異なる値の間に大小関係が定義されるハイパーパラメータである。連続量ハイパーパラメータは順序尺度、間隔尺度または比例尺度に相当すると言うこともできる。異なる連続量ハイパーパラメータ値の間で、大小関係は判定可能であるものの差や比に意味が無いことがある（順序尺度）。また、異なる連続量ハイパーパラメータ値の間で、差（距離）は定義されるものの比に意味が無いことがある（間隔尺度）。また、異なる連続量ハイパーパラメータ値の間で、差だけでなく比も定義されることがある（比例尺度）。
【００４７】
近い連続量ハイパーパラメータ値を用いて生成されたモデルは近い予測性能をもつという仮定が成立する。連続量ハイパーパラメータ値は、実数のような連続値でもよいし整数のような離散値でもよい。連続量ハイパーパラメータには、前処理の挙動を調整する数値変数や機械学習アルゴリズムの挙動を調整する数値変数が含まれる。
【００４８】
なお、ハイパーパラメータは複数の変数を列挙したベクトルであることもある。これを明確にするため、個々の変数をハイパーパラメータ要素と言い、ハイパーパラメータ要素に代入する値をハイパーパラメータ要素値と言うことがある。また、ハイパーパラメータ要素の集合をハイパーパラメータと言い、ハイパーパラメータ要素値の集合をハイパーパラメータ値またはハイパーパラメータ点と言うことがある。
【００４９】
上記のように、カテゴリカルハイパーパラメータでは機械学習アルゴリズムを指定することができる。機械学習装置１００が実行可能な機械学習アルゴリズムの例として、ロジスティック回帰分析、ＳＶＭ、ランダムフォレストなどが挙げられる。
【００５０】
ロジスティック回帰分析は、目的変数ｙの値と説明変数ｘ1，ｘ2，…，ｘkの値をＳ字曲線にフィッティングする回帰分析である。目的変数ｙおよび説明変数ｘ1，ｘ2，…，ｘkは、ｌｏｇ（ｙ／（１−ｙ））＝ａ1ｘ1＋ａ2ｘ2＋…＋ａkｘk＋ｂの関係を満たすと仮定される。ａ1，ａ2，…，ａk，ｂは係数であり、回帰分析によって決定される。
【００５１】
サポートベクタマシンは、Ｎ次元空間に配置されたレコードの集合を、２つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離（マージン）が最大になるように算出される。
【００５２】
ランダムフォレストは、複数のレコードを分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、データセットからレコードをランダムに抽出し、説明変数の一部をランダムに選択し、選択した説明変数の値に応じて抽出したレコードを分類する。説明変数の選択とレコードの分類を繰り返すことで、複数の説明変数に基づく階層的な決定木を生成する。レコードの抽出と決定木の生成を繰り返すことで複数の決定木を求め、それら決定木を合成することで最終的なモデルを生成する。
【００５３】
上記の処理３１〜３３を含むパイプラインは様々なハイパーパラメータ要素をもつ。処理３１は正規化方法を示すハイパーパラメータ要素をもつ。正規化方法はカテゴリカルハイパーパラメータ要素であり、最大値を１、最小値を０に正規化する方法と、平均を０、標準偏差を１に正規化する方法（Ｚ変換）とをハイパーパラメータ要素値としてもつ。処理３２は次元削減方法を示すハイパーパラメータ要素をもつ。次元削減方法はカテゴリカルハイパーパラメータ要素であり、主成分分析法とカーネル主成分分析法をハイパーパラメータ要素値としてもつ。処理３３は機械学習アルゴリズムを示すハイパーパラメータ要素をカテゴリカルハイパーパラメータ要素としてもつ。
【００５４】
次元削減方法として主成分分析法を選択した場合、処理３２は更に特徴数を示すハイパーパラメータ要素をもつ。特徴数は連続量ハイパーパラメータ要素であり、２以上３０以下の整数をとる。次元削減方法としてカーネル主成分分析法を選択した場合、処理３２は更に特徴数を示すハイパーパラメータ要素と変数γを示すハイパーパラメータ要素をもつ。特徴数は連続量ハイパーパラメータ要素であり、２以上５０以下の整数をとる。変数γは連続量ハイパーパラメータ要素であり、０．０１以上１００．０以下の実数をとる。
【００５５】
機械学習アルゴリズムとしてサポートベクタマシンを選択した場合、処理３３は更に変数Ｃを示すハイパーパラメータ要素と変数γを示すハイパーパラメータ要素をもつ。変数Ｃは連続量ハイパーパラメータ要素であり、０．０１以上１００．０以下の実数をとる。変数γは連続量ハイパーパラメータ要素であり、０．０１以上１００．０以下の実数をとる。機械学習アルゴリズムとしてランダムフォレストを選択した場合、処理３３は更にツリー数を示すハイパーパラメータ要素と深さを示すハイパーパラメータ要素とクラス分類方法を示すハイパーパラメータ要素をもつ。ツリー数は連続量ハイパーパラメータ要素であり、２以上１００以下の整数をとる。深さは連続量ハイパーパラメータ要素であり、２以上８以下の整数をとる。クラス分類方法はカテゴリカルハイパーパラメータ要素であり、ジニ係数とエントロピーをハイパーパラメータ要素値としてもつ。
【００５６】
図４は、ハイパーパラメータ値の選択例を示す図である。
機械学習装置１００は、１つのハイパーパラメータ値、すなわち、１組のハイパーパラメータ要素値の集合を指定することで、図３のパイプラインに従って１つのモデルを生成し当該モデルの予測性能を測定することができる。ハイパーパラメータ値を変えることで、生成されるモデルや予測性能が変化する。
【００５７】
例えば、機械学習装置１００は、ハイパーパラメータ値４１を指定して１回の学習ステップを実行する。ハイパーパラメータ値４１は、正規化方法を最大値と最小値で正規化する方法に設定する。また、ハイパーパラメータ値４１は、次元削減方法をカーネル主成分分析法に設定し、その特徴数を１５に設定し、その変数γを０．２５に設定する。また、ハイパーパラメータ値４１は、機械学習アルゴリズムをサポートベクタマシンに設定し、その変数Ｃを５０．０に設定し、その変数γを０．０５に設定する。あるサンプルデータとハイパーパラメータ値４１から、例えば、予測性能が０．８４のモデルが生成される。
【００５８】
また、例えば、機械学習装置１００は、ハイパーパラメータ値４２を指定して１回の学習ステップを実行する。ハイパーパラメータ値４２は、正規化方法を平均と標準偏差で正規化する方法に設定する。また、ハイパーパラメータ値４２は、次元削減方法を主成分分析法に設定し、その特徴数を２５に設定する。また、ハイパーパラメータ値４２は、機械学習アルゴリズムをランダムフォレストに設定し、そのツリー数を７３に設定し、その深さを４に設定し、そのクラス分類方法をエントロピーに設定する。あるサンプルデータとハイパーパラメータ値４２から、例えば、予測性能が０．９３のモデルが生成される。
【００５９】
次に、使用する訓練データのサイズであるサンプルサイズについて説明する。上記ではハイパーパラメータ値によってモデルの予測性能が変わることを説明したが、サンプルサイズによってもモデルの予測性能が変わる。ハイパーパラメータ値が同じ場合、サンプルサイズが大きいほど予測性能の高いモデルが生成されることが多い。
【００６０】
図５は、サンプルサイズと予測性能の関係例を示すグラフである。
曲線５１は、ハイパーパラメータθの値がθ1である場合のサンプルサイズｓと予測性能の関係を示す。曲線５２は、ハイパーパラメータθの値がθ2である場合のサンプルサイズｓと予測性能の関係を示す。曲線５３は、ハイパーパラメータθの値がθ3である場合のサンプルサイズｓと予測性能の関係を示す。サンプルサイズｓは、訓練データに含まれるレコードの数であり、例えば、１００，２００，４００，８００，…のように所定の倍数で指数関数的に増加させる。所定の倍数は、例えば、２倍または４倍である。
【００６１】
曲線５１〜５３が示すように、各ハイパーパラメータ値について、サンプルサイズが大きいほどモデルの予測性能が高くなる。予測性能が低いうちはサンプルサイズの増加に応じて予測性能が大きく上昇する。一方、予測性能には上限があり、予測性能が上限に近づくとサンプルサイズの増加量に対する予測性能の上昇量の比は逓減する。また、サンプルサイズが大きいほど、モデル生成に要する実行時間も長くなる。
【００６２】
予測性能の上限はハイパーパラメータ値によって異なる。図５の例では、θ＝θ2の場合の予測性能の上限はθ＝θ3の場合よりも高く、θ＝θ1の場合の予測性能の上限はθ＝θ2の場合よりも更に高い。ただし、予測性能の上昇曲線は、ハイパーパラメータ値が同じであっても使用するデータセットの特性（データセットの種類）によって変わる。このため、機械学習を開始する前に、予測性能が最大になるハイパーパラメータ値を特定することは難しい。そこで、第２の実施の形態では、あるデータセットに対して予測性能の上限が最大となるハイパーパラメータ値を、機械学習装置１００に探索させる。
【００６３】
図６は、ハイパーパラメータ探索の進行例を示す図である。
ハイパーパラメータ探索では最終的に、十分に大きなサンプルサイズにおける予測性能の上限が高いハイパーパラメータ値を発見したい。一方、様々なハイパーパラメータ値について最初から大きなサンプルサイズの訓練データを用いて学習ステップを実行することは、多大な実行時間を要することになり現実的でない。また、ハイパーパラメータの中に複数のカテゴリカルハイパーパラメータ要素が含まれている場合、近似するハイパーパラメータ値から生成されたモデルが近似する予測性能をもつとは限らない。
【００６４】
そこで、機械学習装置１００は、小さいサンプルサイズで様々なハイパーパラメータ値を試行し、その際に測定された予測性能から大きいサンプルサイズの予測性能を推定する。機械学習装置１００は、他のハイパーパラメータ値と比べて予測性能の上昇が相対的に大きいと期待できるハイパーパラメータ値に絞り込んで、サンプルサイズを大きくする。機械学習装置１００は、サンプルサイズを多段階で大きくしていく。
【００６５】
このとき、様々なハイパーパラメータ値についてどの様な順序でサンプルサイズを大きくしていけば、ハイパーパラメータ探索が効率的になるかが問題となる。
１つのシンプルな方法として、小さいサンプルサイズでできる限り多くのハイパーパラメータ値を試行することを優先する方法が考えられる。しかし、サンプルサイズを大きくすると予測性能も大きくなることも多いため、大きいサンプルサイズでの実行が遅れることにより、それにより得られる予測性能の向上も遅れてしまう。この場合、先に幾つかのハイパーパラメータ値についてある程度大きいサンプルサイズを試行した方が、結果的にハイパーパラメータ値の絞り込みを効率化できることがある。
【００６６】
また、他の１つのシンプルな方法として、少数のハイパーパラメータ値を仮選択し、仮選択したハイパーパラメータ値について予測性能の上昇曲線を確定できる程度までサンプルサイズを大きくすることを優先する方法が考えられる。しかし、仮選択したハイパーパラメータ値の予測性能の上限が未選択の他のハイパーパラメータ値よりも低いことがあり、大きなサンプルサイズの試行が結果的に無駄になってしまうことがある。この場合、先に幾つかの他のハイパーパラメータ値についても試行していれば、仮選択したハイパーパラメータ値の試行を途中で打ち切ることができた可能性がある。
【００６７】
そこで、機械学習装置１００は、様々なハイパーパラメータ値について小さいサンプルサイズの試行量と大きいサンプルサイズの試行量とが所定のバランスを保つように、次にサンプルサイズを１段階大きくするハイパーパラメータ値を選択していく。これにより、小さいサンプルサイズの試行を優先し過ぎることによる絞り込みの失敗を抑制し、大きいサンプルサイズの試行を優先し過ぎることによる打ち切りの失敗を抑制する。
【００６８】
ハイパーパラメータ値の試行量を示す指標として、機械学習装置１００は合計消費リソースを使用する。「リソース」は、１つのハイパーパラメータ値と１つのサンプルサイズを指定した１回の学習ステップの負荷を表す。リソースの例としてサンプルサイズ、すなわち、使用した訓練データに含まれるレコードの数が挙げられる。また、リソースの例として実行時間、すなわち、訓練データからモデルを生成しモデルとテストデータから予測性能を測定するのに要した時間が挙げられる。また、機械学習アルゴリズムが繰り返し処理を含んでおり繰り返し回数（イテレーション数）を増やすほど予測性能の高いモデルを生成できる場合、リソースの例としてイテレーション数が挙げられる。以下では、リソースとしてサンプルサイズを用いる場合を想定する。
【００６９】
機械学習装置１００は、複数のハイパーパラメータ値を小さいサンプルサイズで試行することで消費したリソースの合計（合計消費リソース）が閾値を超えた場合、それら複数のハイパーパラメータ値の１つを大きいサンプルサイズで試行することを優先する。一方、機械学習装置１００は、合計消費リソース量が閾値以下である場合、他のハイパーパラメータ値を小さいサンプルサイズで試行することを優先する。合計消費リソース量に基づいて、試行済みのハイパーパラメータ値のサンプルサイズを大きくすることを優先するか、新規のハイパーパラメータ値を試行することを優先するかが選択される。
【００７０】
あるハイパーパラメータ値をあるサンプルサイズ（対象サンプルサイズ）で試行することを許可するか否か判定することを考える。機械学習装置１００は、対象サンプルサイズより小さいサンプルサイズ（要比較サンプルサイズ）を１つ選択する。機械学習装置１００は、選択した要比較サンプルサイズについて試行済みのハイパーパラメータ値の消費リソースを合計した合計消費リソースを算出する。また、機械学習装置１００は、対象サンプルサイズに応じた閾値を算出する。閾値は、対象サンプルサイズの合計消費リソースと要比較サンプルサイズのリソース係数と対象サンプルサイズのリソース係数に依存する。
【００７１】
対象サンプルサイズの合計消費リソースは、対象サンプルサイズについて試行済みのハイパーパラメータ値の消費リソースに、上記ハイパーパラメータ値の試行を許可した場合の消費リソースの推定値を加算したものである。よって、算出する対象サンプルサイズの合計消費リソースは、試行を許可した後の合計消費リソースの推定値である。リソース係数は、小さいサンプルサイズと大きいサンプルサイズの間の合計消費リソースの傾斜を調整する係数であり、複数のサンプルサイズそれぞれに対して予め設定されている。
【００７２】
要比較サンプルサイズのリソース係数と対象サンプルサイズのリソース係数との比によって閾値が調整される。例えば、対象サンプルサイズの合計消費リソースをｒ（ｓi）、要比較サンプルサイズのリソース係数をｑ（ｓj）、対象サンプルサイズのリソース係数をｑ（ｓi）とすると、ｒ（ｓi）×ｑ（ｓj）／ｑ（ｓi）を閾値として使用する。要比較サンプルサイズの合計消費リソースをｒ（ｓj）とすると、ｒ（ｓj）＞ｒ（ｓi）×ｑ（ｓj）／ｑ（ｓi）の場合は対象サンプルサイズの試行が許可され、ｒ（ｓj）≦ｒ（ｓi）×ｑ（ｓj）／ｑ（ｓi）の場合は対象サンプルサイズの試行が拒否される。
【００７３】
一例として、ハイパーパラメータ値θ＝θ1，θ2，θ3とサンプルサイズｓ＝１００，２００，４００が存在するものとする。また、サンプルサイズｓ＝１００のリソース係数が１であり、サンプルサイズｓ＝２００のリソース係数が１．４であるものとする。その場合、例えば、グラフ６１のような順序で学習ステップが進行する。
【００７４】
まず、１番目にθ＝θ1，ｓ＝１００の学習ステップを実行する。すると、ｓ＝１００の合計消費リソースは１００であり、θ＝θ1，ｓ＝２００の学習ステップを実行した場合のｓ＝２００の合計消費リソースは２００になる。よって、１００≦２００×１／１．４＝１４３であるため、θ＝θ1，ｓ＝２００の学習ステップの実行は拒否される。
【００７５】
そこで、２番目にθ＝θ2，ｓ＝１００の学習ステップを実行する。すると、ｓ＝１００の合計消費リソースは２００であり、θ＝θ1，ｓ＝２００の学習ステップを実行した場合のｓ＝２００の合計消費リソースは２００になる。よって、２００＞２００×１／１．４＝１４３であるため、θ＝θ1，ｓ＝２００の学習ステップの実行は許可される。
【００７６】
そこで、３番目にθ＝θ1，ｓ＝２００の学習ステップを実行する。同様にして、θ＝θ1，ｓ＝４００の学習ステップの実行は拒否される。また、ｓ＝１００の合計消費リソースは２００であり、θ＝θ2，ｓ＝２００の学習ステップを実行した場合のｓ＝２００の合計消費リソースは４００になる。よって、２００≦４００×１／１．４＝２８６であるため、θ＝θ2，ｓ＝２００の学習ステップの実行も拒否される。
【００７７】
そこで、４番目にθ＝θ3，ｓ＝１００の学習ステップを実行する。すると、ｓ＝１００の合計消費リソースは３００であり、θ＝θ2，ｓ＝２００の学習ステップを実行した場合のｓ＝２００の合計消費リソースは４００になる。よって、３００＞４００×１／１．４＝２８６であるため、θ＝θ2，ｓ＝２００の学習ステップの実行は許可される。そこで、５番目にθ＝θ2，ｓ＝２００の学習ステップを実行する。その後、θ＝θ1，ｓ＝４００の学習ステップの実行が許可され、６番目にこの学習ステップを実行する。
【００７８】
このように、学習ステップを進行する過程で、小さいサンプルサイズから大きいサンプルサイズに向かってハイパーパラメータ値が段階的に絞り込まれる形状が維持される。このために、試行済みの最大のサンプルサイズを大きくすることと、試行済みのハイパーパラメータ値を増やすことが、学習ステップを進行する過程で混ぜて実行される。
【００７９】
なお、対象サンプルサイズより小さいサンプルサイズが複数存在する場合、第２の実施の形態では、それら複数のサンプルサイズの全てを要比較サンプルサイズとする。複数の要比較サンプルサイズの全てについて、各要比較サンプルサイズの合計消費リソースが閾値を超える場合、対象サンプルサイズの試行が許可される。一方、複数の要比較サンプルサイズの少なくとも１つについて、当該要比較サンプルの合計消費リソースが閾値以下である場合、対象サンプルサイズの試行が拒否される。
【００８０】
ただし、対象サンプルサイズより小さいサンプルサイズの一部のみを要比較サンプルサイズとしてもよい。例えば、対象サンプルサイズより一段階小さいサンプルサイズのみを要比較サンプルサイズとしてもよい。また、ｓ＝１００，２００，４００など、小さい方から所定個のサンプルサイズを要比較サンプルサイズから除外してもよい。また、サンプルサイズが十分に小さいうちは測定される予測性能の精度が低く予測性能の上昇曲線の推定が難しいことから、新規に試行するハイパーパラメータ値については小さい方から所定個のサンプルサイズを連続で実行することがある。小さい方から所定個のサンプルサイズの連続実行はウォームアップと言うことがあり、１回の学習ステップとしてまとめて実行される。その場合、ウォームアップ区間の最後のサンプルサイズを要比較サンプルサイズとし、それより小さいサンプルサイズを要比較サンプルサイズから除外してもよい。
【００８１】
また、第２の実施の形態では１つの要比較サンプルサイズの合計消費リソースと対象サンプルサイズに応じた閾値とを比較している。これに対し、複数の要比較サンプルサイズの合計消費リソースを合算した合算値と対象サンプルサイズに応じた閾値とを比較してもよい。例えば、対象サンプルサイズより小さい全てのサンプルサイズの合計消費リソースを合算した合算値と対象サンプルサイズに応じた閾値とを比較してもよい。その場合、各サンプルサイズのリソース係数を合算値用に適切に設定しておくことが好ましい。
【００８２】
次に、好ましいリソース係数について説明する。
図７は、リソース係数テーブルの例を示す図である。
ここでは、まずシンプルなリソース係数の設定方法を示すリソース係数テーブル１３１ａ，１３１ｂを説明し、その後に好ましいリソース係数の設定方法を示すリソース係数テーブル１３１を説明する。リソース係数テーブル１３１，１３１ａ，１３１ｂは同じ構造を有しており、複数のサンプルサイズと複数のリソース係数とを対応付ける。図７では、リソース係数テーブル１３１，１３１ａ，１３１ｂはサンプルサイズに対応する試行回数比を含んでいる。試行回数比は、試行されたハイパーパラメータ値の数である。ただし、試行回数比はリソース係数の意味の理解を容易にするために記載された情報であり、機械学習装置１００が使用するリソース係数テーブルに含まれていなくてもよい。
【００８３】
リソース係数テーブル１３１ａは、全てのサンプルサイズに対応するリソース係数を１に統一している。すなわち、サンプルサイズｓ＝１００，２００，４００，８００，１６００に対して１：１：１：１：１のリソース係数を対応付けている。この場合、サンプルサイズｓ＝１００，２００，４００，８００，１６００の試行回数比は１６：８：４：２：１となる。すなわち、あるサンプルサイズを２回試行する毎に、１段階大きいサンプルサイズを１回試行することが許可される。サンプルサイズの増加倍率がｎ倍である場合、試行回数の減少倍率は１／ｎ倍になる。リソース係数テーブル１３１ａの設定方法は、小さいサンプルサイズの試行を重視するものである。
【００８４】
リソース係数テーブル１３１ｂは、サンプルサイズの比とリソース係数の比を同一に設定している。すなわち、サンプルサイズｓ＝１００，２００，４００，８００，１６００に対して１：２：４：８：１６のリソース係数を対応付けている。この場合、サンプルサイズｓ＝１００，２００，４００，８００，１６００の試行回数比は１：１：１：１：１となる。よって、１つのハイパーパラメータ値を選択すると、選択したハイパーパラメータ値のサンプルサイズを連続で大きくしていくことが許可され、合計消費リソースに基づくサンプルサイズの制限（リソース制約）が実質的に機能しない。リソース係数テーブル１３１ｂの設定方法は、リソース係数の比の上限を示唆している。
【００８５】
リソース係数テーブル１３１は、リソース係数の比をリソース係数テーブル１３１ａとリソース係数テーブル１３１ｂの中間に設定している（ただし、ｓ＝２００を除く）。リソース係数テーブル１３１のリソース係数は、次の文献に記載された方法によって算出することができる。Lisha Li, Kevin Jamieson, Giulia DeSalvo, Afshin Rostamizadeh and Ameet Talwalkar, "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization", arXiv:1603.06560v3, 2016-11-23.
この方法では、サンプルサイズがＮ段階存在するとき、小さい方からｍ番目のリソース係数をＮ／Ｎ＋Ｎ／（Ｎ−１）＋…＋Ｎ／（Ｎ−ｍ＋１）と算出する。Ｎ＝５と仮定すると、ｓ＝１００のリソース係数は５／５＝１である。ｓ＝２００のリソース係数は５／５＋５／４＝２．２５である。ｓ＝４００のリソース係数は５／５＋５／４＋５／３＝３．９２である。ｓ＝８００のリソース係数は５／５＋５／４＋５／３＋５／２＝６．４２である。ｓ＝１６００のリソース係数は５／５＋５／４＋５／３＋５／２＋５／１＝１１．４２である。この場合、サンプルサイズｓ＝１００，２００，４００，８００，１６００の試行回数比は３．５３：３．８３：３．１４：２．３５：１．６９となる。
【００８６】
次に、機械学習装置１００の機能について説明する。
図８は、機械学習装置の機能例を示すブロック図である。
機械学習装置１００は、データ記憶部１２１、探索履歴記憶部１２２およびリソース係数記憶部１２３を有する。また、機械学習装置１００は、制御部１２４、学習部１２５、既存ハイパーパラメータ値選択部１２６、改善速度推定部１２７および新規ハイパーパラメータ値選択部１２８を有する。データ記憶部１２１、探索履歴記憶部１２２およびリソース係数記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。制御部１２４、学習部１２５、既存ハイパーパラメータ値選択部１２６、改善速度推定部１２７および新規ハイパーパラメータ値選択部１２８は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００８７】
データ記憶部１２１は、機械学習に使用できるレコードの母集合であるデータセットを記憶する。データセットは、それぞれが目的変数の値と１以上の説明変数の値とを含むレコードの集合である。データ記憶部１２１に記憶されたデータは、機械学習装置１００または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置１００または他の情報処理装置に対してユーザが入力したものでもよい。
【００８８】
探索履歴記憶部１２２は、データ記憶部１２１に記憶されたデータセットに対するハイパーパラメータ探索の途中経過を示す探索履歴を記憶する。探索履歴は、試行したハイパーパラメータ値とサンプルサイズの組に対して、測定された予測性能（予測性能の実績値）および測定された実行時間（実行時間の実績値）を対応付ける。リソース係数記憶部１２３は、前述のリソース係数テーブル１３１を記憶する。リソース係数テーブル１３１は、例えば、ハイパーパラメータ探索の開始前にユーザによって入力される。
【００８９】
制御部１２４は、機械学習を制御する。制御部１２４は、機械学習の開始時に、データセットとハイパーパラメータの探索範囲と制限時間の指定を受け付ける。データセットはデータ記憶部１２１に格納される。ハイパーパラメータの探索範囲は、ハイパーパラメータに含まれるハイパーパラメータ要素とその取り得る値を示し、多次元のハイパーパラメータ空間を示している。制御部１２４は、指定されたデータセットに対する機械学習を開始してから、指定された制限時間が経過すると、強制的に機械学習を打ち切る。
【００９０】
機械学習の中では、指定されたデータセットに適したハイパーパラメータ値が探索される。制御部１２４は、既存ハイパーパラメータ値選択部１２６および新規ハイパーパラメータ値選択部１２８を利用して次に試行するハイパーパラメータ値を決定し、そのハイパーパラメータ値にとって次に試行すべきサンプルサイズを特定する。制御部１２４は、ハイパーパラメータ値とサンプルサイズを学習部１２５に指定して１回の学習ステップを学習部１２５に実行させる。制御部１２４は、その学習ステップで生成されたモデルと測定された予測性能と測定された実行時間を学習部１２５から取得し、探索履歴記憶部１２２に記憶された探索履歴に予測性能と実行時間を記録する。
【００９１】
制御部１２４は、以上の手順を経過時間が制限時間を超えるまで繰り返す。経過時間が制限時間を超えると、制御部１２４は、それまでに生成されたモデルのうち最大の予測性能をもつモデルを出力する。また、制御部１２４は、そのモデルの生成に用いられたハイパーパラメータ値とそのモデルの予測性能を併せて出力する。出力情報は、機械学習装置１００のＨＤＤ１０３に格納してもよい。また、出力情報は、ディスプレイ１１１に表示するなど、機械学習装置１００が有する出力デバイスから出力してもよい。また、出力情報は、ネットワーク１１４を介して他の情報処理装置に送信してもよい。
【００９２】
学習部１２５は、制御部１２４からハイパーパラメータ値とサンプルサイズの指定を受け付け、データ記憶部１２１に記憶されたデータセットを用いて１回の学習ステップを実行する。通常、学習部１２５は１回に１つのハイパーパラメータ値と１つのサンプルサイズの指定を受け付ける。ただし、ウォームアップ区間については１回に複数のサンプルサイズの指定を受け付けることがある。その場合、学習部１２５は、指定されたハイパーパラメータ値について複数のサンプルサイズの試行を連続で実行する。
【００９３】
１回の学習ステップでは、学習部１２５は、指定されたサンプルサイズに相当する数のレコード（例えば、ｓ＝１００の場合は１００個のレコード）を訓練データとしてデータセットの中から抽出する。また、学習部１２５は、サンプルサイズに応じた適切な数のレコード（例えば、サンプルサイズの半分の数のレコード）をテストデータとしてデータセットの中から抽出する。訓練データとテストデータの抽出は、例えば、ランダムに行う。
【００９４】
学習部１２５は、抽出した訓練データと指定されたハイパーパラメータ値を用いてモデルを生成する。学習部１２５は、抽出したテストデータと生成したモデルを用いて当該モデルの予測性能を測定する。また、学習部１２５は、モデルの生成と予測性能の測定に要した実行時間を測定する（例えば、実行時間の単位は「秒」）。学習部１２５は、生成したモデルと測定した予測性能と測定した実行時間を制御部１２４に出力する。
【００９５】
ここで、学習部１２５が実行する１回の学習ステップは、例えば、図３のようにパイプラインを形成している。モデルの生成に用いる機械学習アルゴリズムは、ハイパーパラメータ値の中で指定される。訓練データおよびテストデータに対する前処理の方法は、ハイパーパラメータ値の中で指定される。学習部１２５は、訓練データおよびテストデータの抽出の偶然性の影響を低減するため、１回の学習ステップの中で所定回数（例えば、１０回）のモデル生成を繰り返してもよい。その場合、学習部１２５は、例えば、生成された所定数のモデルのうち最も予測性能が高いモデルと、所定数のモデルの予測性能の平均と、所定回数のモデル生成全体を通した実行時間とを出力する。
【００９６】
既存ハイパーパラメータ値選択部１２６は、制御部１２４からハイパーパラメータ値の問い合わせを受け付ける。ハイパーパラメータ値の問い合わせには、探索履歴記憶部１２２に記憶された最新の探索履歴が付加されている。既存ハイパーパラメータ値選択部１２６は、１回以上試行したことのあるハイパーパラメータ値（既存ハイパーパラメータ値）の中からサンプルサイズを１段階大きくすることが許可されるハイパーパラメータ値を探す。既存ハイパーパラメータ値選択部１２６は、該当するハイパーパラメータ値が存在する場合、１つのハイパーパラメータ値を選択して制御部１２４に通知する。一方、既存ハイパーパラメータ値選択部１２６は、該当するハイパーパラメータ値が存在しない場合、選択可能なハイパーパラメータ値が無い旨を制御部１２４に通知する。
【００９７】
ハイパーパラメータ値の選択にあたって、既存ハイパーパラメータ値選択部１２６は、既存ハイパーパラメータ値それぞれの予測性能改善速度を改善速度推定部１２７に推定させる。予測性能改善速度が大きいハイパーパラメータ値ほど先に試行する価値が高い。予測性能改善速度については後述する。既存ハイパーパラメータ値選択部１２６は、リソース係数記憶部１２３に記憶されたリソース係数テーブル１３１を参照して、予測性能改善速度が大きいハイパーパラメータ値のサンプルサイズを１段階大きくすることが、前述のリソース制約を満たすか判定する。リソース制約を満たす場合、既存ハイパーパラメータ値選択部１２６は、当該ハイパーパラメータ値を選択して通知することになる。
【００９８】
改善速度推定部１２７は、既存ハイパーパラメータ値選択部１２６からの問い合わせに応じて、既存ハイパーパラメータ値それぞれの予測性能改善速度を算出する。予測性能改善速度の問い合わせには、最新の探索履歴が付加されている。予測性能改善速度は、例えば、１段階大きなサンプルサイズ（未試行のサンプルサイズのうち最小のもの）を試行した場合における、単位実行時間当たりの予測性能改善量である。予測性能改善速度は、以下の予測性能改善量の推定値を実行時間の推定値で割ったものである。
【００９９】
ある既存ハイパーパラメータ値の次のサンプルサイズの実行時間は、当該既存ハイパーパラメータ値の試行済みのサンプルサイズの実行時間から推定できる。例えば、改善速度推定部１２７は、サンプルサイズｓと実行時間ｔとの間の関係を示す推定式ｔ＝β1＋α1×ｓを算出する。係数α1，β1の値は線形回帰分析により決定される。改善速度推定部１２７は、この推定式に次のサンプルサイズを代入することで実行時間を推定する。
【０１００】
ある既存ハイパーパラメータ値の予測性能改善量は、当該既存ハイパーパラメータ値の次のサンプルサイズの予測性能から達成予測性能を引いた差である。ただし、次のサンプルサイズの予測性能から達成予測性能を引いた値が負になる場合には、予測性能改善量を０とする。達成予測性能は、全てのハイパーパラメータ値および全てのサンプルサイズを通じて、現在までに達成されている最高の予測性能である。当該既存ハイパーパラメータ値の次のサンプルサイズの予測性能は、当該既存ハイパーパラメータ値の試行済みのサンプルサイズの予測性能から推定できる。例えば、改善速度推定部１２７は、サンプルサイズｓと予測性能ｆとの間の関係を示す推定式ｆ＝β2−α2×ｓ-γ2を算出する。係数α2，β2，γ2の値は非線形回帰分析により決定される。
【０１０１】
改善速度推定部１２７は、この推定式に次のサンプルサイズを代入することで予測性能の期待値を算出する。ただし、予測性能改善量の算出に用いる予測性能の推定値は、実際の予測性能が期待値よりも上振れする可能性があることを考慮して、期待値よりも大きな値であることが好ましい。推定よりも実際の予測性能が高いハイパーパラメータ値を見過ごしてしまうリスクを低減するためである。例えば、予測性能の推定値として、９５％信頼区間の上限値であるＵＣＢ（Upper Confidence Bound）を用いることが考えられる。９５％予測区間は、測定される予測性能のばらつきを示すものであり、今後測定される予測性能が９５％の確率でこの区間に収まると予想されることを示す。９５％信頼区間は、非線形回帰分析によって推定式を算出する際に併せて算出される。
【０１０２】
ただし、ＵＣＢに代えて、改善速度推定部１２７は、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える確率（ＰＩ：Probability of Improvement）を算出してもよい。改善速度推定部１２７は、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える期待値（ＥＩ：Expected Improvement）を算出してもよい。
【０１０３】
新規ハイパーパラメータ値選択部１２８は、制御部１２４からハイパーパラメータ値の問い合わせを受け付ける。ハイパーパラメータ値の問い合わせには、探索履歴記憶部１２２に記憶された最新の探索履歴が付加されている。制御部１２４から新規ハイパーパラメータ値選択部１２８への問い合わせは、既存ハイパーパラメータ値選択部１２６で適切な既存ハイパーパラメータ値が選択されなかった場合に行われる。新規ハイパーパラメータ値選択部１２８は、まだ１回も試行したことのないハイパーパラメータ値（新規ハイパーパラメータ値）の中から１つを選択して制御部１２４に通知する。
【０１０４】
新規ハイパーパラメータ値の選択は、様々な方法で行うことが可能である。例えば、ハイパーパラメータ空間の中からランダムにハイパーパラメータ値を１つ選択する方法が考えられる。また、例えば、ハイパーパラメータ空間の中で既存ハイパーパラメータ値がグリッド状に並ぶように、周辺の既存ハイパーパラメータ値から一定距離だけ離れたハイパーパラメータ値を１つ選択する方法が考えられる。また、近い連続量ハイパーパラメータ要素値からは近い予測性能をもつモデルが生成されるという性質を利用して、選択するハイパーパラメータ値を絞り込む方法も考えられる。
【０１０５】
図９は、探索履歴テーブルの例を示す図である。
探索履歴テーブル１３２は、探索履歴記憶部１２２に格納される。探索履歴テーブル１３２は、ハイパーパラメータ値、サンプルサイズ、予測性能および実行時間の項目を含む。ハイパーパラメータ値の項目には、試行したハイパーパラメータ値が登録される。サンプルサイズの項目には、試行したサンプルサイズが登録される。予測性能の項目には、１つのハイパーパラメータ値と１つのサンプルサイズの組に対応する予測性能の実績値が登録される。実行時間の項目には、１つのハイパーパラメータ値と１つのサンプルサイズの組に対応する実行時間の実績値が登録される。
【０１０６】
次に、機械学習装置１００の処理手順について説明する。
図１０は、機械学習の手順例を示すフローチャートである。
（Ｓ１０）制御部１２４は、データセットＤと探索範囲Θと制限時間Ｔを取得する。
【０１０７】
（Ｓ１１）制御部１２４は、探索履歴Ｓ＝φ（空集合）に初期化する。よって、探索履歴テーブル１３２から全てのレコードが削除される。
（Ｓ１２）制御部１２４は、既存ハイパーパラメータ値選択部１２６にハイパーパラメータ値を問い合わせる。このとき、制御部１２４は探索履歴Ｓを既存ハイパーパラメータ値選択部１２６に渡す。既存ハイパーパラメータ値選択部１２６の処理手順は後述する。
【０１０８】
（Ｓ１３）制御部１２４は、ステップＳ１２で既存ハイパーパラメータ値選択部１２６によってハイパーパラメータ値が選択されたか、すなわち、サンプルサイズを１段階大きくすることが可能な既存ハイパーパラメータ値が存在するか判断する。ハイパーパラメータ値が選択された場合はステップＳ１４に処理が進み、ハイパーパラメータ値が選択されなかった場合はステップＳ１５に処理が進む。
【０１０９】
（Ｓ１４）制御部１２４は、既存ハイパーパラメータ値選択部１２６が選択したハイパーパラメータ値θを含むレコードを探索履歴Ｓから検索し、試行済みのサンプルサイズのうち最大のサンプルサイズを判定する。制御部１２４は、判定した最大のサンプルサイズより１段階大きいサンプルサイズｓを選択する。そして、ステップＳ１７に処理が進む。
【０１１０】
（Ｓ１５）制御部１２４は、新規ハイパーパラメータ値選択部１２８にハイパーパラメータ値を問い合わせる。このとき、制御部１２４は探索履歴Ｓを新規ハイパーパラメータ値選択部１２８に渡す。新規ハイパーパラメータ値選択部１２８は、探索範囲Θの中から、探索履歴Ｓに含まれていない新規ハイパーパラメータ値を１つ選択する。
【０１１１】
（Ｓ１６）制御部１２４は、小さい方から所定個のサンプルサイズｓを選択する。ウォームアップが存在しない場合、サンプルサイズｓは最も小さい１個のサンプルサイズである。ウォームアップが存在する場合、サンプルサイズｓは小さい方から連続する２個以上のサンプルサイズ（例えば、４個のサンプルサイズ）である。
【０１１２】
（Ｓ１７）制御部１２４は、ハイパーパラメータ値θとサンプルサイズｓを学習部１２５に対して指定する。ハイパーパラメータ値θは、既存ハイパーパラメータ値選択部１２６または新規ハイパーパラメータ値選択部１２８が選択したものである。サンプルサイズｓは、ステップＳ１４またはステップＳ１６で制御部１２４が選択したものである。
【０１１３】
学習部１２５は、指定されたハイパーパラメータ値とサンプルサイズの組（θ，ｓ）に対応するモデルを生成し、生成したモデルの予測性能ｆ（θ，ｓ）を測定する。また、学習部１２５は、実行時間ｔ（θ，ｓ）を測定する。このとき、学習部１２５は、サンプルサイズｓの訓練データをデータセットＤの中から抽出し、訓練データと重複しないテストデータをデータセットＤの中から抽出する。学習部１２５は、訓練データとハイパーパラメータ値θを用いてモデルを生成する。ハイパーパラメータ値θは前処理方法や機械学習アルゴリズムを指定していることがある。学習部１２５は、生成したモデルとテストデータを用いて予測性能ｆ（θ，ｓ）を測定する。実行時間ｔ（θ，ｓ）は、データ抽出とモデル生成と予測性能評価の全体に要した時間である。
【０１１４】
（Ｓ１８）制御部１２４は、ハイパーパラメータ値θ、サンプルサイズｓ、予測性能ｆ（θ，ｓ）および実行時間ｔ（θ，ｓ）を含むレコードを探索履歴Ｓに追加する。
（Ｓ１９）制御部１２４は、機械学習を開始してからの経過時間を確認し、経過時間が制限時間Ｔを超えたか判断する。経過時間が制限時間Ｔを超えた場合はステップＳ２０に処理が進み、経過時間が制限時間Ｔ以下である場合はステップＳ１２に処理が進む。
【０１１５】
（Ｓ２０）制御部１２４は、ステップＳ１７で生成された全てのモデルの中から予測性能が最大のモデルを選択する。また、制御部１２４は、選択したモデルの生成に用いたハイパーパラメータ値と選択したモデルの予測性能を探索履歴Ｓから抽出する。制御部１２４は、選択したモデルとハイパーパラメータ値と予測性能を出力する。
【０１１６】
図１１は、ハイパーパラメータ値選択の手順例を示すフローチャートである。
ハイパーパラメータ値選択は、上記のステップＳ１２で実行される。
（Ｓ３０）既存ハイパーパラメータ値選択部１２６は、探索履歴Ｓから、各ハイパーパラメータ値について試行済みのサンプルサイズのうち最大のサンプルサイズを判定する。既存ハイパーパラメータ値選択部１２６は、最大のサンプルサイズがまだ上限に達していないハイパーパラメータ値θ、すなわち、サンプルサイズを１段階大きくする余地があるハイパーパラメータ値θを探索履歴Ｓから抽出する。
【０１１７】
（Ｓ３１）改善速度推定部１２７は、ステップＳ２０で抽出されたハイパーパラメータ値θそれぞれに対して、予測性能改善量ｇ（θ）と実行時間ｔ（θ）を推定する。予測性能改善量ｇ（θ）は、１段階大きなサンプルサイズの予測性能の推定値と現在の達成予測性能との差である。実行時間ｔ（θ）は、１段階大きなサンプルサイズの実行時間の推定値である。改善速度推定部１２７は、探索履歴Ｓからハイパーパラメータ値θの予測性能の実績値を抽出し、抽出した予測性能の実績値を用いて非線形回帰分析を行うことで、予測性能改善量ｇ（θ）に用いる予測性能の推定値を算出する。また、改善速度推定部１２７は、探索履歴Ｓからハイパーパラメータ値θの実行時間の実績値を抽出し、抽出した実行時間の実績値を用いて線形回帰分析を行うことで、実行時間ｔ（θ）を算出する。
【０１１８】
（Ｓ３２）改善速度推定部１２７は、ステップＳ２０で抽出されたハイパーパラメータ値θそれぞれに対して、予測性能改善速度ｖ（θ）を算出する。予測性能改善速度ｖ（θ）は、予測性能改善量ｇ（θ）を実行時間ｔ（θ）で割ったものである。
【０１１９】
（Ｓ３３）既存ハイパーパラメータ値選択部１２６は、集合ＨをステップＳ２０で抽出されたハイパーパラメータ値θの集合とし、サンプルサイズｚ＝∞に初期化する。
（Ｓ３４）既存ハイパーパラメータ値選択部１２６は、集合Ｈ＝φ（空集合）であるか判断する。集合Ｈが空集合である場合、改善速度推定部１２７は選択すべきハイパーパラメータ値が存在しないと判定し、ハイパーパラメータ値選択が終了する。集合Ｈが空集合でない場合、ステップＳ３５に処理が進む。
【０１２０】
（Ｓ３５）既存ハイパーパラメータ値選択部１２６は、集合Ｈの中から、ステップＳ３２で算出された予測性能改善速度ｖ（θ）が最大のハイパーパラメータ値θを抽出してＨから削除する。
【０１２１】
（Ｓ３６）既存ハイパーパラメータ値選択部１２６は、ステップＳ３５で抽出したハイパーパラメータ値θを含むレコードを探索履歴Ｓから検索し、試行済みのサンプルサイズのうち最大のサンプルサイズを判定する。既存ハイパーパラメータ値選択部１２６は、判定した最大のサンプルサイズより１段階大きいサンプルサイズｓを選択する。
【０１２２】
（Ｓ３７）既存ハイパーパラメータ値選択部１２６は、ステップＳ３６で選択したサンプルサイズｓがサンプルサイズｚより小さいか判断する。ｓ＜ｚである場合はステップＳ３８に処理が進み、ｓ≧ｚである場合はステップＳ３４に処理が進む。
【０１２３】
（Ｓ３８）既存ハイパーパラメータ値選択部１２６は、ｚ＝ｓに更新する。
（Ｓ３９）既存ハイパーパラメータ値選択部１２６は、探索履歴Ｓを参照して、サンプルサイズｓがリソース制約を満たすか判断する。リソース制約の判定方法は後述する。サンプルサイズｓがリソース制約を満たす場合はステップＳ４０に処理が進み、リソース制約を満たさない場合はステップＳ３４に処理が進む。
【０１２４】
（Ｓ４０）既存ハイパーパラメータ値選択部１２６は、最後にステップＳ３５で抽出したハイパーパラメータ値θを選択して制御部１２４に出力する。
ここで、予測性能改善速度が最大のハイパーパラメータ値θm1が、リソース制約を満たさないために選択されない可能性がある。その場合、上記のステップＳ３７では、予測性能改善速度が次に大きいハイパーパラメータ値θm2が、ハイパーパラメータ値θm1よりも大きいまたは同じサンプルサイズを実行しようとしている場合には、ハイパーパラメータ値θm2も選択しないこととしている。これは、θm2を先に試行すると、リソース制約のために予測性能改善速度が最大のハイパーパラメータ値θm1のこのサンプルサイズでの試行が遅れてしまう可能性があるためである。図１１のフローチャートでは、予測性能改善速度が大きいハイパーパラメータ値ができる限り優先的に選択されるようにしている。
【０１２５】
図１２は、リソース制約判定の手順例を示すフローチャートである。
リソース制約判定は、上記のステップＳ３９で実行される。
（Ｓ５０）既存ハイパーパラメータ値選択部１２６は、ハイパーパラメータ値θとサンプルサイズｓiの組（θ，ｓi）を用いた学習ステップの消費リソースｒ+を推定する。ハイパーパラメータ値θは、上記のステップＳ３５で抽出したものである。サンプルサイズｓiは、上記のステップＳ３６で選択したものであり、対象サンプルサイズである。
【０１２６】
リソースの指標がサンプルサイズである場合、消費リソースｒ+はサンプルサイズｓiとなる。リソースの指標が実行時間である場合、消費リソースｒ+は実行時間ｔ（θ，ｓi）となる。実行時間ｔ（θ，ｓi）は上記のステップＳ３１で推定されている。リソースの指標がイテレーション数である場合、消費リソースｒ+は予定イテレーション数となる。なお、リソースの指標がイテレーション数である場合、予測性能の上昇曲線の横軸としてサンプルサイズに代えてイテレーション数が用いられる。よって、消費リソースｒ+としてのイテレーション数は、サンプルサイズの場合と同様の方法で特定される。
【０１２７】
（Ｓ５１）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiを含むレコードを探索履歴Ｓから検索し、サンプルサイズｓiについて既に消費したリソースを合計する。リソースの指標がサンプルサイズである場合、合計はサンプルサイズｓi×レコード件数となる。リソースの指標が実行時間である場合、合計は検索されたレコードに含まれる実行時間の実績値の和となる。リソースの指標がイテレーション数である場合、合計はサンプルサイズｓiに相当するイテレーション数×レコード件数となる。既存ハイパーパラメータ値選択部１２６は、上記の合計にステップＳ５０の消費リソースｒ+を加えて、合計消費リソースｒ（ｓi）を算出する。
【０１２８】
（Ｓ５２）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiより小さい要比較サンプルサイズを全て選択したか判断する。例えば、要比較サンプルサイズは、サンプルサイズｓiより小さい全てのサンプルサイズである。また、例えば、要比較サンプルサイズは、サンプルサイズｓiより１段階小さいサンプルサイズのみである。また、例えば、要比較サンプルサイズは、比較的小さい所定のサンプルサイズのみである。また、例えば、要比較サンプルサイズは、ウォームアップ区間の最後からｓiの１段階前までの各サンプルサイズである。要比較サンプルサイズの基準は、予めユーザが指定してもよい。全ての要比較サンプルサイズを選択した場合はステップＳ５８に処理が進み、未選択の要比較サンプルサイズがある場合はステップＳ５３に処理が進む。
【０１２９】
（Ｓ５３）既存ハイパーパラメータ値選択部１２６は、要比較サンプルサイズのうちの１つ（サンプルサイズｓj）を選択する。
（Ｓ５４）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓjを含むレコードを探索履歴Ｓから検索し、サンプルサイズｓjについて既に消費したリソースを合計した合計消費リソースｒ（ｓj）を算出する。リソースの指標がサンプルサイズである場合、ｒ（ｓj）はサンプルサイズｓj×レコード件数となる。リソースの指標が実行時間である場合、ｒ（ｓj）は検索されたレコードに含まれる実行時間の実績値の和となる。リソースの指標がイテレーション数である場合、ｒ（ｓj）はサンプルサイズｓjに相当するイテレーション数×レコード件数となる。
【０１３０】
なお、機械学習では、予測性能の上昇曲線の精度を向上させるため、同一のハイパーパラメータ値とサンプルサイズの組について複数回の学習ステップを実行することがある。その場合、合計消費リソースｒ（ｓi），ｒ（ｓj）の算出に用いるリソースは、それら複数回の学習ステップで消費されたリソースの合計でもよいし平均でもよい。
【０１３１】
（Ｓ５５）既存ハイパーパラメータ値選択部１２６は、リソース係数テーブル１３１から、サンプルサイズｓiに対応するリソース係数ｑ（ｓi）とサンプルサイズｓjに対応するリソース係数ｑ（ｓj）を検索する。
【０１３２】
（Ｓ５６）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiに応じた閾値としてｒ（ｓi）×ｑ（ｓj）／ｑ（ｓi）を算出する。既存ハイパーパラメータ値選択部１２６は、合計消費リソースｒ（ｓj）と閾値とを比較し、ｒ（ｓj）が閾値より大きいか判断する。ｒ（ｓj）が閾値より大きい場合はステップＳ５２に処理が進み、ｒ（ｓj）が閾値以下である場合はステップＳ５７に処理が進む。
【０１３３】
（Ｓ５７）既存ハイパーパラメータ値選択部１２６は、リソース制約を満たさないと判定する。少なくとも１つの要比較サンプルサイズについて、合計消費リソースが対象サンプルサイズに応じた閾値以下である場合、リソース制約を満たさないことになる。
【０１３４】
（Ｓ５８）既存ハイパーパラメータ値選択部１２６は、リソース制約を満たすと判定する。全ての要比較サンプルサイズについて、合計消費リソースが対象サンプルサイズに応じた閾値より大きい場合、リソース制約を満たすことになる。
【０１３５】
第２の実施の形態の機械学習装置１００によれば、指定されたデータセットに対して適切なハイパーパラメータ値が自動的に探索される。よって、ユーザが手動でハイパーパラメータ値を調整しなくてもよく、予測性能の高いモデルが生成されやすくなる。また、各ハイパーパラメータ値について訓練データのサンプルサイズが段階的に大きくなり、その過程で予測性能の上昇曲線が推定される。よって、最初から大きなサンプルサイズを試行する場合よりも短時間で、予測性能の上限が高いか否か判断することができ、予測性能の上限が低いハイパーパラメータ値の試行を早期に停止することが可能となる。
【０１３６】
また、各ハイパーパラメータ値について１段階大きいサンプルサイズを試行する場合の予測性能改善速度が推定され、予測性能改善速度が大きいハイパーパラメータ値が優先的に選択される。よって、できる限り早くモデルの予測性能を向上させることができ、時間的制約のもとで効率的にハイパーパラメータ探索を行える。また、ハイパーパラメータに複数のカテゴリカルハイパーパラメータ要素が含まれており、近いハイパーパラメータ値からは近い予測性能のモデルが生成されるという性質が成立しない場合であっても、効率的に予測性能の高いハイパーパラメータ値を探索できる。
【０１３７】
また、小さいサンプルサイズの合計消費リソースと大きいサンプルサイズの合計消費リソースが所定の比になるよう、ハイパーパラメータ値の試行順序が制御される。よって、試行済みのハイパーパラメータ値を増やすこととサンプルサイズを大きくすることのバランスを図ることができる。その結果、小さいサンプルサイズの試行を優先し過ぎることによる絞り込みの失敗リスクや、大きいサンプルサイズの試行を優先し過ぎることによる無駄な試行発生のリスクを低減することができる。
【０１３８】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第２の実施の形態との違いを中心に説明し、第２の実施の形態と同様の内容については説明を省略することがある。
【０１３９】
第２の実施の形態では、既存ハイパーパラメータ値の予測性能が上限に近付いて予測性能改善速度が十分に小さくなった場合であっても、その既存ハイパーパラメータ値が選択される可能性があった。これに対して第３の実施の形態では、予測性能改善速度が閾値未満になった既存ハイパーパラメータ値の試行を打ち切るようにする。
【０１４０】
第３の実施の形態の機械学習装置は、図２，７〜９に示した第２の実施の形態の機械学習装置１００の構成と同様の構成によって実現することができる。以下では、図２，７〜９と同様の符号を用いて第３の実施の形態を説明する。
【０１４１】
機械学習の全体の処理手順は、図１０に示した第２の実施の形態の処理手順と同様である。以下では、図１１に示した第２の実施の形態のハイパーパラメータ値選択に対応する第３の実施の形態の処理手順と、図１２に示した第２の実施の形態のリソース制約判定に対応する第３の実施の形態の処理手順を説明する。
【０１４２】
図１３は、ハイパーパラメータ値選択の他の手順例を示すフローチャートである。
（Ｓ６０）既存ハイパーパラメータ値選択部１２６は、探索履歴Ｓから、各ハイパーパラメータ値について試行済みのサンプルサイズのうち最大のサンプルサイズを判定する。既存ハイパーパラメータ値選択部１２６は、最大のサンプルサイズがまだ上限に達していないハイパーパラメータ値θを探索履歴Ｓから抽出する。
【０１４３】
（Ｓ６１）改善速度推定部１２７は、ステップＳ６０で抽出されたハイパーパラメータ値θそれぞれに対して、予測性能改善量ｇ（θ）と実行時間ｔ（θ）を推定する。
（Ｓ６２）改善速度推定部１２７は、ステップＳ６０で抽出されたハイパーパラメータ値θそれぞれに対して、予測性能改善速度ｖ（θ）を算出する。
【０１４４】
（Ｓ６３）既存ハイパーパラメータ値選択部１２６は、集合ＨをステップＳ６０で抽出されたハイパーパラメータ値θの集合とし、サンプルサイズｚ＝∞に初期化する。
（Ｓ６４）既存ハイパーパラメータ値選択部１２６は、集合Ｈ＝φ（空集合）であるか判断する。集合Ｈが空集合である場合、改善速度推定部１２７は選択すべきハイパーパラメータ値が存在しないと判定し、ハイパーパラメータ値選択が終了する。集合Ｈが空集合でない場合、ステップＳ６５に処理が進む。
【０１４５】
（Ｓ６５）既存ハイパーパラメータ値選択部１２６は、集合Ｈの中から、ステップＳ６２で算出された予測性能改善速度ｖ（θ）が最大のハイパーパラメータ値θを抽出してＨから削除する。
【０１４６】
（Ｓ６６）既存ハイパーパラメータ値選択部１２６は、ステップＳ６５で抽出したハイパーパラメータ値θの予測性能改善速度ｖ（θ）と閾値εとを比較する。閾値εは予め設定された固定値でもよいし、機械学習の開始時にユーザから指定されてもよい。例えば、閾値ε＝０．００１／３６００とする。これは、１時間当たりに予測性能が０．００１上昇する速度を表す。既存ハイパーパラメータ値選択部１２６は、予測性能改善速度ｖ（θ）が閾値ε未満であるか判断する。ｖ（θ）が閾値ε未満である場合、改善速度推定部１２７は選択すべきハイパーパラメータ値が存在しないと判定し、ハイパーパラメータ値選択が終了する。ｖ（θ）が閾値ε以上である場合、ステップＳ６７に処理が進む。
【０１４７】
（Ｓ６７）既存ハイパーパラメータ値選択部１２６は、ステップＳ６５で抽出したハイパーパラメータ値θを含むレコードを探索履歴Ｓから検索し、試行済みのサンプルサイズのうち最大のサンプルサイズを判定する。既存ハイパーパラメータ値選択部１２６は、判定した最大のサンプルサイズより１段階大きいサンプルサイズｓを選択する。
【０１４８】
（Ｓ６８）既存ハイパーパラメータ値選択部１２６は、ステップＳ６７で選択したサンプルサイズｓがサンプルサイズｚより小さいか判断する。ｓ＜ｚである場合はステップＳ６９に処理が進み、ｓ≧ｚである場合はステップＳ６４に処理が進む。
【０１４９】
（Ｓ６９）既存ハイパーパラメータ値選択部１２６は、ｚ＝ｓに更新する。
（Ｓ７０）既存ハイパーパラメータ値選択部１２６は、探索履歴Ｓを参照して、サンプルサイズｓがリソース制約を満たすか判断する。リソース制約の判定方法は後述する。サンプルサイズｓがリソース制約を満たす場合はステップＳ７１に処理が進み、リソース制約を満たさない場合はステップＳ６４に処理が進む。
【０１５０】
（Ｓ７１）既存ハイパーパラメータ値選択部１２６は、最後にステップＳ６５で抽出したハイパーパラメータ値θを選択して制御部１２４に出力する。
図１４は、リソース制約判定の他の手順例を示すフローチャートである。
【０１５１】
（Ｓ８０）既存ハイパーパラメータ値選択部１２６は、ハイパーパラメータ値θとサンプルサイズｓiの組（θ，ｓi）を用いた学習ステップの消費リソースｒ+を推定する。ハイパーパラメータ値θは、上記のステップＳ６５で抽出したものである。サンプルサイズｓiは、上記のステップＳ６７で選択したものであり、対象サンプルサイズである。
【０１５２】
（Ｓ８１）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiを含むレコードを探索履歴Ｓから検索し、サンプルサイズｓiについて既に消費したリソースを合計する。既存ハイパーパラメータ値選択部１２６は、上記の合計にステップＳ８０の消費リソースｒ+を加えて、合計消費リソースｒ（ｓi）を算出する。
【０１５３】
（Ｓ８２）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiより小さい比較可能サンプルサイズを全て選択したか判断する。例えば、比較可能サンプルサイズは、サンプルサイズｓiより小さい全てのサンプルサイズである。全ての比較可能サンプルサイズを選択した場合はステップＳ８８に処理が進み、未選択の比較可能サンプルサイズがある場合はステップＳ８３に処理が進む。
【０１５４】
（Ｓ８３）既存ハイパーパラメータ値選択部１２６は、比較可能サンプルサイズのうちの１つ（サンプルサイズｓj）を選択する。選択する比較可能サンプルサイズとしては、十分に小さいサンプルサイズが想定される。例えば、選択する比較可能サンプルサイズとして、最小のサンプルサイズ、小さい方から所定番目のサンプルサイズ、ウォームアップ区間の最後のサンプルサイズなどが考えられる。
【０１５５】
（Ｓ８４）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓjを含むレコードを探索履歴Ｓから検索し、サンプルサイズｓjについて既に消費したリソースを合計した合計消費リソースｒ（ｓj）を算出する。
【０１５６】
（Ｓ８５）既存ハイパーパラメータ値選択部１２６は、リソース係数テーブル１３１から、サンプルサイズｓiに対応するリソース係数ｑ（ｓi）とサンプルサイズｓjに対応するリソース係数ｑ（ｓj）を検索する。
【０１５７】
（Ｓ８６）既存ハイパーパラメータ値選択部１２６は、サンプルサイズｓiに応じた閾値としてｒ（ｓi）×ｑ（ｓj）／ｑ（ｓi）を算出する。既存ハイパーパラメータ値選択部１２６は、合計消費リソースｒ（ｓj）と閾値とを比較し、ｒ（ｓj）が閾値より大きいか判断する。ｒ（ｓj）が閾値より大きい場合はステップＳ８７に処理が進み、ｒ（ｓj）が閾値以下である場合はステップＳ８２に処理が進む。
【０１５８】
（Ｓ８７）既存ハイパーパラメータ値選択部１２６は、リソース制約を満たすと判定する。少なくとも１つの比較可能サンプルサイズについて、合計消費リソースが対象サンプルサイズに応じた閾値より大きい場合、リソース制約を満たすことになる。
【０１５９】
（Ｓ８８）既存ハイパーパラメータ値選択部１２６は、リソース制約を満たさないと判定する。全ての比較可能サンプルサイズについて、合計消費リソースが対象サンプルサイズに応じた閾値以下である場合、リソース制約を満たさないことになる。
【０１６０】
このように、第３の実施の形態では、少なくとも１つの比較可能サンプルサイズの合計消費リソースが閾値を超えていれば、リソース制約を満たすと判定される。これは、複数のハイパーパラメータ値についてサンプルサイズの増加が途中で打ち切られると、中盤のサンプルサイズの合計消費リソースが不足し、それより後のサンプルサイズに対応する閾値よりも大きくならない可能性があるためである。そこで、序盤のサンプルサイズの合計消費リソースと対象サンプルサイズの合計消費リソースとの比を重視している。
【０１６１】
第３の実施の形態の機械学習装置によれば、第２の実施の形態と同様の効果が得られる。第３の実施の形態では更に、予測性能増加速度が十分に小さくなったハイパーパラメータ値の試行が途中で打ち切られる。よって、ハイパーパラメータ探索を効率化できる。
【符号の説明】
【０１６２】
１０  探索装置
１１  記憶部
１２  処理部
１３  探索履歴
１４ａ，１４ｂ，１４ｃ，１４ｄ  学習処理
１５  合計リソース
１６  閾値
ｓ１，ｓ２  サンプルサイズ
θ１，θ２，θ３  ハイパーパラメータ値
【図１】
2019079214.tif 000003
【図２】
2019079214.tif 000004
【図３】
2019079214.tif 000005
【図４】
2019079214.tif 000006
【図５】
2019079214.tif 000007
【図６】
2019079214.tif 000008
【図７】
2019079214.tif 000009
【図８】
2019079214.tif 000010
【図９】
2019079214.tif 000011
【図１０】
2019079214.tif 000012
【図１１】
2019079214.tif 000013
【図１２】
2019079214.tif 000014
【図１３】
2019079214.tif 000015
【図１４】
2019079214.tif 000016