図面 (/)

技術 機械学習管理プログラム、機械学習管理方法、および機械学習管理装置

出願人 富士通株式会社
発明者 黒松信行上田晴康
出願日 2016年6月22日 (4年6ヶ月経過) 出願番号 2016-123674
公開日 2017年12月28日 (3年0ヶ月経過) 公開番号 2017-228086
状態 未査定
技術分野 階層構造のメモリシステム 学習型計算機
主要キーワード 予測フェーズ サンプリング抽出 並列分散処理システム モデル探索 予測区間 学習データ作成 最小ステップ 分散計算システム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年12月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

キャッシュされたデータの再利用を促進させる。

解決手段

機械学習管理装置10は、複数の第1モデルそれぞれの予測性能に基づいて、複数の第2訓練データを用いて複数のアルゴリズムモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、複数の第2モデルそれぞれについて算出する。次に機械学習管理装置10は、第2訓練データを用いて生成された第2モデルのうち指標値が閾値以上となる第2モデルの数を、その第2訓練データをキャッシュする優先度とする。そして、機械学習管理装置10は、第2訓練データを用いたモデル探索が実行されたとき、その第2訓練データの優先度に基づいてキャッシュするか否かを決定し、キャッシュすると決定した場合、その第2訓練データを記憶部12に格納する。

概要

背景

近年ビッグデータ処理技術の適用先として期待されている分野に機械学習がある。機械学習とはデータを分析することでデータの傾向(モデル)を明らかにし、新たに手に入った未知のデータとモデルを比較し、出力を予測することである。

機械学習は学習フェーズ予測フェーズの二つからなる。学習フェーズでは訓練データを入力としてモデルを出力する。予測フェーズでは学習フェーズで出力したモデルと、予測データを基に、予測する。未知の事例の結果を正確に予測する能力(以下、予測性能と呼ぶ)は、学習に用いる訓練データのサイズが大きいほど高くなる。一方、訓練データのサイズが大きいほど、モデルの学習時間も長くなる。そこで、実用上十分な予測性能をもつモデルを効率的に得られるようにする方法として、プログレッシブサンプリング法が提案されている。

プログレッシブサンプリング法では、コンピュータは、まず小さなサイズの訓練データを用いてモデルを学習する。コンピュータは、訓練データとは異なる既知の事例を示すテストデータを用いて、モデルによって予測した結果と既知の結果とを比較し、学習されたモデルの予測性能を評価する。予測性能が十分でない場合、コンピュータは、前回よりもサイズが大きい訓練データを用いてモデルを再度学習する。以上を予測性能が十分に高くなるまで繰り返すことで、過度にサイズの大きな訓練データを使用することを抑制でき、モデルの学習時間を短縮することができる。

なお機械学習に関する技術としては、例えば学習処理反復処理を伴う際に、学習処理の起動と終了及びデータロードを抑制し、処理速度を向上させる分散計算システムが考えられている。また選択的にサンプリングして効率的に学習する学習システムも考えられている。また学習データ作成負荷を高くすることなくスタッキング用学習データを作成することができる学習データ作成方法も考えられている。さらに、簡単な手法により汎用能力を向上できる階層型ニューラルネットワーク学習方法も考えられている。

概要

キャッシュされたデータの再利用を促進させる。機械学習管理装置10は、複数の第1モデルそれぞれの予測性能に基づいて、複数の第2訓練データを用いて複数のアルゴリズムモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、複数の第2モデルそれぞれについて算出する。次に機械学習管理装置10は、第2訓練データを用いて生成された第2モデルのうち指標値が閾値以上となる第2モデルの数を、その第2訓練データをキャッシュする優先度とする。そして、機械学習管理装置10は、第2訓練データを用いたモデル探索が実行されたとき、その第2訓練データの優先度に基づいてキャッシュするか否かを決定し、キャッシュすると決定した場合、その第2訓練データを記憶部12に格納する。

目的

機械学習とはデータを分析することでデータの傾向(モデル)を明らかにし、新たに手に入った未知のデータとモデルを比較し、出力を予測することである

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピュータに、サンプリング率の異なる複数の訓練データのうちの一部の第1訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第1モデルを生成し、前記複数の第1モデルそれぞれの予測性能に基づいて、前記複数の訓練データのうちの前記第1訓練データ以外の複数の第2訓練データを用いて前記複数のアルゴリズムでモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、前記複数の第2モデルそれぞれについて算出し、前記複数の第2訓練データそれぞれを対象とし、対象の第2訓練データを用いて生成される第2モデルのうち前記指標値が閾値以上となる第2モデルの数を、前記対象の第2訓練データをキャッシュする優先度とし、キャッシュされていない新規の第2訓練データを用いたモデル探索が実行されたとき、前記新規の第2訓練データの前記優先度に基づいて、前記新規の第2訓練データをキャッシュするか否かを決定し、キャッシュすると決定した場合、前記新規の第2訓練データを記憶部に格納する、処理を実行させる機械学習管理プログラム

請求項2

前記決定では、既にキャッシュされている1または複数の既存の第2訓練データのうち前記新規の第2訓練データより前記優先度が高い既存の第2訓練データと前記新規の第2訓練データとの合計データサイズが、前記記憶部の容量以下のとき、前記新規の第2訓練データをキャッシュすると決定する、請求項1記載の機械学習管理プログラム。

請求項3

前記決定では、前記新規の第2訓練データをキャッシュすると決定し、かつ前記1または複数の既存の第2訓練データと前記新規の第2訓練データとの合計データサイズが前記記憶部の容量を超えるとき、前記新規の第2訓練データより前記優先度が低い既存の第2訓練データを、記憶部から削除すると決定する、請求項2記載の機械学習管理プログラム。

請求項4

前記算出では、第2訓練データを用いたモデル探索が実行されるごとに、前記複数の第1モデルそれぞれの予測性能と、既に生成されている既存の第2モデルの予測性能とに基づいて、未生成の第2モデルそれぞれについての前記指標値を再計算する、請求項1乃至3のいずれかに記載の機械学習管理プログラム。

請求項5

前記決定では、前記複数の訓練データの生成元である元データがキャッシュされているとき、前記優先度が1以上の第2訓練データが前記新規の第2訓練データのみであり、かつ前記元データと前記新規の第2訓練データとの合計データサイズが前記記憶部の容量を超えるとき、前記元データを前記記憶部から削除すると決定する、請求項1乃至4のいずれかに記載の機械学習管理プログラム。

請求項6

前記算出では、前記複数の第2モデルそれぞれを対象とし、対象の第2モデルの生成に要する実行時間と、前記対象の第2モデルの予測性能とに基づいて、予測性能の改善速度を算出し、前記改善速度を前記対象の第2モデルの前記指標値とする、請求項1乃至5のいずれかに記載の機械学習管理プログラム。

請求項7

前記コンピュータに、さらに、前記複数の第2モデルそれぞれの前記指標値に基づいて、前記複数の第2モデルの中から生成する生成対象第2モデルを選択し、前記生成対象第2モデルを生成するための第2訓練データを用いて、前記生成対象第2モデルを生成するための機械学習アルゴリズムによるモデル探索を実行することにより、前記生成対象第2モデルを生成する、処理を実行させる請求項1乃至6のいずれかに記載の機械学習管理プログラム。

請求項8

前記閾値は、前記複数の第2モデルを生成するか否かの判断基準となる前記指標値の値である、請求項1乃至7のいずれかに記載の機械学習管理プログラム。

請求項9

コンピュータが、サンプリング率の異なる複数の訓練データのうちの一部の第1訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第1モデルを生成し、前記複数の第1モデルそれぞれの予測性能に基づいて、前記複数の訓練データのうちの前記第1訓練データ以外の複数の第2訓練データを用いて前記複数のアルゴリズムでモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、前記複数の第2モデルそれぞれについて算出し、前記複数の第2訓練データそれぞれを対象とし、対象の第2訓練データを用いて生成される第2モデルのうち前記指標値が閾値以上となる第2モデルの数を、前記対象の第2訓練データをキャッシュする優先度とし、キャッシュされていない新規の第2訓練データを用いたモデル探索が実行されたとき、前記新規の第2訓練データの前記優先度に基づいて、前記新規の第2訓練データをキャッシュするか否かを決定し、キャッシュすると決定した場合、前記新規の第2訓練データを記憶部に格納する、機械学習管理方法

請求項10

サンプリング率の異なる複数の訓練データのうちの一部の第1訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第1モデルを生成する生成手段と、前記複数の第1モデルそれぞれの予測性能に基づいて、前記複数の訓練データのうちの前記第1訓練データ以外の複数の第2訓練データを用いて前記複数のアルゴリズムでモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、前記複数の第2モデルそれぞれについて算出する算出手段と、前記複数の第2訓練データそれぞれを対象とし、対象の第2訓練データを用いて生成される第2モデルのうち前記指標値が閾値以上となる第2モデルの数を、前記対象の第2訓練データをキャッシュする優先度とする優先度判定手段と、キャッシュされていない新規の第2訓練データを用いたモデル探索が実行されたとき、前記新規の第2訓練データの前記優先度に基づいて、前記新規の第2訓練データをキャッシュするか否かを決定する決定手段と、キャッシュすると決定した場合、前記新規の第2訓練データを記憶部に格納する格納手段と、を有する機械学習管理装置

技術分野

0001

本発明は、機械学習管理プログラム、機械学習管理方法、および機械学習管理装置に関する。

背景技術

0002

近年ビッグデータ処理技術の適用先として期待されている分野に機械学習がある。機械学習とはデータを分析することでデータの傾向(モデル)を明らかにし、新たに手に入った未知のデータとモデルを比較し、出力を予測することである。

0003

機械学習は学習フェーズ予測フェーズの二つからなる。学習フェーズでは訓練データを入力としてモデルを出力する。予測フェーズでは学習フェーズで出力したモデルと、予測データを基に、予測する。未知の事例の結果を正確に予測する能力(以下、予測性能と呼ぶ)は、学習に用いる訓練データのサイズが大きいほど高くなる。一方、訓練データのサイズが大きいほど、モデルの学習時間も長くなる。そこで、実用上十分な予測性能をもつモデルを効率的に得られるようにする方法として、プログレッシブサンプリング法が提案されている。

0004

プログレッシブサンプリング法では、コンピュータは、まず小さなサイズの訓練データを用いてモデルを学習する。コンピュータは、訓練データとは異なる既知の事例を示すテストデータを用いて、モデルによって予測した結果と既知の結果とを比較し、学習されたモデルの予測性能を評価する。予測性能が十分でない場合、コンピュータは、前回よりもサイズが大きい訓練データを用いてモデルを再度学習する。以上を予測性能が十分に高くなるまで繰り返すことで、過度にサイズの大きな訓練データを使用することを抑制でき、モデルの学習時間を短縮することができる。

0005

なお機械学習に関する技術としては、例えば学習処理反復処理を伴う際に、学習処理の起動と終了及びデータロードを抑制し、処理速度を向上させる分散計算システムが考えられている。また選択的にサンプリングして効率的に学習する学習システムも考えられている。また学習データ作成負荷を高くすることなくスタッキング用学習データを作成することができる学習データ作成方法も考えられている。さらに、簡単な手法により汎用能力を向上できる階層型ニューラルネットワーク学習方法も考えられている。

0006

特開2012−22558号公報
特開2009−301557号公報
特開2006−330935号公報
特開2004−265190号公報

先行技術

0007

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.

発明が解決しようとする課題

0008

予測性能を高めるためには、対象のデータに対して適切な機械学習のアルゴリズムを選択することも重要である。適切な機械学習のアルゴリズムを選択するために、例えば同じデータに対して機械学習アルゴリズムを変えながら何度もモデルの作成とモデルの評価とが繰り返し実行される。選択された機械学習アルゴリズムによりモデルの生成および評価を行う一連の処理を、以下モデル探索と呼ぶ。

0009

モデル探索を繰り返すとき、過去に実施したモデル探索の過程で生成したデータを繰り返し使用する場合がある。そこでモデル探索時に生成したデータをキャッシュに格納しておくことで、データを再利用することができる。しかし、キャッシュの容量には制限があり、すべてのデータをキャッシュすることはできない。また、LRU(Least Recently Used)のような一般的なキャッシュアルゴリズムでは機械学習におけるモデル探索の手順が考慮されておらず、機械学習時のデータの再利用が不十分である。

0010

1つの側面では、本件は、キャッシュされたデータの再利用を促進させることを目的とする。

課題を解決するための手段

0011

1つの案では、コンピュータに以下の処理を実行させる機械学習管理プログラムが提供される。機械学習管理プログラムに基づいてコンピュータは、まず、サンプリング率の異なる複数の訓練データのうちの一部の第1訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第1モデルを生成する。次にコンピュータは、複数の第1モデルそれぞれの予測性能に基づいて、複数の訓練データのうちの第1訓練データ以外の複数の第2訓練データを用いて複数のアルゴリズムでモデル探索することで生成される複数の第2モデルそれぞれを生成するか否かの判別に用いる指標値を、複数の第2モデルそれぞれについて算出する。次にコンピュータは、複数の第2訓練データそれぞれを対象とし、対象の第2訓練データを用いて生成される第2モデルのうち指標値が閾値以上となる第2モデルの数を、対象の第2訓練データをキャッシュする優先度とする。次にコンピュータは、キャッシュされていない新規の第2訓練データを用いたモデル探索が実行されたとき、新規の第2訓練データの優先度に基づいて、新規の第2訓練データをキャッシュするか否かを決定する。そしてコンピュータは、キャッシュすると決定した場合、新規の第2訓練データを記憶部に格納する。

発明の効果

0012

1態様によれば、キャッシュされたデータの再利用を促進させることができる。

図面の簡単な説明

0013

第1の実施の形態に係る機械学習管理装置の構成例を示す図である。
第2の実施の形態の並列分散処理システムの構成例を示す図である。
マスタノードハードウェアの一構成例を示す図である。
サンプリングサイズと予測性能の関係例を示すグラフである。
学習時間と予測性能の関係例を示すグラフである。
複数の機械学習アルゴリズムについて改善速度優先探索を行った場合の実行順序の例を示す図である。
モデル探索の実行順序の第1の例を示す図である。
モデル探索の実行順序の第2の例を示す図である。
LRUポリシーによるキャッシュ状況の推移例を示す図である。
第2の実施の形態における並列分散処理システムが有する機械学習機能を示すブロック図である。
機械学習の概略手順を示すフローチャートである。
学習ステップごとの実行予定回数の第1の例を示す図である。
学習ステップごとの実行予定回数の第2の例を示す図である。
学習ステップごとの実行予定回数の第3の例を示す図である。
学習ステップごとの実行予定回数の第4の例を示す図である。
機械学習の詳細な手順を示すフローチャートである。
改善速度優先探索によるモデル探索処理の手順を示すフローチャートである。
予測性能改善速度の算出手順の一例を示すフローチャートである。
学習ステップごとの実行予定回数の第5の例を示す図である。
第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第1の図である。
第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第2の図である。
第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第3の図である。
初期の予測結果の第1の例を示す図である。
実測値反映後の予測結果の第1の例を示す図である。
初期の予測結果の第2の例を示す図である。
実測値反映後の予測結果の第2の例を示す図である。
実測値反映後の予測結果の第3の例を示す図である。
初期の予測結果の第3の例を示す図である。
実測値反映後の予測結果の第4の例を示す図である。
キャッシュの利用状況表示画面の例を示す図である。

実施例

0014

以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態について説明する。第1の実施の形態は、キャッシュされたデータの再利用を促進させるものである。そこで、まずキャッシュされたデータの再利用の困難性について説明する。

0015

一般には、多くのアルゴリズムでモデルを探索するほど高精度なモデルを得ることができる。他方、モデル探索を行うアルゴリズムの数が増えるほど、機械学習の計算量が増大する。特にビッグデータの機械学習を行う場合、1つのマシンで扱うことができないデータサイズとなる。そこで、並列分散処理技術を用いたモデル探索が行われる。機械学習は処理の繰り返しが多発するため、データをメモリに保持したまま処理を適用できるインメモリ並列分散処理のミドルウェアが用いられる。このように、データをメモリに保持したまま処理を適用することは、キャッシュと呼ばれる。ミドルウェアによるキャッシュ機能では、データ処理の最中に得られた中間結果が再利用できるように各サーバローカルメモリ、またはローカルディスクに保存される。同じデータに対して別の処理を適用するケースでは、データを再生成せずに済み、処理時間の短縮が見込まれる。

0016

複数のアルゴリズムでのモデル探索に用いる訓練データを、プログレッシブサンプリング法を用いてサンプリングを行う場合、インメモリ並列分散処理のミドルウェアで提供されるキャッシュを有効に利用できる。例えば特定のアルゴリズムにおけるモデル探索のためにサンプリングした訓練データをキャッシュしておき、その訓練データを他のアルゴリズムにおけるモデル探索で再利用することで、処理の効率化が図れる。

0017

なおプログレッシブサンプリング法では、訓練データのサイズを徐々に拡大しながら、複数の訓練データが作成されるために、キャッシュ用の記憶容量が枯渇し、すべての訓練データをキャッシュできなくなる場合があり得る。その場合、訓練データの一部をキャッシュから削除することとなる。例えばLRUのポリシーに従う場合、最終アクセス時刻が古いデータが削除される。1つの訓練データを生成するごとに、その訓練データを用いて複数のアルゴリズムでモデル探索を行うのであれば、LRUポリシーでのキャッシュ制御は有効である。

0018

なお、1つの訓練データを生成するごとに、その訓練データを用いて複数のアルゴリズムでモデル探索を行うと、最終的に採用するモデルの予測性能の向上に寄与しない無駄な学習が多く発生し、学習時間が過度に長くなってしまう場合がある。そこで、無駄なモデル探索を実施する回数を削減するために、例えば、予測性能の向上度合い(予測性能改善速度)が高いと見込まれる機械学習アルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めることが考えられる。

0019

しかし、予測性能改善速度が高いアルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めると、LRUでのキャッシュ制御では、キャッシュされた訓練データを効率的に利用することができない。すなわち、データサイズの大きい訓練データを用いたモデル探索が行われたときに、その訓練データをキャッシュするために、他の訓練データが削除される。すると、別の機械学習アルゴリズムで、データサイズの小さい訓練データを用いたモデル探索を実施する際に、訓練データを再生することとなり、処理量の増加を招く。そこで、複数の訓練データを用いて複数のアルゴリズムでモデル探索を実行する際に、無駄なモデル探索を抑止するような順番でモデル探索を進めた場合でも、キャッシュされた訓練データを効率的に再利用できるようなキャッシュ制御技術が求められる。

0020

そこで第1の実施の形態では、モデル探索の過程でデータを生成したときに、以後のモデル探索でそのデータを利用する回数を予測し、利用回数が多いデータを優先的にキャッシュするようにする。キャッシュされたデータの再利用を促進させることができる。

0021

図1は、第1の実施の形態に係る機械学習管理装置の構成例を示す図である。機械学習管理装置10は、演算部11と記憶部12とを有する。演算部11は、生成手段11a、算出手段11b、優先度判定手段11c、決定手段11d、および格納手段11eを有する。

0022

生成手段11aは、サンプリング率の異なる複数の訓練データのうちの一部の第1訓練データを用いて、複数の機械学習アルゴリズムそれぞれでモデル探索を実行することにより複数の第1モデルを生成する。また生成手段11aは、複数の第1モデルを生成後、複数の第2モデルそれぞれの指標値に基づいて、複数の第2モデルの中から生成する生成対象第2モデルを選択する。例えば、指標値の最も高いモデルを選択する。そして生成手段11aは、生成対象第2モデルを生成するための第2訓練データを用いて、生成対象第2モデルを生成するための機械学習アルゴリズムによるモデル探索を実行することにより、生成対象第2モデルを生成する。生成手段11aは、例えば、指標値が閾値以上の第2モデルがなくなるまで、生成対象第2モデルの選択と、その生成対象第2モデルの生成とを繰り返す。

0023

算出手段11bは、複数の訓練データのうちの第1訓練データ以外の複数の第2訓練データを用いて複数のアルゴリズムでモデル探索することで生成されるモデルを、第2のモデルとする。そして算出手段11bは、複数の第1モデルそれぞれの予測性能に基づいて、複数の第2モデルそれぞれについて、生成するか否かの判別に用いる指標値を算出する。例えば算出手段11bは、複数の第2モデルそれぞれを対象とし、対象の第2モデルの生成に要する所要時間と、対象の第2モデルの予測性能とに基づいて、予測性能の改善速度を算出し、改善速度を対象の第2モデルの指標値とする。

0024

優先度判定手段11cは、複数の第2訓練データそれぞれを対象とし、対象の第2訓練データを用いて生成される第2モデルのうち指標値が閾値以上となる第2モデルの数を、対象の第2訓練データをキャッシュする優先度とする。

0025

決定手段11dは、キャッシュされていない新規の第2訓練データを用いたモデル探索が実行されたとき、新規の第2訓練データの優先度に基づいて、新規の第2訓練データをキャッシュするか否かを決定する。例えば決定手段11dは、既にキャッシュされている1または複数の既存の第2訓練データと新規の第2訓練データとを、優先度が高い順に並べる。そして決定手段11dは、新規の第2訓練データより上位に並べられた既存の第2訓練データと新規の第2訓練データとの合計データサイズが、キャッシュ容量(記憶部12の容量)以下のとき、新規の第2訓練データをキャッシュすると決定する。

0026

また決定手段11dは、新規の第2訓練データをキャッシュすると決定したときに、記憶部12に十分な空き容量がない場合、記憶部12から削除する訓練データを決定する。記憶部12に十分な空き容量がない場合とは、例えば、既存の第2訓練データのすべてと新規の第2訓練データとの合計データサイズがキャッシュ容量を超える場合である。例えば決定手段11dは、新規の第2訓練データをキャッシュすると決定し、かつ記憶部12に十分な空き容量がない場合、新規の第2訓練データより優先度が低い既存の第2訓練データを、キャッシュ領域から削除すると決定する。

0027

格納手段11eは、キャッシュすると決定した場合、新規の第2訓練データを記憶部12のキャッシュ領域に格納する。この際、格納手段11eは、削除すると決定された既存の第2訓練データがある場合、その第2訓練データを記憶部12から削除する。

0028

記憶部12は、キャッシュされた訓練データを記憶する。記憶部12の記憶容量がキャッシュ容量である。
このような機械学習管理装置10において、生成手段11aは、例えば「A」、「B」、「C」の3つの機械学習アルゴリズムでモデル探索を行うものとする。モデル探索には、モデル生成に使用する訓練データの生成、モデルの生成、およびモデルの評価が含まれるものとする。なお使用する訓練データが記憶部12に格納されている場合、生成手段11aは、使用する訓練データの生成に代えて、記憶部12からその訓練データを取得する。

0029

なお図1の例では、訓練データ「d1」、「d2」を、第1訓練データとしている。また訓練データ「d3」〜「d6」を、第2訓練データとしている。訓練データは、「d1」が最もデータサイズが小さく、「d6」が最もデータサイズが大きいものとする。

0030

機械学習が開始されると、生成手段11aは、訓練データ「d1」、「d2」それぞれを用いて、機械学習アルゴリズム「A」、「B」、「C」でモデル探索を実行する。その結果、第1モデルとして6個のモデル「1」〜「6」が生成される。生成手段11aは、生成した各モデルについて、そのモデル生成時のモデル探索の実行時間「t1」〜「t6」と、モデルの予測性能「p1」〜「p6」とを求める。

0031

算出手段11bは、第2訓練データを用いて生成される未生成の第2モデルについて、生成するか否かの判別に用いる指標値を算出する。図1の例では、第2モデルの指標値が閾値「0.001」以上の場合、その第2モデルを生成するモデル探索が行われる。

0032

改善速度を指標値とする場合、算出手段11bは、例えば、特定の機械学習アルゴリズムにより第1モデルを生成時の実行時間から、その機械学習アルゴリズムによる第2モデルの生成を伴うモデル探索の実行時間を推定する。実行時間は、例えば使用する訓練データのデータサイズの違いから推定できる。また算出手段11bは、例えば、特定の機械学習アルゴリズムの第1モデルの予測性能に基づいて、モデル生成に使用する訓練データのデータサイズと、その機械学習アルゴリズムで生成されるモデルの予測性能との関係を表す式を求める。機械学習アルゴリズムに対応付けて求められた式に基づいて、第2訓練データを用いてその機械学習アルゴリズムでモデル探索を行ったときに生成されるモデルの予測性能を推定できる。第2モデルについて推定された予測性能から、第1モデルの予測性能の最大値を減算すると、その第2モデルを生成することによる予測性能の改善量が求まる。第2モデルの改善量を、その第2モデルの実行時間で除算した値が、その第2モデルの改善速度となる。

0033

指標値が算出されると、優先度判定手段11cにより、訓練データごとに、その訓練データを用いて生成される第2モデルのうち、指標値が閾値以上の第2モデルの数が計数される。そして計数結果が、各訓練データの優先度となる。図1の例では、訓練データ「d3」を用いて生成される第2データのうち、改善速度が閾値「0.001」以上なのは3つであり、訓練データ「d3」の優先度は「3」となる。訓練データ「d4」を用いて生成される第2データのうち、改善速度が閾値「0.001」以上なのは2つであり、訓練データ「d4」の優先度は「2」となる。訓練データ「d5」を用いて生成される第2データのうち、改善速度が閾値「0.001」以上なのは2つであり、訓練データ「d5」の優先度は「2」となる。訓練データ「d6」を用いて生成される第2データのうち、改善速度が閾値「0.001」以上なのは1つであり、訓練データ「d6」の優先度は「1」となる。

0034

その後、生成手段11aにより、第2訓練データを用いたモデル探索が行われる。例えば改善速度が最も高い第2モデルが特定され、その第2モデルの生成に利用する訓練データを用い、その第2モデルを生成するための機械学習アルゴリズムによりモデル探索が実行される。図1の例では、訓練データ「d3」を用い、機械学習アルゴリズム「A」によりモデル探索が実行され、モデル「7」が生成される。この際、訓練データ「d3」は、元データからのデータサンプリングによって生成される。

0035

訓練データ「d3」が生成されると、決定手段11dによって、訓練データ「d3」をキャッシュするか否かが決定される。図1の例では、訓練データ「d3」の優先度は「3」であり、最も高いため、キャッシュすると決定される。キャッシュすると決定されると、格納手段11eにより、訓練データ「d3」が記憶部12に格納される。すなわち、訓練データ「d3」がキャッシュされる。

0036

その後、例えば訓練データ「d4」を用いた機械学習アルゴリズム「A」によるモデル探索、訓練データ「d5」を用いた機械学習アルゴリズム「A」によるモデル探索、訓練データ「d6」を用いた機械学習アルゴリズム「A」によるモデル探索が、順に行われる。ここで、訓練データ「d4」、訓練データ「d5」をキャッシュした後の記憶部12の空き容量が、訓練データ「d6」のデータサイズに満たないものとする。このとき訓練データ「d6」の優先度は「1」であり、最も低いため、キャッシュしないと決定される。その結果、訓練データ「d6」はキャッシュされずに破棄される。

0037

このようなキャッシュ制御を行うことで、以後再利用される可能性のない訓練データ「d6」を、正しく破棄することができる。すなわち、LRUポリシーを用いると最新の訓練データ「d6」をキャッシュする代わりに、他の訓練データをキャッシュから削除することとなる。しかし、優先度の高い訓練データは再利用される予定があり、その訓練データをキャッシュから削除してしまうと、その訓練データを用いたモデル探索の際に、再度訓練データを生成することとなり、処理効率が悪化する。それに対し、図1に示す機械学習管理装置10によれば、訓練データ「d6」をキャッシュせずに破棄するため、他の訓練データを削除せずにすみ、処理効率を向上させることができる。

0038

なお算出手段11bは、第2訓練データを用いたモデル探索が実行されるごとに、複数の第1モデルそれぞれの予測性能と、既に生成されている既存の第2モデルの予測性能とに基づいて、未生成の第2モデルそれぞれについての指標値を再計算してもよい。これにより、優先度の算出精度が向上する。その結果、機械学習の処理効率が向上する。

0039

また、訓練データの生成元となる元データを、記憶部12にキャッシュしておくこともできる。この際、決定手段11dは、例えば、優先度が1以上の第2訓練データが新規の第2訓練データのみであり、かつ元データと新規の第2訓練データとの合計データサイズがキャッシュ容量を超えるとき、元データをキャッシュ領域から削除すると決定する。これにより、元データをデータサンプリング元として使用する可能性がなくなった場合、元データを記憶部12から削除して、他の訓練データをキャッシュするための空き容量を確保できる。その結果、再利用される訓練データがキャッシュできるようになり、訓練データの再利用による処理効率の向上が図れる。

0040

なお、演算部11は、例えば機械学習管理装置10が有するプロセッサである。また、生成手段11a、算出手段11b、優先度判定手段11c、決定手段11d、および格納手段11eは、機械学習管理装置10が有するプロセッサが実行する処理により実現される。記憶部12は、例えば機械学習管理装置10が有するメモリまたはストレージ装置により実現することができる。

0041

また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ビッグデータの機械学習において、複数の機械学習アルゴリズムに対してプログレッシブサンプリング法を用いたモデル探索を行うものである。第2の実施の形態では、並列分散処理システムにより、機械学習を実施する。

0042

図2は、第2の実施の形態の並列分散処理システムの構成例を示す図である。並列分散処理システムは、例えば1台のマスタノード100と複数のワーカノード210,220,・・・を含んでいる。マスタノード100と複数のワーカノード210,220,・・・とは、ネットワーク20で接続されている。マスタノード100は、機械学習の分散処理を制御するコンピュータである。ワーカノード210,220,・・・は、機械学習の実行系の処理を、並列処理で実行するコンピュータである。

0043

図3は、マスタノードのハードウェアの一構成例を示す図である。マスタノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific IntegratedCircuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。

0044

メモリ102は、マスタノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性半導体記憶装置が使用される。

0045

バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。

0046

ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。

0047

グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置液晶表示装置などがある。

0048

入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネルタブレットタッチパッドトラックボールなどがある。

0049

光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。

0050

機器接続インタフェース107は、マスタノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。

0051

ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。

0052

以上のようなハードウェア構成によって、第2の実施の形態のマスタノード100の処理機能を実現することができる。なお、ワーカノード210,220,・・・も、図3に示したマスタノード100と同様のハードウェアにより実現することができる。また、第1の実施の形態に示した機械学習管理装置10も、図3に示したマスタノード100と同様のハードウェアにより実現することができる。

0053

マスタノード100およびワーカノード210,220,・・・は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。マスタノード100とワーカノード210,220,・・・に実行させる処理内容記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、マスタノード100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またマスタノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。

0054

次に、機械学習におけるサンプリングサイズと予測性能と学習時間との間の関係、および、プログレッシブサンプリング法について説明する。
第2の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。並列分散処理システム内の装置または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク20経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常は、2以上の説明変数の値と1つの目的変数の値とを含む。例えば、商品需要予測を行う機械学習では、気温湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。

0055

並列分散処理システムは、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常は、2以上の説明変数と2以上の係数と1つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式指数関数対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。

0056

学習されたモデルを用いることで、未知の事例の説明変数の値(要因)から、未知の事例の目的変数の値(結果)を予測することができる。例えば、来期気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、0以上1以下の確率値などの連続値であってもよいし、YES/NOの2値などの離散値であってもよい。

0057

学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。並列分散処理システムは、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの1/2程度とする。並列分散処理システムは、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値(予測値)とテストデータに含まれる目的変数の値(実績値)とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。

0058

予測性能の指標としては、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(RMSE)などが挙げられる。例えば、結果がYES/NOの2値で表されるとする。また、N件のテストデータの事例のうち、予測値=YES・実績値=YESの件数をTp、予測値=YES・実績値=NOの件数をFp、予測値=NO・実績値=YESの件数をFn、予測値=NO・実績値=NOの件数をTnとする。この場合、正答率は予測が当たった割合であり、(Tp+Tn)/Nと算出される。適合率は「YES」の予測を間違えない確率であり、Tp/(Tp+Fp)と算出される。平均二乗誤差は、各事例の実績値をyと表し予測値をy^と表すと、(sum(y−y^)2/N)1/2と算出される。

0059

ここで、ある1つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数(サンプリングサイズ)が大きいほど予測性能は高くなる。
図4は、サンプリングサイズと予測性能の関係例を示すグラフである。曲線30は、モデルの予測性能とサンプリングサイズとの間の関係を示す。サンプリングサイズs1,s2,s3,s4,s5の間の大小関係は、s1<s2<s3<s4<s5である。例えば、s2はs1の2倍または4倍、s3はs2の2倍または4倍、s4はs3の2倍または4倍、s5はs4の2倍または4倍である。

0060

曲線30が示すように、サンプリングサイズがs2の場合の予測性能はs1の場合よりも高い。サンプリングサイズがs3の場合の予測性能はs2の場合よりも高い。サンプリングサイズがs4の場合の予測性能はs3の場合よりも高い。サンプリングサイズがs5の場合の予測性能はs4の場合よりも高い。このように、サンプリングサイズが大きくなるほど予測性能も高くなる。ただし、予測性能が低いうちは、サンプリングサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプリングサイズの増加量に対する予測性能の上昇量の比は逓減する。

0061

また、サンプリングサイズが大きいほど、機械学習に要する学習時間も大きくなる。このため、サンプリングサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図4の例の場合、サンプリングサイズをs4とすると、上限に近い予測性能を短時間で達成できる。一方、サンプリングサイズをs3とすると、予測性能が不十分であるおそれがある。また、サンプリングサイズをs5とすると、予測性能は上限に近いものの、単位学習時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。

0062

このようなサンプリングサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質(データの種類)によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプリングサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法が用いられる。

0063

プログレッシブサンプリング法では、サンプリングサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、並列分散処理システムは、サンプリングサイズs1で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、並列分散処理システムは、サンプリングサイズs2で機械学習を行って予測性能を評価する。このとき、サンプリングサイズs2の訓練データは、サンプリングサイズs1の訓練データ(前に使用した訓練データ)の一部または全部を包含していてもよい。同様に、並列分散処理システムは、サンプリングサイズs3で機械学習を行って予測性能を評価し、サンプリングサイズs4で機械学習を行って予測性能を評価する。サンプリングサイズs4で予測性能が十分になると、並列分散処理システムは、機械学習を停止し、サンプリングサイズs4で学習したモデルを採用する。このとき、並列分散処理システムは、サンプリングサイズs5の機械学習を行わなくてよい。

0064

プログレッシブサンプリング法の停止条件として、例えば、1つ前のモデルと今回のモデルとの間の予測性能の差(上昇量)が閾値未満になったことを停止条件とすることが考えられる。また、例えば、単位学習時間当たりの予測性能の上昇量が閾値未満になったことを停止条件とすることも考えられる。

0065

図5は、学習時間と予測性能の関係例を示すグラフである。曲線30a〜30cは、著名なデータ集合(CoverType)を用いて測定された学習時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線30aは、機械学習アルゴリズムとしてロジスティック回帰を用いた場合の学習時間と予測性能の間の関係を示す。曲線30bは、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の学習時間と予測性能の間の関係を示す。曲線30cは、機械学習アルゴリズムとしてランダムフォレストを用いた場合の学習時間と予測性能の間の関係を示す。なお、図5横軸は、学習時間について対数目盛になっている。

0066

曲線30aが示すように、ロジスティック回帰を使用した場合、サンプリングサイズ=800における予測性能は約0.71、学習時間は約0.2秒である。サンプリングサイズ=3200における予測性能は約0.75、学習時間は約0.5秒である。サンプリングサイズ=12800における予測性能は約0.755、学習時間は約1.5秒である。サンプリングサイズ=51200における予測性能は約0.76、学習時間は約6秒である。

0067

曲線30bが示すように、サポートベクタマシンを使用した場合、サンプリングサイズ=800における予測性能は約0.70、学習時間は約0.2秒である。サンプリングサイズ=3200における予測性能は約0.77、学習時間は約2秒である。サンプリングサイズ=12800に対応する予測性能は約0.785、学習時間は約20秒である。

0068

曲線30cが示すように、ランダムフォレストを使用した場合、サンプリングサイズ=800における予測性能は約0.74、学習時間は約2.5秒である。サンプリングサイズ=3200における予測性能は約0.79、学習時間は約15秒である。サンプリングサイズ=12800に対応する予測性能は約0.82、学習時間は約200秒である。

0069

このように、上記のデータ集合に対しては、ロジスティック回帰は、全体的に学習時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰よりも学習時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に学習時間が長く予測性能が高い。ただし、図5の例では、サンプリングサイズが小さい場合のサポートベクタマシンの予測性能は、ロジスティック回帰の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。

0070

個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、複数の機械学習アルゴリズムを使用し、かつ、プログレッシブサンプリング法を使用する場合に、予測性能の高いモデルを効率的に得られるようにすることが考えられる。例えば、予測性能改善速度が高いと見込まれるアルゴリズムについて、データサイズの大きい訓練データでのモデル探索を優先的に進めることで、無駄なモデル探索を抑止するモデル探索手法を採用することができる。以下、このようなモデル探索手法を、改善速度優先探索と呼ぶこととする。

0071

図6は、複数の機械学習アルゴリズムについて改善速度優先探索を行った場合の実行順序の例を示す図である。改善速度優先探索は、各機械学習アルゴリズムについて、サンプリングサイズが1段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して学習ステップを1つだけ進める方法である。学習ステップを1つ進めるごとに、改善速度の推定値が見直される。このため、改善速度優先探索では、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に機械学習アルゴリズムが限定されていく。

0072

改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値(以下では達成予測性能と言うことがある)との差である。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプリングサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプリングサイズとに基づいて推定される。

0073

並列分散処理システムは、機械学習アルゴリズムAの学習ステップ31と、機械学習アルゴリズムBの学習ステップ34と、機械学習アルゴリズムCの学習ステップ37とを実行する。並列分散処理システムは、学習ステップ31,34,37の実行結果に基づいて、機械学習アルゴリズムA,B,Cの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムAの改善速度=2.5、機械学習アルゴリズムBの改善速度=2.0、機械学習アルゴリズムCの改善速度=1.0と推定されたとする。すると、並列分散処理システムは、改善速度が最大の機械学習アルゴリズムAを選択し、学習ステップ32を実行する。

0074

学習ステップ32が実行されると、並列分散処理システムは、機械学習アルゴリズムA,B,Cの改善速度を更新する。ここでは、機械学習アルゴリズムAの改善速度=0.73、機械学習アルゴリズムBの改善速度=1.0、機械学習アルゴリズムCの改善速度=0.5と推定されたとする。学習ステップ32によって達成予測性能が上昇したため、機械学習アルゴリズムB,Cの改善速度も低下している。並列分散処理システムは、改善速度が最大の機械学習アルゴリズムBを選択し、学習ステップ35を実行する。

0075

学習ステップ35が実行されると、並列分散処理システムは、機械学習アルゴリズムA,B,Cの改善速度を更新する。ここでは、機械学習アルゴリズムAの改善速度=0.0、機械学習アルゴリズムBの改善速度=0.8、機械学習アルゴリズムCの改善速度=0.0と推定されたとする。並列分散処理システムは、改善速度が最大の機械学習アルゴリズムBを選択し、学習ステップ36を実行する。学習ステップ36によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムAの学習ステップ33や機械学習アルゴリズムCの学習ステップ38,39は実行されない。

0076

なお、次の学習ステップの予測性能を推定するにあたっては、統計誤差を考慮し、予測性能が今後上昇する可能性のある機械学習アルゴリズムを早期に切り捨ててしまうリスクを低減することが好ましい。例えば、並列分散処理システムは、回帰分析によって予測性能の期待値とその95%予測区間を算出し、95%予測区間の上限値(UCB:Upper Confidence Bound)を、改善速度を算出する際の予測性能を推定値として使用することが考えられる。95%予測区間は、測定される予測性能(測定値)のばらつきを示すものであり、新たな予測性能が95%の確率でこの区間に収まると予想されることを示す。すなわち、統計上の期待値よりも統計誤差に応じた幅だけ大きい値を使用する。

0077

ただし、UCBに代えて、並列分散処理システムは、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える確率(PI:Probability of Improvement)を算出してもよい。また、並列分散処理システムは、推定される予測性能の分布を積分して、予測性能が達成予測性能を超える期待値(EI:Expected Improvement)を算出してもよい。

0078

改善速度優先探索では、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。

0079

このように、改善速度優先探索は学習時間の短縮に有効である。ただし、モデル探索の実行順序の影響で、キャッシュした訓練データの再利用に関して、非効率となる。
図7は、モデル探索の実行順序の第1の例を示す図である。図7に示す例では、元データ(オリジナルデータとも言う)の単位データ数が6000万個であり、初期の訓練データのサイズが10万個であるものとする。そして学習ステップが1段階進むごとに、サンプリング率を2倍にするものとして、機械学習を実行している。図7に示す表の内部の数値は、その数値が設定されている行に示される機械学習アルゴリズムによる、その数値が設定されている列に示される単位データ数の訓練データを用いたモデル探索の実行順序である。

0080

図7の例では、最初に10万個の単位データにサンプリングした訓練データを生成した後、機械学習アルゴリズム「ランダムフォレスト(Random Forest)」によるモデル探索実行時に、訓練データがキャッシュされる。以降の機械学習アルゴリズムによるモデル探索を実行する際には、キャッシュされた訓練データが再利用される。実行順序7番目では、単位データ数が20万個の訓練データがキャッシュされていないため、新たに訓練データが生成され、キャッシュされる。その後、単位データ数が20万個の訓練データは、8番目以降のモデル探索の実行時に再利用される。

0081

このように、訓練データを生成するごとに、その訓練データを用いた異なる機械学習アルゴリズムでの複数のモデル探索を続けて実施することで、キャッシュした訓練データを有効に再利用できる。それに対して、改善速度優先探索を行うと、同じサンプリング率の訓練データが連続して利用される保証がない。

0082

図8は、モデル探索の実行順序の第2の例を示す図である。図8には、改善速度優先探索でモデル探索を行った場合の実行順が示されている。図8の例では、まず単位データ数が10万個と20万個の訓練データを用い、各機械学習アルゴリズムでモデルが生成され、モデルの予測性能が評価されている。その後、各機械学習アルゴリズムで次に実行するモデル探索で生成されるモデルの予測改善速度をもとに、次のモデル探索に使用する訓練データと機械学習アルゴリズムの組合せを決定している。図8の例では、20万個の訓練データで実行を終えた時点で、最も予測改善速度が高いと見積もられたのは、単位データ数が40万個の訓練データを用いた機械学習アルゴリズム「Random Forest」によるモデル探索である。以後も、機械学習アルゴリズム「Random Forest」において、最も高い予測改善速度を示している。そのため、機械学習アルゴリズム「Random Forest」によるモデル探索が、訓練データの単位データ数が5012万個となるまで連続で実行され、生成されたモデルの予測性能が評価されている。その後、単位データ数が40万個の訓練データを用いた機械学習アルゴリズム「Gradient Boosting」で生成したモデルの予測性能が評価されている。

0083

訓練データの再利用を考慮すると、全サンプリング率の訓練データをキャッシュしておくことが理想的である。しかし、図8に示したように、改善速度優先探索を行うと、機械学習アルゴリズム「Random Forest」によりモデル探索の予測性能が、他の機械学習アルゴリズムに先行して評価される。それに伴い大きなサンプリング率のデータが生成・キャッシュされる。今回の例では10万+20万+40万+・・・+5120万=10240万個のデータがキャッシュされることとなる。これらの全訓練データをキャッシュするには、元データ(6000万)の約2倍の記憶容量を用意することとなる。さらに、各サンプリング率の訓練データを効率的に生成するためには、元データもキャッシュすることになる。

0084

実際にはキャッシュ可能なデータ量の総量は有限であるため、生成した各サンプリング率のデータ量の総量がキャッシュ可能なデータ量の総量を超えた場合、一部の訓練データがキャッシュから削除される。

0085

例えば、キャッシュ可能なデータ量の総量が15000万の環境で入力データ量が10240万個のモデル探索を行うとする。例えばLRUポリシーで、キャッシュされた訓練データを削除する場合を考える。最初のサンプリングによって10万個からはじめ、学習ステップが1ステップ進むごとにデータ量を2倍にしていくとすると、キャッシュの状況は図9のようになる。

0086

図9は、LRUポリシーによるキャッシュ状況の推移例を示す図である。図9に示す表には、「実行順序」の列に示す順番でモデル探索が実行されたときの、元データおよび各サンプリング率の訓練データについての操作内容とキャッシュ状況とを示している。単位データ数「10240万」と示されている列に、元データに対する操作内容が示されている。単位データ数「10万」〜「5120万」と示されている列に、訓練データに対する操作内容が示されている。「キャッシュ状況」と示されている列に、キャッシュされているデータ量の遷移が示されている。

0087

訓練データの操作内容は、操作された訓練データの位置に示される記号で表されている。黒丸の記号は、データ生成およびキャッシュ処理が行われたことを示している。白丸の記号は、キャッシュ済みであり、最終アクセス時刻が更新されたことを示している。三角の記号は、キャッシュ済みであり、最終アクセス時刻が更新されていないことを示している。ばつ印の記号は、キャッシュから削除されたことを示している。キャッシュ状況としては、キャッシュされている訓練データの全単位データ数を示している。

0088

なお、新しいサンプリング率のデータ生成では、キャッシュにある元データから生成されるため、新たなデータ生成時に元データの最終アクセス時刻も更新される。図9の例では、実行順序「19」で新たに2560万個の訓練データをキャッシュしようとするがキャッシュ容量が不足している。そこで、LRUのポリシーに従い最終アクセス時刻が古い訓練データの削除が発生している。さらに、次の20番目の実行では、元データを削除しなければ5120万個の訓練データをキャッシュすることはできない。しかし、ここでキャッシュした5120万個の訓練データは結果的に再利用されることはない。また、21番目の実行では40万個の訓練データを用いるが、これは19番目の実行時に40万個の訓練データがキャッシュから失われているため再生成されている。さらに元データも20番目の実行時にキャッシュから失われているため元データのストレージ装置からのロードも行われる。結果として、訓練データを生成するごとに、その訓練データを用いた異なる機械学習アルゴリズムでの複数のモデル探索を続けて実行するときよりも、データの再利用効率が低下してしまう。

0089

このような問題が起こる原因は、キャッシュポリシーにLRUを採用していたことである。このポリシーでは、キャッシュが有効なデータは何度も頻繁にアクセスされるため、最終アクセス時刻が古いデータから順番に削除される。しかし、改善速度優先探索では、大幅な性能改善の見込みがあるアルゴリズムを優先して実行しており、連続して同じアルゴリズムが有効であると判定されると、毎回、前回と異なるサンプリング率の訓練データが利用される。その結果、サンプリング率が低い訓練データを再利用しようとしても、その訓練データが既にキャッシュから削除されていることがある。

0090

加えて、有望な機械学習アルゴリズムはサンプリング率の高い訓練データを利用するが、改善が見込めない多くの機械学習アルゴリズムはサンプリング率の低い訓練データを利用するのみに留まる。その結果、サンプリング率の高い訓練データが再利用される可能性は低くなる。LRUポリシーを採用すると、それにも関わらず、サンプリング率の高い訓練データが使用されたときに、その訓練データが今後使用されるか否かに拘わらず、サンプリング率の高い訓練データをキャッシュしてしまう。サンプリング率の高い訓練データは、データ量が多く、結果的にその訓練データが再利用されなければ、メモリ資源が無駄に消費されたことになる。

0091

そこで、第2の実施の形態に係る並列分散処理システムでは、機械学習において改善速度優先探索を採用した場合のキャッシュポリシーとして、予測性能の推定値を用いたキャッシュアルゴリズムを採用する。

0092

図10は、第2の実施の形態における並列分散処理システムが有する機械学習機能を示すブロック図である。並列分散処理システムは、性能予測部41、探索条件決定部42、モデル探索部43、キャッシュ制御部44、元データ記憶部45、キャッシュデータ記憶部46を有する。

0093

性能予測部41は、機械学習アルゴリズムごとに、過去の数ステップ分の予測性能の評価結果に基づいて、以後実施する可能性のある学習ステップにおける性能を予測する。そして、性能予測部41は、予測性能改善速度を計算する。

0094

探索条件決定部42は、次に実行するモデル探索の条件(探索条件)を決定する。探索条件には、適用する機械学習アルゴリズムの識別子、使用する訓練データのサンプリング率などが含まれる。例えば探索条件決定部42は、機械学習アルゴリズムごとの、次の学習ステップにおける予測性能改善速度を比較し、予測性能改善速度が最も高くなる機械学習アルゴリズムを、次のモデル探索に適用するものと決定する。

0095

モデル探索部43は、決定された探索条件に従ってモデル探索を行う。モデル探索では、訓練データを用いたモデルの生成、および生成したモデルの予測性能の評価が行われる。モデル探索部43は、モデル探索に使用するデータを、キャッシュ制御部44を介して元データ記憶部45、またはキャッシュデータ記憶部46から取得する。またモデル探索部43は、元データに基づいて新たな訓練データを作成した場合、その訓練データをキャッシュ制御部44に送信する。

0096

キャッシュ制御部44は、モデル探索部43が使用するデータを、元データ記憶部45またはキャッシュデータ記憶部46から読み出し、モデル探索部43に送信する。またキャッシュ制御部44は、各機械学習アルゴリズムの未実行の学習ステップの予測性能改善速度に基づいて、モデル探索部43から取得した訓練データをキャッシュするか否かを判断する。訓練データをキャッシュすると決定した場合、キャッシュ制御部44は、その訓練データをキャッシュデータ記憶部46に格納する。またキャッシュ制御部44は、キャッシュデータ記憶部46の空き容量が不足する場合、各機械学習アルゴリズムの未実行の学習ステップの予測性能改善速度に基づいて、削除するデータを決定し、そのデータをキャッシュデータ記憶部46から削除する。

0097

元データ記憶部45は、機械学習を実施するための元データを記憶する。キャッシュデータ記憶部46は、元データから単位データをサンプリング抽出することで生成された訓練データのうち、キャッシュすると決定された訓練データを記憶する。キャッシュデータ記憶部46の記憶容量は、キャッシュ容量と呼ぶこともできる。キャッシュデータ記憶部46は、元データ記憶部45よりも高速アクセス可能である。例えば元データ記憶部45はHDDなどのストレージ装置内に設けられ、キャッシュデータ記憶部46はメモリ内に設けられる。

0098

図10に示す各要素は、図2に示すマスタノード100と複数のワーカノード210,220,・・・との分散処理により実現される。例えば、性能予測部41と探索条件決定部42とは、マスタノード100内に設けられる。モデル探索部43、キャッシュ制御部44、元データ記憶部45、およびキャッシュデータ記憶部46は、複数のワーカノード210,220,・・・の分散処理によって実現される。

0099

なお、図10に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図10に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。

0100

以下、データのキャッシュ処理の概略について説明する。
第2の実施の形態では、まず、サンプリング率の低い数ステップ分の訓練データを用いて、複数の機械学習アルゴリズムそれぞれによるモデル探索が行われる。これにより、各機械学習アルゴリズムの予測性能改善速度の算出が可能となる。

0101

図11は、機械学習の概略手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS101]モデル探索部43は、探索条件決定部42が順次決定した探索条件に従って、すべての機械学習アルゴリズムについて、所定の学習ステップ数分のモデル探索を実施する。そしてモデル探索部43は、モデル探索によって得られた性能の評価結果を、性能予測部41に送信する。

0102

[ステップS102]性能予測部41は、全機械学習アルゴリズムについて、未実行の学習ステップを実行した場合の予測性能改善速度を求める。
[ステップS103]探索条件決定部42は、次に実行する予定の学習ステップの予測性能改善速度が最も高い機械学習アルゴリズムを、次に実行する機械学習アルゴリズムとして特定する。また探索条件決定部42は、特定された機械学習アルゴリズムの次に実行する学習ステップを調べる。そして探索条件決定部42は、特定した機械学習アルゴリズムの識別子と、次の学習ステップで使用する訓練データのサンプリング率とを含む探索条件を、モデル探索部43に送信する。

0103

[ステップS104]モデル探索部43は、指定されたサンプリング率の訓練データの取得要求を、キャッシュ制御部44に送信する。するとキャッシュ制御部44は、取得要求で示された訓練データが、キャッシュデータ記憶部46にキャッシュされているか否かを判断する。キャッシュされている場合、処理がステップS105に進められる。キャッシュされていない場合、処理がステップS106に進められる。

0104

[ステップS105]モデル探索部43は、指定されたサンプリング率の訓練データをキャッシュデータ記憶部46から取得し、探索要求に示された機械学習アルゴリズムによりモデル探索を行う。その後、処理がステップS112に進められる。

0105

[ステップS106]モデル探索部43は、指定されたサンプリング率で元データから単位データのサンプリングを行い、訓練データを生成する。そしてモデル探索部43は、生成した訓練データを用い、探索要求に示された機械学習アルゴリズムによりモデル探索を行う。

0106

[ステップS107]キャッシュ制御部44は、キャッシュデータ記憶部46内の空き容量が十分にあるか否かを判断する。例えばキャッシュ制御部44は、キャッシュデータ記憶部46に格納可能な単位データ数から、すでに格納されている単位データ数を減算した値を空き容量とする。キャッシュ制御部44は、空き容量が、生成された訓練データのデータサイズ以上であれば、空き容量が十分であると判断する。空き容量が十分であれば、処理がステップS111に進められる。空き容量が十分でなければ、処理がステップS108に進められる。

0107

[ステップS108]キャッシュ制御部44は、学習ステップSiごとに、予測性能改善速度が閾値K(Kは正の実数)よりも大きいアルゴリズムの数を調べ、実行予定回数Tiとする。ここでiは1以上の整数である、学習ステップSiは、サンプリング率が低い方からi番目の学習ステップを指す。実行予定回数Tiは、対応する学習ステップSiで用いる訓練データについてのキャッシュの優先度でもある。

0108

閾値Kはモデル探索の開始前に事前に静的な値として与えられてもよいし一定の条件式にしたがって動的に決定してもよい。また、例えばサンプリング率が高いデータに重みを与えたいのであれば、学習ステップごとに閾値Kiを与えてiが大きいほど小さくなるように定めてもよい。なお、元データに対応する実行予定回数Toを定義しておくことで、キャッシュされた元データも訓練データと同様に管理できる。この場合、キャッシュ制御部44は、元データの実行予定回数Toの値を無限値に設定する。

0109

[ステップS109]キャッシュ制御部44は、生成した訓練データをキャッシュするか否かを判断する。例えばキャッシュ制御部44は、すでにキャッシュされている訓練データを用いる学習ステップと、今回のモデル探索で生成した訓練データを用いる学習ステップとを、実行予定回数が高い順に並べる。そしてキャッシュ制御部44は、生成した訓練データを用いる学習ステップより上位の学習ステップで用いる訓練データのデータサイズと、生成した訓練データのデータサイズとの合計が、キャッシュ容量以下であれば、訓練データをキャッシュすると判断する。生成した訓練データをキャッシュする場合、処理がステップS110に進められる。生成した訓練データをキャッシュしない場合、処理がステップS112に進められる。

0110

[ステップS110]キャッシュ制御部44は、実行予定回数が少ない学習ステップの訓練データから優先的に、キャッシュデータ記憶部46から削除する。例えばキャッシュ制御部44は、キャッシュデータ記憶部46の空き容量が、生成した訓練データの単位データ数以上となるまで、キャッシュされている訓練データの削除を行う。

0111

[ステップS111]キャッシュ制御部44は、生成した訓練データをキャッシュする。すなわちキャッシュ制御部44は、生成した訓練データを、キャッシュデータ記憶部46に格納する。

0112

[ステップS112]モデル探索部43は、モデル探索の終了条件が満たされたか否かを判断する。例えば生成したモデルによる予測性能の改善量が一定値以下であることが、モデル探索の終了条件として設定される。終了条件が満たされていれば、その時点で最も高い予測性能が得られているモデルが学習結果として出力され、機械学習処理が終了する。終了条件が満たされていなければ、処理がステップS102に進められる。

0113

このような手順で機械学習が進められ、効率的なキャッシュ制御が行われる。以下、図12図15を参照し、学習ステップごとの実行予定回数の算出例について説明する。なお図12図15の例では、「アルゴリズムA」〜「アルゴリズムD」の4つの機械学習アルゴリズムを用いて機械学習を行うものとする。

0114

図12は、学習ステップごとの実行予定回数の第1の例を示す図である。図12の例では、横軸は学習ステップであり、縦軸は予測性能改善速度である。閾値Kは、「0.001」である。図12には、学習ステップS1と学習ステップS2について、すべての機械学習アルゴリズムでモデル探索を行った後に算出された予測性能改善速度が示されている。

0115

学習ステップS3では、4つの機械学習アルゴリズムすべてにおいて、予測性能改善速度が閾値K以上である。従って、実行予定回数T3は「4」となる。学習ステップS4では、3つの機械学習アルゴリズムにおいて、予測性能改善速度が閾値K以上である。従って、実行予定回数T4は「3」となる。学習ステップS5では、3つの機械学習アルゴリズムにおいて、予測性能改善速度が閾値K以上である。従って、実行予定回数T5は「3」となる。学習ステップS6では、1つの機械学習アルゴリズムのみにおいて、予測性能改善速度が閾値K以上である。従って、実行予定回数T6は「1」となる。

0116

改善速度優先探索によれば、予測性能改善速度が大きい順にモデル探索が実行される。図12の例では、他の機械学習アルゴリズムに先行して、「アルゴリズムD」による学習ステップS3,S4,S5,S6のモデル探索が実行される。

0117

図13は、学習ステップごとの実行予定回数の第2の例を示す図である。図13は、「アルゴリズムD」による学習ステップS3のモデル探索実行後における実行予定回数の算出結果を示している。図12と比較すると、実行予定回数T3が「3」に変わっている。

0118

図14は、学習ステップごとの実行予定回数の第3の例を示す図である。図14は、「アルゴリズムD」による学習ステップS4のモデル探索実行後における実行予定回数の算出結果を示している。図13と比較すると、実行予定回数T4が「2」に変わっている。

0119

図15は、学習ステップごとの実行予定回数の第4の例を示す図である。図15は、「アルゴリズムD」による学習ステップS5のモデル探索実行後における実行予定回数の算出結果を示している。図14と比較すると、実行予定回数T5が「2」に変わっている。

0120

このように、モデル探索が進行するごとに実行予定回数が再計算され、学習ステップごとの実行予定回数Tiが変化する。
次に、例えば「アルゴリズムD」による学習ステップS6のモデル探索が実行される。このとき、例えば学習ステップS6のモデル探索で使用される訓練データをキャッシュするには、空き容量が不足するものとする。その場合、LRUポリシーでキャッシュされているデータの削除を行うと、例えば、学習ステップS3のモデル探索で使用する訓練データが削除されてしまう。学習ステップS3の実行予定回数T3は「3」である。そのため、学習ステップS3のモデル探索で使用する訓練データを削除してしまうと、他の機械学習アルゴリズムにより学習ステップS3のモデル探索を実行する際に、訓練データを再作成することとなり、処理が非効率となる。

0121

他方、第2の実施の形態では、実行予定回数が少ない学習ステップの訓練データが、キャッシュの対象外となる。図15の例では、「アルゴリズムD」による学習ステップS6のモデル探索が実行された後は、そのモデル探索で使用した訓練データは使用されない。すなわち、実行予定回数T6は「0」となる。その結果、学習ステップS6のモデル探索で使用した訓練データをキャッシュしないことが決定される。

0122

このように、新規に作成した訓練データであっても、キャッシュに保存する重要性が低くなっていれば、その訓練データはキャッシュされず、他の訓練データがキャッシュに維持される。そのため、例えば「アルゴリズムA」の学習ステップS3や「アルゴリズムC」の学習ステップS3のモデル探索の実行時には、キャッシュされている訓練データを再利用することができる。その結果、訓練データの作成処理が省略され、処理効率が向上する。

0123

また、各ステップのデータを作成するもとになる元データに対応する実行予定回数Tの値を無限値に設定しておくことで、元データがキャッシュから削除されることを抑止できる。元データはデータ量が大きいため、キャッシュしてメモリに保持しておくことで、データのサンプリングを実施する際の元データからの単位データの抽出を迅速に行うことができる。

0124

なお、第2の実施の形態に示すキャッシュポリシーでは、各学習ステップの予測性能改善速度を正確に見積もるほど効果的なキャッシュ効率を実現することができる。第2の実施の形態では、学習ステップSiのモデル探索を実行する前に、学習ステップSi-1までモデル探索が実行済みであり、それぞれの実行にかかった学習時間とモデルの予測性能が分かっている。そこで性能予測部41は、図5に示したように、機械学習アルゴリズムごとに、学習時間と予測性能との関係を示す曲線を示す式を求める。そして性能予測部41は、求めた式に基づいて、各機械学習アルゴリズムにおける以後の学習ステップでの予測性能を正確に見積もることができる。その結果、予測性能改善速度も正確に見積もることができ、訓練データをキャッシュするか否かの判断を、正確に行うことができる。

0125

なお、上記の説明ではキャッシュ容量が不足する場合はキャッシュ領域から訓練データが削除されると説明しているが、他にSSDやHDDなど大容量な記憶装置に、キャッシュから削除した訓練データを退避させてもよい。

0126

また、上記の説明では閾値Kよりも予測改善速度が大きなアルゴリズムの数を実行予定回数とし、実行予定回数に基づいてキャッシュするか否かを判断したが、実行予定回数に対して、訓練データのデータ量で重みをつけることもできる。例えばデータ量が多いほど、重みを大きくする。これにより、複数の学習ステップにおいて、実行予定回数が等しい場合、それらの学習ステップの訓練データのうち、データ量が多い方が優先してキャッシュに保持される。データ量が多い訓練データの方が、データを生成するための時間が長くなるため、キャッシュに優先的に保持して再利用することで、処理効率を向上させることができる。

0127

また第2の実施の形態では、キャッシュのためのメモリ資源を訓練データに割り当てる際に、実行予定回数の大きな学習ステップの訓練データから順にメモリ資源を割り当てているが、実行予定回数をもとに割り当てるメモリ資源量を決定してもよい。例えば、実行予定回数が「3」の学習ステップ(第1の学習ステップ)と、実行予定回数が「2」の学習ステップ(第2の学習ステップ)とがある場合を考える。この場合、キャッシュ制御部44は、例えば第1の学習ステップと第2の学習ステップとの実行予定回数から1を減算した値を求める。これは、実行予定回数が1回のときはモデル探索後のキャッシュが不要であるため、モデル探索後に使用した訓練データのキャッシュが有用となる回数は、実行予定回数より1回少なくなるためである。そしてキャッシュ制御部44は、実行予定回数から「1」を減算した値に応じて、全キャッシュ容量が比例配分する。例えば第1の学習ステップと第2の学習ステップとに対して、全キャッシュ容量が2:1で分配される。

0128

次に、機械学習の手順について、図16図18を参照して詳細に説明する。なお、図16図18に示す処理で使用する変数は以下の通りである。
N:学習ステップの総数(1以上の整数)
i:実行する学習ステップの順番(1≦i≦N)
k:予測性能改善速度を求めるための最低限の学習ステップ数(最小ステップ数)
di:i番目の学習ステップSiで生成した訓練データ
si:学習ステップSiで生成した訓練データのサイズ
Aj:j種類目の機械学習アルゴリズム(jは1以上の整数)
Pi(Aj):学習ステップSiにおいて機械学習アルゴリズムAjでのモデル探索を実行した場合を想定した予測性能改善速度
K:予測性能改善速度の閾値
Ti:学習ステップSiにおける実行予定回数(予測性能改善速度が閾値Kより大きい未実行の機械学習アルゴリズムの個数
F(i):学習ステップSiで生成した訓練データをキャッシュするかどうかのフラグであり、キャッシュする場合は「true」、キャッシュしない場合は「false」となる。
C(i):学習ステップSiで生成した訓練データがキャッシュ済みかどうかを示すフラグであり、キャッシュ済みであれば「true」、キャッシュ済みでなければ「false」となる。
so:元データのサイズ
図16は、機械学習の詳細な手順を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。なお、各学習ステップには、サンプリング率が少ない順に、順番を示す番号が割り当てられている。そして、機械学習の指示が入力されたとき、変数iの初期値を「1」として、図16に示す処理の実行が開始される。

0129

[ステップS201]モデル探索部43は、i番目の学習ステップSiの訓練データを使い、全ての機械学習アルゴリズムでモデル探索を行ったか否かを判断する。未探索の機械学習アルゴリズムがあれば、処理がステップS202に進められる。全ての機械学習アルゴリズムでモデル探索が完了していれば、処理がステップS203に進められる。

0130

[ステップS202]探索条件決定部42は、i番目の学習ステップSiの訓練データを用いたモデル探索を行っていない機械学習アルゴリズムを1つ選択する。そして探索条件決定部42は、選択した機械学習アルゴリズムによるi番目の学習ステップSiのモデル探索を示す探索条件を、モデル探索部43に送信する。モデル探索部43は、受信した探索条件に従って、モデル探索を行う。その後、処理がステップS201に進められる。

0131

[ステップS203]探索条件決定部42は、変数iの値に1を加算する。
[ステップS204]探索条件決定部42は、すべての機械学習アルゴリズムについて、最小ステップ数分の学習ステップによるモデル探索が完了したか否かを判断する。例えば「i>k」を満たす場合、最小ステップ数分の学習ステップによるモデル探索が完了したと判断される。当該条件が満たされた場合、処理がステップS205に進められる。当該条件が満たされていなければ、処理がステップS201に進められる。

0132

[ステップS205]性能予測部41、探索条件決定部42、モデル探索部43、およびキャッシュ制御部44が連携し、改善速度優先探索によるモデル探索処理を実行する。
図17は、改善速度優先探索によるモデル探索処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。

0133

[ステップS211]性能予測部41は、未実施のモデル探索による予測性能改善速度Pi(Aj)を算出する。この処理の詳細は後述する(図18参照)。
[ステップS212]性能予測部41は、予測性能改善速度Pi(Aj)に基づいて、学習ステップごとの実行予定回数Tiを算出する。算出方法は、図12図15を参照して説明した通りである。

0134

[ステップS213]探索条件決定部42は、予測性能改善速度が最大となるように、探索条件「Am,n」を生成する。Amは、m(mは1以上の整数)種類目の機械学習アルゴリズムを示す。nはその機械学習アルゴリズムにおける未実行の学習ステップのうちのサンプリング率が最小の学習ステップの順番を示す。例えば探索条件決定部42は、各機械学習アルゴリズムについて、未実行の学習ステップのうちのサンプリング率が最小の学習ステップを特定する。次に探索条件決定部42は、各機械学習アルゴリズムで特定した学習ステップにおける予測性能改善速度Pi(Aj)が最大となる機械学習アルゴリズムを検出する。そして探索条件決定部42は、検出した機械学習アルゴリズムと、その機械学習アルゴリズムにおける未実行の学習ステップのうちのサンプリング率が最小の学習ステップとを指定した探索条件(Am,n)を生成する。

0135

探索条件決定部42は、生成した探索条件をモデル探索部43に送信する。モデル探索部43は、キャッシュ制御部44に、探索条件で指定された学習ステップnで使用する訓練データdnを要求する。

0136

[ステップS214]キャッシュ制御部44は、探索条件で指定された学習ステップnで使用する訓練データdnが、キャッシュ済みか否かを判断する。例えばキャッシュ制御部44は、「C(n)=true」であれば、訓練データdnがキャッシュ済みであると判断する。キャッシュ済みであれば、処理がステップS215に進められる。キャッシュ済みでなければ、処理がステップS217に進められる。

0137

[ステップS215]モデル探索部43は、学習ステップnで使用する訓練データdnを、キャッシュから読み込む。例えばモデル探索部43は、キャッシュ制御部44を介して、キャッシュデータ記憶部46から学習ステップnで使用する訓練データdnを読み込む。

0138

[ステップS216]モデル探索部43は、学習ステップnで使用する訓練データdnを用いて、機械学習アルゴリズムAmによるモデル探索を実行する。その後、処理がステップS228に進められる。

0139

[ステップS217]モデル探索部43は、学習ステップnで使用する訓練データdnを、元データから生成する。例えばモデル探索部43は、キャッシュ制御部44に、元データを要求する。キャッシュ制御部44は、元データがキャッシュデータ記憶部46に格納されていれば、キャッシュデータ記憶部46から元データを読み出し、モデル探索部43に送信する。またキャッシュ制御部44は、元データがキャッシュデータ記憶部46に格納されていなければ、元データ記憶部45から元データを読み出し、モデル探索部43に送信する。そしてモデル探索部43は、キャッシュ制御部44から受け取った元データから単位データのサンプリング抽出を行い、訓練データdnを生成する。

0140

[ステップS218]モデル探索部43は、学習ステップnで使用する訓練データdnを用いて、機械学習アルゴリズムAmによるモデル探索を実行する。
[ステップS219]キャッシュ制御部44は、訓練データdnをキャッシュできるか否かを判断する。例えばキャッシュ制御部44は、キャッシュデータ記憶部46の空き容量が、訓練データdnのデータサイズsn以上であれば、キャッシュできると判断する。キャッシュできる場合、処理がステップS227に進められる。キャッシュできない場合、処理がステップS220に進められる。

0141

[ステップS220]性能予測部41は、未実施のモデル探索による予測性能改善速度Pi(Aj)を算出する。この処理の詳細は後述する(図18参照)。
[ステップS221]性能予測部41は、予測性能改善速度Pi(Aj)に基づいて、学習ステップごとの実行予定回数Tiを算出する。

0142

[ステップS222]性能予測部41は、実行予定回数Tiが「1」以上となるのは、学習ステップnのみか否かを判断する。学習ステップnのみであれば処理がステップS225に進められる。学習ステップnのみでなければ、処理がステップS223に進められる。

0143

[ステップS223]キャッシュ制御部44は、探索条件で指定された学習ステップnの訓練データdnをキャッシュするか否かを判断する。例えばキャッシュ制御部44は、訓練データがキャッシュ済み「C(i)=true」の全ての学習ステップSiの実行予定回数Tiと、探索条件で指定された学習ステップnの実行予定回数Tnとに基づいて、キャッシュされている訓練データを削除する。例えばキャッシュ制御部44は、「C(i)=true」のすべての学習ステップSiと探索条件で指定された学習ステップnを、実行予定回数Tiと実行予定回数Tnに基づいて降順ソートする。次にキャッシュ制御部44は、ソート後の上位から順に学習ステップを選択する。このときキャッシュ制御部44は、元データのデータサイズsoと「F(i)=true」の全学習ステップの訓練データのデータサイズの合計を計算する。次にキャッシュ制御部44は、その合計に、選択した学習ステップの訓練データのデータサイズを加算する。キャッシュ制御部44は、加算結果がキャッシュデータ記憶部46の記憶容量以下であれば、選択した学習ステップのフラグF(i)を「true」にして、次の学習ステップを選択する。

0144

キャッシュ制御部44は、加算結果がキャッシュデータ記憶部46の記憶容量を超えていれば、ソート順で選択した学習ステップ以降の各学習ステップのフラグF(i)を「false」にする。キャッシュ制御部44は、フラグF(i)の設定を、訓練データがキャッシュ済み「C(i)=true」の全ての学習ステップSiと、探索条件で指定された学習ステップnとに対して行う。その後、キャッシュ制御部44は、学習ステップnについて「フラグF(n)=true」であるか否かを判断する。キャッシュ制御部44は、「フラグF(n)=true」であれば、訓練データdnをキャッシュすると判断する。キャッシュ制御部44は、「フラグF(n)=false」であれば、訓練データdnをキャッシュしないと判断する。

0145

訓練データdnをキャッシュする場合、処理がステップS224に進められる。訓練データdnをキャッシュしない場合、処理がステップS228に進められる。
[ステップS224]キャッシュ制御部44は、「C(i)=true」であり、かつ「フラグF(i)=false」の学習ステップで使用する訓練データを、キャッシュデータ記憶部46から削除する。その後、処理がステップS227に進められる。

0146

[ステップS225]キャッシュ制御部44は、元データのデータサイズsoと、探索条件で指定された学習ステップnで使用する訓練データのデータサイズsnとの合計が、キャッシュ容量以下か否かを判断する。キャッシュ容量以下の場合、処理がステップS227に進められる。データサイズの合計がキャッシュ容量を超える場合、処理がステップS226に進められる。

0147

[ステップS226]キャッシュ制御部44は、元データをキャッシュから削除する。すなわち、キャッシュ制御部44は、キャッシュデータ記憶部46から元データを削除する。

0148

[ステップS227]キャッシュ制御部44は、探索条件で指定された学習ステップnで使用する訓練データdnをキャッシュする。すなわちキャッシュ制御部44は、訓練データdnをキャッシュデータ記憶部46に格納する。

0149

[ステップS228]モデル探索部227は、モデル探索の終了条件が満たされたか否かを判断する。終了条件が満たされた場合、処理が終了する。終了条件が満たされていなければ、処理がステップS213に進められる。

0150

次に、予測性能改善速度の算出手順について説明する。
図18は、予測性能改善速度の算出手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。

0151

[ステップS231]性能予測部41は、達成予測性能を特定する。例えば性能予測部41は、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能を比較する。そして、性能予測部41は、予測性能の最大値を達成予測性能とする。

0152

[ステップS232]性能予測部41は、未処理の機械学習アルゴリズムを1つ選択する。
[ステップS233]性能予測部41は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの実行時間を推定する。

0153

[ステップS234]性能予測部41は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれで得られるモデルの予測性能を推定する。
[ステップS235]性能予測部41は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの性能改善量を計算する。性能改善量は、例えば計算対象の学習ステップの予測性能から、達成予測性能を減算した値である。

0154

[ステップS236]性能予測部41は、選択した機械学習アルゴリズムにおいて未実行の学習ステップそれぞれの予測性能改善速度を計算する。予測性能改善速度は、例えば計算対象の学習ステップの性能改善量を、その学習ステップの実行時間で除算した値である。

0155

[ステップS237]性能予測部41は、すべての機械学習アルゴリズムについて処理したか否かを判断する。すべての機械学習アルゴリズムについての処理が完了していれば、予測性能改善速度の算出処理を終了する。未処理の機械学習アルゴリズムがあれば、処理がステップS232に進められる。

0156

図16図18に示した手順で機械学習を実施することで、キャッシュを有効に利用した効率的な処理が行われる。
図19は、学習ステップごとの実行予定回数の第5の例を示す図である。図19の例では、学習ステップS1と学習ステップS2とのデータを使いモデルの予測性能を実測した後、閾値K=0.1で予測性能改善速度を算出している。なお、学習ステップS1は10万、学習ステップS2は20万,・・・、学習ステップS10は5120万個の単位データを有する訓練データを使用する。これらのすべての学習ステップがすべての機械学習アルゴリズムで実行されるのではない。例えばある機械学習アルゴリズムでモデル探索をしても探索時点で得られた最も高い予測性能のモデルを上回る結果が見込めない場合には、その機械学習アルゴリズムでのモデル探索は打ち切られる。図19の例では、ある機械学習アルゴリズムで次に実行する学習ステップの予測性能改善速度が閾値(K=0.1)以下になると、その機械学習アルゴリズム探索が打ち切られるものとする。

0157

ここで、実際に各学習ステップの機械学習アルゴリズムによるモデル探索を実施しても、予測性能改善速度が当初と変わらなかったと仮定する。すなわち、グラフに示された予測性能改善速度の値が正確だったものとする。このとき、実行される順序と、その実行が終わったときの実行予定回数の値は、図20図22に示す通りである。

0158

図20は、第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第1の図である。図21は、第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第2の図である。図22は、第2の実施の形態のキャッシュ制御によるキャッシュ状況の推移例を示す第3の図である。

0159

ここで、図9に示したLRUポリシーのキャッシュ状況と、図20図22に示したキャッシュ状況とを比較する。LRUポリシーでは全体の実行の中で1度キャッシュに乗ったデータが破棄された後に再度生成された回数(各列での黒丸の記号の数からばつ印の記号の数を減算した値)が全体で4回であるのに対し、第2の実施の形態では0回である。この中には最も巨大なデータである元データ(10240万個)が含まれており、再度生成するためのコストは大きい。また、キャッシュを破棄した回数(全体のばつ印の記号の数)はLRUポリシーでは16回であるのに対し、第2の実施の形態では0回である。

0160

さらに第2の実施の形態には別の効果もある。
第2の実施の形態の並列分散処理システムでは、予測性能改善速度を全機械学習アルゴリズムの未実行の学習ステップについて、モデル探索を終えるたびに再計算する。これにより、キャッシュの可能性が高いデータを高精度で見積もることができる。

0161

また第2の実施の形態の並列分散処理システムでは、各機械学習アルゴリズムでそれまでに実行した情報をもとに毎回予測性能改善速度を算出する。これにより、予測性能を、実際の値に対してより正確に算出することが可能になる。すなわち、予測性能改善速度の予測性能の変化を表す曲線は実際に実行した結果をもとに算出するため、参考になる値が増えれば増えるほど実際の値を正確に予測することができる。

0162

以下、機械学習の実行が進むにつれて予測性能改善速度を毎回更新することで得られる3つの効果について説明する。
1つ目の効果は、最初に予測した予測性能改善速度ではキャッシュするべきだと判定していた訓練データであっても、実測値を積み重ねることでキャッシュが不要だと判断することができる。その結果、訓練データをキャッシュするために必要な処理時間を削減することができることである。

0163

図23は、初期の予測結果の第1の例を示す図である。図23には、すべての機械学習アルゴリズムについて、2段階の学習ステップS1,S2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。

0164

図23の例では、学習ステップS3,S4,S5の訓練データが2回以上利用される可能性が高いと見込まれている。予測通りであれば、学習ステップS3,S4,S5の訓練データが生成されると、キャッシュされることとなる。

0165

ここで、予測性能改善速度が最も高い「アルゴリズムC」の学習ステップS3のモデル探索を実行した結果、予測に反して予測性能がほとんど改善しなかったものとする。この場合、予測性能改善速度の再計算により「アルゴリズムC」は探索候補から外される。

0166

図24は、実測値反映後の予測結果の第1の例を示す図である。図24は、「アルゴリズムC」を探索候補から除外した後の状況を示している。この場合、最初はキャッシュする予定であった学習ステップS4,S5の訓練データは再利用される可能性がなくなる。そのためキャッシュするのは、学習ステップS3の訓練データのみで済む。その結果、無駄な訓練データをキャッシュするための処理時間を削減することができる。

0167

2つ目の効果は、当初はキャッシュが不要だと予測していた訓練データについて、実際に機械学習の実行が進むにつれてキャッシュした方がよいと判明することで、その訓練データの生成処理が繰り返し実行されることを抑止できることである。

0168

図25は、初期の予測結果の第2の例を示す図である。図25には、すべての機械学習アルゴリズムについて、2段階の学習ステップS1,S2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。

0169

図25の例では、予測性能改善速度の高い順に「アルゴリズムD」の学習ステップS3,S4,S5、「アルゴリズムC」の学習ステップS3、「アルゴリズムD」の学習ステップS6の順で実行されることになる。ここで当初の予測通り、「アルゴリズムD」の学習ステップS5までモデル探索が実行されたものとする。

0170

図26は、実測値反映後の予測結果の第2の例を示す図である。図26は、「アルゴリズムD」の学習ステップS5までモデル探索実行後の予測結果の例を示している。図26の例では、次に実行されるのは「アルゴリズムC」の学習ステップS3になる。

0171

このとき、「アルゴリズムC」の学習ステップS3のモデル探索を実行した結果、予想と異なる予測性能が得られたものとする。すると、次のモデル探索の前に再度予測性能改善速度を評価すると、「アルゴリズムC」の予測性能改善速度が修正される。

0172

図27は、実測値反映後の予測結果の第3の例を示す図である。図27は、「アルゴリズムC」の学習ステップS3のモデル探索実行後の予測結果の例を示している。図27の例では、「アルゴリズムC」の学習ステップS4以降の予測性能改善速度が、図26の状態から変化している。その結果、図26の時点では1度しか実行されないと予想していた学習ステップS6の訓練データが、「アルゴリズムC」によって再利用される可能性が出てきている。そのため学習ステップS6の訓練データをキャッシュするべきと判断することができる。これにより、元々の予測結果のみを参照していた場合に比べてキャッシュの再利用を促進することができる。特に、図27の例の場合はデータ量が大きい学習ステップS6の再利用が可能になるため、処理の効率化の効果が高くなる。

0173

3つ目の効果は、以後、元データからのサンプリングが行われないことが判明したときは、元データをキャッシュから削除することで、多くの訓練データをキャッシュ可能となることである。例えば、訓練データの作成効率を優先して元データを削除することを避けていると、その分、訓練データを格納できる記憶容量が少なくなる。その結果、新たに生成した訓練データをキャッシュできない状況が発生しやすくなる。第2の実施の形態では、元データを削除しても全体の処理時間に影響がない場合には元データをキャッシュから削除し、新たに生成した訓練データをキャッシュする。これにより、訓練データをキャッシュしての再利用が促進され、処理時間を削減する効果が得られる。

0174

図28は、初期の予測結果の第3の例を示す図である。図28には、すべての機械学習アルゴリズムについて、2段階の学習ステップS1,S2の実行が終わった後、最初に予測性能改善速度を予測したときの予測結果が示されている。図28に示した予測結果が実際に正しいものとする。

0175

図29は、実測値反映後の予測結果の第4の例を示す図である。図29には、改善速度優先探索で、モデル探索を進め、学習ステップS6のモデル探索のみが残されている状況を示している。この後は「アルゴリズムB」、「アルゴリズムA」、「アルゴリズムC」の順で、学習ステップS6の訓練データを使ったモデル探索が実行され、それが終わると全ての条件でのモデル探索が完了することになる。

0176

ここで、「アルゴリズムB」の学習ステップS6でのモデル探索の際、元データをキャッシュに残しておくと、学習ステップS6で使用する訓練データをキャッシュするための空き容量が不足するものとする。このとき、元データをキャッシュに残すことを優先すると、学習ステップS6の訓練データを用いたモデル探索において、毎回、訓練データを作り直すことになる。第2の形態では、予測結果により、未実行のモデル探索が、学習ステップS6のみだと分かっているため、元データをキャッシュ上から削除して、学習ステップS6の訓練データをキャッシュする方が、効率的であると判断できる。学習ステップS6の訓練データをキャッシュすることで、学習ステップS6のような巨大な訓練データを毎回作り直すことがなくなり、探索にかかる時間を大きく削減することができる。

0177

なお、効率的なキャッシュの利用状況をモニタ21に表示することもできる。
図30は、キャッシュの利用状況の表示画面の例を示す図である。画面50には、訓練データのキャッシュ状況を示す表51が示されている。表51には、訓練データのサンプリングサイズごとに、現在キャッシュされているか、キャッシュした回数、およびキャッシュから破棄した回数が示されている。繰り返しキャッシュされている訓練データが少ないほど、処理効率がよいことを示している。

0178

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。

0179

10機械学習管理装置
11演算部
11a 生成手段
11b 算出手段
11c優先度判定手段
11d 決定手段
11e 格納手段
12 記憶部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ