(57)【要約】【課題】キャッシュされたデータの再利用を促進させる。【解決手段】機械学習管理装置１０は、複数の第１モデルそれぞれの予測性能に基づいて、複数の第２訓練データを用いて複数のアルゴリズムでモデル探索することで生成される複数の第２モデルそれぞれを生成するか否かの判別に用いる指標値を、複数の第２モデルそれぞれについて算出する。次に機械学習管理装置１０は、第２訓練データを用いて生成された第２モデルのうち指標値が閾値以上となる第２モデルの数を、その第２訓練データをキャッシュする優先度とする。そして、機械学習管理装置１０は、第２訓練データを用いたモデル探索が実行されたとき、その第２訓練データの優先度に基づいてキャッシュするか否かを決定し、キャッシュすると決定した場合、その第２訓練データを記憶部１２に格納する。【選択図】図１
2017228086.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.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
予測性能を高めるためには、対象のデータに対して適切な機械学習のアルゴリズムを選択することも重要である。適切な機械学習のアルゴリズムを選択するために、例えば同じデータに対して機械学習アルゴリズムを変えながら何度もモデルの作成とモデルの評価とが繰り返し実行される。選択された機械学習アルゴリズムによりモデルの生成および評価を行う一連の処理を、以下モデル探索と呼ぶ。
【０００９】
モデル探索を繰り返すとき、過去に実施したモデル探索の過程で生成したデータを繰り返し使用する場合がある。そこでモデル探索時に生成したデータをキャッシュに格納しておくことで、データを再利用することができる。しかし、キャッシュの容量には制限があり、すべてのデータをキャッシュすることはできない。また、ＬＲＵ（Least Recently Used）のような一般的なキャッシュアルゴリズムでは機械学習におけるモデル探索の手順が考慮されておらず、機械学習時のデータの再利用が不十分である。
【００１０】
１つの側面では、本件は、キャッシュされたデータの再利用を促進させることを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、コンピュータに以下の処理を実行させる機械学習管理プログラムが提供される。機械学習管理プログラムに基づいてコンピュータは、まず、サンプリング率の異なる複数の訓練データのうちの一部の第１訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第１モデルを生成する。次にコンピュータは、複数の第１モデルそれぞれの予測性能に基づいて、複数の訓練データのうちの第１訓練データ以外の複数の第２訓練データを用いて複数のアルゴリズムでモデル探索することで生成される複数の第２モデルそれぞれを生成するか否かの判別に用いる指標値を、複数の第２モデルそれぞれについて算出する。次にコンピュータは、複数の第２訓練データそれぞれを対象とし、対象の第２訓練データを用いて生成される第２モデルのうち指標値が閾値以上となる第２モデルの数を、対象の第２訓練データをキャッシュする優先度とする。次にコンピュータは、キャッシュされていない新規の第２訓練データを用いたモデル探索が実行されたとき、新規の第２訓練データの優先度に基づいて、新規の第２訓練データをキャッシュするか否かを決定する。そしてコンピュータは、キャッシュすると決定した場合、新規の第２訓練データを記憶部に格納する。
【発明の効果】
【００１２】
１態様によれば、キャッシュされたデータの再利用を促進させることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る機械学習管理装置の構成例を示す図である。
【図２】第２の実施の形態の並列分散処理システムの構成例を示す図である。
【図３】マスタノードのハードウェアの一構成例を示す図である。
【図４】サンプリングサイズと予測性能の関係例を示すグラフである。
【図５】学習時間と予測性能の関係例を示すグラフである。
【図６】複数の機械学習アルゴリズムについて改善速度優先探索を行った場合の実行順序の例を示す図である。
【図７】モデル探索の実行順序の第１の例を示す図である。
【図８】モデル探索の実行順序の第２の例を示す図である。
【図９】ＬＲＵポリシーによるキャッシュ状況の推移例を示す図である。
【図１０】第２の実施の形態における並列分散処理システムが有する機械学習機能を示すブロック図である。
【図１１】機械学習の概略手順を示すフローチャートである。
【図１２】学習ステップごとの実行予定回数の第１の例を示す図である。
【図１３】学習ステップごとの実行予定回数の第２の例を示す図である。
【図１４】学習ステップごとの実行予定回数の第３の例を示す図である。
【図１５】学習ステップごとの実行予定回数の第４の例を示す図である。
【図１６】機械学習の詳細な手順を示すフローチャートである。
【図１７】改善速度優先探索によるモデル探索処理の手順を示すフローチャートである。
【図１８】予測性能改善速度の算出手順の一例を示すフローチャートである。
【図１９】学習ステップごとの実行予定回数の第５の例を示す図である。
【図２０】第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第１の図である。
【図２１】第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第２の図である。
【図２２】第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第３の図である。
【図２３】初期の予測結果の第１の例を示す図である。
【図２４】実測値反映後の予測結果の第１の例を示す図である。
【図２５】初期の予測結果の第２の例を示す図である。
【図２６】実測値反映後の予測結果の第２の例を示す図である。
【図２７】実測値反映後の予測結果の第３の例を示す図である。
【図２８】初期の予測結果の第３の例を示す図である。
【図２９】実測値反映後の予測結果の第４の例を示す図である。
【図３０】キャッシュの利用状況の表示画面の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
第１の実施の形態について説明する。第１の実施の形態は、キャッシュされたデータの再利用を促進させるものである。そこで、まずキャッシュされたデータの再利用の困難性について説明する。
【００１５】
一般には、多くのアルゴリズムでモデルを探索するほど高精度なモデルを得ることができる。他方、モデル探索を行うアルゴリズムの数が増えるほど、機械学習の計算量が増大する。特にビッグデータの機械学習を行う場合、１つのマシンで扱うことができないデータサイズとなる。そこで、並列分散処理技術を用いたモデル探索が行われる。機械学習は処理の繰り返しが多発するため、データをメモリに保持したまま処理を適用できるインメモリ並列分散処理のミドルウェアが用いられる。このように、データをメモリに保持したまま処理を適用することは、キャッシュと呼ばれる。ミドルウェアによるキャッシュ機能では、データ処理の最中に得られた中間結果が再利用できるように各サーバのローカルメモリ、またはローカルディスクに保存される。同じデータに対して別の処理を適用するケースでは、データを再生成せずに済み、処理時間の短縮が見込まれる。
【００１６】
複数のアルゴリズムでのモデル探索に用いる訓練データを、プログレッシブサンプリング法を用いてサンプリングを行う場合、インメモリ並列分散処理のミドルウェアで提供されるキャッシュを有効に利用できる。例えば特定のアルゴリズムにおけるモデル探索のためにサンプリングした訓練データをキャッシュしておき、その訓練データを他のアルゴリズムにおけるモデル探索で再利用することで、処理の効率化が図れる。
【００１７】
なおプログレッシブサンプリング法では、訓練データのサイズを徐々に拡大しながら、複数の訓練データが作成されるために、キャッシュ用の記憶容量が枯渇し、すべての訓練データをキャッシュできなくなる場合があり得る。その場合、訓練データの一部をキャッシュから削除することとなる。例えばＬＲＵのポリシーに従う場合、最終アクセス時刻が古いデータが削除される。１つの訓練データを生成するごとに、その訓練データを用いて複数のアルゴリズムでモデル探索を行うのであれば、ＬＲＵポリシーでのキャッシュ制御は有効である。
【００１８】
なお、１つの訓練データを生成するごとに、その訓練データを用いて複数のアルゴリズムでモデル探索を行うと、最終的に採用するモデルの予測性能の向上に寄与しない無駄な学習が多く発生し、学習時間が過度に長くなってしまう場合がある。そこで、無駄なモデル探索を実施する回数を削減するために、例えば、予測性能の向上度合い（予測性能改善速度）が高いと見込まれる機械学習アルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めることが考えられる。
【００１９】
しかし、予測性能改善速度が高いアルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めると、ＬＲＵでのキャッシュ制御では、キャッシュされた訓練データを効率的に利用することができない。すなわち、データサイズの大きい訓練データを用いたモデル探索が行われたときに、その訓練データをキャッシュするために、他の訓練データが削除される。すると、別の機械学習アルゴリズムで、データサイズの小さい訓練データを用いたモデル探索を実施する際に、訓練データを再生することとなり、処理量の増加を招く。そこで、複数の訓練データを用いて複数のアルゴリズムでモデル探索を実行する際に、無駄なモデル探索を抑止するような順番でモデル探索を進めた場合でも、キャッシュされた訓練データを効率的に再利用できるようなキャッシュ制御技術が求められる。
【００２０】
そこで第１の実施の形態では、モデル探索の過程でデータを生成したときに、以後のモデル探索でそのデータを利用する回数を予測し、利用回数が多いデータを優先的にキャッシュするようにする。キャッシュされたデータの再利用を促進させることができる。
【００２１】
図１は、第１の実施の形態に係る機械学習管理装置の構成例を示す図である。機械学習管理装置１０は、演算部１１と記憶部１２とを有する。演算部１１は、生成手段１１ａ、算出手段１１ｂ、優先度判定手段１１ｃ、決定手段１１ｄ、および格納手段１１ｅを有する。
【００２２】
生成手段１１ａは、サンプリング率の異なる複数の訓練データのうちの一部の第１訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第１モデルを生成する。また生成手段１１ａは、複数の第１モデルを生成後、複数の第２モデルそれぞれの指標値に基づいて、複数の第２モデルの中から生成する生成対象第２モデルを選択する。例えば、指標値の最も高いモデルを選択する。そして生成手段１１ａは、生成対象第２モデルを生成するための第２訓練データを用いて、生成対象第２モデルを生成するための機械学習アルゴリズムによるモデル探索を実行することにより、生成対象第２モデルを生成する。生成手段１１ａは、例えば、指標値が閾値以上の第２モデルがなくなるまで、生成対象第２モデルの選択と、その生成対象第２モデルの生成とを繰り返す。
【００２３】
算出手段１１ｂは、複数の訓練データのうちの第１訓練データ以外の複数の第２訓練データを用いて複数のアルゴリズムでモデル探索することで生成されるモデルを、第２のモデルとする。そして算出手段１１ｂは、複数の第１モデルそれぞれの予測性能に基づいて、複数の第２モデルそれぞれについて、生成するか否かの判別に用いる指標値を算出する。例えば算出手段１１ｂは、複数の第２モデルそれぞれを対象とし、対象の第２モデルの生成に要する所要時間と、対象の第２モデルの予測性能とに基づいて、予測性能の改善速度を算出し、改善速度を対象の第２モデルの指標値とする。
【００２４】
優先度判定手段１１ｃは、複数の第２訓練データそれぞれを対象とし、対象の第２訓練データを用いて生成される第２モデルのうち指標値が閾値以上となる第２モデルの数を、対象の第２訓練データをキャッシュする優先度とする。
【００２５】
決定手段１１ｄは、キャッシュされていない新規の第２訓練データを用いたモデル探索が実行されたとき、新規の第２訓練データの優先度に基づいて、新規の第２訓練データをキャッシュするか否かを決定する。例えば決定手段１１ｄは、既にキャッシュされている１または複数の既存の第２訓練データと新規の第２訓練データとを、優先度が高い順に並べる。そして決定手段１１ｄは、新規の第２訓練データより上位に並べられた既存の第２訓練データと新規の第２訓練データとの合計データサイズが、キャッシュ容量（記憶部１２の容量）以下のとき、新規の第２訓練データをキャッシュすると決定する。
【００２６】
また決定手段１１ｄは、新規の第２訓練データをキャッシュすると決定したときに、記憶部１２に十分な空き容量がない場合、記憶部１２から削除する訓練データを決定する。記憶部１２に十分な空き容量がない場合とは、例えば、既存の第２訓練データのすべてと新規の第２訓練データとの合計データサイズがキャッシュ容量を超える場合である。例えば決定手段１１ｄは、新規の第２訓練データをキャッシュすると決定し、かつ記憶部１２に十分な空き容量がない場合、新規の第２訓練データより優先度が低い既存の第２訓練データを、キャッシュ領域から削除すると決定する。
【００２７】
格納手段１１ｅは、キャッシュすると決定した場合、新規の第２訓練データを記憶部１２のキャッシュ領域に格納する。この際、格納手段１１ｅは、削除すると決定された既存の第２訓練データがある場合、その第２訓練データを記憶部１２から削除する。
【００２８】
記憶部１２は、キャッシュされた訓練データを記憶する。記憶部１２の記憶容量がキャッシュ容量である。
このような機械学習管理装置１０において、生成手段１１ａは、例えば「Ａ」、「Ｂ」、「Ｃ」の３つの機械学習アルゴリズムでモデル探索を行うものとする。モデル探索には、モデル生成に使用する訓練データの生成、モデルの生成、およびモデルの評価が含まれるものとする。なお使用する訓練データが記憶部１２に格納されている場合、生成手段１１ａは、使用する訓練データの生成に代えて、記憶部１２からその訓練データを取得する。
【００２９】
なお図１の例では、訓練データ「ｄ１」、「ｄ２」を、第１訓練データとしている。また訓練データ「ｄ３」〜「ｄ６」を、第２訓練データとしている。訓練データは、「ｄ１」が最もデータサイズが小さく、「ｄ６」が最もデータサイズが大きいものとする。
【００３０】
機械学習が開始されると、生成手段１１ａは、訓練データ「ｄ１」、「ｄ２」それぞれを用いて、機械学習アルゴリズム「Ａ」、「Ｂ」、「Ｃ」でモデル探索を実行する。その結果、第１モデルとして６個のモデル「１」〜「６」が生成される。生成手段１１ａは、生成した各モデルについて、そのモデル生成時のモデル探索の実行時間「ｔ１」〜「ｔ６」と、モデルの予測性能「ｐ１」〜「ｐ６」とを求める。
【００３１】
算出手段１１ｂは、第２訓練データを用いて生成される未生成の第２モデルについて、生成するか否かの判別に用いる指標値を算出する。図１の例では、第２モデルの指標値が閾値「０．００１」以上の場合、その第２モデルを生成するモデル探索が行われる。
【００３２】
改善速度を指標値とする場合、算出手段１１ｂは、例えば、特定の機械学習アルゴリズムにより第１モデルを生成時の実行時間から、その機械学習アルゴリズムによる第２モデルの生成を伴うモデル探索の実行時間を推定する。実行時間は、例えば使用する訓練データのデータサイズの違いから推定できる。また算出手段１１ｂは、例えば、特定の機械学習アルゴリズムの第１モデルの予測性能に基づいて、モデル生成に使用する訓練データのデータサイズと、その機械学習アルゴリズムで生成されるモデルの予測性能との関係を表す式を求める。機械学習アルゴリズムに対応付けて求められた式に基づいて、第２訓練データを用いてその機械学習アルゴリズムでモデル探索を行ったときに生成されるモデルの予測性能を推定できる。第２モデルについて推定された予測性能から、第１モデルの予測性能の最大値を減算すると、その第２モデルを生成することによる予測性能の改善量が求まる。第２モデルの改善量を、その第２モデルの実行時間で除算した値が、その第２モデルの改善速度となる。
【００３３】
指標値が算出されると、優先度判定手段１１ｃにより、訓練データごとに、その訓練データを用いて生成される第２モデルのうち、指標値が閾値以上の第２モデルの数が計数される。そして計数結果が、各訓練データの優先度となる。図１の例では、訓練データ「ｄ３」を用いて生成される第２データのうち、改善速度が閾値「０．００１」以上なのは３つであり、訓練データ「ｄ３」の優先度は「３」となる。訓練データ「ｄ４」を用いて生成される第２データのうち、改善速度が閾値「０．００１」以上なのは２つであり、訓練データ「ｄ４」の優先度は「２」となる。訓練データ「ｄ５」を用いて生成される第２データのうち、改善速度が閾値「０．００１」以上なのは２つであり、訓練データ「ｄ５」の優先度は「２」となる。訓練データ「ｄ６」を用いて生成される第２データのうち、改善速度が閾値「０．００１」以上なのは１つであり、訓練データ「ｄ６」の優先度は「１」となる。
【００３４】
その後、生成手段１１ａにより、第２訓練データを用いたモデル探索が行われる。例えば改善速度が最も高い第２モデルが特定され、その第２モデルの生成に利用する訓練データを用い、その第２モデルを生成するための機械学習アルゴリズムによりモデル探索が実行される。図１の例では、訓練データ「ｄ３」を用い、機械学習アルゴリズム「Ａ」によりモデル探索が実行され、モデル「７」が生成される。この際、訓練データ「ｄ３」は、元データからのデータサンプリングによって生成される。
【００３５】
訓練データ「ｄ３」が生成されると、決定手段１１ｄによって、訓練データ「ｄ３」をキャッシュするか否かが決定される。図１の例では、訓練データ「ｄ３」の優先度は「３」であり、最も高いため、キャッシュすると決定される。キャッシュすると決定されると、格納手段１１ｅにより、訓練データ「ｄ３」が記憶部１２に格納される。すなわち、訓練データ「ｄ３」がキャッシュされる。
【００３６】
その後、例えば訓練データ「ｄ４」を用いた機械学習アルゴリズム「Ａ」によるモデル探索、訓練データ「ｄ５」を用いた機械学習アルゴリズム「Ａ」によるモデル探索、訓練データ「ｄ６」を用いた機械学習アルゴリズム「Ａ」によるモデル探索が、順に行われる。ここで、訓練データ「ｄ４」、訓練データ「ｄ５」をキャッシュした後の記憶部１２の空き容量が、訓練データ「ｄ６」のデータサイズに満たないものとする。このとき訓練データ「ｄ６」の優先度は「１」であり、最も低いため、キャッシュしないと決定される。その結果、訓練データ「ｄ６」はキャッシュされずに破棄される。
【００３７】
このようなキャッシュ制御を行うことで、以後再利用される可能性のない訓練データ「ｄ６」を、正しく破棄することができる。すなわち、ＬＲＵポリシーを用いると最新の訓練データ「ｄ６」をキャッシュする代わりに、他の訓練データをキャッシュから削除することとなる。しかし、優先度の高い訓練データは再利用される予定があり、その訓練データをキャッシュから削除してしまうと、その訓練データを用いたモデル探索の際に、再度訓練データを生成することとなり、処理効率が悪化する。それに対し、図１に示す機械学習管理装置１０によれば、訓練データ「ｄ６」をキャッシュせずに破棄するため、他の訓練データを削除せずにすみ、処理効率を向上させることができる。
【００３８】
なお算出手段１１ｂは、第２訓練データを用いたモデル探索が実行されるごとに、複数の第１モデルそれぞれの予測性能と、既に生成されている既存の第２モデルの予測性能とに基づいて、未生成の第２モデルそれぞれについての指標値を再計算してもよい。これにより、優先度の算出精度が向上する。その結果、機械学習の処理効率が向上する。
【００３９】
また、訓練データの生成元となる元データを、記憶部１２にキャッシュしておくこともできる。この際、決定手段１１ｄは、例えば、優先度が１以上の第２訓練データが新規の第２訓練データのみであり、かつ元データと新規の第２訓練データとの合計データサイズがキャッシュ容量を超えるとき、元データをキャッシュ領域から削除すると決定する。これにより、元データをデータサンプリング元として使用する可能性がなくなった場合、元データを記憶部１２から削除して、他の訓練データをキャッシュするための空き容量を確保できる。その結果、再利用される訓練データがキャッシュできるようになり、訓練データの再利用による処理効率の向上が図れる。
【００４０】
なお、演算部１１は、例えば機械学習管理装置１０が有するプロセッサである。また、生成手段１１ａ、算出手段１１ｂ、優先度判定手段１１ｃ、決定手段１１ｄ、および格納手段１１ｅは、機械学習管理装置１０が有するプロセッサが実行する処理により実現される。記憶部１２は、例えば機械学習管理装置１０が有するメモリまたはストレージ装置により実現することができる。
【００４１】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ビッグデータの機械学習において、複数の機械学習アルゴリズムに対してプログレッシブサンプリング法を用いたモデル探索を行うものである。第２の実施の形態では、並列分散処理システムにより、機械学習を実施する。
【００４２】
図２は、第２の実施の形態の並列分散処理システムの構成例を示す図である。並列分散処理システムは、例えば１台のマスタノード１００と複数のワーカノード２１０，２２０，・・・を含んでいる。マスタノード１００と複数のワーカノード２１０，２２０，・・・とは、ネットワーク２０で接続されている。マスタノード１００は、機械学習の分散処理を制御するコンピュータである。ワーカノード２１０，２２０，・・・は、機械学習の実行系の処理を、並列処理で実行するコンピュータである。
【００４３】
図３は、マスタノードのハードウェアの一構成例を示す図である。マスタノード１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４４】
メモリ１０２は、マスタノード１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４５】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００４６】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４７】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４８】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４９】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５０】
機器接続インタフェース１０７は、マスタノード１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５１】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５２】
以上のようなハードウェア構成によって、第２の実施の形態のマスタノード１００の処理機能を実現することができる。なお、ワーカノード２１０，２２０，・・・も、図３に示したマスタノード１００と同様のハードウェアにより実現することができる。また、第１の実施の形態に示した機械学習管理装置１０も、図３に示したマスタノード１００と同様のハードウェアにより実現することができる。
【００５３】
マスタノード１００およびワーカノード２１０，２２０，・・・は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。マスタノード１００とワーカノード２１０，２２０，・・・に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、マスタノード１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またマスタノード１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５４】
次に、機械学習におけるサンプリングサイズと予測性能と学習時間との間の関係、および、プログレッシブサンプリング法について説明する。
第２の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。並列分散処理システム内の装置または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク２０経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常は、２以上の説明変数の値と１つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
【００５５】
並列分散処理システムは、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常は、２以上の説明変数と２以上の係数と１つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
【００５６】
学習されたモデルを用いることで、未知の事例の説明変数の値（要因）から、未知の事例の目的変数の値（結果）を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、０以上１以下の確率値などの連続値であってもよいし、ＹＥＳ／ＮＯの２値などの離散値であってもよい。
【００５７】
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。並列分散処理システムは、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの１／２程度とする。並列分散処理システムは、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値（予測値）とテストデータに含まれる目的変数の値（実績値）とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
【００５８】
予測性能の指標としては、正答率（Accuracy）、適合率（Precision）、平均二乗誤差（ＲＭＳＥ）などが挙げられる。例えば、結果がＹＥＳ／ＮＯの２値で表されるとする。また、Ｎ件のテストデータの事例のうち、予測値＝ＹＥＳ・実績値＝ＹＥＳの件数をＴｐ、予測値＝ＹＥＳ・実績値＝ＮＯの件数をＦｐ、予測値＝ＮＯ・実績値＝ＹＥＳの件数をＦｎ、予測値＝ＮＯ・実績値＝ＮＯの件数をＴｎとする。この場合、正答率は予測が当たった割合であり、（Ｔｐ＋Ｔｎ）／Ｎと算出される。適合率は「ＹＥＳ」の予測を間違えない確率であり、Ｔｐ／（Ｔｐ＋Ｆｐ）と算出される。平均二乗誤差は、各事例の実績値をｙと表し予測値をｙ＾と表すと、（ｓｕｍ（ｙ−ｙ＾）２／Ｎ）１／２と算出される。
【００５９】
ここで、ある１つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数（サンプリングサイズ）が大きいほど予測性能は高くなる。
図４は、サンプリングサイズと予測性能の関係例を示すグラフである。曲線３０は、モデルの予測性能とサンプリングサイズとの間の関係を示す。サンプリングサイズｓ１，ｓ２，ｓ３，ｓ４，ｓ５の間の大小関係は、ｓ１＜ｓ２＜ｓ３＜ｓ４＜ｓ５である。例えば、ｓ２はｓ１の２倍または４倍、ｓ３はｓ２の２倍または４倍、ｓ４はｓ３の２倍または４倍、ｓ５はｓ４の２倍または４倍である。
【００６０】
曲線３０が示すように、サンプリングサイズがｓ２の場合の予測性能はｓ１の場合よりも高い。サンプリングサイズがｓ３の場合の予測性能はｓ２の場合よりも高い。サンプリングサイズがｓ４の場合の予測性能はｓ３の場合よりも高い。サンプリングサイズがｓ５の場合の予測性能はｓ４の場合よりも高い。このように、サンプリングサイズが大きくなるほど予測性能も高くなる。ただし、予測性能が低いうちは、サンプリングサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプリングサイズの増加量に対する予測性能の上昇量の比は逓減する。
【００６１】
また、サンプリングサイズが大きいほど、機械学習に要する学習時間も大きくなる。このため、サンプリングサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図４の例の場合、サンプリングサイズをｓ４とすると、上限に近い予測性能を短時間で達成できる。一方、サンプリングサイズをｓ３とすると、予測性能が不十分であるおそれがある。また、サンプリングサイズをｓ５とすると、予測性能は上限に近いものの、単位学習時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。
【００６２】
このようなサンプリングサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質（データの種類）によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプリングサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法が用いられる。
【００６３】
プログレッシブサンプリング法では、サンプリングサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、並列分散処理システムは、サンプリングサイズｓ１で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、並列分散処理システムは、サンプリングサイズｓ２で機械学習を行って予測性能を評価する。このとき、サンプリングサイズｓ２の訓練データは、サンプリングサイズｓ１の訓練データ（前に使用した訓練データ）の一部または全部を包含していてもよい。同様に、並列分散処理システムは、サンプリングサイズｓ３で機械学習を行って予測性能を評価し、サンプリングサイズｓ４で機械学習を行って予測性能を評価する。サンプリングサイズｓ４で予測性能が十分になると、並列分散処理システムは、機械学習を停止し、サンプリングサイズｓ４で学習したモデルを採用する。このとき、並列分散処理システムは、サンプリングサイズｓ５の機械学習を行わなくてよい。
【００６４】
プログレッシブサンプリング法の停止条件として、例えば、１つ前のモデルと今回のモデルとの間の予測性能の差（上昇量）が閾値未満になったことを停止条件とすることが考えられる。また、例えば、単位学習時間当たりの予測性能の上昇量が閾値未満になったことを停止条件とすることも考えられる。
【００６５】
図５は、学習時間と予測性能の関係例を示すグラフである。曲線３０ａ〜３０ｃは、著名なデータ集合（ＣｏｖｅｒＴｙｐｅ）を用いて測定された学習時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線３０ａは、機械学習アルゴリズムとしてロジスティック回帰を用いた場合の学習時間と予測性能の間の関係を示す。曲線３０ｂは、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の学習時間と予測性能の間の関係を示す。曲線３０ｃは、機械学習アルゴリズムとしてランダムフォレストを用いた場合の学習時間と予測性能の間の関係を示す。なお、図５の横軸は、学習時間について対数目盛になっている。
【００６６】
曲線３０ａが示すように、ロジスティック回帰を使用した場合、サンプリングサイズ＝８００における予測性能は約０．７１、学習時間は約０．２秒である。サンプリングサイズ＝３２００における予測性能は約０．７５、学習時間は約０．５秒である。サンプリングサイズ＝１２８００における予測性能は約０．７５５、学習時間は約１．５秒である。サンプリングサイズ＝５１２００における予測性能は約０．７６、学習時間は約６秒である。
【００６７】
曲線３０ｂが示すように、サポートベクタマシンを使用した場合、サンプリングサイズ＝８００における予測性能は約０．７０、学習時間は約０．２秒である。サンプリングサイズ＝３２００における予測性能は約０．７７、学習時間は約２秒である。サンプリングサイズ＝１２８００に対応する予測性能は約０．７８５、学習時間は約２０秒である。
【００６８】
曲線３０ｃが示すように、ランダムフォレストを使用した場合、サンプリングサイズ＝８００における予測性能は約０．７４、学習時間は約２．５秒である。サンプリングサイズ＝３２００における予測性能は約０．７９、学習時間は約１５秒である。サンプリングサイズ＝１２８００に対応する予測性能は約０．８２、学習時間は約２００秒である。
【００６９】
このように、上記のデータ集合に対しては、ロジスティック回帰は、全体的に学習時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰よりも学習時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に学習時間が長く予測性能が高い。ただし、図５の例では、サンプリングサイズが小さい場合のサポートベクタマシンの予測性能は、ロジスティック回帰の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。
【００７０】
個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、複数の機械学習アルゴリズムを使用し、かつ、プログレッシブサンプリング法を使用する場合に、予測性能の高いモデルを効率的に得られるようにすることが考えられる。例えば、予測性能改善速度が高いと見込まれるアルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めることで、無駄なモデル探索を抑止するモデル探索手法を採用することができる。以下、このようなモデル探索手法を、改善速度優先探索と呼ぶこととする。
【００７１】
図６は、複数の機械学習アルゴリズムについて改善速度優先探索を行った場合の実行順序の例を示す図である。改善速度優先探索は、各機械学習アルゴリズムについて、サンプリングサイズが１段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して学習ステップを１つだけ進める方法である。学習ステップを１つ進めるごとに、改善速度の推定値が見直される。このため、改善速度優先探索では、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に機械学習アルゴリズムが限定されていく。
【００７２】
改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値（以下では達成予測性能と言うことがある）との差である。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプリングサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプリングサイズとに基づいて推定される。
【００７３】
並列分散処理システムは、機械学習アルゴリズムＡの学習ステップ３１と、機械学習アルゴリズムＢの学習ステップ３４と、機械学習アルゴリズムＣの学習ステップ３７とを実行する。並列分散処理システムは、学習ステップ３１，３４，３７の実行結果に基づいて、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムＡの改善速度＝２．５、機械学習アルゴリズムＢの改善速度＝２．０、機械学習アルゴリズムＣの改善速度＝１．０と推定されたとする。すると、並列分散処理システムは、改善速度が最大の機械学習アルゴリズムＡを選択し、学習ステップ３２を実行する。
【００７４】
学習ステップ３２が実行されると、並列分散処理システムは、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．７３、機械学習アルゴリズムＢの改善速度＝１．０、機械学習アルゴリズムＣの改善速度＝０．５と推定されたとする。学習ステップ３２によって達成予測性能が上昇したため、機械学習アルゴリズムＢ，Ｃの改善速度も低下している。並列分散処理システムは、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３５を実行する。
【００７５】
学習ステップ３５が実行されると、並列分散処理システムは、機械学習アルゴリズムＡ，Ｂ，Ｃの改善速度を更新する。ここでは、機械学習アルゴリズムＡの改善速度＝０．０、機械学習アルゴリズムＢの改善速度＝０．８、機械学習アルゴリズムＣの改善速度＝０．０と推定されたとする。並列分散処理システムは、改善速度が最大の機械学習アルゴリズムＢを選択し、学習ステップ３６を実行する。学習ステップ３６によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムＡの学習ステップ３３や機械学習アルゴリズムＣの学習ステップ３８，３９は実行されない。
【００７６】
なお、次の学習ステップの予測性能を推定するにあたっては、統計誤差を考慮し、予測性能が今後上昇する可能性のある機械学習アルゴリズムを早期に切り捨ててしまうリスクを低減することが好ましい。例えば、並列分散処理システムは、回帰分析によって予測性能の期待値とその９５％予測区間を算出し、９５％予測区間の上限値（ＵＣＢ：Upper Confidence Bound）を、改善速度を算出する際の予測性能を推定値として使用することが考えられる。９５％予測区間は、測定される予測性能（測定値）のばらつきを示すものであり、新たな予測性能が９５％の確率でこの区間に収まると予想されることを示す。すなわち、統計上の期待値よりも統計誤差に応じた幅だけ大きい値を使用する。
【００７７】
ただし、ＵＣＢに代えて、並列分散処理システムは、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える確率（ＰＩ：Probability of Improvement）を算出してもよい。また、並列分散処理システムは、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える期待値（ＥＩ：Expected Improvement）を算出してもよい。
【００７８】
改善速度優先探索では、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
【００７９】
このように、改善速度優先探索は学習時間の短縮に有効である。ただし、モデル探索の実行順序の影響で、キャッシュした訓練データの再利用に関して、非効率となる。
図７は、モデル探索の実行順序の第１の例を示す図である。図７に示す例では、元データ（オリジナルデータとも言う）の単位データ数が６０００万個であり、初期の訓練データのサイズが１０万個であるものとする。そして学習ステップが１段階進むごとに、サンプリング率を２倍にするものとして、機械学習を実行している。図７に示す表の内部の数値は、その数値が設定されている行に示される機械学習アルゴリズムによる、その数値が設定されている列に示される単位データ数の訓練データを用いたモデル探索の実行順序である。
【００８０】
図７の例では、最初に１０万個の単位データにサンプリングした訓練データを生成した後、機械学習アルゴリズム「ランダムフォレスト（Random Forest）」によるモデル探索実行時に、訓練データがキャッシュされる。以降の機械学習アルゴリズムによるモデル探索を実行する際には、キャッシュされた訓練データが再利用される。実行順序７番目では、単位データ数が２０万個の訓練データがキャッシュされていないため、新たに訓練データが生成され、キャッシュされる。その後、単位データ数が２０万個の訓練データは、８番目以降のモデル探索の実行時に再利用される。
【００８１】
このように、訓練データを生成するごとに、その訓練データを用いた異なる機械学習アルゴリズムでの複数のモデル探索を続けて実施することで、キャッシュした訓練データを有効に再利用できる。それに対して、改善速度優先探索を行うと、同じサンプリング率の訓練データが連続して利用される保証がない。
【００８２】
図８は、モデル探索の実行順序の第２の例を示す図である。図８には、改善速度優先探索でモデル探索を行った場合の実行順が示されている。図８の例では、まず単位データ数が１０万個と２０万個の訓練データを用い、各機械学習アルゴリズムでモデルが生成され、モデルの予測性能が評価されている。その後、各機械学習アルゴリズムで次に実行するモデル探索で生成されるモデルの予測改善速度をもとに、次のモデル探索に使用する訓練データと機械学習アルゴリズムの組合せを決定している。図８の例では、２０万個の訓練データで実行を終えた時点で、最も予測改善速度が高いと見積もられたのは、単位データ数が４０万個の訓練データを用いた機械学習アルゴリズム「Random Forest」によるモデル探索である。以後も、機械学習アルゴリズム「Random Forest」において、最も高い予測改善速度を示している。そのため、機械学習アルゴリズム「Random Forest」によるモデル探索が、訓練データの単位データ数が５０１２万個となるまで連続で実行され、生成されたモデルの予測性能が評価されている。その後、単位データ数が４０万個の訓練データを用いた機械学習アルゴリズム「Gradient Boosting」で生成したモデルの予測性能が評価されている。
【００８３】
訓練データの再利用を考慮すると、全サンプリング率の訓練データをキャッシュしておくことが理想的である。しかし、図８に示したように、改善速度優先探索を行うと、機械学習アルゴリズム「Random Forest」によりモデル探索の予測性能が、他の機械学習アルゴリズムに先行して評価される。それに伴い大きなサンプリング率のデータが生成・キャッシュされる。今回の例では１０万＋２０万＋４０万＋・・・＋５１２０万＝１０２４０万個のデータがキャッシュされることとなる。これらの全訓練データをキャッシュするには、元データ（６０００万）の約２倍の記憶容量を用意することとなる。さらに、各サンプリング率の訓練データを効率的に生成するためには、元データもキャッシュすることになる。
【００８４】
実際にはキャッシュ可能なデータ量の総量は有限であるため、生成した各サンプリング率のデータ量の総量がキャッシュ可能なデータ量の総量を超えた場合、一部の訓練データがキャッシュから削除される。
【００８５】
例えば、キャッシュ可能なデータ量の総量が１５０００万の環境で入力データ量が１０２４０万個のモデル探索を行うとする。例えばＬＲＵポリシーで、キャッシュされた訓練データを削除する場合を考える。最初のサンプリングによって１０万個からはじめ、学習ステップが１ステップ進むごとにデータ量を２倍にしていくとすると、キャッシュの状況は図９のようになる。
【００８６】
図９は、ＬＲＵポリシーによるキャッシュ状況の推移例を示す図である。図９に示す表には、「実行順序」の列に示す順番でモデル探索が実行されたときの、元データおよび各サンプリング率の訓練データについての操作内容とキャッシュ状況とを示している。単位データ数「１０２４０万」と示されている列に、元データに対する操作内容が示されている。単位データ数「１０万」〜「５１２０万」と示されている列に、訓練データに対する操作内容が示されている。「キャッシュ状況」と示されている列に、キャッシュされているデータ量の遷移が示されている。
【００８７】
訓練データの操作内容は、操作された訓練データの位置に示される記号で表されている。黒丸の記号は、データ生成およびキャッシュ処理が行われたことを示している。白丸の記号は、キャッシュ済みであり、最終アクセス時刻が更新されたことを示している。三角の記号は、キャッシュ済みであり、最終アクセス時刻が更新されていないことを示している。ばつ印の記号は、キャッシュから削除されたことを示している。キャッシュ状況としては、キャッシュされている訓練データの全単位データ数を示している。
【００８８】
なお、新しいサンプリング率のデータ生成では、キャッシュにある元データから生成されるため、新たなデータ生成時に元データの最終アクセス時刻も更新される。図９の例では、実行順序「１９」で新たに２５６０万個の訓練データをキャッシュしようとするがキャッシュ容量が不足している。そこで、ＬＲＵのポリシーに従い最終アクセス時刻が古い訓練データの削除が発生している。さらに、次の２０番目の実行では、元データを削除しなければ５１２０万個の訓練データをキャッシュすることはできない。しかし、ここでキャッシュした５１２０万個の訓練データは結果的に再利用されることはない。また、２１番目の実行では４０万個の訓練データを用いるが、これは１９番目の実行時に４０万個の訓練データがキャッシュから失われているため再生成されている。さらに元データも２０番目の実行時にキャッシュから失われているため元データのストレージ装置からのロードも行われる。結果として、訓練データを生成するごとに、その訓練データを用いた異なる機械学習アルゴリズムでの複数のモデル探索を続けて実行するときよりも、データの再利用効率が低下してしまう。
【００８９】
このような問題が起こる原因は、キャッシュポリシーにＬＲＵを採用していたことである。このポリシーでは、キャッシュが有効なデータは何度も頻繁にアクセスされるため、最終アクセス時刻が古いデータから順番に削除される。しかし、改善速度優先探索では、大幅な性能改善の見込みがあるアルゴリズムを優先して実行しており、連続して同じアルゴリズムが有効であると判定されると、毎回、前回と異なるサンプリング率の訓練データが利用される。その結果、サンプリング率が低い訓練データを再利用しようとしても、その訓練データが既にキャッシュから削除されていることがある。
【００９０】
加えて、有望な機械学習アルゴリズムはサンプリング率の高い訓練データを利用するが、改善が見込めない多くの機械学習アルゴリズムはサンプリング率の低い訓練データを利用するのみに留まる。その結果、サンプリング率の高い訓練データが再利用される可能性は低くなる。ＬＲＵポリシーを採用すると、それにも関わらず、サンプリング率の高い訓練データが使用されたときに、その訓練データが今後使用されるか否かに拘わらず、サンプリング率の高い訓練データをキャッシュしてしまう。サンプリング率の高い訓練データは、データ量が多く、結果的にその訓練データが再利用されなければ、メモリ資源が無駄に消費されたことになる。
【００９１】
そこで、第２の実施の形態に係る並列分散処理システムでは、機械学習において改善速度優先探索を採用した場合のキャッシュポリシーとして、予測性能の推定値を用いたキャッシュアルゴリズムを採用する。
【００９２】
図１０は、第２の実施の形態における並列分散処理システムが有する機械学習機能を示すブロック図である。並列分散処理システムは、性能予測部４１、探索条件決定部４２、モデル探索部４３、キャッシュ制御部４４、元データ記憶部４５、キャッシュデータ記憶部４６を有する。
【００９３】
性能予測部４１は、機械学習アルゴリズムごとに、過去の数ステップ分の予測性能の評価結果に基づいて、以後実施する可能性のある学習ステップにおける性能を予測する。そして、性能予測部４１は、予測性能改善速度を計算する。
【００９４】
探索条件決定部４２は、次に実行するモデル探索の条件（探索条件）を決定する。探索条件には、適用する機械学習アルゴリズムの識別子、使用する訓練データのサンプリング率などが含まれる。例えば探索条件決定部４２は、機械学習アルゴリズムごとの、次の学習ステップにおける予測性能改善速度を比較し、予測性能改善速度が最も高くなる機械学習アルゴリズムを、次のモデル探索に適用するものと決定する。
【００９５】
モデル探索部４３は、決定された探索条件に従ってモデル探索を行う。モデル探索では、訓練データを用いたモデルの生成、および生成したモデルの予測性能の評価が行われる。モデル探索部４３は、モデル探索に使用するデータを、キャッシュ制御部４４を介して元データ記憶部４５、またはキャッシュデータ記憶部４６から取得する。またモデル探索部４３は、元データに基づいて新たな訓練データを作成した場合、その訓練データをキャッシュ制御部４４に送信する。
【００９６】
キャッシュ制御部４４は、モデル探索部４３が使用するデータを、元データ記憶部４５またはキャッシュデータ記憶部４６から読み出し、モデル探索部４３に送信する。またキャッシュ制御部４４は、各機械学習アルゴリズムの未実行の学習ステップの予測性能改善速度に基づいて、モデル探索部４３から取得した訓練データをキャッシュするか否かを判断する。訓練データをキャッシュすると決定した場合、キャッシュ制御部４４は、その訓練データをキャッシュデータ記憶部４６に格納する。またキャッシュ制御部４４は、キャッシュデータ記憶部４６の空き容量が不足する場合、各機械学習アルゴリズムの未実行の学習ステップの予測性能改善速度に基づいて、削除するデータを決定し、そのデータをキャッシュデータ記憶部４６から削除する。
【００９７】
元データ記憶部４５は、機械学習を実施するための元データを記憶する。キャッシュデータ記憶部４６は、元データから単位データをサンプリング抽出することで生成された訓練データのうち、キャッシュすると決定された訓練データを記憶する。キャッシュデータ記憶部４６の記憶容量は、キャッシュ容量と呼ぶこともできる。キャッシュデータ記憶部４６は、元データ記憶部４５よりも高速にアクセス可能である。例えば元データ記憶部４５はＨＤＤなどのストレージ装置内に設けられ、キャッシュデータ記憶部４６はメモリ内に設けられる。
【００９８】
図１０に示す各要素は、図２に示すマスタノード１００と複数のワーカノード２１０，２２０，・・・との分散処理により実現される。例えば、性能予測部４１と探索条件決定部４２とは、マスタノード１００内に設けられる。モデル探索部４３、キャッシュ制御部４４、元データ記憶部４５、およびキャッシュデータ記憶部４６は、複数のワーカノード２１０，２２０，・・・の分散処理によって実現される。
【００９９】
なお、図１０に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図１０に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【０１００】
以下、データのキャッシュ処理の概略について説明する。
第２の実施の形態では、まず、サンプリング率の低い数ステップ分の訓練データを用いて、複数の機械学習アルゴリズムそれぞれによるモデル探索が行われる。これにより、各機械学習アルゴリズムの予測性能改善速度の算出が可能となる。
【０１０１】
図１１は、機械学習の概略手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］モデル探索部４３は、探索条件決定部４２が順次決定した探索条件に従って、すべての機械学習アルゴリズムについて、所定の学習ステップ数分のモデル探索を実施する。そしてモデル探索部４３は、モデル探索によって得られた性能の評価結果を、性能予測部４１に送信する。
【０１０２】
［ステップＳ１０２］性能予測部４１は、全機械学習アルゴリズムについて、未実行の学習ステップを実行した場合の予測性能改善速度を求める。
［ステップＳ１０３］探索条件決定部４２は、次に実行する予定の学習ステップの予測性能改善速度が最も高い機械学習アルゴリズムを、次に実行する機械学習アルゴリズムとして特定する。また探索条件決定部４２は、特定された機械学習アルゴリズムの次に実行する学習ステップを調べる。そして探索条件決定部４２は、特定した機械学習アルゴリズムの識別子と、次の学習ステップで使用する訓練データのサンプリング率とを含む探索条件を、モデル探索部４３に送信する。
【０１０３】
［ステップＳ１０４］モデル探索部４３は、指定されたサンプリング率の訓練データの取得要求を、キャッシュ制御部４４に送信する。するとキャッシュ制御部４４は、取得要求で示された訓練データが、キャッシュデータ記憶部４６にキャッシュされているか否かを判断する。キャッシュされている場合、処理がステップＳ１０５に進められる。キャッシュされていない場合、処理がステップＳ１０６に進められる。
【０１０４】
［ステップＳ１０５］モデル探索部４３は、指定されたサンプリング率の訓練データをキャッシュデータ記憶部４６から取得し、探索要求に示された機械学習アルゴリズムによりモデル探索を行う。その後、処理がステップＳ１１２に進められる。
【０１０５】
［ステップＳ１０６］モデル探索部４３は、指定されたサンプリング率で元データから単位データのサンプリングを行い、訓練データを生成する。そしてモデル探索部４３は、生成した訓練データを用い、探索要求に示された機械学習アルゴリズムによりモデル探索を行う。
【０１０６】
［ステップＳ１０７］キャッシュ制御部４４は、キャッシュデータ記憶部４６内の空き容量が十分にあるか否かを判断する。例えばキャッシュ制御部４４は、キャッシュデータ記憶部４６に格納可能な単位データ数から、すでに格納されている単位データ数を減算した値を空き容量とする。キャッシュ制御部４４は、空き容量が、生成された訓練データのデータサイズ以上であれば、空き容量が十分であると判断する。空き容量が十分であれば、処理がステップＳ１１１に進められる。空き容量が十分でなければ、処理がステップＳ１０８に進められる。
【０１０７】
［ステップＳ１０８］キャッシュ制御部４４は、学習ステップＳiごとに、予測性能改善速度が閾値Ｋ（Ｋは正の実数）よりも大きいアルゴリズムの数を調べ、実行予定回数Ｔiとする。ここでｉは１以上の整数である、学習ステップＳiは、サンプリング率が低い方からｉ番目の学習ステップを指す。実行予定回数Ｔiは、対応する学習ステップＳiで用いる訓練データについてのキャッシュの優先度でもある。
【０１０８】
閾値Ｋはモデル探索の開始前に事前に静的な値として与えられてもよいし一定の条件式にしたがって動的に決定してもよい。また、例えばサンプリング率が高いデータに重みを与えたいのであれば、学習ステップごとに閾値Ｋiを与えてｉが大きいほど小さくなるように定めてもよい。なお、元データに対応する実行予定回数Ｔoを定義しておくことで、キャッシュされた元データも訓練データと同様に管理できる。この場合、キャッシュ制御部４４は、元データの実行予定回数Ｔoの値を無限値に設定する。
【０１０９】
［ステップＳ１０９］キャッシュ制御部４４は、生成した訓練データをキャッシュするか否かを判断する。例えばキャッシュ制御部４４は、すでにキャッシュされている訓練データを用いる学習ステップと、今回のモデル探索で生成した訓練データを用いる学習ステップとを、実行予定回数が高い順に並べる。そしてキャッシュ制御部４４は、生成した訓練データを用いる学習ステップより上位の学習ステップで用いる訓練データのデータサイズと、生成した訓練データのデータサイズとの合計が、キャッシュ容量以下であれば、訓練データをキャッシュすると判断する。生成した訓練データをキャッシュする場合、処理がステップＳ１１０に進められる。生成した訓練データをキャッシュしない場合、処理がステップＳ１１２に進められる。
【０１１０】
［ステップＳ１１０］キャッシュ制御部４４は、実行予定回数が少ない学習ステップの訓練データから優先的に、キャッシュデータ記憶部４６から削除する。例えばキャッシュ制御部４４は、キャッシュデータ記憶部４６の空き容量が、生成した訓練データの単位データ数以上となるまで、キャッシュされている訓練データの削除を行う。
【０１１１】
［ステップＳ１１１］キャッシュ制御部４４は、生成した訓練データをキャッシュする。すなわちキャッシュ制御部４４は、生成した訓練データを、キャッシュデータ記憶部４６に格納する。
【０１１２】
［ステップＳ１１２］モデル探索部４３は、モデル探索の終了条件が満たされたか否かを判断する。例えば生成したモデルによる予測性能の改善量が一定値以下であることが、モデル探索の終了条件として設定される。終了条件が満たされていれば、その時点で最も高い予測性能が得られているモデルが学習結果として出力され、機械学習処理が終了する。終了条件が満たされていなければ、処理がステップＳ１０２に進められる。
【０１１３】
このような手順で機械学習が進められ、効率的なキャッシュ制御が行われる。以下、図１２〜図１５を参照し、学習ステップごとの実行予定回数の算出例について説明する。なお図１２〜図１５の例では、「アルゴリズムＡ」〜「アルゴリズムＤ」の４つの機械学習アルゴリズムを用いて機械学習を行うものとする。
【０１１４】
図１２は、学習ステップごとの実行予定回数の第１の例を示す図である。図１２の例では、横軸は学習ステップであり、縦軸は予測性能改善速度である。閾値Ｋは、「０．００１」である。図１２には、学習ステップＳ1と学習ステップＳ2について、すべての機械学習アルゴリズムでモデル探索を行った後に算出された予測性能改善速度が示されている。
【０１１５】
学習ステップＳ3では、４つの機械学習アルゴリズムすべてにおいて、予測性能改善速度が閾値Ｋ以上である。従って、実行予定回数Ｔ3は「４」となる。学習ステップＳ4では、３つの機械学習アルゴリズムにおいて、予測性能改善速度が閾値Ｋ以上である。従って、実行予定回数Ｔ4は「３」となる。学習ステップＳ5では、３つの機械学習アルゴリズムにおいて、予測性能改善速度が閾値Ｋ以上である。従って、実行予定回数Ｔ5は「３」となる。学習ステップＳ6では、１つの機械学習アルゴリズムのみにおいて、予測性能改善速度が閾値Ｋ以上である。従って、実行予定回数Ｔ6は「１」となる。
【０１１６】
改善速度優先探索によれば、予測性能改善速度が大きい順にモデル探索が実行される。図１２の例では、他の機械学習アルゴリズムに先行して、「アルゴリズムＤ」による学習ステップＳ3，Ｓ4，Ｓ5，Ｓ6のモデル探索が実行される。
【０１１７】
図１３は、学習ステップごとの実行予定回数の第２の例を示す図である。図１３は、「アルゴリズムＤ」による学習ステップＳ3のモデル探索実行後における実行予定回数の算出結果を示している。図１２と比較すると、実行予定回数Ｔ3が「３」に変わっている。
【０１１８】
図１４は、学習ステップごとの実行予定回数の第３の例を示す図である。図１４は、「アルゴリズムＤ」による学習ステップＳ4のモデル探索実行後における実行予定回数の算出結果を示している。図１３と比較すると、実行予定回数Ｔ4が「２」に変わっている。
【０１１９】
図１５は、学習ステップごとの実行予定回数の第４の例を示す図である。図１５は、「アルゴリズムＤ」による学習ステップＳ5のモデル探索実行後における実行予定回数の算出結果を示している。図１４と比較すると、実行予定回数Ｔ5が「２」に変わっている。
【０１２０】
このように、モデル探索が進行するごとに実行予定回数が再計算され、学習ステップごとの実行予定回数Ｔiが変化する。
次に、例えば「アルゴリズムＤ」による学習ステップＳ6のモデル探索が実行される。このとき、例えば学習ステップＳ6のモデル探索で使用される訓練データをキャッシュするには、空き容量が不足するものとする。その場合、ＬＲＵポリシーでキャッシュされているデータの削除を行うと、例えば、学習ステップＳ3のモデル探索で使用する訓練データが削除されてしまう。学習ステップＳ3の実行予定回数Ｔ3は「３」である。そのため、学習ステップＳ3のモデル探索で使用する訓練データを削除してしまうと、他の機械学習アルゴリズムにより学習ステップＳ3のモデル探索を実行する際に、訓練データを再作成することとなり、処理が非効率となる。
【０１２１】
他方、第２の実施の形態では、実行予定回数が少ない学習ステップの訓練データが、キャッシュの対象外となる。図１５の例では、「アルゴリズムＤ」による学習ステップＳ6のモデル探索が実行された後は、そのモデル探索で使用した訓練データは使用されない。すなわち、実行予定回数Ｔ6は「０」となる。その結果、学習ステップＳ6のモデル探索で使用した訓練データをキャッシュしないことが決定される。
【０１２２】
このように、新規に作成した訓練データであっても、キャッシュに保存する重要性が低くなっていれば、その訓練データはキャッシュされず、他の訓練データがキャッシュに維持される。そのため、例えば「アルゴリズムＡ」の学習ステップＳ3や「アルゴリズムＣ」の学習ステップＳ3のモデル探索の実行時には、キャッシュされている訓練データを再利用することができる。その結果、訓練データの作成処理が省略され、処理効率が向上する。
【０１２３】
また、各ステップのデータを作成するもとになる元データに対応する実行予定回数Ｔの値を無限値に設定しておくことで、元データがキャッシュから削除されることを抑止できる。元データはデータ量が大きいため、キャッシュしてメモリに保持しておくことで、データのサンプリングを実施する際の元データからの単位データの抽出を迅速に行うことができる。
【０１２４】
なお、第２の実施の形態に示すキャッシュポリシーでは、各学習ステップの予測性能改善速度を正確に見積もるほど効果的なキャッシュ効率を実現することができる。第２の実施の形態では、学習ステップＳiのモデル探索を実行する前に、学習ステップＳi-1までモデル探索が実行済みであり、それぞれの実行にかかった学習時間とモデルの予測性能が分かっている。そこで性能予測部４１は、図５に示したように、機械学習アルゴリズムごとに、学習時間と予測性能との関係を示す曲線を示す式を求める。そして性能予測部４１は、求めた式に基づいて、各機械学習アルゴリズムにおける以後の学習ステップでの予測性能を正確に見積もることができる。その結果、予測性能改善速度も正確に見積もることができ、訓練データをキャッシュするか否かの判断を、正確に行うことができる。
【０１２５】
なお、上記の説明ではキャッシュ容量が不足する場合はキャッシュ領域から訓練データが削除されると説明しているが、他にＳＳＤやＨＤＤなど大容量な記憶装置に、キャッシュから削除した訓練データを退避させてもよい。
【０１２６】
また、上記の説明では閾値Ｋよりも予測改善速度が大きなアルゴリズムの数を実行予定回数とし、実行予定回数に基づいてキャッシュするか否かを判断したが、実行予定回数に対して、訓練データのデータ量で重みをつけることもできる。例えばデータ量が多いほど、重みを大きくする。これにより、複数の学習ステップにおいて、実行予定回数が等しい場合、それらの学習ステップの訓練データのうち、データ量が多い方が優先してキャッシュに保持される。データ量が多い訓練データの方が、データを生成するための時間が長くなるため、キャッシュに優先的に保持して再利用することで、処理効率を向上させることができる。
【０１２７】
また第２の実施の形態では、キャッシュのためのメモリ資源を訓練データに割り当てる際に、実行予定回数の大きな学習ステップの訓練データから順にメモリ資源を割り当てているが、実行予定回数をもとに割り当てるメモリ資源量を決定してもよい。例えば、実行予定回数が「３」の学習ステップ（第１の学習ステップ）と、実行予定回数が「２」の学習ステップ（第２の学習ステップ）とがある場合を考える。この場合、キャッシュ制御部４４は、例えば第１の学習ステップと第２の学習ステップとの実行予定回数から１を減算した値を求める。これは、実行予定回数が１回のときはモデル探索後のキャッシュが不要であるため、モデル探索後に使用した訓練データのキャッシュが有用となる回数は、実行予定回数より１回少なくなるためである。そしてキャッシュ制御部４４は、実行予定回数から「１」を減算した値に応じて、全キャッシュ容量が比例配分する。例えば第１の学習ステップと第２の学習ステップとに対して、全キャッシュ容量が２：１で分配される。
【０１２８】
次に、機械学習の手順について、図１６〜図１８を参照して詳細に説明する。なお、図１６〜図１８に示す処理で使用する変数は以下の通りである。
Ｎ：学習ステップの総数（１以上の整数）
ｉ：実行する学習ステップの順番（１≦ｉ≦Ｎ）
ｋ：予測性能改善速度を求めるための最低限の学習ステップ数（最小ステップ数）
ｄi：ｉ番目の学習ステップＳiで生成した訓練データ
ｓi：学習ステップＳiで生成した訓練データのサイズ
Ａj：ｊ種類目の機械学習アルゴリズム（ｊは１以上の整数）
Ｐi（Ａj）：学習ステップＳiにおいて機械学習アルゴリズムＡjでのモデル探索を実行した場合を想定した予測性能改善速度
Ｋ：予測性能改善速度の閾値
Ｔi：学習ステップＳiにおける実行予定回数（予測性能改善速度が閾値Ｋより大きい未実行の機械学習アルゴリズムの個数）
Ｆ（ｉ）：学習ステップＳiで生成した訓練データをキャッシュするかどうかのフラグであり、キャッシュする場合は「ｔｒｕｅ」、キャッシュしない場合は「ｆａｌｓｅ」となる。
Ｃ（ｉ）：学習ステップＳiで生成した訓練データがキャッシュ済みかどうかを示すフラグであり、キャッシュ済みであれば「ｔｒｕｅ」、キャッシュ済みでなければ「ｆａｌｓｅ」となる。
ｓo：元データのサイズ
図１６は、機械学習の詳細な手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。なお、各学習ステップには、サンプリング率が少ない順に、順番を示す番号が割り当てられている。そして、機械学習の指示が入力されたとき、変数ｉの初期値を「１」として、図１６に示す処理の実行が開始される。
【０１２９】
［ステップＳ２０１］モデル探索部４３は、ｉ番目の学習ステップＳiの訓練データを使い、全ての機械学習アルゴリズムでモデル探索を行ったか否かを判断する。未探索の機械学習アルゴリズムがあれば、処理がステップＳ２０２に進められる。全ての機械学習アルゴリズムでモデル探索が完了していれば、処理がステップＳ２０３に進められる。
【０１３０】
［ステップＳ２０２］探索条件決定部４２は、ｉ番目の学習ステップＳiの訓練データを用いたモデル探索を行っていない機械学習アルゴリズムを１つ選択する。そして探索条件決定部４２は、選択した機械学習アルゴリズムによるｉ番目の学習ステップＳiのモデル探索を示す探索条件を、モデル探索部４３に送信する。モデル探索部４３は、受信した探索条件に従って、モデル探索を行う。その後、処理がステップＳ２０１に進められる。
【０１３１】
［ステップＳ２０３］探索条件決定部４２は、変数ｉの値に１を加算する。
［ステップＳ２０４］探索条件決定部４２は、すべての機械学習アルゴリズムについて、最小ステップ数分の学習ステップによるモデル探索が完了したか否かを判断する。例えば「ｉ＞ｋ」を満たす場合、最小ステップ数分の学習ステップによるモデル探索が完了したと判断される。当該条件が満たされた場合、処理がステップＳ２０５に進められる。当該条件が満たされていなければ、処理がステップＳ２０１に進められる。
【０１３２】
［ステップＳ２０５］性能予測部４１、探索条件決定部４２、モデル探索部４３、およびキャッシュ制御部４４が連携し、改善速度優先探索によるモデル探索処理を実行する。
図１７は、改善速度優先探索によるモデル探索処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１３３】
［ステップＳ２１１］性能予測部４１は、未実施のモデル探索による予測性能改善速度Ｐi（Ａj）を算出する。この処理の詳細は後述する（図１８参照）。
［ステップＳ２１２］性能予測部４１は、予測性能改善速度Ｐi（Ａj）に基づいて、学習ステップごとの実行予定回数Ｔiを算出する。算出方法は、図１２〜図１５を参照して説明した通りである。
【０１３４】
［ステップＳ２１３］探索条件決定部４２は、予測性能改善速度が最大となるように、探索条件「Ａm，ｎ」を生成する。Ａmは、ｍ（ｍは１以上の整数）種類目の機械学習アルゴリズムを示す。ｎはその機械学習アルゴリズムにおける未実行の学習ステップのうちのサンプリング率が最小の学習ステップの順番を示す。例えば探索条件決定部４２は、各機械学習アルゴリズムについて、未実行の学習ステップのうちのサンプリング率が最小の学習ステップを特定する。次に探索条件決定部４２は、各機械学習アルゴリズムで特定した学習ステップにおける予測性能改善速度Ｐi（Ａj）が最大となる機械学習アルゴリズムを検出する。そして探索条件決定部４２は、検出した機械学習アルゴリズムと、その機械学習アルゴリズムにおける未実行の学習ステップのうちのサンプリング率が最小の学習ステップとを指定した探索条件（Ａm，ｎ）を生成する。
【０１３５】
探索条件決定部４２は、生成した探索条件をモデル探索部４３に送信する。モデル探索部４３は、キャッシュ制御部４４に、探索条件で指定された学習ステップｎで使用する訓練データｄnを要求する。
【０１３６】
［ステップＳ２１４］キャッシュ制御部４４は、探索条件で指定された学習ステップｎで使用する訓練データｄnが、キャッシュ済みか否かを判断する。例えばキャッシュ制御部４４は、「Ｃ（ｎ）＝ｔｒｕｅ」であれば、訓練データｄnがキャッシュ済みであると判断する。キャッシュ済みであれば、処理がステップＳ２１５に進められる。キャッシュ済みでなければ、処理がステップＳ２１７に進められる。
【０１３７】
［ステップＳ２１５］モデル探索部４３は、学習ステップｎで使用する訓練データｄnを、キャッシュから読み込む。例えばモデル探索部４３は、キャッシュ制御部４４を介して、キャッシュデータ記憶部４６から学習ステップｎで使用する訓練データｄnを読み込む。
【０１３８】
［ステップＳ２１６］モデル探索部４３は、学習ステップｎで使用する訓練データｄnを用いて、機械学習アルゴリズムＡmによるモデル探索を実行する。その後、処理がステップＳ２２８に進められる。
【０１３９】
［ステップＳ２１７］モデル探索部４３は、学習ステップｎで使用する訓練データｄnを、元データから生成する。例えばモデル探索部４３は、キャッシュ制御部４４に、元データを要求する。キャッシュ制御部４４は、元データがキャッシュデータ記憶部４６に格納されていれば、キャッシュデータ記憶部４６から元データを読み出し、モデル探索部４３に送信する。またキャッシュ制御部４４は、元データがキャッシュデータ記憶部４６に格納されていなければ、元データ記憶部４５から元データを読み出し、モデル探索部４３に送信する。そしてモデル探索部４３は、キャッシュ制御部４４から受け取った元データから単位データのサンプリング抽出を行い、訓練データｄnを生成する。
【０１４０】
［ステップＳ２１８］モデル探索部４３は、学習ステップｎで使用する訓練データｄnを用いて、機械学習アルゴリズムＡmによるモデル探索を実行する。
［ステップＳ２１９］キャッシュ制御部４４は、訓練データｄnをキャッシュできるか否かを判断する。例えばキャッシュ制御部４４は、キャッシュデータ記憶部４６の空き容量が、訓練データｄnのデータサイズｓn以上であれば、キャッシュできると判断する。キャッシュできる場合、処理がステップＳ２２７に進められる。キャッシュできない場合、処理がステップＳ２２０に進められる。
【０１４１】
［ステップＳ２２０］性能予測部４１は、未実施のモデル探索による予測性能改善速度Ｐi（Ａj）を算出する。この処理の詳細は後述する（図１８参照）。
［ステップＳ２２１］性能予測部４１は、予測性能改善速度Ｐi（Ａj）に基づいて、学習ステップごとの実行予定回数Ｔiを算出する。
【０１４２】
［ステップＳ２２２］性能予測部４１は、実行予定回数Ｔiが「１」以上となるのは、学習ステップｎのみか否かを判断する。学習ステップｎのみであれば処理がステップＳ２２５に進められる。学習ステップｎのみでなければ、処理がステップＳ２２３に進められる。
【０１４３】
［ステップＳ２２３］キャッシュ制御部４４は、探索条件で指定された学習ステップｎの訓練データｄnをキャッシュするか否かを判断する。例えばキャッシュ制御部４４は、訓練データがキャッシュ済み「Ｃ（ｉ）＝ｔｒｕｅ」の全ての学習ステップＳiの実行予定回数Ｔiと、探索条件で指定された学習ステップｎの実行予定回数Ｔnとに基づいて、キャッシュされている訓練データを削除する。例えばキャッシュ制御部４４は、「Ｃ（ｉ）＝ｔｒｕｅ」のすべての学習ステップＳiと探索条件で指定された学習ステップｎを、実行予定回数Ｔiと実行予定回数Ｔnに基づいて降順にソートする。次にキャッシュ制御部４４は、ソート後の上位から順に学習ステップを選択する。このときキャッシュ制御部４４は、元データのデータサイズｓoと「Ｆ（ｉ）＝ｔｒｕｅ」の全学習ステップの訓練データのデータサイズの合計を計算する。次にキャッシュ制御部４４は、その合計に、選択した学習ステップの訓練データのデータサイズを加算する。キャッシュ制御部４４は、加算結果がキャッシュデータ記憶部４６の記憶容量以下であれば、選択した学習ステップのフラグＦ（ｉ）を「ｔｒｕｅ」にして、次の学習ステップを選択する。
【０１４４】
キャッシュ制御部４４は、加算結果がキャッシュデータ記憶部４６の記憶容量を超えていれば、ソート順で選択した学習ステップ以降の各学習ステップのフラグＦ（ｉ）を「ｆａｌｓｅ」にする。キャッシュ制御部４４は、フラグＦ（ｉ）の設定を、訓練データがキャッシュ済み「Ｃ（ｉ）＝ｔｒｕｅ」の全ての学習ステップＳiと、探索条件で指定された学習ステップｎとに対して行う。その後、キャッシュ制御部４４は、学習ステップｎについて「フラグＦ（ｎ）＝ｔｒｕｅ」であるか否かを判断する。キャッシュ制御部４４は、「フラグＦ（ｎ）＝ｔｒｕｅ」であれば、訓練データｄnをキャッシュすると判断する。キャッシュ制御部４４は、「フラグＦ（ｎ）＝ｆａｌｓｅ」であれば、訓練データｄnをキャッシュしないと判断する。
【０１４５】
訓練データｄnをキャッシュする場合、処理がステップＳ２２４に進められる。訓練データｄnをキャッシュしない場合、処理がステップＳ２２８に進められる。
［ステップＳ２２４］キャッシュ制御部４４は、「Ｃ（ｉ）＝ｔｒｕｅ」であり、かつ「フラグＦ（ｉ）＝ｆａｌｓｅ」の学習ステップで使用する訓練データを、キャッシュデータ記憶部４６から削除する。その後、処理がステップＳ２２７に進められる。
【０１４６】
［ステップＳ２２５］キャッシュ制御部４４は、元データのデータサイズｓoと、探索条件で指定された学習ステップｎで使用する訓練データのデータサイズｓnとの合計が、キャッシュ容量以下か否かを判断する。キャッシュ容量以下の場合、処理がステップＳ２２７に進められる。データサイズの合計がキャッシュ容量を超える場合、処理がステップＳ２２６に進められる。
【０１４７】
［ステップＳ２２６］キャッシュ制御部４４は、元データをキャッシュから削除する。すなわち、キャッシュ制御部４４は、キャッシュデータ記憶部４６から元データを削除する。
【０１４８】
［ステップＳ２２７］キャッシュ制御部４４は、探索条件で指定された学習ステップｎで使用する訓練データｄnをキャッシュする。すなわちキャッシュ制御部４４は、訓練データｄnをキャッシュデータ記憶部４６に格納する。
【０１４９】
［ステップＳ２２８］モデル探索部２２７は、モデル探索の終了条件が満たされたか否かを判断する。終了条件が満たされた場合、処理が終了する。終了条件が満たされていなければ、処理がステップＳ２１３に進められる。
【０１５０】
次に、予測性能改善速度の算出手順について説明する。
図１８は、予測性能改善速度の算出手順の一例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１５１】
［ステップＳ２３１］性能予測部４１は、達成予測性能を特定する。例えば性能予測部４１は、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能を比較する。そして、性能予測部４１は、予測性能の最大値を達成予測性能とする。
【０１５２】
［ステップＳ２３２］性能予測部４１は、未処理の機械学習アルゴリズムを１つ選択する。
［ステップＳ２３３］性能予測部４１は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの実行時間を推定する。
【０１５３】
［ステップＳ２３４］性能予測部４１は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれで得られるモデルの予測性能を推定する。
［ステップＳ２３５］性能予測部４１は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの性能改善量を計算する。性能改善量は、例えば計算対象の学習ステップの予測性能から、達成予測性能を減算した値である。
【０１５４】
［ステップＳ２３６］性能予測部４１は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの予測性能改善速度を計算する。予測性能改善速度は、例えば計算対象の学習ステップの性能改善量を、その学習ステップの実行時間で除算した値である。
【０１５５】
［ステップＳ２３７］性能予測部４１は、すべての機械学習アルゴリズムについて処理したか否かを判断する。すべての機械学習アルゴリズムについての処理が完了していれば、予測性能改善速度の算出処理を終了する。未処理の機械学習アルゴリズムがあれば、処理がステップＳ２３２に進められる。
【０１５６】
図１６〜図１８に示した手順で機械学習を実施することで、キャッシュを有効に利用した効率的な処理が行われる。
図１９は、学習ステップごとの実行予定回数の第５の例を示す図である。図１９の例では、学習ステップＳ1と学習ステップＳ2とのデータを使いモデルの予測性能を実測した後、閾値Ｋ＝０．１で予測性能改善速度を算出している。なお、学習ステップＳ1は１０万、学習ステップＳ2は２０万，・・・、学習ステップＳ10は５１２０万個の単位データを有する訓練データを使用する。これらのすべての学習ステップがすべての機械学習アルゴリズムで実行されるのではない。例えばある機械学習アルゴリズムでモデル探索をしても探索時点で得られた最も高い予測性能のモデルを上回る結果が見込めない場合には、その機械学習アルゴリズムでのモデル探索は打ち切られる。図１９の例では、ある機械学習アルゴリズムで次に実行する学習ステップの予測性能改善速度が閾値（Ｋ＝０．１）以下になると、その機械学習アルゴリズム探索が打ち切られるものとする。
【０１５７】
ここで、実際に各学習ステップの機械学習アルゴリズムによるモデル探索を実施しても、予測性能改善速度が当初と変わらなかったと仮定する。すなわち、グラフに示された予測性能改善速度の値が正確だったものとする。このとき、実行される順序と、その実行が終わったときの実行予定回数の値は、図２０〜図２２に示す通りである。
【０１５８】
図２０は、第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第１の図である。図２１は、第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第２の図である。図２２は、第２の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第３の図である。
【０１５９】
ここで、図９に示したＬＲＵポリシーのキャッシュ状況と、図２０〜図２２に示したキャッシュ状況とを比較する。ＬＲＵポリシーでは全体の実行の中で１度キャッシュに乗ったデータが破棄された後に再度生成された回数（各列での黒丸の記号の数からばつ印の記号の数を減算した値）が全体で４回であるのに対し、第２の実施の形態では０回である。この中には最も巨大なデータである元データ（１０２４０万個）が含まれており、再度生成するためのコストは大きい。また、キャッシュを破棄した回数（全体のばつ印の記号の数）はＬＲＵポリシーでは１６回であるのに対し、第２の実施の形態では０回である。
【０１６０】
さらに第２の実施の形態には別の効果もある。
第２の実施の形態の並列分散処理システムでは、予測性能改善速度を全機械学習アルゴリズムの未実行の学習ステップについて、モデル探索を終えるたびに再計算する。これにより、キャッシュの可能性が高いデータを高精度で見積もることができる。
【０１６１】
また第２の実施の形態の並列分散処理システムでは、各機械学習アルゴリズムでそれまでに実行した情報をもとに毎回予測性能改善速度を算出する。これにより、予測性能を、実際の値に対してより正確に算出することが可能になる。すなわち、予測性能改善速度の予測性能の変化を表す曲線は実際に実行した結果をもとに算出するため、参考になる値が増えれば増えるほど実際の値を正確に予測することができる。
【０１６２】
以下、機械学習の実行が進むにつれて予測性能改善速度を毎回更新することで得られる３つの効果について説明する。
１つ目の効果は、最初に予測した予測性能改善速度ではキャッシュするべきだと判定していた訓練データであっても、実測値を積み重ねることでキャッシュが不要だと判断することができる。その結果、訓練データをキャッシュするために必要な処理時間を削減することができることである。
【０１６３】
図２３は、初期の予測結果の第１の例を示す図である。図２３には、すべての機械学習アルゴリズムについて、２段階の学習ステップＳ1，Ｓ2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。
【０１６４】
図２３の例では、学習ステップＳ3，Ｓ4，Ｓ5の訓練データが２回以上利用される可能性が高いと見込まれている。予測通りであれば、学習ステップＳ3，Ｓ4，Ｓ5の訓練データが生成されると、キャッシュされることとなる。
【０１６５】
ここで、予測性能改善速度が最も高い「アルゴリズムＣ」の学習ステップＳ3のモデル探索を実行した結果、予測に反して予測性能がほとんど改善しなかったものとする。この場合、予測性能改善速度の再計算により「アルゴリズムＣ」は探索候補から外される。
【０１６６】
図２４は、実測値反映後の予測結果の第１の例を示す図である。図２４は、「アルゴリズムＣ」を探索候補から除外した後の状況を示している。この場合、最初はキャッシュする予定であった学習ステップＳ4，Ｓ5の訓練データは再利用される可能性がなくなる。そのためキャッシュするのは、学習ステップＳ3の訓練データのみで済む。その結果、無駄な訓練データをキャッシュするための処理時間を削減することができる。
【０１６７】
２つ目の効果は、当初はキャッシュが不要だと予測していた訓練データについて、実際に機械学習の実行が進むにつれてキャッシュした方がよいと判明することで、その訓練データの生成処理が繰り返し実行されることを抑止できることである。
【０１６８】
図２５は、初期の予測結果の第２の例を示す図である。図２５には、すべての機械学習アルゴリズムについて、２段階の学習ステップＳ1，Ｓ2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。
【０１６９】
図２５の例では、予測性能改善速度の高い順に「アルゴリズムＤ」の学習ステップＳ3，Ｓ4，Ｓ5、「アルゴリズムＣ」の学習ステップＳ3、「アルゴリズムＤ」の学習ステップＳ6の順で実行されることになる。ここで当初の予測通り、「アルゴリズムＤ」の学習ステップＳ5までモデル探索が実行されたものとする。
【０１７０】
図２６は、実測値反映後の予測結果の第２の例を示す図である。図２６は、「アルゴリズムＤ」の学習ステップＳ5までモデル探索実行後の予測結果の例を示している。図２６の例では、次に実行されるのは「アルゴリズムＣ」の学習ステップＳ3になる。
【０１７１】
このとき、「アルゴリズムＣ」の学習ステップＳ3のモデル探索を実行した結果、予想と異なる予測性能が得られたものとする。すると、次のモデル探索の前に再度予測性能改善速度を評価すると、「アルゴリズムＣ」の予測性能改善速度が修正される。
【０１７２】
図２７は、実測値反映後の予測結果の第３の例を示す図である。図２７は、「アルゴリズムＣ」の学習ステップＳ3のモデル探索実行後の予測結果の例を示している。図２７の例では、「アルゴリズムＣ」の学習ステップＳ4以降の予測性能改善速度が、図２６の状態から変化している。その結果、図２６の時点では１度しか実行されないと予想していた学習ステップＳ6の訓練データが、「アルゴリズムＣ」によって再利用される可能性が出てきている。そのため学習ステップＳ6の訓練データをキャッシュするべきと判断することができる。これにより、元々の予測結果のみを参照していた場合に比べてキャッシュの再利用を促進することができる。特に、図２７の例の場合はデータ量が大きい学習ステップＳ6の再利用が可能になるため、処理の効率化の効果が高くなる。
【０１７３】
３つ目の効果は、以後、元データからのサンプリングが行われないことが判明したときは、元データをキャッシュから削除することで、多くの訓練データをキャッシュ可能となることである。例えば、訓練データの作成効率を優先して元データを削除することを避けていると、その分、訓練データを格納できる記憶容量が少なくなる。その結果、新たに生成した訓練データをキャッシュできない状況が発生しやすくなる。第２の実施の形態では、元データを削除しても全体の処理時間に影響がない場合には元データをキャッシュから削除し、新たに生成した訓練データをキャッシュする。これにより、訓練データをキャッシュしての再利用が促進され、処理時間を削減する効果が得られる。
【０１７４】
図２８は、初期の予測結果の第３の例を示す図である。図２８には、すべての機械学習アルゴリズムについて、２段階の学習ステップＳ1，Ｓ2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。図２８に示した予測結果が実際に正しいものとする。
【０１７５】
図２９は、実測値反映後の予測結果の第４の例を示す図である。図２９には、改善速度優先探索で、モデル探索を進め、学習ステップＳ6のモデル探索のみが残されている状況を示している。この後は「アルゴリズムＢ」、「アルゴリズムＡ」、「アルゴリズムＣ」の順で、学習ステップＳ6の訓練データを使ったモデル探索が実行され、それが終わると全ての条件でのモデル探索が完了することになる。
【０１７６】
ここで、「アルゴリズムＢ」の学習ステップＳ6でのモデル探索の際、元データをキャッシュに残しておくと、学習ステップＳ6で使用する訓練データをキャッシュするための空き容量が不足するものとする。このとき、元データをキャッシュに残すことを優先すると、学習ステップＳ6の訓練データを用いたモデル探索において、毎回、訓練データを作り直すことになる。第２の形態では、予測結果により、未実行のモデル探索が、学習ステップＳ6のみだと分かっているため、元データをキャッシュ上から削除して、学習ステップＳ6の訓練データをキャッシュする方が、効率的であると判断できる。学習ステップＳ6の訓練データをキャッシュすることで、学習ステップＳ6のような巨大な訓練データを毎回作り直すことがなくなり、探索にかかる時間を大きく削減することができる。
【０１７７】
なお、効率的なキャッシュの利用状況をモニタ２１に表示することもできる。
図３０は、キャッシュの利用状況の表示画面の例を示す図である。画面５０には、訓練データのキャッシュ状況を示す表５１が示されている。表５１には、訓練データのサンプリングサイズごとに、現在キャッシュされているか、キャッシュした回数、およびキャッシュから破棄した回数が示されている。繰り返しキャッシュされている訓練データが少ないほど、処理効率がよいことを示している。
【０１７８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１７９】
１０  機械学習管理装置
１１  演算部
１１ａ  生成手段
１１ｂ  算出手段
１１ｃ  優先度判定手段
１１ｄ  決定手段
１１ｅ  格納手段
１２  記憶部
【図１】
2017228086.tif 000003
【図２】
2017228086.tif 000004
【図３】
2017228086.tif 000005
【図４】
2017228086.tif 000006
【図５】
2017228086.tif 000007
【図６】
2017228086.tif 000008
【図７】
2017228086.tif 000009
【図８】
2017228086.tif 000010
【図９】
2017228086.tif 000011
【図１０】
2017228086.tif 000012
【図１１】
2017228086.tif 000013
【図１２】
2017228086.tif 000014
【図１３】
2017228086.tif 000015
【図１４】
2017228086.tif 000016
【図１５】
2017228086.tif 000017
【図１６】
2017228086.tif 000018
【図１７】
2017228086.tif 000019
【図１８】
2017228086.tif 000020
【図１９】
2017228086.tif 000021
【図２０】
2017228086.tif 000022
【図２１】
2017228086.tif 000023
【図２２】
2017228086.tif 000024
【図２３】
2017228086.tif 000025
【図２４】
2017228086.tif 000026
【図２５】
2017228086.tif 000027
【図２６】
2017228086.tif 000028
【図２７】
2017228086.tif 000029
【図２８】
2017228086.tif 000030
【図２９】
2017228086.tif 000031
【図３０】
2017228086.tif 000032