(57)【要約】【課題】機械学習の実行時間が過大になるのを抑制する。【解決手段】データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す対応情報に基づいて、分析対象データを用いた機械学習の推定実行時間を、分析対象データのサイズおよび機械学習に使用可能なハードウェアリソースの量から算出する。推定実行時間が閾値より大きい場合、対応情報に基づいて、推定実行時間が閾値以下になるように許容データサイズを決定する。許容データサイズに基づいて、分析対象データの中から一部のデータを抽出し、一部のデータに対して機械学習を実行させる。【選択図】図１１
2020149230.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す対応情報に基づいて、分析対象データを用いた機械学習の推定実行時間を、前記分析対象データのサイズおよび前記機械学習に使用可能なハードウェアリソースの量から算出し、
前記推定実行時間が閾値より大きい場合、前記対応情報に基づいて、前記推定実行時間が前記閾値以下になるように許容データサイズを決定し、
前記許容データサイズに基づいて、前記分析対象データの中から一部のデータを抽出し、前記一部のデータに対して前記機械学習を実行させる、
処理を実行させる機械学習プログラム。
【請求項２】
前記分析対象データは、それぞれ２以上の特徴量を含む複数のレコードを含み、
前記一部のデータの抽出は、前記分析対象データの前記複数のレコードそれぞれから、前記２以上の特徴量のうちの一部の特徴量を削除することを含む、
請求項１記載の機械学習プログラム。
【請求項３】
前記分析対象データは、それぞれ２以上の特徴量を含む複数のレコードを含み、
前記許容データサイズは、特徴量の個数およびレコードの個数の指定を含み、
前記許容データサイズの決定では、前記特徴量の個数を前記レコードの個数よりも優先的に削減し、前記特徴量の個数を下限値まで削減しても前記推定実行時間が前記閾値より大きくなる場合、前記レコードの個数を削減する、
請求項１記載の機械学習プログラム。
【請求項４】
前記対応情報は、過去に実行された機械学習の前記データサイズと前記ハードウェアリソース量と前記実行時間とを示す履歴情報から学習された時間計算モデルである、
請求項１記載の機械学習プログラム。
【請求項５】
コンピュータが、
データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す対応情報に基づいて、分析対象データを用いた機械学習の推定実行時間を、前記分析対象データのサイズおよび前記機械学習に使用可能なハードウェアリソースの量から算出し、
前記推定実行時間が閾値より大きい場合、前記対応情報に基づいて、前記推定実行時間が前記閾値以下になるように許容データサイズを決定し、
前記許容データサイズに基づいて、前記分析対象データの中から一部のデータを抽出し、前記一部のデータに対して前記機械学習を実行させる、
機械学習方法。
【請求項６】
過去に実行された機械学習を示す履歴情報から、データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す対応情報を生成する第１の情報処理装置と、
前記対応情報に基づいて、分析対象データを用いた未実行の機械学習の推定実行時間を、前記分析対象データのサイズおよび前記未実行の機械学習に使用可能なハードウェアリソースの量から算出し、前記推定実行時間が閾値より大きい場合、前記対応情報に基づいて、前記推定実行時間が前記閾値以下になるように許容データサイズを決定し、前記許容データサイズに基づいて、前記分析対象データの中から一部のデータを抽出し、前記一部のデータに対して前記未実行の機械学習を実行させる第２の情報処理装置と、
を有する機械学習システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機械学習プログラム、機械学習方法および機械学習システムに関する。
【背景技術】
【０００２】
情報処理装置を利用した大規模データ分析として、機械学習が行われることがある。機械学習では、複数の既知の事例を示す訓練データを情報処理装置に入力する。情報処理装置は、訓練データを分析して、要因（説明変数や独立変数と言うことがある）と結果（目的変数や従属変数と言うことがある）との間の関係を一般化したモデルを生成する。生成されたモデルを用いることで、未知の事例の結果を予測することができる。例えば、医療データに対する機械学習により、患者の属性やこれまでの処方履歴から特定の病気の発症リスクを推定するモデルを生成することが考えられる。
【０００３】
なお、データベースに格納されたデータを処理する複数のクエリのうちの一部を、データベースに格納される前のデータストリームをリアルタイムに処理するプログラムに変換するデータ処理システムが提案されている。提案のデータ処理システムは、各クエリをストリーム処理プログラムに変換した場合のメモリ増加量および処理時間減少量を予測し、メモリ増加量と処理時間減少量から算出される効率が閾値を超えるクエリを選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１１４９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、機械学習を行う情報処理装置のハードウェアリソースが十分でない場合、データの移動などのオーバヘッドにより、訓練データのサイズの増大に応じて機械学習の実行時間が非線形に顕著に長くなることがあるという問題がある。例えば、大きな訓練データを使用することで主記憶装置の記憶領域が不足すると、主記憶装置と補助記憶装置の間でデータの移動が頻発し、機械学習の実行時間が想定外に長くなることがある。
【０００６】
１つの側面では、本発明は、機械学習の実行時間が過大になるのを抑制できる機械学習プログラム、機械学習方法および機械学習システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す対応情報に基づいて、分析対象データを用いた機械学習の推定実行時間を、分析対象データのサイズおよび機械学習に使用可能なハードウェアリソースの量から算出する。推定実行時間が閾値より大きい場合、対応情報に基づいて、推定実行時間が閾値以下になるように許容データサイズを決定する。許容データサイズに基づいて、分析対象データの中から一部のデータを抽出し、一部のデータに対して機械学習を実行させる。
【０００８】
また、１つの態様では、コンピュータが実行する機械学習方法が提供される。また、１つの態様では、機械学習システムが提供される。
【発明の効果】
【０００９】
１つの側面では、機械学習の実行時間が過大になるのを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の機械学習システムの例を説明する図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】クライアント装置のハードウェア例を示すブロック図である。
【図４】情報処理システムの機能例を示すブロック図である。
【図５】データテーブルの例を示す図である。
【図６】ユーザコマンドと設定ファイルの例を示す図である。
【図７】テストケーステーブルとテスト結果テーブルの例を示す図である。
【図８】時間モデル生成の手順例を示すフローチャートである。
【図９】ユーザ機械学習の手順例を示すフローチャートである。
【図１０】データサイズ決定の手順例を示すフローチャートである。
【図１１】データサイズの調整例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１２】
図１は、第１の実施の形態の機械学習システムの例を説明する図である。
第１の実施の形態の機械学習システムは、情報処理装置１０，２０を含む。情報処理装置１０，２０をコンピュータと言うこともある。情報処理装置１０，２０は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置１０と情報処理装置２０とは、ネットワークを介して通信可能であってもよいし通信可能でなくてもよい。
【００１３】
情報処理装置１０（第２の情報処理装置）は、機械学習の実行時間が過大にならないように機械学習を制御する。情報処理装置１０は、自ら機械学習を実行してもよいし他の情報処理装置に機械学習を実行させてもよい。情報処理装置２０（第１の情報処理装置）は、情報処理装置１０が使用する制御情報を生成し、情報処理装置１０に提供する。ただし、情報処理装置１０と情報処理装置２０の機能を統合し、情報処理装置１０が使用する制御情報を情報処理装置１０に生成させるようにすることも可能である。
【００１４】
情報処理装置１０は、記憶部１１および処理部１２を有する。情報処理装置２０は、記憶部２１および処理部２２を有する。記憶部１１，２１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性ストレージでもよい。処理部１２，２２は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２，２２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１，２１でもよい）に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１５】
情報処理装置１０の記憶部１１は、対応情報１３を記憶する。記憶部１１は、更に分析対象データ１４を記憶してもよい。対応情報１３は、機械学習に関して、データサイズおよびハードウェアリソース量の組と実行時間との対応関係を示す。対応情報１３は、例えば、データサイズとハードウェアリソース量の入力を受け付けて実行時間を出力する時間計算モデルである。対応情報１３は、情報処理装置２０によって生成される。対応情報１３は、予め情報処理装置１０にインストールされてもよいし、情報処理装置２０から可搬記録媒体またはネットワークを用いて追加的に配布されてもよい。
【００１６】
情報処理装置１０の処理部１２は、分析対象データ１４を用いた機械学習を制御する。このとき、処理部１２は、機械学習の実行時間が閾値を超えないように、機械学習の入力のデータサイズを調整する。具体的には、処理部１２は、分析対象データ１４のサイズと今回使用可能なハードウェアリソースの量を特定する。分析対象データ１４が、それぞれ２以上の特徴量を含む複数のレコードを含んでいる場合、分析対象データ１４のサイズは、特徴量の個数とレコードの個数によって表現されてもよい。ハードウェアリソースには、ＣＰＵコアやメモリの記憶領域が含まれてもよく、ハードウェアリソースの量は、ＣＰＵコアの個数やメモリの記憶領域の大きさによって表現されてもよい。
【００１７】
処理部１２は、対応情報１３を参照して、特定したデータサイズおよび特定したハードウェアリソース量から、機械学習の推定実行時間１５を算出する。例えば、処理部１２は、特定のデータサイズと特定のハードウェアリソース量を、対応情報１３である時間計算モデルに入力し、時間計算モデルの出力を推定実行時間１５として使用する。対応情報１３は、特徴量の個数、レコードの個数、ＣＰＵコアの個数およびメモリの記憶領域の大きさに対して、機械学習の実行時間を対応付けたものであってもよい。
【００１８】
処理部１２は、推定実行時間１５と閾値とを比較する。閾値は、機械学習の基準実行時間であり、予め決められた固定値でもよいしユーザから入力された指定値でもよい。推定実行時間１５が閾値より大きい場合、処理部１２は、対応情報１３に基づいて、推定実行時間１５が閾値以下になるようなデータサイズである許容データサイズ１６を決定する。対応情報１３において、ハードウェアリソース量を固定してデータサイズを変動させることで、推定実行時間１５が閾値以下になる許容データサイズ１６を算出できる。
【００１９】
許容データサイズ１６は、推定実行時間１５が閾値以下になるデータサイズの範囲の中で最大値のデータサイズであってもよい。例えば、処理部１２は、データサイズを段階的に小さくしながら推定実行時間１５の算出を繰り返し、推定実行時間１５が初めて閾値以下になったときのデータサイズを許容データサイズ１６として採用する。
【００２０】
許容データサイズ１６は、特徴量の個数とレコードの個数によって表現されてもよい。推定実行時間１５を閾値以下にするために、特徴量の個数とレコードの個数のうち特徴量の個数を優先的に引き下げるようにしてもよい。例えば、処理部１２は、特徴量の個数を段階的に引き下げ、特徴量の個数を下限値まで引き下げても推定実行時間１５が閾値より大きい場合に、レコードの個数を段階的に引き下げるようにする。
【００２１】
処理部１２は、許容データサイズ１６に基づいて、分析対象データ１４の中から一部のデータを抽出する。例えば、処理部１２は、抽出データサイズが許容データサイズ１６以下になるように、許容データサイズ１６から一部のデータを抽出する。そして、処理部１２は、抽出した一部のデータのみに対して機械学習を実行させる。分析対象データ１４のうち抽出されなかったデータは機会学習に使用されなくてよい。抽出するデータは、ランダムに選択されてもよいし所定の規則に従って選択されてもよい。
【００２２】
例えば、許容データサイズ１６が特徴量の個数を指定しており、分析対象データ１４が指定の個数より多い特徴量を含んでいる場合、処理部１２は、分析対象データ１４から一部の特徴量を削除して、残った特徴量の個数を指定の個数以下にする。このとき、処理部１２は、分析対象データ１４において並んでいる２以上の特徴量を、後方から優先的に削除するようにしてもよい。許容データサイズ１６が２以上の特徴量に対応する２以上の列を含む場合、処理部１２は、後方の列から優先的に削除してもよい。
【００２３】
また、許容データサイズ１６がレコードの個数を指定しており、分析対象データ１４が指定の個数より多いレコードを含んでいる場合、処理部１２は、分析対象データ１４から一部のレコードを削除して、残ったレコードの個数を指定の個数以下にする。このとき、処理部１２は、分析対象データ１４において並んでいる２以上のレコードを、後方から優先的に削除するようにしてもよい。許容データサイズ１６が２以上のレコードに対応する２以上の行を含む場合、処理部１２は、後方の行から優先的に削除してもよい。
【００２４】
情報処理装置２０の記憶部２１は、履歴情報２３を記憶する。履歴情報２３は、過去に実行された複数の機械学習を示す。過去の機械学習は、以下の情報を採取するためにテスト環境において実行されたテストであってもよい。履歴情報２３は、過去の機械学習それぞれについて、データサイズの実績値、ハードウェアリソース量の実績値および実行時間の実績値を含む。履歴情報２３は、特徴量の個数の実績値、レコードの個数の実績値、ＣＰＵコアの個数の実績値およびメモリの記憶領域の大きさの実績値を含んでもよい。履歴情報２３が示す機械学習がテストである場合、データサイズとハードウェアリソース量を変えながらテストが繰り返し試行されて実行時間が測定されることになる。
【００２５】
情報処理装置２０の処理部２２は、履歴情報２３を用いて対応情報１３を生成する。処理部２２は、履歴情報２３から、データサイズおよびハードウェアリソース量の組と実行時間との間の対応関係を検出し、一般化された対応関係を示す対応情報１３を生成する。例えば、処理部２２は、データサイズとハードウェアリソース量を説明変数とし、実行時間を目的変数として、機械学習により時間計算モデルを生成する。処理部２２が生成した対応情報１３は、情報処理装置１０にインストールされることになる。
【００２６】
第１の実施の形態の機械学習システムによれば、分析対象データ１４を用いた機械学習の推定実行時間１５が、分析対象データ１４のサイズおよび機械学習に使用可能なハードウェアリソースの量から算出される。推定実行時間１５が閾値より大きい場合、推定実行時間１５が閾値以下になる許容データサイズ１６が決定される。そして、許容データサイズ１６に基づいて分析対象データ１４から一部のデータが抽出され、データサイズが削減された一部のデータに対して機械学習が実行される。これにより、データサイズに見合ったハードウェアリソースが確保されないことが原因で、データの移動などのオーバヘッドにより機械学習の実行時間が顕著に長くなることを抑制できる。例えば、メモリの記憶領域の不足によって機械学習の実行時間が想定外に長くなることを抑制できる。
【００２７】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００２８】
第２の実施の形態の情報処理システムは、クライアント装置１００およびサーバ装置２００，３００を含む。クライアント装置１００は、第１の実施の形態の情報処理装置１０に対応する。サーバ装置２００は、第１の実施の形態の情報処理装置２０に対応する。
【００２９】
クライアント装置１００とサーバ装置３００は、同一のユーザ組織に配置されている。クライアント装置１００およびサーバ装置３００は、ネットワーク４２に接続されている。ネットワーク４２は、例えば、ＬＡＮ（Local Area Network）である。サーバ装置２００は、データセンタなどユーザ組織の外部に配置されている。サーバ装置２００およびネットワーク４２は、ネットワーク４１に接続されている。ネットワーク４１は、例えば、インターネットなどの広域データ通信ネットワークである。
【００３０】
クライアント装置１００は、ユーザが機械学習に使用するクライアントコンピュータである。ただし、クライアント装置１００の機能をサーバコンピュータ上に実装することも可能である。クライアント装置１００は、ネットワーク４２を介してサーバ装置３００から定期的にデータを収集する。クライアント装置１００は、収集したデータの一部または全部を訓練データとして使用して機械学習を行い、説明変数と目的変数の間の一般的関係を示すユーザモデルを生成する。クライアント装置１００は、ユーザモデルに特定の説明変数の値を入力することで、未知の目的変数の値を推定する。
【００３１】
ここで、クライアント装置１００は、限られたＣＰＵコアや限られたＲＡＭ記憶領域など、限られたハードウェアリソースを用いて機械学習を行う。そこで、クライアント装置１００は、機械学習を開始してから終了するまでの学習時間がユーザにとって想定外に過大にならないよう、訓練データのサイズを調整する。具体的には、クライアント装置１００は、データサイズとハードウェアリソース量から学習時間を推定する時間モデルを予め保持している。クライアント装置１００は、ユーザに最長学習時間を指定してもらい、推定学習時間が最長学習時間を超えないようにデータサイズを制限する。
【００３２】
サーバ装置２００は、時間モデルを生成するサーバコンピュータである。サーバ装置２００は、データサイズおよびハードウェアリソース量の異なる複数のテストケースを生成し、テストケース毎に機械学習を試行して学習時間を測定する。サーバ装置２００は、ハードウェアリソース量を調整するために、仮想マシンに機械学習を実行させてもよい。サーバ装置２００は、複数のテストケースについてのデータサイズとハードウェアリソース量と実行時間を用いて機械学習を行い、時間モデルを生成する。
【００３３】
サーバ装置２００が生成した時間モデルは、機械学習用のアプリケーションソフトウェアに組み込んでクライアント装置１００に配布されてもよいし、アプリケーションソフトウェアとは別にクライアント装置１００に配布されてもよい。時間モデルまたは時間モデルを含むアプリケーションソフトウェアは、ネットワーク４１，４２を介して送信されてもよいし、可搬記録媒体に記録されて配布されてもよい。
【００３４】
サーバ装置３００は、データを管理するサーバコンピュータである。サーバ装置３００をデータベースサーバと言うこともできる。サーバ装置３００は、クライアント装置１００が分析する可能性のあるデータを蓄積するデータウェアハウスを形成する。サーバ装置３００は、クライアント装置１００からの要求に応じてデータを送信する。
【００３５】
第２の実施の形態の機械学習は、医療データ分析に適用することができる。例えば、クライアント装置１００およびサーバ装置３００が医療機関に配置される。サーバ装置３００は、電子カルテを蓄積する医療データウェアハウスを形成する。医療データウェアハウスは、患者データベース、ユーザデータベースおよびオーダデータベースを含む。患者データベースは、年齢、身長、体重、喫煙歴、飲酒歴などの患者プロフィールを記憶する。ユーザデータベースは、電子カルテを扱う医療従事者の情報を記憶する。オーダデータベースは、医療従事者が患者に対して行った処方の内容や検査の結果を記憶する。
【００３６】
クライアント装置１００は、患者データベース、ユーザデータベースおよびオーダデータベースのデータを、患者ＩＤや医療従事者ＩＤをキーとして用いて結合する。例えば、クライアント装置１００は、一人の患者に関するデータを１つのレコードにまとめる。クライアント装置１００は、複数の患者に対応する複数のレコードを訓練データとして用いてユーザモデルを生成する。ユーザモデルは、例えば、身長や体重などの複数の特徴量を説明変数とし、病気の発症の有無を目的変数とする。このユーザモデルを用いることで、ある患者の病気発症リスクを推定することができる。
【００３７】
クライアント装置１００が機械学習用に保持するデータは、複数の特徴量に対応する複数の列（カラム）と、複数のレコードに対応する複数の行（タプル）とを含むテーブル形式の二次元データである。クライアント装置１００が保持するデータは、特徴数が１０００に達することがあり、レコード数が１００００に達することがある。すなわち、サイズが１０００列×１００００行に達する大規模データになることがある。
【００３８】
図３は、クライアント装置のハードウェア例を示すブロック図である。
クライアント装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像インタフェース１０４、入力インタフェース１０５、媒体リーダ１０６および通信インタフェース１０７を有する。上記ユニットはバスに接続されている。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。サーバ装置２００，３００も同様のハードウェアを有する。
【００３９】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、クライアント装置１００は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４０】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、クライアント装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【００４１】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、クライアント装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【００４２】
画像インタフェース１０４は、ＣＰＵ１０１からの命令に従って、クライアント装置１００に接続された表示装置１１１に画像を出力する。表示装置１１１として、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。また、クライアント装置１００に、プリンタなど表示装置１１１以外の出力デバイスが接続されてもよい。
【００４３】
入力インタフェース１０５は、クライアント装置１００に接続された入力デバイス１１２から入力信号を受け付ける。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。また、クライアント装置１００に複数種類の入力デバイスが接続されてもよい。
【００４４】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００４５】
通信インタフェース１０７は、ネットワーク４２に接続され、サーバ装置３００など他の情報処理装置と通信を行う。通信インタフェース１０７は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【００４６】
図４は、情報処理システムの機能例を示すブロック図である。
クライアント装置１００は、データ記憶部１２１、ユーザモデル記憶部１２２、時間モデル記憶部１２３、データ収集部１２４、設定部１２５、機械学習部１２６およびデータサイズ決定部１２７を有する。データ記憶部１２１は、例えば、ＨＤＤ１０３の記憶領域を用いて実現できる。ユーザモデル記憶部１２２および時間モデル記憶部１２３は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実現できる。データ収集部１２４、設定部１２５、機械学習部１２６およびデータサイズ決定部１２７は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実現できる。
【００４７】
データ記憶部１２１は、サーバ装置３００から収集されたデータを記憶する。データ記憶部１２１に記憶されるデータは、複数の特徴量に対応する複数の列と、複数のレコードに対応する複数の行とを含む二次元データに整形されている。データ記憶部１２１に記憶されたデータは、１０００列×１００００行のような大規模データである。
【００４８】
ユーザモデル記憶部１２２は、クライアント装置１００が機械学習により生成するモデルであって、ユーザが未知の事象を推定するために使用するユーザモデルを記憶する。
時間モデル記憶部１２３は、データサイズとハードウェアリソース量から学習時間を推定する時間モデルを記憶する。データサイズは、列数と行数によって指定される。ハードウェアリソース量は、ＣＰＵコア数と空きメモリ量によって指定される。時間モデルは、サーバ装置２００によって事前に生成され、予め時間モデル記憶部１２３に格納される。
【００４９】
データ収集部１２４は、サーバ装置３００に定期的にアクセスし、サーバ装置３００が提供するデータウェアハウスからデータを受信する。データ収集部１２４は、受信したデータを二次元データに整形してデータ記憶部１２１に格納する。
【００５０】
設定部１２５は、ユーザから機械学習の設定を示すユーザコマンドを受け付ける。ユーザコマンドには、ユーザが許容する学習時間の上限である最大学習時間が含まれる。設定部１２５は、機械学習を開始する前に、ユーザコマンドをデータサイズ決定部１２７に通知し、決定されたデータサイズをデータサイズ決定部１２７から受け付ける。データサイズは、特徴数とレコード数、すなわち、列数と行数によって指定される。設定部１２５は、データサイズ決定部１２７から通知されたデータサイズを含む設定ファイルを生成し、設定ファイルを機械学習部１２６に渡して機械学習の開始を指示する。
【００５１】
機械学習部１２６は、設定部１２５から受け付けた設定ファイルに基づいて機械学習を実行する。機械学習部１２６は、複数の学習アルゴリズムの中から実行する学習アルゴリズムを選択し得る。機械学習部１２６は、設定ファイルで指定されたデータサイズに応じて、データ記憶部１２１に記憶されたデータの一部または全部を訓練データとして抽出する。訓練データはＲＡＭ１０２にロードされる。
【００５２】
設定ファイルで指定された特徴数を超える特徴量を二次元データがもつ場合、機械学習部１２６は、一部の特徴量を訓練データから除外して機械学習に使用しないようにする。機械学習に使用しない特徴量はＲＡＭ１０２にロードしなくてよい。機械学習部１２６は、例えば、二次元データがもつ複数の特徴量のうち後方の特徴量を優先的に削除し、前方の特徴量を優先的に訓練データに含めるようにする。なお、ユーザが重要と考える特徴量が前方に位置するように、特徴量の順序を予めユーザに調整してもらうことが好ましい。
【００５３】
また、設定ファイルで指定されたレコード数を超えるレコードを二次元データがもつ場合、機械学習部１２６は、一部のレコードを訓練データから除外して機械学習に使用しないようにする。機械学習に使用しないレコードはＲＡＭ１０２にロードしなくてよい。機械学習部１２６は、例えば、二次元データがもつ複数のレコードのうち後方のレコードを優先的に削除し、前方のレコードを優先的に訓練データに含めるようにする。ただし、機械学習部１２６は、訓練データから除外するレコードをランダムに選択してもよい。
【００５４】
また、機械学習部１２６は、過去の機械学習の実行結果に基づいて、高い精度のユーザモデルとの関連性が高い特徴量を優先的に訓練データに含め、高い精度のユーザモデルとの関連性が低い特徴量を優先的に除外するようにしてもよい。このために、機械学習部１２６は、クライアント装置１００で過去に実行された機械学習について、使用した特徴量および生成されたユーザモデルの精度を記録しておいてもよい。機械学習部１２６は、このような履歴情報を用いて、訓練データに含める特徴量からユーザモデルの精度を推定する精度モデルを機械学習によって生成するようにしてもよい。また、精度モデルの生成は、サーバ装置２００など他の情報処理装置で行ってもよい。
【００５５】
データサイズ決定部１２７は、設定部１２５から受け付けたユーザコマンドと、時間モデル記憶部１２３に記憶された時間モデルとに基づいて、今回の機械学習のデータサイズを決定する。決定するデータサイズは、時間モデルによって算出される推定学習時間が、ユーザコマンドで指定された最大学習時間を超えない範囲で最大のデータサイズである。データサイズ決定部１２７は、決定したデータサイズを設定部１２５に通知する。
【００５６】
推定学習時間を算出するにあたり、データサイズ決定部１２７は、クライアント装置１００のハードウェアリソース量として、クライアント装置１００のＣＰＵコア数および空きメモリ量を検出する。データサイズ決定部１２７は、検出したＣＰＵコア数および空きメモリ量を時間モデルに入力し、異なるデータサイズを時間モデルに順次入力することで、データサイズの変化に対する推定学習時間の変化を追跡する。
【００５７】
データサイズとして、データサイズ決定部１２７は、特徴数とレコード数を決定する。このとき、データサイズ決定部１２７は、特徴数を優先的に減らし、特徴数を下限値まで減らしても推定学習時間が最大学習時間以下にならない場合にレコード数を減らす。これは、収集されるデータの中には、目的変数との関連性が明らかに低い不要な特徴量が含まれていることが多いためである。すなわち、特徴量をある程度削減してもユーザモデルの精度はあまり下がらない一方、レコードを削減すると比例的に精度が下がるためである。
【００５８】
サーバ装置２００は、サンプルデータ記憶部２２１、テストケース記憶部２２２、時間モデル記憶部２２３、機械学習部２２４および時間モデル生成部２２５を有する。サンプルデータ記憶部２２１は、例えば、サーバ装置２００が有するＨＤＤの記憶領域を用いて実現できる。テストケース記憶部２２２および時間モデル記憶部２２３は、例えば、サーバ装置２００が有するＨＤＤまたはＲＡＭの記憶領域を用いて実現できる。機械学習部２２４および時間モデル生成部２２５は、例えば、サーバ装置２００が有するＣＰＵが実行するプログラムを用いて実現できる。
【００５９】
サンプルデータ記憶部２２１は、機械学習のテスト用に予め用意されたサンプルデータを記憶する。サンプルデータは、クライアント装置１００が収集するデータと同種のデータ（例えば、医療データ）であってもよいし、異なる種類のデータであってもよい。例えば、列挙される特徴量（データ項目）が同じでもよいし異なってもよい。サンプルデータ記憶部２２１に記憶されるサンプルデータは、複数の特徴量に対応する複数の列と、複数のレコードに対応する複数の行とを含む二次元データに整形されている。サンプルデータは、１０００列×１００００行のような大規模データである。
【００６０】
テストケース記憶部２２２は、機械学習の実行条件を示す複数のテストケースを記憶する。テストケース記憶部２２２は、例えば、１００個程度のテストケースを記憶する。各テストケースは、訓練データのデータサイズおよび機械学習に使用するハードウェアリソースの量の指定を含む。データサイズは列数および行数の指定を含み、ハードウェアリソース量はＣＰＵコア数およびメモリ量の指定を含む。テストケースは時間モデルの作成者により予め用意される。時間モデルの精度向上のため、様々なデータサイズとハードウェアリソース量の組み合わせについてテストケースを作成することが好ましい。
【００６１】
時間モデル記憶部２２３は、複数のテストケースに対応する複数のテスト結果から機械学習によって生成された時間モデルを記憶する。時間モデル記憶部２２３に記憶される時間モデルは、最終的にクライアント装置１００に提供される。時間モデルは、データサイズとハードウェアリソース量から学習時間を推定できるものであればよい。時間モデルとして、線形回帰モデル、サポートベクタマシン（ＳＶＭ：Support Vector Machine）、ニューラルネットワーク、ランダムフォレストなど任意の種類のモデルを使用できる。
【００６２】
機械学習部２２４は、テストケース記憶部２２２に記憶された複数のテストケースに従って複数回の機械学習を実行する。具体的には、機械学習部２２４は、テストケースで指定されたデータサイズに従って、サンプルデータ記憶部２２１に記憶されたサンプルデータの一部または全部を訓練データとして抽出する。また、機械学習部２２４は、テストケースで指定された量のハードウェアリソースをもつ実行環境を構築する。すなわち、機械学習部２２４は、指定された数のＣＰＵコアと指定された大きさのメモリ領域をもつ実行環境を構築する。ハードウェアリソース量の調整を容易にするため、機械学習部２２４は、機械学習プログラムを実行する仮想マシンを使用してもよい。その場合、仮想マシンに割り当てるハードウェアリソースの量を調整すればよい。
【００６３】
機械学習部２２４は、テストケース毎に、訓練データを実行環境に入力し、機械学習の開始から終了までに要した学習時間を測定する。機械学習部２２４は、複数のテストケースに対応付けて、測定した複数の学習時間を時間モデル生成部２２５に通知する。
【００６４】
時間モデル生成部２２５は、機械学習部２２４から、データサイズとハードウェアリソース量と学習時間を対応付けた複数のテスト結果を取得する。時間モデル生成部２２５は、複数のテスト結果を用いて機械学習によって時間モデルを生成する。
【００６５】
図５は、データテーブルの例を示す図である。
データテーブル１３１は、クライアント装置１００のデータ記憶部１２１に記憶される。データテーブル１３１は、レコードＩＤ、結果および複数の特徴量の列を含む。また、データテーブル１３１は、複数のレコードに対応する複数の行を含む。レコードＩＤは、レコードを識別する識別情報である。結果は、ユーザモデルの目的変数である。特徴量は、ユーザモデルの説明変数の候補である。複数の特徴量は、ユーザが重要と考えるものが前方（左側）に配置され、ユーザが重要でないと考えるものが後方（右側）に配置されるように、ユーザによって並び順が調整されていることが好ましい。
【００６６】
収集されるデータが医療データである場合、例えば、１つのレコードが１人の患者に対応する。レコードＩＤは、患者を識別する患者ＩＤである。結果は、特定の病気の発症の有無を示すフラグである。特徴量は、年齢、身長、体重、ＢＭＩ（Body Mass Index）、喫煙歴、飲酒歴など、患者の身体的特徴や行動的特徴を表す指標である。特徴量は、有り無しを表すフラグでもよいし、非負整数などの離散値でもよいし、実数でもよい。データテーブル１３１では、非数値情報は対応する数値に変換されている。
【００６７】
図６は、ユーザコマンドと設定ファイルの例を示す図である。
ユーザコマンド１３２は、設定部１２５がユーザから受け付けるものである。ユーザコマンド１３２は、最長学習時間、最低特徴数、最低レコード数および学習アルゴリズムを含む。設定部１２５は、ユーザに問い合わせてこれらの情報をユーザに入力してもらう。
【００６８】
最長学習時間は、ユーザが希望する学習時間の上限である。クライアント装置１００は、学習時間が最長学習時間を超えないように機械学習を制御する。最低特徴数は、ユーザモデルに使用する特徴量の個数（引数の個数）の下限である。ユーザモデルに使用する特徴量の個数は、データテーブル１３１より少なくなる可能性があるものの、指定された最低特徴数を下回ることはない。最低レコード数は、訓練データに含めるレコードの個数の下限である。訓練データに含めるレコードの個数は、データテーブル１３１より少なくなる可能性があるものの、指定された最低レコード数を下回ることはない。なお、最長学習時間と最低特徴数と最低レコード数の全ての条件を満たすことができないと推定される場合、設定部１２５は、機械学習の開始前にユーザに対してエラーメッセージを通知する。
【００６９】
学習アルゴリズムは、機械学習に使用するアルゴリズムである。学習アルゴリズムには、線形サポートベクタマシン（線形ＳＶＭ）、ディープニューラルネットワーク（ＤＮＮ：Deep Neural Network）、ニューラルネットワークなどが含まれる。同じ訓練データを用いても、学習アルゴリズムによって異なる精度のユーザモデルが生成され得る。機械学習部１２６は、複数の学習アルゴリズムを実行することが可能である。ユーザは、機械学習部１２６が実行可能な学習アルゴリズムの中から所望の学習アルゴリズムを指定する。
【００７０】
ユーザは、学習アルゴリズムを１つだけ指定することもできるし、２つ以上指定することもできる。ユーザが２以上の学習アルゴリズムを指定した場合、機械学習部１２６は、指定された２以上の学習アルゴリズムそれぞれを実行し、生成された２以上のユーザモデルのうち最も精度が高いユーザモデルを採用する。この場合、２以上の学習アルゴリズムの合計学習時間が最長学習時間を超えないように機械学習が制御される。
【００７１】
一例として、ユーザコマンド１３２は、最長学習時間を１２０時間、最低特徴数を５０個、最低レコード数を１０００個、学習アルゴリズムをニューラルネットワークに指定する。この場合、学習時間を１２０時間以下にするため、データテーブル１３１に含まれる１０００個程度の特徴量の一部が５０個を下限として訓練データから除外される可能性がある。また、データテーブル１３１に含まれる１００００個程度のレコードの一部が１０００個を下限として訓練データから除外される可能性がある。
【００７２】
設定ファイル１３３は、設定部１２５が機械学習部１２６に入力するものである。設定ファイル１３３は、特徴数、レコード数および学習アルゴリズムを含む。特徴数は、訓練データに含める特徴量の個数であり、データテーブル１３１に含まれる特徴量の個数以下かつユーザコマンド１３２で指定された最低特徴数以上である。レコード数は、訓練データに含めるレコードの個数であり、データテーブル１３１に含まれるレコードの個数以下かつユーザコマンド１３２で指定された最低レコード数以上である。学習アルゴリズムは、ユーザコマンド１３２で指定された学習アルゴリズムと同じである。
【００７３】
一例として、設定ファイル１３３は、特徴数を１００個、レコード数を１００００個、学習アルゴリズムをニューラルネットワークに指定する。最長学習時間を１２０時間以下にするため、訓練データの特徴量の個数をデータテーブル１３１よりも減らしている。ただし、特徴量の個数はユーザが指定した最低特徴数よりは多い。また、訓練データには、データテーブル１３１に含まれる全てのレコードを使用することができる。
【００７４】
図７は、テストケーステーブルとテスト結果テーブルの例を示す図である。
テストケーステーブル２３１は、サーバ装置２００のテストケース記憶部２２２に記憶される。テストケーステーブル２３１は、複数のテストケースを示しており、テストＩＤ、列数、行数、ＣＰＵ、ＲＡＭおよび学習アルゴリズムの項目を含む。
【００７５】
テストＩＤの項目には、テストケースを識別する識別情報が登録される。列数の項目には、訓練データに含める特徴量の個数が登録される。行数の項目には、訓練データに含めるレコードの個数が登録される。ＣＰＵの項目には、機械学習に使用するＣＰＵコアの個数が登録される。ＲＡＭの項目には、機械学習に使用するＲＡＭの記憶領域の大きさ（例えば、単位はギガバイト）が登録される。学習アルゴリズムの項目には、実行する１つの学習アルゴリズムの名称が登録される。例えば、Ｌ−ＳＶＭは線形ＳＶＭを表し、ＤＮＮはディープニューラルネットワークを表し、ＮＮＥＴはニューラルネットワークを表す。指定可能な学習アルゴリズムは、機械学習部２２４が実行可能なものである。
【００７６】
テスト結果テーブル２３２は、機械学習部２２４から時間モデル生成部２２５に渡される。テスト結果テーブル２３２は、複数のテストケースに対応する複数のテスト結果を示す。テスト結果テーブル２３２から時間モデルが生成される。テスト結果テーブル２３２は、テストＩＤ、学習時間、列数、行数、ＣＰＵおよびＲＡＭの項目を含む。また、テスト結果テーブル２３２は、複数の学習アルゴリズムに対応する複数のフラグを含む。
【００７７】
テストＩＤ、列数、行数、ＣＰＵおよびＲＡＭの項目には、テストケーステーブル２３１の値が転記される。学習時間の項目には、テストケースが示す条件のもとで機械学習を試行したときに測定された学習時間の実績値が登録される。テスト結果テーブル２３２では、機械学習により時間モデルを生成できるように、テストケーステーブル２３１に登録された学習アルゴリズムの名称（文字情報）がフラグに変換されている。テスト結果テーブル２３２は、機械学習部２２４が実行可能な複数の学習アルゴリズムに対応する複数のフラグを含む。あるテストケースが１つの学習アルゴリズムを指定している場合、指定された学習アルゴリズムに対応するフラグが「１」に設定され、指定されなかった学習アルゴリズムに対応するフラグが「０」に設定される。
【００７８】
次に、クライアント装置１００およびサーバ装置２００の処理手順について説明する。
図８は、時間モデル生成の手順例を示すフローチャートである。
（Ｓ１０）機械学習部２２４は、テストケース記憶部２２２に記憶されたテストケーステーブル２３１の中から未試行のテストケースを１つ選択する。
【００７９】
（Ｓ１１）機械学習部２２４は、サンプルデータ記憶部２２１に記憶されたサンプルデータの中から、選択したテストケースで指定されたデータサイズの訓練データを抽出する。具体的には、機械学習部２２４は、テストケースで指定された列数だけ、サンプルデータの左側から優先的に特徴量を抽出する。また、機械学習部２２４は、テストケースで指定された行数だけ、サンプルデータの上側から優先的にレコードを抽出する。指定の列数を超える特徴量や指定の行数を超えるレコードは、訓練データから除外される。
【００８０】
（Ｓ１２）機械学習部２２４は、選択したテストケースで指定された量のハードウェアリソースをもつ実行環境を設定する。具体的には、機械学習部２２４は、テストケースで指定された個数のＣＰＵコアおよび指定された大きさのＲＡＭの記憶領域をもつ実行環境を設定する。例えば、機械学習部２２４は、機械学習を実行するプロセスに、指定された個数のＣＰＵコアおよび指定された大きさのＲＡＭの記憶領域を割り当てる。
【００８１】
（Ｓ１３）機械学習部２２４は、選択したテストケースで指定された学習アルゴリズムを、ステップＳ１２の実行環境においてステップＳ１１の訓練データに対して実行する。機械学習部２２４は、機械学習の開始から終了までの学習時間を測定する。
【００８２】
（Ｓ１４）機械学習部２２４は、テストケーステーブル２３１に含まれる全てのテストケースを試行したか判断する。全てのテストケースを試行した場合はステップＳ１５に進み、未試行のテストケースがある場合はステップＳ１０に戻る。
【００８３】
（Ｓ１５）機械学習部２２４は、テストケースの情報とステップＳ１３で測定した学習時間とを含むテスト結果テーブル２３２を生成し、時間モデル生成部２２５に渡す。
（Ｓ１６）時間モデル生成部２２５は、テスト結果テーブル２３２を訓練データとして用いて、機械学習により時間モデルを生成する。時間モデルを生成する機械学習には、線形回帰モデル、サポートベクタマシン、ニューラルネットワーク、ランダムフォレストなどの学習アルゴリズムを使用できる。テスト結果テーブル２３２に含まれる学習時間が目的変数であり、テスト結果テーブル２３２に含まれる列数、行数、ＣＰＵコア数、メモリ領域および学習アルゴリズムフラグが説明変数である。時間モデル生成部２２５は、生成した時間モデルを時間モデル記憶部２２３に格納する。
【００８４】
図９は、ユーザ機械学習の手順例を示すフローチャートである。
（Ｓ２０）設定部１２５は、最長学習時間、最低特徴数、最低レコード数および１以上の学習アルゴリズムを含むユーザコマンド１３２を受け付ける。
【００８５】
（Ｓ２１）データサイズ決定部１２７は、ユーザコマンド１３２に基づいて、特徴数およびレコード数を含むデータサイズを決定する。データサイズ決定の詳細は後述する。
（Ｓ２２）設定部１２５は、ステップＳ２１で決定されたデータサイズとユーザが指定した１以上の学習アルゴリズムとを含む設定ファイル１３３を生成する。設定部１２５は、設定ファイル１３３を機械学習部１２６に入力する。
【００８６】
（Ｓ２３）機械学習部１２６は、データ記憶部１２１に記憶されたデータテーブル１３１の中から、設定ファイル１３３で指定されたデータサイズの訓練データを抽出する。具体的には、機械学習部１２６は、設定ファイル１３３で指定された特徴数（列数）だけ、データテーブル１３１の左側から優先的に特徴量を抽出する。また、機械学習部１２６は、設定ファイル１３３で指定されたレコード数（行数）だけ、データテーブル１３１の上側から優先的にレコードを抽出する。指定の特徴数を超える特徴量や指定のレコード数を超えるレコードは、訓練データから除外される。なお、前述したように、抽出すべき特徴量およびレコードを他の抽出基準に従って選択することも可能である。
【００８７】
（Ｓ２４）機械学習部１２６は、設定ファイル１３３で指定された１以上の学習アルゴリズムの中から、未実行の学習アルゴリズムを１つ選択する。
（Ｓ２５）機械学習部１２６は、選択した学習アルゴリズムを、ステップＳ２３の訓練データに対して実行する。これによりユーザモデルが生成される。機械学習部１２６は、生成したユーザモデルの精度を測定する。ユーザモデルの精度は、説明変数の値から目的変数の値を正確に推定する能力を表す。精度の指標として、正答率（Accuracy）、適合率（Precision）、Ｆ値、平均二乗誤差（ＭＳＥ：Mean Squared Error）、平均二乗誤差平方根（ＲＭＳＥ：Root Mean Squared Error）など、任意の指標を使用することができる。例えば、機械学習部１２６は、説明変数の値および目的変数の値を含むテストレコードを用意する。機械学習部１２６は、説明変数の値をユーザモデルに入力し、ユーザモデルが出力する推定値とテストレコードの目的変数の値とを比較して精度を算出する。テストレコードは、訓練データの中の一部のレコードでもよいし、データテーブル１３１に含まれるレコードのうち訓練データに採用されなかったレコードでもよい。
【００８８】
（Ｓ２６）機械学習部１２６は、設定ファイル１３３で指定された全ての学習アルゴリズムを実行したか判断する。全ての学習アルゴリズムを実行した場合はステップＳ２７に進み、未実行の学習アルゴリズムがある場合はステップＳ２４に戻る。
【００８９】
（Ｓ２７）機械学習部１２６は、生成した１以上のユーザモデルのうち精度が最も高いユーザモデルを選択し、選択したユーザモデルをユーザモデル記憶部１２２に格納する。
図１０は、データサイズ決定の手順例を示すフローチャートである。
【００９０】
データサイズ決定は、前述のステップＳ２１で実行される。
（Ｓ３０）データサイズ決定部１２７は、データ記憶部１２１に記憶されたデータテーブル１３１の特徴量の個数（列数）とレコードの個数（行数）を検出する。
【００９１】
（Ｓ３１）データサイズ決定部１２７は、クライアント装置１００が機械学習に使用可能なハードウェアリソースの量として、ＣＰＵコア数および空きメモリ量を検出する。ＣＰＵコア個数および空きメモリ量は、例えば、クライアント装置１００で実行されるＯＳから取得することができる。ＣＰＵコア数は、ＣＰＵ１０１が有するＣＰＵコアの個数である。空きメモリ量は、ＲＡＭ１０２の記憶容量から現在の使用量を引いたものである。
【００９２】
（Ｓ３２）データサイズ決定部１２７は、時間モデル記憶部１２３に記憶された時間モデルに、ステップＳ３０で検出した列数および行数と、ステップＳ３１で検出したＣＰＵコア数および空きメモリ量を入力する。また、データサイズ決定部１２７は、時間モデルに、ユーザコマンド１３２で指定された学習アルゴリズムを入力する。これにより、データサイズ決定部１２７は、時間モデルから推定学習時間を取得する。
【００９３】
２以上の学習アルゴリズムが指定されている場合、データサイズ決定部１２７は、学習アルゴリズムを１つずつ時間モデルに入力して、学習アルゴリズム毎に時間モデルから推定学習時間を取得する。そして、データサイズ決定部１２７は、２以上の学習アルゴリズムに対応する２以上の推定学習時間を合算し、合算した推定学習時間を以下で使用する。後述するステップＳ３４，Ｓ３７の再計算の場合も同様である。
【００９４】
（Ｓ３３）データサイズ決定部１２７は、ステップＳ３２で算出された推定学習時間が、ユーザコマンド１３２で指定された最長学習時間より大きいか判断する。推定学習時間が最長学習時間より大きい場合はステップＳ３４に進み、推定学習時間が最長学習時間以下である場合はステップＳ４１に進む。
【００９５】
（Ｓ３４）データサイズ決定部１２７は、列数を、ステップＳ３０で検出された当初の列数の５％だけ減少させる。データサイズ決定部１２７は、減少後の列数を用いて推定学習時間を再計算する。すなわち、データサイズ決定部１２７は、時間モデルに、減少後の列数と、ステップＳ３０で検出した行数と、ステップＳ３１で検出したＣＰＵコア数および空きメモリ量と、指定された学習アルゴリズムを入力する。データサイズ決定部１２７は、時間モデルから推定学習時間を取得する。
【００９６】
（Ｓ３５）データサイズ決定部１２７は、ステップＳ３４で算出された推定学習時間が、ユーザコマンド１３２で指定された最長学習時間より大きいか判断する。推定学習時間が最長学習時間より大きい場合はステップＳ３６に進み、推定学習時間が最長学習時間以下である場合はステップＳ４１に進む。
【００９７】
（Ｓ３６）データサイズ決定部１２７は、減少後の列数が、ユーザコマンド１３２で指定された最低特徴数以下であるか判断する。列数が最低特徴数以下の場合はステップＳ３７に進み、列数が最低特徴数より大きい場合はステップＳ３４に戻る。
【００９８】
（Ｓ３７）データサイズ決定部１２７は、行数を、ステップＳ３０で検出された当初の行数の５％だけ減少させる。データサイズ決定部１２７は、減少後の行数を用いて推定学習時間を再計算する。すなわち、データサイズ決定部１２７は、時間モデルに、ステップＳ３４〜Ｓ３６を通じて減少した列数と、減少後の行数と、ステップＳ３１で検出したＣＰＵコア数および空きメモリ量と、指定された学習アルゴリズムを入力する。データサイズ決定部１２７は、時間モデルから推定学習時間を取得する。
【００９９】
（Ｓ３８）データサイズ決定部１２７は、ステップＳ３７で算出された推定学習時間が、ユーザコマンド１３２で指定された最長学習時間より大きいか判断する。推定学習時間が最長学習時間より大きい場合はステップＳ３９に進み、推定学習時間が最長学習時間以下である場合はステップＳ４１に進む。
【０１００】
（Ｓ３９）データサイズ決定部１２７は、減少後の行数が、ユーザコマンド１３２で指定された最低レコード数以下であるか判断する。行数が最低レコード数以下の場合はステップＳ４０に進み、行数が最低レコード数より大きい場合はステップＳ３７に戻る。
【０１０１】
（Ｓ４０）データサイズ決定部１２７は、エラーを設定部１２５に通知する。設定部１２５は、表示装置１１１にエラーメッセージを表示する。そして、データサイズ決定が終了する。この場合、前述のステップＳ２２〜Ｓ２７は実行されないことになる。
【０１０２】
（Ｓ４１）データサイズ決定部１２７は、現在の列数を特徴数に決定し、現在の行数をレコード数に決定し、決定した特徴数およびレコード数を設定部１２５に通知する。
図１１は、データサイズの調整例を示す図である。
【０１０３】
ここでは、特徴量の個数の制限により学習時間が短縮されることを考える。まず、クライアント装置１００は、データテーブル１３１に含まれる全ての特徴量を用いて機械学習を行うことを仮定する。すると、時間モデルにより推定学習時間１４１が算出される。推定学習時間１４１は、ユーザが指定した最長学習時間よりも長い。
【０１０４】
そこで、クライアント装置１００は、データテーブル１３１に含まれる一部の特徴量を除外し、残った特徴量を用いて機械学習を行うことを仮定する。すると、時間モデルにより推定学習時間１４２が算出される。推定学習時間１４２は、推定学習時間１４１より短いものの、ユーザが指定した最長学習時間よりも長い。そこで、クライアント装置１００は、データテーブル１３１から除外する特徴量を更に増やし、残った特徴量を用いて機械学習を行うことを仮定する。すると、時間モデルにより推定学習時間１４３が算出される。推定学習時間１４３は、ユーザが指定した最長学習時間以下である。そこで、クライアント装置１００は、推定学習時間１４３が算出された際の特徴量の個数を採用する。
【０１０５】
第２の実施の形態の情報処理システムによれば、予め様々なテストケースについて機械学習が試行され、訓練データの列数と訓練データの行数とＣＰＵコア数と空きメモリ量から学習時間を推定する時間モデルが生成される。ユーザが機械学習を実行する際には、この時間モデルを用いて、特定の特徴数と特定のレコード数と特定のＣＰＵコア数と特定の空きメモリ量に対応する推定学習時間が算出される。推定実行時間がユーザの所望時間より長い場合、推定実行時間が所望時間以下になるような特徴数とレコード数が決定される。そして、決定された特徴数とレコード数をもつ訓練データが抽出され、抽出された訓練データに対して、ユーザのハードウェアにより機械学習が実行される。
【０１０６】
これにより、データサイズに見合ったＲＡＭの記憶領域が不足することが原因で、ハードウェア内のデータの移動などのオーバヘッドにより学習時間が顕著に長くなることを抑制できる。よって、ユーザが許容可能な時間内で機械学習を完了させることができる。また、推定実行時間がユーザの許容可能時間内であることを条件として、できる限り特徴量の個数およびレコードの個数が大きくなるように訓練データが調整される。よって、生成されるユーザモデルの精度を向上させることができる。また、特徴量の個数が優先的に制限され、特徴量の個数の後にレコードの個数が制限される。収集された雑多なデータの中には目的変数との関連が弱い特徴量も含まれているため、特徴量の個数を優先的に制限することで、ユーザモデルの精度の低下を抑制できる。
【符号の説明】
【０１０７】
１０，２０  情報処理装置
１１，２１  記憶部
１２，２２  処理部
１３  対応情報
１４  分析対象データ
１５  推定実行時間
１６  許容データサイズ
２３  履歴情報
【図１】
2020149230.tif 000003
【図２】
2020149230.tif 000004
【図３】
2020149230.tif 000005
【図４】
2020149230.tif 000006
【図５】
2020149230.tif 000007
【図６】
2020149230.tif 000008
【図７】
2020149230.tif 000009
【図８】
2020149230.tif 000010
【図９】
2020149230.tif 000011
【図１０】
2020149230.tif 000012
【図１１】
2020149230.tif 000013