(57)【要約】【課題】差分学習において入力レートに応じた学習時間の制限範囲内でウィンドウサイズ及びサンプリングレートを可変に設定することを目的とする。【解決手段】順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータに実行させる差分学習管理プログラムであって、前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、前記入力データのデータレートを計測し、前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、前記ウィンドウサイズ及びサンプリングレートを算出する、差分学習管理プログラムが提供される。【選択図】図１０
2016126596.tif 000002
【特許請求の範囲】
【請求項１】
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータに実行させる差分学習管理プログラムであって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、
前記入力データのデータレートを計測し、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する、
差分学習管理プログラム。
【請求項２】
前記学習履歴情報に基づき、学習時間のモデルを生成し、
前記計測したデータレートに基づき、前記学習時間のモデルから前記ウィンドウサイズ及びサンプリングレートを算出する、
請求項１に記載の差分学習管理プログラム。
【請求項３】
前記設定されたサンプリングレートに応じた差分学習の精度が所定の閾値以下の場合、前記ウィンドウサイズ及びサンプリングレートの算出を終了し、最後に算出されたウィンドウサイズ及びサンプリングレートを設定する、
請求項１又は２に記載の差分学習管理プログラム。
【請求項４】
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習を行う差分学習装置を管理する差分学習管理装置であって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶する記憶部と、
前記入力データのデータレートを計測する入力レート計測部と、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する算出部と、
を有する差分学習管理装置。
【請求項５】
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータが実行する差分学習管理方法であって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、
前記入力データのデータレートを計測し、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する、
差分学習管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、差分学習管理プログラム、差分学習管理装置及び差分学習管理方法に関する。
【背景技術】
【０００２】
近年、インターネットや各種センサーから発生する大量の時系列データから、ビジネスに役立つ新たな知識や情報を得ることを目的とした機械学習の技術が注目されている。大量の時系列データを対象とした機械学習では、短い学習時間と高い精度の両立が重要である。
【０００３】
図１に示すように、機械学習には「バッチ型学習」、「オンライン型学習」、「差分型学習」の３種類のカテゴリの学習方法が存在する。精度と学習時間とのバランスの観点では、学習データの入力レートによって差分型とオンライン型の学習方法のどちらが優位であるかが変わる。それぞれの学習法の性能（学習時間）と精度の関係を図１に示す。
【０００４】
入力レートが高ければ（例：数千〜数万個／秒）、最近の更新分のデータを数ミリ秒で学習できるオンライン学習方法でしか学習できない。一方、入力レートが一定の値を超えなければ（例：数十〜数百個／秒）、差分型学習がオンライン型学習よりも高い精度が得られる。
【０００５】
「差分型学習」は、バッチ型学習とほぼ同等の精度を持ちながら、データが発生するたびにゼロから学習を行わないで前回の結果を流用して学習を継続することができる。差分型の機械学習を行う場合、順次リアルタイムに入力されるデータを図２に示すように区切って、纏めた形で差分学習器に渡す必要がある。以下では、その区切り方を、「ウィンドウサイズ」という。例えばある差分学習器では、今までの学習結果であるＭ個の学習済みのモデルデータと新しいＮ個の学習データとを結合し、差分学習のアルゴリズムによって差分学習処理を実行する。その場合、Ｍ個のモデルデータが一定のオーバーヘッド（モデルの再学習にかかる時間）を発生させる主な要因となる。
【０００６】
このため、Ｎ個の新しい学習データに対して、図３に示すようにウィンドウサイズＮが小さすぎると、差分学習のオーバーヘッドの影響により学習スピードが入力データの蓄積スピード（以下、「入力レート」ともいう。）より下がってしまう。一方、学習時間がＯ（（Ｍ＋Ｎ）２）（すなわち、学習時間がデータ量（Ｍ＋Ｎ）２を超えることがない）のようなアルゴリズムでは、ウィンドウサイズＮが大きすぎると学習のスピードが入力レートを大きく下回ることになる。よって、入力レートが多少変動しても学習時間が入力データの蓄積時間を超えない領域Ａに対応するＮ１〜Ｎ２個の範囲内にウィンドウサイズを設定することが好ましい。
【０００７】
また、図４に示すように、学習の実行中に入力レートが上昇すると、学習スピードが入力レートを上回る領域Ａは小さくなる。図４の入力レート１４０個／ｓのように入力レートが大きすぎると、入力データ（新しい未学習のデータ）の蓄積時間が小さくなり、すべてのウィンドウサイズにおいて学習スピードは入力レートを下回ることになるため、適切なウィンドウサイズを設定することが困難になる。
【０００８】
差分型の機械学習の一例としては、図５に示すサポートベクターマシンの差分学習技術が知られている（例えば、非特許文献１参照）。差分学習器では、主にネットワークを通じて収集される大量の時系列データから差分型の機械学習が行われる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Zhao, J. Parallelized incremental support vector machines based on MapReduce and Bagging technique, 2012
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記サポートベクターマシンでは、ウィンドウサイズ（入力バッファーに蓄積される入力データ数）は、事前に決定される固定値であり、動的に変動させることはできない。また、サポートベクターマシン以外の差分学習アルゴリズムもたくさん研究されているが、いずれもウィンドウサイズは固定されている。ウィンドウサイズを固定値にすると、学習スピードが入力レートと同一又は速くなるようにウィンドウサイズが決まる。例えば、図６のウィンドウサイズがＮ３個及び入力レートが１００個／ｓとき、学習時間は、入力バッファーへの入力データの蓄積時間よりも短くなる。
【００１１】
ただし、ウィンドウサイズを決定後、図６に示すように入力レートが１００個／ｓから１２０個／ｓに上がると、ウィンドウサイズＮ３において学習スピードが入力レートよりも遅くなる可能性がある。例えば、図６のウィンドウサイズがＮ３及び入力レートが１２０個／ｓとき、学習時間は、入力バッファーへの入力データの蓄積時間よりも長くなる。このように入力レートが変動する場合、変動後においても学習スピードが入力レート以下となるウィンドウサイズＮ４を予め予測することは困難である。
【００１２】
一方、すべてのデータを学習せず一定の割合でサンプリングしたものだけを学習するようにすれば、Ｍ個のモデルを用いた再学習にかかる時間が小さくなり、学習スピードを高めることができ、再び学習時間が入力データの蓄積時間より短くなるように制御することが出来る。例えば、図７では、サンプリングレートを２０％から１５％に下げると、同じウィンドウサイズでも学習スピードが入力レートよりも高くなり、学習時間が入力データの蓄積時間よりも短くなる。
【００１３】
ただし、サンプリングを行うことによって、全ての入力データが学習に使われないため、学習結果の精度が下がる。例えば、図８では、サンプリングレートを２０から１５％に下げると、学習結果の精度が下がることが示されている。つまり、必要以上にサンプリングレートを下げると、差分学習の結果が適切な精度を維持できないことになる。例えば、図７に示すように、サンプリングレートを２０％から１５％に下げると、学習結果の精度は、８５％から８２％に低下する。
【００１４】
図９に示すように、ウィンドウサイズをＮ５に固定してサンプリングレートだけを変化させるよりも、サンプリングレートとウィンドウサイズの両方を調整すれば、学習結果の精度を必要以上に下げることを回避しながら、適切なウィンドウサイズＮ６を設定できる。しかしながら、ウィンドウサイズとサンプリングレートとの両方を適切に調整する方法は知られていない。
そこで、一側面では、本発明は、差分学習において入力レートに応じた学習時間の制限範囲内でウィンドウサイズ及びサンプリングレートを可変に設定することを目的とする。
【課題を解決するための手段】
【００１５】
一つの案では、順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータに実行させる差分学習管理プログラムであって、前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、前記入力データのデータレートを計測し、前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する、差分学習管理プログラムが提供される。
【発明の効果】
【００１６】
一側面によれば、差分学習において入力レートに応じた学習時間の制限範囲内でウィンドウサイズ及びサンプリングレートを可変に設定することで、学習結果の精度と学習時間との両立を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】バッチ型、差分型及びオンライン型の機械学習を比較する図。
【図２】差分学習におけるウィンドウサイズとモデルの結合を説明するための図。
【図３】ウィンドウサイズと学習スピード及び入力レートとの関係を説明するための図。
【図４】ウィンドウサイズと学習スピード及び入力レートとの関係を説明するための図。
【図５】差分学習の一例を示す図。
【図６】ウィンドウサイズとサンプリングレートとを固定した場合の学習スピードと入力レートとの関係を説明するための図。
【図７】サンプリングレートと学習スピード及び入力レートとの関係を説明するための図。
【図８】サンプリングレートの変更と精度との関係を示す図
【図９】サンプリングレートだけを変化させたときとウィンドウサイズの理想点の一例を示す図
【図１０】一実施形態にかかる差分学習管理装置の構成の一例を示す図。
【図１１】一実施形態にかかる学習履歴情報テーブルの一例を示す図。
【図１２】一実施形態にかかる学習時間予測モデルテーブルの一例を示す図。
【図１３】一実施形態にかかる精度履歴情報テーブルの一例を示す図。
【図１４】一実施形態にかかる精度予測モデルテーブルの一例を示す図。
【図１５】一実施形態にかかるウィンドウサイズ／サンプリングレート（Ｎ／Ｓ）設定処理の一例を示すフローチャート。
【図１６】一実施形態にかかる入力バッファー出力処理の一例を示すフローチャート。
【図１７】一実施形態にかかる学習時間計測処理の一例を示すフローチャート。
【図１８】一実施形態にかかる学習時間モデル化処理の一例を示すフローチャート。
【図１９】一実施形態にかかる探索処理の一例を示すフローチャート。
【図２０】一実施形態にかかるＮ／Ｓ探索処理の右探索及び左探索の一例を示す図。
【図２１】一実施形態にかかるＮ／Ｓ右探索処理を説明するための図。
【図２２】一実施形態にかかるＮ／Ｓ左探索処理を説明するための図。
【図２３】一実施形態にかかる最適化制御処理の一例を示すフローチャート。
【図２４】一実施形態にかかる最適化されたＮ／Ｓの一例を示す図。
【図２５】一実施形態にかかる差分学習管理装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１９】
（はじめに）
機械学習には、図１に示す「バッチ型学習」、「オンライン型学習」、「差分型学習」の３種類のカテゴリの学習方法が存在する。従来の「バッチ型学習」では精度が非常に高いが、学習時間は長い。特に、「バッチ型学習」は、新しいデータが発生するたびに過去の全てのデータを含めてゼロから再学習を行う必要があるため、リアルタイムの時系列データに個の学習方法を使うことは非現実的である。
【００２０】
「オンライン型学習」や「ミニバッチ型学習」というカテゴリの学習方法は、学習が早いため、大量の時系列データをほぼリアルタイムに学習することができる。しかし、これらの学習方法は、線形分離不可能なデータに対しては予測精度が低い。
【００２１】
「差分型学習」というカテゴリの学習方法は、バッチ型学習とほぼ同等の精度を持ちながら、データが発生するたびにゼロから学習を行わないで、前回の結果を流用して学習を継続することができる。そうすることで、学習時間はバッチに比べて短く、高い精度を保ったままで時系列データに対してほぼリアルタイムに学習を行うことが可能になる。
【００２２】
図１に示すように、入力レートが一定の値を超えなければ（例：数十〜数百個／秒）、差分型学習は、オンライン型学習よりも高い精度が得られる。そこで、以下に説明する本発明の一実施形態では、学習精度の高い学習結果を得るために、差分学習において入力レートに応じた学習時間の制限範囲内で、ウィンドウサイズ及びサンプリングレートを可変に設定する差分学習管理装置について説明する。
【００２３】
なお、以下の説明では、ウィンドウサイズは、一回あたりの学習に使う入力データ数であり、「Ｎ」で示される。また、サンピングレートは、ウィンドウサイズＮのうちから実際に学習に使用するサンプルデータの抽出レートであり、「Ｓ」で示される。入力レートは、一秒間に入力されるデータ量（データレート）であり、「Ｒ」で示される。
【００２４】
［差分学習管理装置の構成］
まず、本発明の一実施形態に係る差分学習管理装置１の構成の一例について、図１０を参照しながら説明する。差分学習装置２では、差分学習器２ｅにより差分型の機械学習が行われる。この場合、順次リアルタイムに入力されるデータ（追加のデータ）を、入力データテーブル２ａに一時的に保存する。追加のデータうちのウィンドウサイズＮで設定されたＮ個のデータは、入力バッファー２ｂに蓄積されたのち、サンプラ２ｃに入力される。サンプラ２ｃでは、サンプリングレートＳに従い入力された追加データのＳ％がサンプリングされ、追加の学習データテーブル２ｄに保存される。
【００２５】
差分学習器２ｅは、今までの学習結果であるＭ個のモデルデータと新しい追加の学習データとを結合し、結合したデータを用いて差分学習のアルゴリズムに従い差分学習を行う。Ｍ個の学習済みデータのモデルは、モデルテーブル２ｆに保存される。
【００２６】
差分学習装置２は、例えば、あるサービスを提供しているユーザの端末から送信されるデータを受信し、それらのデータを用いてユーザが行動パターンをモデル化する。差分学習の結果は、そのユーザの次の行動を予測する等の用途に使用される。例えばあるサービスから退会した他のユーザの行動パターンと、モデル化したユーザの行動パターンとが類似している場合、そのユーザがサービスから退会する可能性が高いと予測し、退会を回避するようにユーザに何らかのアクションをする等の利用が考えられる。
【００２７】
一実施形態に係る差分学習管理装置１は、差分学習装置２を管理する装置である。差分学習管理装置１は、入力レート計測部１１、記憶部１２、学習時間算出部１３、精度算出部１４及び最適化部１５を有する。
【００２８】
入力レート計測部１１は、入力データテーブル２ａに入力される、ネットワーク等を介して受信したデータ（追加のデータ）の流量（入力レート、データレート）を計測する。入力レート計測部１１は、例えば一秒間当たりに何個のデータを受信したかをカウントする。入力レート計測部１１は、入力レートが低い場合は１分間や１時間当たりのカウントを行ってもよい。
【００２９】
記憶部１２は、学習履歴情報テーブル１２１、学習時間予測モデルテーブル１２２、精度履歴情報テーブル１２３及び精度予測モデルテーブル１２４を有する。学習履歴情報テーブル１２１は、図１１に一例を示すように、ウィンドウサイズ（Ｎ）１２１ａと学習時間（ｔ）１２１ｂとを対応づけて記憶する。例えば、ウィンドウサイズ（Ｎ）１２１ａが１０００のとき学習時間１２１ｂが２分、ウィンドウサイズ（Ｎ）１２１ａが２０００のとき学習時間１２１ｂが３分かかることがわかる。なお、学習履歴情報テーブル１２１に蓄積されたウィンドウサイズと学習時間とは、学習履歴情報の一例である。
【００３０】
学習時間予測モデルテーブル１２２は、図１２に一例を示すように、学習時間予測モデルの構造を示す。例えば、学習時間のモデル化に多項式モデルを使用した非線形回帰分析（以下、「多項式回帰」ともいう。）を適用した場合、学習時間予測モデルテーブル１２２には、多項式回帰分析の結果得られた係数が記憶される。図１２では、多項式回帰分析の結果得られた係数（ｋ２）１２２ａ、係数（ｋ２）１２２ｂ、係数（ｋ３）１２２ｃ）が記憶される。後述されるように、学習時間予測モデルテーブル１２２に記憶された各係数を使って、学習時間の関数Ｔ（Ｎ、Ｓ）＝ｋ２（Ｎ・Ｓ）２＋ｋ１（Ｎ・Ｓ）＋ｋ０で示すモデルが計算可能となる。Ｎ・Ｓは、差分学習器２ｅで学習される新たな追加データ数である。
【００３１】
精度履歴情報テーブル１２３は、図１３に一例を示すように、サンプリングレート（Ｓ）１２３ａと精度（Ａ）１２３ｂとを対応づけて記憶する。例えば、サンプリングレート（Ｓ）１２３ａが１０％のとき精度（Ａ）１２３ｂは４０％となり、サンプリングレート（Ｓ）１２３ａが２０％のとき精度（Ａ）１２３ｂは６０％となる。
【００３２】
精度予測モデルテーブル１２４は、図１４に一例を示すように、精度予測モデルの構造を示す。例えば、精度のモデル化に対数モデルを使用した非線形回帰分析（以下、「対数回帰」ともいう。）を適用した場合、対数回帰分析の結果得られた係数が記憶される。図１４では、対数回帰分析の結果得られた係数（Ｋ１）１２４ａ、係数（Ｋ０）１２４ｂが記憶される。
【００３３】
学習時間算出部１３は、学習時間計測部１３１、学習時間モデル化部１３２及び学習時間予測部１３３を有する。
【００３４】
学習時間計測部１３１は、入力バッファー２ｂから次の差分学習のための新たなデータ（追加データ）を受け取り、差分学習を行う前後の時刻を記録することで、学習時間ｔを計測する。計測された学習時間ｔは、その時点で設定されたウィンドウサイズＮに対応付けて学習履歴情報テーブル１２１に格納される。差分学習器２ｅでＮ個のデータが学習されるたびに、学習時間計測部１３１は学習時間を算出する。
【００３５】
学習時間モデル化部１３２は、学習履歴情報テーブル１２１から、過去において行われた全ての学習時間とデータ量を取り出して、それらの情報に基づき回帰処理を行う。回帰処理が終わると、学習時間モデル化部１３２は、回帰処理の結果得られた係数を学習時間予測モデルテーブル１２２に記録する。ただし、回帰処理は、必ずしも過去において行われた全ての学習時間とデータ量を取り出して実行されなくてもよく、例えば、過去において行われた一部の学習時間とデータ量に基づき実行されてもよい。
【００３６】
回帰のステップには例えば線形回帰、多項式回帰、ノンパラメトリック回帰などの回帰技術を使うことが出来る。どのような回帰技術を使うかは、ユーザの指定によって決めることができる。多項式回帰を使って行う場合は、モデル化したい学習時間の関数Ｔ（Ｎ、Ｓ）が、例えば関数Ｔ（Ｎ、Ｓ）＝ｋ２（Ｎ・Ｓ）２＋ｋ１（Ｎ・Ｓ）＋ｋ０のような形式であると仮定する。そして、過去の学習履歴情報テーブル１２１に記憶された学習時間に基づき、係数ｋ２，係数ｋ１，係数ｋ０が回帰的に定められる。ここで、Ｎ×Ｓは、新たに差分学習器２ｅに追加されるデータの量である。
【００３７】
上記学習時間のモデル化は、学習時間の形式をある程度事前に知っていれば、有効な手法である。一方、学習時間の形式を事前に知らない場合には、ノンパラメトリック回帰の手法を利用する。ノンパラメトリック回帰には例えばGaussian Process回帰がある。
【００３８】
学習時間予測部１３３は、学習時間のモデル化に利用する、ユーザが指定した又はあらかじめ設定された回帰技術に合わせて学習時間を予測する。たとえば、学習時間のモデル化に多項式回帰を使用した場合、多項式回帰の結果で得られた係数（例：ｋ２，ｋ１，ｋ０）を使って、学習時間の関数Ｔ（Ｎ、Ｓ）＝ｋ２（Ｎ・Ｓ）２＋ｋ１（Ｎ・Ｓ）＋ｋ０を計算する。これにより、学習時間の予測値Ｔが算出される。
【００３９】
精度算出部１４は、精度計測部１４１、精度モデル化部１４２及び精度予測部１４３を有する。精度計測部１４１は、差分学習装置２が差分学習したモデルデータ（入力データ）を受け取り、設定されたサンプリングレートＳによる学習結果の精度を計測する。精度の算出には、例えば、精度をモデル化した関数Ａ（Ｓ）により算出可能である。精度計測部１４１は、モデルデータの替わりにテストデータを取得してもよい。計測され精度Ｐは、精度履歴情報テーブル１２３に格納される。
【００４０】
精度モデル化部１４２は、精度予測モデルテーブル１２４に基づき回帰処理を行う。対数回帰を使って行う場合は、モデル化したい精度の関数Ｐ（Ｓ:サンピングレート）が、例えばＡ（Ｓ）＝ｋ０＋ｋ１log（Ｎ・Ｓ）のような形式であると仮定し、精度をモデル化する。
【００４１】
精度予測部１４３は、精度のモデル化に利用する、ユーザが指定した又はあらかじめ設定された回帰技術に合わせて精度を予測する。
【００４２】
なお、学習時間算出部１３及び精度算出部１４は、計測したデータレートと学習履歴情報と現状のサンプリングレートＳに基づき、ウィンドウサイズＮ及びサンプリングレートＳを算出（最適化）するする算出部の一例である。
【００４３】
最適化部１５は、サンプリングレートＳに応じた精度に基づき、ウィンドウサイズＮ及びサンプリングレートＳを最適化する。これにより、最適化されたウィンドウサイズＮに基づき、入力バッファー２ｂに蓄積する追加データのデータ数を適正値に可変に制御できる。また、最適化されたサンプリングレートＳに基づき、サンプラ２ｃから差分学習器２ｅに出力されるデータのサンプリング数を適正値に可変に制御できる。
【００４４】
［ウィンドウサイズ／サンプリングレート設定処理］
次に、一実施形態に係るウィンドウサイズＮ及びサンプリングレートＳの設定処理について、図１５を参照して説明する。
【００４５】
本処理が開始されると、入力データが受信され（ステップＳ１）、入力バッファー２ｂに蓄積され、入力バッファー２ｂにウィンドウサイズのＮ個のデータが蓄積されると、入力バッファー２ｂからＮ個のデータが出力され、出力データはサンプラ２ｃによりサンプリングされる（ステップＳ２）。入力バッファーの出力処理については、図１６を参照して後述される。
【００４６】
学習時間算出部１３は、サンプラ２ｃによりサンプリングされたＮ×Ｓ個の出力データを取得し、差分学習器２ｅによる学習時間を計測する（ステップＳ３）。学習時間の計測処理の詳細については、図１７を参照して後述される。
【００４７】
次に、学習時間算出部１３は、学習時間予測モデルテーブル１２２に基づき、回帰処理により算出した回帰式の係数を利用して、設定された回帰技術に合わせて学習時間を算出する（ステップＳ４）。学習時間のモデル化処理については、図１８を参照して後述される。
【００４８】
次に、精度算出部１４は、精度予測モデルテーブル１２４に基づき、回帰式の係数を利用して設定された回帰技術に合わせて精度を算出する（ステップＳ５）。学習時間算出部１３及び精度算出部１４による（Ｎ，Ｓ）の探索処理については、図１９〜図２２を参照して後述される。
【００４９】
次に、最適化部１５は、この時点の入力レート１１１と、学習時間予測モデルテーブル１２２及び精度予測モデルテーブル１２４に基づき、ウィンドウサイズＮ及びサンプリングレートＳを最適化する（ステップＳ６）。次に、最適化部１５は、精度Ａに基づきウィンドウサイズＮと最適化されたウィンドウサイズＮを設定し、入力バッファー２ｂを制御する（ステップＳ７）。次に、最適化部１５は、最適化されたサンプリングレートＳを設定し、サンプラ２ｃを制御し（ステップＳ８）、ステップＳ２に戻り、ステップＳ２〜ステップＳ８の処理を繰り返す。
（入力バッファー出力処理）
一実施形態に係る入力バッファーの出力処理は、図１６に示すフローチャートに従い、以下のように行われる。まず、入力データが受信されると（ステップＳ１０）、差分学習装置２は、入力バッファー２ｂに入力データを記録する（ステップＳ１２）。次に、差分学習装置２は、入力バッファー２ｂにウィンドウサイズで定められたＮ個のデータが保存されたかを判定する（ステップＳ１４）。入力バッファー２ｂにＮ個のデータが保存されていないと判定された場合、差分学習装置２は、次の入力データを待ち（ステップＳ１６）、入力バッファー２ｂにＮ個のデータが保存されるまで、ステップＳ１０〜ステップＳ１６の処理を繰り返す。
【００５０】
入力バッファー２ｂにＮ個のデータが保存されたと判定された場合、差分学習器２ｅは、入力バッファー２ｂから出力され、サンプラ２ｃにて抽出されたデータをを取得し（ステップＳ１８）、取得したデータを学習時間計測部１３１に出力する（ステップＳ２０）。その後、入力バッファー２ｂは、次の入力データを待ち（ステップＳ１６）、新たな入力データが受信されると（ステップＳ１０）、ステップＳ１０〜ステップＳ２０の処理が繰り返される。これにより、入力バッファー２ｂにＮ個のデータが蓄積されるたびに、差分学習が行われ、次の学習時間計測処理により、差分学習に対応する学習履歴情報が学習履歴情報テーブル１２１に蓄積される。
（学習時間計測処理）
一実施形態に係る学習時間計測処理は、図１７に示すフローチャートに従い、以下のように行われる。なお、本処理は、入力バッファー出力処理が終了した後に実行される。まず、学習時間計測部１３１は、入力バッファー２ｂから入力データを取得する（ステップ３０）。次に、学習時間計測部１３１は、差分学習器２ｅにより入力データとモデルとの差分学習が開始された時間（開始時間）を記録する（ステップＳ３２）。次に、学習時間計測部１３１は、差分学習を実行する（ステップＳ３４）。学習時間計測部１３１は、差分学習器２ｅにより差分学習が終了された時間（終了時間）を記録する（ステップＳ３６）。次に、学習時間計測部１３１は、終了時間と開始時間との差分を学習時間として算出する（ステップＳ３８）。次に、学習時間計測部１３１は、算出した学習時間を学習履歴情報テーブル１２１に記録する（ステップＳ４０）。
（学習時間モデル化処理）
一実施形態に係る学習時間モデル化処理は、図１８に示すフローチャートに従い、以下のように行われる。なお、本処理は、学習時間計測処理が終了した後に実行される。まず、学習時間モデル化部１３２は、学習履歴情報テーブル１２１から学習時間を取得する（ステップＳ５０）。
【００５１】
次に、学習時間モデル化部１３２は、取得した学習時間に基づき回帰処理を行う（ステップＳ５２）。回帰処理が終わると、学習時間モデル化部１３２は、回帰処理の結果得られた係数を学習時間予測モデルテーブル１２２に記録し（ステップＳ５４）、本処理を終了する。
（ウィンドウサイズＮとサンプリングレートＳの探索）  学習時間のモデルが更新されるたびに、また、入力レートが大きく（一定の割合以上に）変わるたびに、ウィンドウサイズＮとサンプリングレートＳを再設定し、(ウィンドウサイズＮ，サンプリングレートＳＳ)の組合せの最適化を行う。
【００５２】
最適な組合せ(Ｎ，Ｓ)を求める手法として、以下の２つの手法が考えられる。
・学習時間関数の差分方程式
学習時間関数の差分方程式は、処理時間が早いが、適用できない場合がある（汎用性が低い）。学習時間のモデル化に多項式回帰を使用した場合に利用する。
・山登り法
処理時間が遅いが、どんな場合にも適用できる（汎用性が高い）。学習時間のモデル化にノンパラメトリック回帰を使用した場合に利用する。
【００５３】
学習時間関数の差分方程式を使った最適化
学習スピードと入力レートを同等にする各（Ｎ，Ｓ）の組合せを、Ｓ＝Ｆ（Ｎ）のような関数と、その微分関数ｄｓ（Ｎ）／ｄＮも定式化することができて、かつ、ｄｓ（Ｎ）／ｄＮ＝０となるＮmax（K）の定式化ができる場合に適用可能である。Ｋはモデル化した学習時間のモデルを表す。例えば２乗の多項式の場合、Ｋ＝｛ｋ０，ｋ１，ｋ２｝である。
【００５４】
以下に従って、Ｎmax（ｋ２、ｋ０）とＳmax（ｋ２、ｋ０）を予め定式化し、実行時に学習時間のモデル化して得られたｋ２とｋ０とを学習時間予測モデルテーブル１２２から取得して、ＮmaxとＳmaxとを直接求める。
【００５５】
例えば、本実施形態では、学習時間は関数Ｔ（Ｎ、Ｓ）＝ｋ２（Ｎ・Ｓ）２＋ｋ０で示されるモデル式（Ａ）を使用し、精度はＡ（Ｓ）＝ｋ０＋ｋ１log（Ｎ・Ｓ）で示されるモデル式（Ｂ）を使用する。
【００５６】
以下では、一例として上記山登り法（劣勾配法）を用いて、ウィンドウサイズＮとサンプリングレートＳとの最適値を選択する。山登り法を用いた二つのパラメータ（ウィンドウサイズＮ及びサンプリングレートＳ）の最適化では、学習スピードＴＳ（Ｎ、Ｓ）が入力レートＲと同一又は近似するときの多数の（Ｎ、Ｓ）の組合せの中から、精度Ａ（Ｓ）が一番高い組合せが選択される。
【００５７】
（Ｎ／Ｓの探索処理）
本実施形態に係る探索処理は、図１９に示すフローチャートに従い、以下のように行われる。なお、本処理は、学習時間モデル化処理と精度モデル化処理とが終了した後に実行され、モデル化された学習時間Ｔとモデル化された精度Ａとが使用される。
【００５８】
一例として、本実施形態では、モデル化された学習時間Ｔとしては、関数Ｔ（Ｎ、Ｓ）＝ｋ２（Ｎ・Ｓ）２＋ｋ０で示されるモデル式が使用される。また、モデル化された精度Ａとしては、関数Ａ（Ｓ）＝ｋ０＋ｋ１ｌｏｇ（Ｎ・Ｓ）で示されるモデルが使用される。
【００５９】
ただし、学習時間Ｔのモデル及び精度Ａのモデルはこれらに限らない。学習時間Ｔ（Ｎ，Ｓ）は、例えば、多項式回帰や線形補完の手法を用いてモデル化することができる。
【００６０】
まず、学習時間算出部１３は、この時点のウィンドウサイズＮを固定にし、学習スピードＴＳ（Ｎ，Ｓ）がこの時点の入力レートＲと等しくなるサンプリングレートＳnextを探す（ステップＳ６２）。
【００６１】
本実施形態では、図１９のステップＳ６２から右側に分岐するステップ群（Ｓ６４〜Ｓ７８）では、図２０に示すスタートから右側に進行し、山登り法を用いて学習時間Ｔ（Ｎ，Ｓ）のモデルに従いウィンドウサイズＮとサンプリングレートＳとを探索する。図１９のステップＳ６２から左側に分岐するステップ群（Ｓ８０〜Ｓ９６）では、図２０に示す探索のスタートから左側に進行し、同様に山登り法を用いて予め定められた学習時間Ｔ（Ｎ，Ｓ）のモデルに従いウィンドウサイズＮとサンプリングレートＳとを探索する。
【００６２】
（右探索）
ここでは、先に、右側に分岐するステップ群により実行される、ウィンドウサイズＮとサンプリングレートＳの右探索について説明する。学習時間算出部１３は、ステップＳ６２においてウィンドウサイズＮを固定し、学習スピードＴＳ（Ｎ，Ｓ）＝この時点の入力レートＲとなるサンプリングレートＳnextを探索する。この結果、図２１の（ａ）の（１）に示すように、スタート地点からウィンドウサイズＮを変えずにサンプリングレートＳを変化させ、学習時間Ｔ（Ｎ，Ｓ）のモデルから点（Ｎ１，Ｓ１）が選択される。このとき、学習スピードＴＳ（Ｎ，Ｓ）がこの時点の入力レートＲ以下の値になる条件（最適線）の範囲内の点（Ｎ１，Ｓ１）が選択される。
【００６３】
次に、学習時間算出部１３は、サンプリングレートＳをサンプリングレートＳnextを変えずにウィンドウサイズＮを大きくし、学習時間Ｔ（Ｎ，Ｓ）のモデルに従い探索してウィンドウサイズＮnext（図２１の（ａ）ではＮ２）を探索する（ステップＳ６４）。この時点では、Ｎ１とＮ２との差分が右探索のステップサイズとなる。
【００６４】
次に、学習時間算出部１３は、この時点のウィンドウサイズＮを固定にし、学習スピードＴＳ（Ｎ，Ｓ）がこの時点の入力レートＲと等しくなるサンプリングレートＳnextを探索する（ステップＳ６６）。この結果、図２１の（ａ）の（２）に示すように、ウィンドウサイズＮ２を変えずにサンプリングレートＳを変化させ、学習時間Ｔ（Ｎ，Ｓ）のモデルに従い到達した点（Ｎ２，Ｓ２）が特定される。
【００６５】
次に、精度算出部１４は、この時点でのサンプリングレートＳnextに基づき、予め定められた精度Ａ（Ｓ）のモデルに従い精度Ａ（Ｓnext）を予測する（ステップＳ６８）。次に、精度算出部１４は、前回よりも低い精度Ａかを判定する（ステップＳ７０）。精度算出部１４は、前回よりも低い精度Ａでないと判定した場合、精度改善（前回の精度との差分）が閾値よりも高いかを判定する（ステップＳ７２）。精度算出部１４は、精度改善が閾値よりも高いと判定した場合、精度が改善していると判断し、ステップＳ６４に戻り、ステップＳ６４以降の処理を繰り返す。
【００６６】
一方、精度算出部１４は、前回よりも低い精度Ａではないと判定し（ステップＳ７０）、かつ、精度改善が閾値以下であると判定した場合（ステップＳ７２）、これ以上の探索では精度改善の見込みがないと判断し、この時点の（Ｎ，Ｓ）の組み合わせを最適値として選択する（ステップＳ７８）。
【００６７】
ステップＳ７０において、精度算出部１４は、前回よりも低い精度Ａであると判定した場合、学習時間Ｔ（Ｎ，Ｓ）のモデルの頂点（変曲点）から下った地点にいると判断し、ステップサイズを小さくし、ステップ方向（探索する方向）を逆方向にする（ステップＳ７４）。次に、学習時間算出部１３は、この時点でのステップサイズが予め定められた最小値と等しいかを判定する（ステップＳ７６）。学習時間算出部１３は、この時点でのステップサイズが最小値と異なると判定した場合、ステップＳ６４に戻り、ステップＳ６４以降の処理を繰り返す。
【００６８】
一方、学習時間算出部１３は、この時点でのステップサイズが最小値と等しいと判定した場合、ウィンドウサイズＮ及びサンプリングレートＳの最適値が得られたと判断し、この時点での（Ｎ，Ｓ）の組み合わせを最適値として選択し（ステップＳ７８）、本処理を終了する。
【００６９】
これにより、図２１の（ａ）の「最適解」に示すように、学習スピードＴＳ（Ｎ，Ｓ）が入力レートＲ以下になる制約を表した最適線上のウィンドウサイズＮ及びサンプリングレートＳの最適値（Ｎ４、Ｓ４）を算出することができる。
【００７０】
これは、図２１の（ｂ）の「最適解」に示すように、（Ｎ，Ｓ）の組み合わせの最適値を算出するとともに、サンプリングレートＳを上昇させても、ある程度のところで精度Ａの改善が見られない場合には処理を打切り、無駄な探索処理を繰り返さないことを示す。
【００７１】
また、図２１の（ｃ）の「最適解」に示すように、学習スピードＴＳ（Ｎ，Ｓ）が入力レートＲ以下になる制約の下、ウィンドウサイズＮ及びサンプリングレートＳの最適値が求められる。
【００７２】
（左探索）
次に、ステップＳ６２から左側に分岐するステップ群により実行される、ウィンドウサイズＮとサンプリングレートＳの左探索について説明する。学習時間算出部１３は、ステップＳ６２においてウィンドウサイズＮを固定し、学習スピードＴＳ（Ｎ，Ｓ）＝この時点の入力レートＲとなるサンプリングレートＳnextを探索する。この結果、図２２の（ａ）の（１）に示すように、スタート地点からウィンドウサイズＮを変えずにサンプリングレートＳを変化させ、学習時間Ｔ（Ｎ，Ｓ）のモデルに従い到達した点が選択される。このとき、学習スピードＴＳ（Ｎ，Ｓ）が、この時点の入力レートＲ以下の値になる条件（最適線）の範囲内の点が選択される。
【００７３】
次に、学習時間算出部１３は、サンプリングレートＳをサンプリングレートＳnextを変えずにウィンドウサイズＮを小さくし、学習時間Ｔ（Ｎ，Ｓ）のモデルに従い探索してウィンドウサイズＮnextを探索する（ステップＳ８０）。これにより、左探索のステップサイズが定まる。
【００７４】
次に、学習時間算出部１３は、この時点のウィンドウサイズＮを固定にし、学習スピードＴＳ（Ｎ，Ｓ）がこの時点の入力レートＲと等しくなるサンプリングレートＳnextを探索する（ステップＳ８２）。この結果、図２２の（ａ）の（２）に示すように、ウィンドウサイズＮを変えずにサンプリングレートＳを変化させ、学習時間Ｔ（Ｎ，Ｓ）のモデルに従い到達した点が特定される。
【００７５】
次に、学習時間算出部１３は、この時点でのサンプリングレートＳnextに基づき、予め定められた精度Ａ（Ｓ）のモデルに従い精度Ａ（Ｓnext）を予測する（ステップＳ８４）。次に、精度算出部１４は、前回よりも低い精度Ａかを判定する（ステップＳ８６）。精度算出部１４は、前回よりも低い精度Ａでないと判定した場合、この時点のウィンドウサイズＮを固定し、学習スピードＴＳ（Ｎ，Ｓ）がこの時点の入力レートＲと等しくなるサンプリングレートＳnextを探索する（ステップＳ８８）。この結果、サンプリングレートＳnextが見つかった場合（ステップＳ９０：「Ｙｅｓ」）、学習時間算出部１３は、ステップＳ８０に戻り、ステップＳ８０以降の処理を繰り返す。
【００７６】
一方、ステップＳ８８においてサンプリングレートＳnextが見つからなかった場合（ステップＳ９０：「Ｎｏ」）、または、ステップＳ８６において精度Ａが前回よりも低いと判定された場合、精度算出部１４は、ステップサイズを小さくし、ステップ方向（探索する方向）を逆方向にする（ステップＳ９２）。
【００７７】
次に、学習時間算出部１３は、この時点でのステップサイズが予め定められた最小値と等しいかを判定する（ステップＳ９４）。学習時間算出部１３は、この時点でのステップサイズが最小値と異なると判定した場合、ステップＳ８０に戻り、ステップＳ８０以降の処理を繰り返す。
【００７８】
一方、学習時間算出部１３は、この時点でのステップサイズが最小値と等しいと判定した場合、ウィンドウサイズＮ及びサンプリングレートＳの最適値が得られたと判断し、この時点での（Ｎ，Ｓ）の組み合わせを最適値として選択し（ステップＳ９６）、本処理を終了する。
【００７９】
これにより、図２２の（ａ）の「最適解」に示すように、学習スピードＴＳ（Ｎ，Ｓ）が入力レートＲ以下になる制約を表した最適線上のウィンドウサイズＮ及びサンプリングレートＳの最適値を算出することができる。これにより、図２０に示す右探索で得られた最適値Ｍ１と、左探索で得られた最適値Ｍ２とが選択された状態となる。
【００８０】
学習時間がＴ（Ｎ）＝ｌｏｇ（Ｎ）のような形式の場合、サンプリングレートＳをいくら増やしても、僅かな精度改善しか見られない場合がある。これに対して、本実施形態に係る探索方法によれば、ステップＳ７２に示すように精度改善の見込みが一定の閾値より小さければ、それ以上にサンプリングレートＳを大きくして処理を続行することを避けて、この時点のウィンドウサイズＮ及びサンプリングレートＳの値を最適値にすることができる。
【００８１】
具体的には、サンプリングレートＳが高ければ高いほど精度Ａ（Ｓ）は上がる。しかしながら、場合によっては無条件にサンプリングレートＳを高くしない方が望ましい。例えば学習時間がＴ（Ｎ）＝ｌｏｇ（Ｎ）のような関数の場合、無条件にＳを大きくしても、それに合わせてＮを大きくすれば、学習スピードＴＳ（Ｎ，Ｓ）を入力レートＲと同等にすることができるが、一回の差分の学習時間も大きくなる。このため、モデルの鮮度が失われる。
【００８２】
しかし、精度もＡ（Ｓ）＝ｌｏｇ（Ｓ）のように、サンプリングレートＳが増えれば増えるほど、精度Ａ（Ｓ）の改善が小さくなる。このため、一定のサンプリングレートＳを超えれば、サンプリングレートＡを増やしても効果がほとんど見られなくなる。よって、本実施形態のように、精度Ａ（Ｓ）の改善を見通した（Ｎ，Ｓ）、ウィンドウサイズＮ及びサンプリングレートＳの最適値の選択が好ましい。
【００８３】
［ウィンドウサイズ／サンプリングレートの最適化制御処理］
最後に、ウィンドウサイズＮ及びサンプリングレートＳの最適化と差分学習装置２の制御処理について、図２３を参照しながら説明する。
【００８４】
本処理が開始されると、最適化部１５は、現状の入力レートＲに基づき、ウィンドウサイズＮ及びサンプリングレートＳの最適値（Ｎmax、Ｓmax）の組み合わせを設定する（ステップＳ１００）。最適化部１５は、図１９において右探索の結果得られた最適値と左探索の結果得られた最適値とのうち、精度Ｓが高い最適値をこの時点でのウィンドウサイズＮの最適値Ｎmax及びサンプリングレートＳの最適値Ｓmaxとする。
【００８５】
ただし、最適化部１５は、二つのウィンドウサイズＮ及びサンプリングレートＳの最適値のいずれか（例えば、図２０では最適値Ｍ１，Ｍ２のいずれか）を用いて差分学習装置２を制御してもよい。
【００８６】
次に、最適化部１５は、入力バッファー２ｂのウィンドウサイズＮを設定されたウィンドウサイズＮmaxに変更し（ステップＳ１０２）、入力バッファー２ｂに保持するデータ量を増減させる。
【００８７】
次に、サンプラ２ｃのサンプリングレートＳを最適化部１５は、設定されたサンプリングレートＳmaxに変更し（ステップＳ１０４）、入力バッファー２ｂから出力されたデータのうち、サンプラ２ｃがサンプリングするデータ量を増減させる。
【００８８】
以上に説明したように、本実施形態に係る差分学習管理装置１によれば、入力レートＲと学習時間Ｔの予測に基づき、最適なウィンドウサイズＮとサンプリングレートＳとの組み合わせ（Ｓ，Ｎ）が選択される。具体的には、サンプリングレートＳを下げて差分学習の処理速度を上げつつ、ウィンドウサイズＮも変えて学習の精度Ａが最高となる組合せを見つける。
【００８９】
これにより、差分学習において入力レートＲに応じた学習時間Ｔの制限範囲内で、つまり、学習時間Ｔが入力データの入力バッファー２ｂへの蓄積時間を越えない範囲で、ウィンドウサイズＮ及びサンプリングレートＳを可変に設定する。この結果、図２４に一例を示すように、精度と学習時間とのバランスを考慮しながら、ウィンドウサイズＮ及びサンプリングレートＳを適正値に調整することで、精度の高い差分学習の結果を得ることができる。
（多項式回帰を使った場合のＮmaxとＳmaxの定式化）
なお、ウィンドウサイズＮとサンプリングレートＳとの最適化の手法に関しては、予め定式化した数式を用いて行う手法と、汎用的なソルバーを使う手法がある。つまり、上記で説明したウィンドウサイズＮとサンプリングレートＳとの最適化の手法は、一例でありこれに限らない。例えば、学習時間Ｔのモデル式（Ａ）及び精度Ａのモデル式（Ｂ）は、各ファクターを算出する際の方法の一例であり、これに限らない。例えば、下記の式（１）と（２）を使用して、ウィンドウサイズの最大値Ｎmaxとサンプリングレートの最大値Ｓmaxとを、ｋ２とｋ０とに基づき直接計算してもよい。学習時間Ｔ（Ｎ'）＝ｋ２（Ｎ'）２＋ｋ０以外の形式であっても、同様にしてＮmaxとＳmaxとを定式化することで、直接計算することができる。
・学習時間：Ｔ
Ｔ（Ｎ，Ｓ）＝ｋ２（Ｍ＋Ｓ．Ｎ）２＋ｋ０（Ｍはモデルのサイズ）
ｋ２とｋ0とは実行時に以下の形式の多項回帰式から算出されている。
Ｔ（Ｎ'）＝ｋ２（Ｎ'）２＋ｋ０（Ｎ'＝Ｍ＋Ｓ×Ｎ）
・学習スピード：ＴＳ（Ｎ，Ｓ）＝Ｎ／Ｔ（Ｎ，Ｓ）
実行時に（入力レートＲが変わる度に）、学習スピードＴＳ（Ｎ，Ｓ）が入力レートＲと同等になるような、各（Ｎ，Ｓ）の組合わせのうち、精度を最大化する最適なウィンドウサイズとサンプリングレートとの組合せ（Ｎmax，Ｓmax）を次のように求める。
【００９０】
学習スピードＴＳ（Ｎ，Ｓ）と入力レートＲが等しくなる条件から、精度Ａ＝Ｆ（Ｎ，ｋ２，ｋ０）の関数を予め（実行前に）抽出する。さらに、Ｓ（Ｎ，ｋ２，ｋ０）の微分関数Ｓ'（Ｎ，ｋ２，ｋ０）＝ｄｓ（Ｎ，ｋ２，ｋ０）／ｄＮを求める。そして、Ｓ'（Ｎ，ｋ２，ｋ０）が0となるＮmax（ｋ２，ｋ０）の関数を予め（実行前）求めることで、実行時の回帰処理で決まったｋ２とｋ０とを使ってＮの最適値Ｎmaxを単純に計算する。
【００９１】
例えば、学習スピードＴＳ（Ｎ，Ｓ）＝入力レートＲの条件から以下のようにＳ（Ｎ，ｋ２，ｋ０）の関数を予め（実行前に）抽出しておく。具体的には、以下の式（１）及び式（２）に基づき式（３）が得られる。式（３）に基づき、式（４）で示すＳ（Ｎ，ｋ２，ｋ０）の関数が得られる。
【００９２】
【数１】
2016126596.tif 000003
【００９３】
上記Ｓ（Ｎ）の微分関数Ｓ'（Ｎ，ｋ２，ｋ０）＝ｄｓ（Ｎ，ｋ２，ｋ０）／ｄＮを計算することで以下の式（５）が得られる。そして、式（６）で示すように微分関数Ｓ'（Ｎ，ｋ２，ｋ０）が０となるＮmax（ｋ２，ｋ０）の関数を、式（５）及び式（６）に基づき予め（実行前）求める。これにより、式（７）に示すように微分関数Ｓ'（Ｎ，ｋ２，ｋ０）が０となるＮmax（ｋ２，ｋ０）の関数が得られる。これにより、実行時の回帰処理で決まったｋ２とｋ０とに基づきウィンドウサイズＮの最適値Ｎmax（ｋ２，ｋ０）が算出される。
【００９４】
【数２】
2016126596.tif 000004
【００９５】
式（７）に基づき算出された最適値Ｎmax（ｋ２，ｋ０）を式（８）に代入することで、サンプリングレートＳの最適値Ｓmax（ｋ２，ｋ０）が算出される。
【００９６】
【数３】
2016126596.tif 000005
【００９７】
（ハードウェア構成例）
最後に、本実施形態に係る差分学習管理装置１のハードウェア構成例について、図１５を参照して説明する。差分学習管理装置１は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ(Random Access Memory)１０４、ＲＯＭ(Read Only Memory)１０５、ＣＰＵ(Central Processing Unit)１０６、通信Ｉ／Ｆ１０７、及びＨＤＤ(Hard Disk Drive)１０８を備える。各部はバスＢで相互に接続されている。
【００９８】
入力装置１０１は、キーボードやマウスなどを含み、差分学習管理装置１に各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイなどを含み、各種の処理結果を表示する。
【００９９】
通信Ｉ／Ｆ１０７は、差分学習管理装置１をネットワークに接続するインタフェースである。これにより、差分学習管理装置１は、通信Ｉ／Ｆ１０７を介して、他の機器とデータ通信を行うことができる。
【０１００】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。例えば、ＨＤＤ１０８には、各種のＤＢ情報やプログラム等が格納されている。
【０１０１】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。これにより、差分学習管理装置１は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、ＣＤ(Compact Disk)、及びＤＶＤ(Digital Versatile Disk)、ならびに、ＳＤメモリカード(SD Memory card)やＵＳＢメモリ(Universal Serial Bus memory)などがある。
【０１０２】
ＲＯＭ１０５は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５には、ネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ１０８」や「ＲＯＭ１０５」など）から、プログラムやデータをＲＡＭ１０４上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【０１０３】
上記ハードウェア構成により、本実施形態に係る差分学習管理装置１は、差分学習装置２の管理を行うことができる。例えば、ＣＰＵ１０６が、ＲＯＭ１０５やＨＤＤ１０８内に格納されたデータ及びプログラムを用いてウィンドウサイズ／サンプリングレート（Ｎ／Ｓ）の最適化処理を実行する。この結果、本実施形態では、差分学習装置２にて入力レートに応じた学習時間の制限範囲内で、ウィンドウサイズ及びサンプリングレートを可変に設定することで、学習精度の高い学習結果を得ることができる。なお、学習履歴情報テーブル１２１、学習時間予測モデルテーブル１２２、精度履歴情報テーブル１２３及び精度予測モデルテーブル１２４に関する情報は、ＲＡＭ１０４、ＨＤＤ１０８、又はネットワークを介し差分学習管理装置１に接続されるクラウド上のサーバー等に格納され得る。
【０１０４】
以上、差分学習管理プログラム、差分学習管理装置及び差分学習管理方法を上記実施形態により説明した。しかしながら、本発明にかかる差分学習管理プログラム、差分学習管理装置及び差分学習管理方法は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記複数の実施形態に記載された事項は、矛盾しない範囲で組み合わせることができる。また、上記差分学習管理装置の各機能は、ハードウェアにより構成されてもよく、ソフトウェアにより構成されてもよく、ハードウェアとソフトウェアとを組み合わせて構成されてもよい。
【０１０５】
以上の説明に関し、更に以下の項を開示する。
（付記１）
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータに実行させる差分学習管理プログラムであって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、
前記入力データのデータレートを計測し、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する、
差分学習管理プログラム。
（付記２）
前記学習履歴情報に基づき、学習時間のモデルを生成し、
前記計測したデータレートに基づき、前記学習時間のモデルから前記ウィンドウサイズ及びサンプリングレートを算出する、
付記１に記載の差分学習管理プログラム。
（付記３）
前記設定されたサンプリングレートに応じた差分学習の精度が所定の閾値以下の場合、前記ウィンドウサイズ及びサンプリングレートの算出を終了し、最後に算出されたウィンドウサイズ及びサンプリングレートを設定する、
付記１又は２に記載の差分学習管理プログラム。
（付記４）
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習を行う差分学習装置を管理する差分学習管理装置であって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶する記憶部と、
前記入力データのデータレートを計測する入力レート計測部と、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する算出部と、
を有する差分学習管理装置。
（付記５）
前記算出部は、
前記学習履歴情報に基づき、学習時間のモデルを生成し、
前記計測したデータレートに基づき、前記学習時間のモデルから前記ウィンドウサイズ及びサンプリングレートを算出する、
学習時間算出部を有する、
付記４に記載の差分学習管理装置。
（付記６）
前記算出部は、
前記設定されたサンプリングレートに応じた差分学習の精度が所定の閾値以下の場合、前記ウィンドウサイズ及びサンプリングレートの算出を終了し、最後に算出されたウィンドウサイズ及びサンプリングレートを設定する、
精度算出部を有する、
付記４又は５に記載の差分学習管理装置。
（付記７）
順次入力される入力データから、設定されたウィンドウサイズ及びサンプリングレートにより抽出したデータに対する差分学習処理をコンピュータが実行する差分学習管理方法であって、
前記ウィンドウサイズと前記抽出したデータに対する学習時間とを対応付けた学習履歴情報と、前記サンプリングレートとを記憶し、
前記入力データのデータレートを計測し、
前記計測したデータレートと前記学習履歴情報と前記サンプリングレートに基づき、ウィンドウサイズ及びサンプリングレートを算出する、
差分学習管理方法。
（付記８）
前記学習履歴情報に基づき、学習時間のモデルを生成し、
前記計測したデータレートに基づき、前記学習時間のモデルから前記ウィンドウサイズ及びサンプリングレートを算出する、
付記７に記載の差分学習管理方法。
（付記９）
前記設定されたサンプリングレートに応じた差分学習の精度が所定の閾値以下の場合、前記ウィンドウサイズ及びサンプリングレートの算出を終了し、最後に算出されたウィンドウサイズ及びサンプリングレートを設定する、
付記７又は８に記載の差分学習管理方法。
【符号の説明】
【０１０６】
１：差分学習管理装置
２：差分学習装置
２ｂ：入力バッファー
２ｃ：サンプラ
２ｅ：差分学習器
１１：入力レート計測部
１２：記憶部
１３：学習時間算出部
１４：精度算出部
１５：最適化部
１２１：学習履歴情報テーブル
１２２：学習時間予測モデルテーブル
１２３精度履歴情報テーブル
１２４：精度予測モデルテーブル
１３１：学習時間計測部
１３２：学習時間モデル化部
１３３：学習時間予測部
１４１：精度計測部
１４２：精度モデル化部
１４３：精度予測部
Ｎ：ウィンドウサイズ
Ｓ：サンプリングレート
Ｒ：入力レート
【図１】
2016126596.tif 000006
【図２】
2016126596.tif 000007
【図３】
2016126596.tif 000008
【図４】
2016126596.tif 000009
【図５】
2016126596.tif 000010
【図６】
2016126596.tif 000011
【図７】
2016126596.tif 000012
【図８】
2016126596.tif 000013
【図９】
2016126596.tif 000014
【図１０】
2016126596.tif 000015
【図１１】
2016126596.tif 000016
【図１２】
2016126596.tif 000017
【図１３】
2016126596.tif 000018
【図１４】
2016126596.tif 000019
【図１５】
2016126596.tif 000020
【図１６】
2016126596.tif 000021
【図１７】
2016126596.tif 000022
【図１８】
2016126596.tif 000023
【図１９】
2016126596.tif 000024
【図２０】
2016126596.tif 000025
【図２１】
2016126596.tif 000026
【図２２】
2016126596.tif 000027
【図２３】
2016126596.tif 000028
【図２４】
2016126596.tif 000029
【図２５】
2016126596.tif 000030