以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の推定装置を説明する図である。
第1の実施の形態の推定装置10は、機械学習に用いる訓練データのデータサイズと械学習によって生成されるモデルの予測性能との間の関係を示す予測性能曲線を推定する。推定装置10は、ユーザが操作するクライアント装置でもよいしサーバ装置でもよい。推定装置10はコンピュータを用いて実装することもできる。
推定装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性のストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プログラムには推定プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
記憶部11は、測定データ13を記憶する。測定データ13は、訓練データのデータサイズ(サンプルサイズと言うこともある)と、訓練データを用いて生成されたモデルに対して測定された予測性能とを対応付ける。測定データ13は、異なる複数のデータサイズと複数の予測性能とを対応付けている。例えば、測定データ13は、データサイズx1と予測性能y1を対応付け、データサイズx2と予測性能y2を対応付け、データサイズx3と予測性能y3を対応付ける。モデルの生成には、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなど各種の機械学習アルゴリズムを使用できる。予測性能は、未知の事例の結果を正確に予測する能力であり「精度」と言うこともできる。予測性能の指標には、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(MSE)、二乗平均平方根誤差(RMSE)などが含まれる。
処理部12は、測定データ13に基づいて、データサイズと予測性能の関係を示す予測性能曲線14を規定するパラメータ値θ0を算出する。パラメータ値θ0は、予測性能曲線を示す所定の数式に含まれる調整可能なパラメータの値であり、測定データ13を用いて学習される。予測性能曲線14は、測定データ13のもとで最も確率が高い予測性能曲線である。処理部12は、回帰分析(例えば、非線形回帰分析)によって、測定データ13から予測性能曲線14を規定するパラメータ値θ0を算出することができる。
次に、処理部12は、異なる複数のデータサイズそれぞれについて、予測性能曲線14上の点(予測性能の期待値)から所定範囲内にある予測性能をサンプリングする。所定範囲の幅は、データサイズによって異なってもよい。例えば、予測性能曲線14を規定するパラメータ値θ0とデータサイズから、サンプリングを行う範囲の幅が決定される。データサイズが小さいほどサンプリングを行う範囲を広くし、データサイズが大きいほどサンプリングを行う範囲を狭くすることが好ましい。サンプリングは、例えば、所定範囲の中における一様サンプリングまたは等間隔サンプリングとして行う。
処理部12は、複数のデータサイズから1つずつ予測性能を選択することで、データサイズと予測性能の組(点)の列であるサンプル点列を生成することができる。このサンプリングを複数回繰り返すことで、処理部12は、複数のサンプル点列を生成する。複数のサンプル点列は、予測性能曲線14の周辺に位置する。例えば、処理部12は、サンプル点列15a,15bを含む複数のサンプル点列を生成する。
次に、処理部12は、複数のサンプル点列を表す複数の予測性能曲線を規定する複数のパラメータ値を算出する。例えば、処理部12は、サンプル点列15aを表す予測性能曲線14aを規定するパラメータ値θ1を算出し、サンプル点列15bを表す予測性能曲線14bを規定するパラメータ値θ2を算出する。サンプル点列に対応する予測性能曲線は、予測性能曲線14に対して誤差を含む予測性能曲線であり、予測性能曲線14の周辺に位置する。各サンプル点列に含まれる点の数によっては、1つのサンプル点列から全ての点を通る1つの予測性能曲線を導出できる場合がある。処理部12は、予測性能曲線を表す数式から解析的にパラメータ値を算出してもよいし、回帰分析によりサンプル点列を最も良く説明できるパラメータ値を算出してもよい。
次に、処理部12は、パラメータ値θ1,θ2を含む複数のパラメータ値と測定データ13を用いて、予測性能曲線14a,14bを含む複数の予測性能曲線に対応付ける複数の重みを決定する。例えば、処理部12は、パラメータ値θ1と測定データ13から、予測性能曲線14aに対応付ける重みp1を決定し、パラメータ値θ2と測定データ13から、予測性能曲線14bに対応付ける重みp2を決定する。重みを決定する予測性能曲線の中には、予測性能曲線14が含まれてもよいし含まれなくてもよい。
予測性能曲線の重みは、例えば、測定データ13のもとで特定のパラメータ値が観測される生起確率を用いて算出される。測定データ13のもとでの特定のパラメータ値の生起確率は、例えば、尤度関数または事後確率として定義される。尤度関数および事後確率は、当該パラメータ値と測定データ13から所定の計算式により算出できる。これにより、予測性能曲線の周辺に誤差を含む複数の予測性能曲線を生成することができ、それら複数の予測性能曲線の重みを決定することができる。
次に、処理部12は、それら複数の予測性能曲線と複数の重みを用いて、予測性能曲線14から推定されるデータサイズx0に対応する予測性能の変動性を示す分散情報16を生成する。分散情報16は、予測性能曲線14上のデータサイズx0に対応する点(期待値)からの予測性能の振れを示す情報である。同じ予測性能曲線14であっても、どのような測定データ13から予測性能曲線14が生成されたかによって予測性能曲線14上の期待値の信頼性が変わる。また、データサイズによっても予測性能曲線14上の期待値の信頼性が変わる。分散情報16としては、信頼区間、予測区間、標準偏差、分散、確率分布など各種の統計処理上の指標を用いることができる。
例えば、処理部12は、予測性能曲線14a,14bを含む複数の予測性能曲線にそれぞれデータサイズx0を代入して、データサイズx0における複数の推定値を算出する。これら複数の推定値は重み付きの推定値である。処理部12は、複数の重み付き推定値を確率分布とみなして分散情報16を生成することができる。例えば、処理部12は、予測性能の小さい方から重みを累積した累積重みを算出し、累積重みが2.5%である予測性能から累積重みが97.5%である予測性能までの区間を95%信頼区間とみなす。
第1の実施の形態の推定装置10によれば、測定データ13に基づいて予測性能曲線14を規定するパラメータ値θ0が算出される。異なるデータサイズそれぞれについて予測性能曲線14から所定範囲内にある予測性能をサンプリングすることで、サンプル点列15a,15bが生成される。サンプル点列15a,15bを表す予測性能曲線14a,14bを規定するパラメータ値θ1,θ2が算出され、パラメータ値θ1,θ2と測定データ13を用いて予測性能曲線14a,14bに対応付ける重みp1,p2が決定される。予測性能曲線14a,14bと重みp1,p2を用いて、予測性能曲線14から推定されるデータサイズx0の予測性能の変動性を示す分散情報16が生成される。
これにより、予測性能曲線14がデータサイズによって予測性能の分散が異なるという異分散性をもっている(等分散性が成立しない)場合であっても、分散情報16を効率的かつ高精度に推定することが可能となる。第1の実施の形態では重み付きサンプリングを行うため、重みが無い単純サンプリングに比べてサンプル数を減らすことができる。よって、計算負荷を低減し計算時間を短縮することができる。また、第1の実施の形態では予測性能曲線14の周辺で予測性能をサンプリングし、サンプル点列15a,15bをパラメータ値θ1,θ2に変換している。このため、パラメータ値θ0の周辺からパラメータ値を直接サンプリングする方法と比べて、分散情報16の生成に有用な適切なパラメータ値を選択することが容易となる。よって、分散情報16を高精度に推定できると共に、サンプル数を適切な量に制御することが容易となる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、機械学習装置のハードウェア例を示すブロック図である。
機械学習装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107は、バス108に接続されている。なお、機械学習装置100は、第1の実施の形態の推定装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには比較プログラムが含まれる。なお、機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、機械学習装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、機械学習装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の装置と通信を行うインタフェースである。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
次に、機械学習におけるサンプルサイズと予測性能と学習時間の間の関係、および、プログレッシブサンプリング法について説明する。
第2の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。機械学習装置100または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク114経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常、1以上の説明変数の値と1つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
機械学習装置100は、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常、1以上の説明変数と1以上の係数と1つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
学習されたモデルを用いることで、未知の事例の説明変数の値(要因)から、未知の事例の目的変数の値(結果)を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、0以上1以下の確率などの連続量であってもよいし、YES/NOの2値などの離散値であってもよい。
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置100は、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの1/2程度とする。機械学習装置100は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値(予測値)とテストデータに含まれる目的変数の値(実績値)とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
予測性能の指標としては、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(MSE)、二乗平均平方根誤差(RMSE)などが挙げられる。例えば、結果がYES/NOの2値で表されるとする。また、N1件のテストデータの事例のうち、予測値=YESかつ実績値=YESの件数をTp、予測値=YESかつ実績値=NOの件数をFp、予測値=NOかつ実績値=YESの件数をFn、予測値=NOかつ実績値=NOの件数をTnとする。正答率は予測が当たった割合であり、(Tp+Tn)/N1と算出される。適合率は「YES」の予測を間違えない確率であり、Tp/(Tp+Fp)と算出される。平均二乗誤差MSEは、各事例の実績値をyと表し予測値をy^と表すと、sum(y−y^)2/N1と算出される。二乗平均平方根誤差RMSEは、(sum(y−y^)2/N1)1/2と算出される。MSE=RMSE2である。
ここで、ある1つの機械学習アルゴリズムを使用する場合、訓練データとしてサンプリングする単位データの数(サンプルサイズ)が大きいほど予測性能は高くなる。
図3は、サンプルサイズと予測性能の関係例を示すグラフである。
曲線21は、モデルの予測性能とサンプルサイズとの間の関係を示す。サンプルサイズ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倍である。
曲線21が示すように、サンプルサイズがs2の場合の予測性能はs1の場合よりも高い傾向にある。サンプルサイズがs3の場合の予測性能はs2の場合よりも高い傾向にある。サンプルサイズがs4の場合の予測性能はs3の場合よりも高い傾向にある。サンプルサイズがs5の場合の予測性能はs4の場合よりも高い傾向にある。このように、サンプルサイズが大きくなるほど予測性能も高くなる傾向にある。ただし、予測性能が低いうちは、サンプルサイズの増加に応じて予測性能が大きく上昇する。一方で、予測性能には上限があり、予測性能が上限に近づくと、サンプルサイズの増加量に対する予測性能の上昇量の比は逓減する。
また、サンプルサイズが大きいほど、機械学習に要する学習時間も大きくなる傾向にある。このため、サンプルサイズを過度に大きくすると、学習時間の点で機械学習が非効率になる。図3の例の場合、サンプルサイズをs4とすると、上限に近い予測性能を短時間で達成できる。一方、サンプルサイズをs3とすると、予測性能が不十分であるおそれがある。また、サンプルサイズをs5とすると、予測性能は上限に近いものの、単位学習時間当たりの予測性能の上昇量が小さく、機械学習が非効率になる。
このようなサンプルサイズと予測性能との間の関係は、同じ機械学習アルゴリズムを使用する場合であっても、使用するデータの性質(データの種類)によって異なる。このため、予測性能の上限や上限に近い予測性能を達成できる最小のサンプルサイズを、機械学習を行う前に事前に推定することは難しい。そこで、プログレッシブサンプリング法という機械学習方法が提案されている。プログレッシブサンプリング法については、例えば、前述の非特許文献1("Efficient Progressive Sampling")に記載がある。
プログレッシブサンプリング法では、サンプルサイズを小さな値から始めて段階的に大きくしていき、予測性能が所定条件を満たすまで機械学習を繰り返す。例えば、機械学習装置100は、サンプルサイズs1で機械学習を行い、学習されたモデルの予測性能を評価する。予測性能が不十分であれば、機械学習装置100は、サンプルサイズs2で機械学習を行って予測性能を評価する。このとき、サンプルサイズs2の訓練データは、サンプルサイズs1の訓練データ(前に使用した訓練データ)の一部または全部を包含していてもよい。同様に、機械学習装置100は、サンプルサイズs3で機械学習を行って予測性能を評価し、サンプルサイズs4で機械学習を行って予測性能を評価する。サンプルサイズs4で予測性能が十分と判断すると、機械学習装置100は、機械学習を停止しサンプルサイズs4で学習したモデルを採用する。
上記のように、プログレッシブサンプリング法では、1つのサンプルサイズに対する処理(1つの学習ステップ)毎に、モデルの学習と当該モデルの予測性能の評価とを行う。各学習ステップ内の手順(バリデーション方法)としては、例えば、クロスバリデーションやランダムサブサンプリングバリデーションなどを用いることができる。
クロスバリデーションでは、機械学習装置100は、サンプリングしたデータをK個(Kは2以上の整数)のブロックに分割し、このうちK−1個のブロックを訓練データとして使用して1個のブロックをテストデータとして使用する。機械学習装置100は、テストデータとして使用するブロックを変えながらモデルの学習と予測性能の評価をK回繰り返す。1つの学習ステップの結果として、例えば、K個のモデルのうち最も予測性能の高いモデルと、K回の予測性能の平均値とが出力される。クロスバリデーションは、限定された量のデータを活用して予測性能の評価を可能とする。
ランダムサブサンプリングバリデーションでは、機械学習装置100は、データの母集合から訓練データとテストデータをランダムにサンプリングし、訓練データを用いてモデルを学習し、テストデータを用いてモデルの予測性能を算出する。機械学習装置100は、サンプリングとモデルの学習と予測性能の評価をK回繰り返す。
各サンプリングは、非復元抽出サンプリングである。すなわち、1回のサンプリングの中で、訓練データ内に同じ単位データは重複して含まれず、テストデータ内に同じ単位データは重複して含まれない。また、1回のサンプリングの中で、訓練データとテストデータに同じ単位データは重複して含まれない。ただし、K回のサンプリングの間で、同じ単位データが選択されることはあり得る。1つの学習ステップの結果として、例えば、K個のモデルのうち最も予測性能の高いモデルと、K回の予測性能の平均値とが出力される。
ところで、訓練データからモデルを学習する手順(機械学習アルゴリズム)には様々なものが存在する。機械学習装置100は、複数の機械学習アルゴリズムを使用することができる。機械学習装置100が使用できる機械学習アルゴリズムの数は、数十〜数百程度であってもよい。機械学習アルゴリズムの一例として、ロジスティック回帰分析、サポートベクタマシン、ランダムフォレストなどを挙げることができる。
ロジスティック回帰分析は、目的変数yの値と説明変数x1,x2,…,xkの値をS字曲線にフィッティングする回帰分析である。目的変数yおよび説明変数x1,x2,…,xkは、log(y/(1−y))=a1x1+a2x2+…+akxk+bの関係を満たすと仮定される。a1,a2,…,ak,bは係数であり、回帰分析によって決定される。
サポートベクタマシンは、空間に配置された単位データの集合を、2つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離(マージン)が最大になるように算出される。
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、母集合から単位データをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングした単位データを分類する。説明変数の選択と単位データの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。単位データのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、単位データを分類するための最終的なモデルを生成する。
なお、機械学習アルゴリズムは、その挙動を制御するための1以上のハイパーパラメータをもつことがある。ハイパーパラメータは、モデルに含まれる係数(パラメータ)と異なり機械学習を通じて値が決定されるものではなく、機械学習アルゴリズムの実行前に値が与えられるものである。ハイパーパラメータの例として、ランダムフォレストにおける決定木の生成本数、回帰分析のフィッティング精度、モデルに含まれる多項式の次数などが挙げられる。ハイパーパラメータの値として、固定値が使用されることもあるし、ユーザから指定された値が使用されることもある。生成されるモデルの予測性能は、ハイパーパラメータの値にも依存する。機械学習アルゴリズムとサンプルサイズが同じでも、ハイパーパラメータの値が変わるとモデルの予測性能も変化し得る。
第2の実施の形態では、機械学習アルゴリズムの種類が同じでハイパーパラメータの値が異なる場合、異なる機械学習アルゴリズムを使用したものとして取り扱ってもよい。機械学習アルゴリズムの種類とハイパーパラメータの値の組み合わせを、コンフィギュレーションと言うこともある。すなわち、機械学習装置100は、異なるコンフィギュレーションを異なる機械学習アルゴリズムとして取り扱ってもよい。
図4は、学習時間と予測性能の関係例を示すフラグである。
曲線22〜24は、著名なデータ集合(CoverType)を用いて測定された学習時間と予測性能の間の関係を示している。予測性能の指標として、ここでは正答率を用いている。曲線22は、機械学習アルゴリズムとしてロジスティック回帰分析を用いた場合の学習時間と予測性能の間の関係を示す。曲線23は、機械学習アルゴリズムとしてサポートベクタマシンを用いた場合の学習時間と予測性能の間の関係を示す。曲線24は、機械学習アルゴリズムとしてランダムフォレストを用いた場合の学習時間と予測性能の間の関係を示す。なお、図4の横軸は、学習時間について対数目盛になっている。
曲線22が示すように、ロジスティック回帰分析を使用した場合、サンプルサイズ=800における予測性能は約0.71、学習時間は約0.2秒である。サンプルサイズ=3200における予測性能は約0.75、学習時間は約0.5秒である。サンプルサイズ=12800における予測性能は約0.755、学習時間は1.5秒である。サンプルサイズ=51200における予測性能は約0.76、学習時間は約6秒である。
曲線23が示すように、サポートベクタマシンを使用した場合、サンプルサイズ=800における予測性能は約0.70、学習時間は約0.2秒である。サンプルサイズ=3200における予測性能は約0.77、学習時間は約2秒である。サンプルサイズ=12800における予測性能は約0.785、学習時間は約20秒である。
曲線24が示すように、ランダムフォレストを使用した場合、サンプルサイズ=800における予測性能は約0.74、学習時間は約2.5秒である。サンプルサイズ=3200における予測性能は約0.79、学習時間は約15秒である。サンプルサイズ=12800における予測性能は約0.82、学習時間は約200秒である。
このように、上記のデータ集合に対しては、ロジスティック回帰分析は全体的に学習時間が短く予測性能が低い。サポートベクタマシンは、全体的にロジスティック回帰分析よりも学習時間が長く予測性能が高い。ランダムフォレストは、全体的にサポートベクタマシンよりも更に学習時間が長く予測性能が高い。ただし、図4の例では、サンプルサイズが小さい場合のサポートベクタマシンの予測性能は、ロジスティック回帰分析の予測性能よりも低くなっている。すなわち、プログレッシブサンプリング法における初期段階の予測性能の上昇カーブも、機械学習アルゴリズムによって異なる。
また、前述のように、個々の機械学習アルゴリズムの予測性能の上限や予測性能の上昇カーブは、使用するデータの性質にも依存する。そのため、複数の機械学習アルゴリズムのうち、予測性能の上限が最も高い機械学習アルゴリズムや上限に近い予測性能を最も短時間で達成できる機械学習アルゴリズムを事前に特定することは難しい。そこで、機械学習装置100は、以下のように複数の機械学習アルゴリズムを使用して、予測性能の高いモデルを効率的に得られるようにする。
図5は、複数の機械学習アルゴリズムの使用例を示す図である。
ここでは説明を簡単にするため、機械学習アルゴリズムA,B,Cの3つの機械学習アルゴリズムが存在する場合を考える。機械学習アルゴリズムAのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ31,32,33(A1,A2,A3)が順に実行される。機械学習アルゴリズムBのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ34,35,36(B1,B2,B3)が順に実行される。機械学習アルゴリズムCのみを使用してプログレッシブサンプリング法を行う場合、学習ステップ37,38,39(C1,C2,C3)が順に実行される。なお、ここでは、学習ステップ33,36,39でそれぞれ停止条件が満たされるものと仮定する。
学習ステップ31,34,37のサンプルサイズは同じである。例えば、学習ステップ31,34,37の単位データ数はそれぞれ1万である。学習ステップ32,35,38のサンプルサイズは同じであり、学習ステップ31,34,37のサンプルサイズの2倍または4倍程度である。例えば、学習ステップ32,35,38の単位データ数はそれぞれ4万である。学習ステップ33,36,39のサンプルサイズは同じであり、学習ステップ32,35,38のサンプルサイズの2倍または4倍程度である。例えば、学習ステップ33,36,39の単位データ数はそれぞれ16万である。
機械学習装置100は、各機械学習アルゴリズムについて、サンプルサイズが1段階大きい学習ステップを実行した場合の予測性能の改善速度を推定し、改善速度が最大の機械学習アルゴリズムを選択して実行する。学習ステップを1つ進める毎に、改善速度の推定値が見直される。このため、最初のうちは複数の機械学習アルゴリズムの学習ステップが混在して実行され、徐々に使用する機械学習アルゴリズムが限定されていく。
改善速度の推定値は、性能改善量の推定値を実行時間の推定値で割ったものである。性能改善量の推定値は、次の学習ステップの予測性能の推定値と、複数の機械学習アルゴリズムを通じて現在までに達成された予測性能の最大値(達成予測性能と言うことがある)との差である。次の学習ステップの予測性能は、同じ機械学習アルゴリズムの過去の予測性能と次の学習ステップのサンプルサイズとに基づいて推定される。実行時間の推定値は、次の学習ステップに要する時間の推定値であり、同じ機械学習アルゴリズムの過去の実行時間と次の学習ステップのサンプルサイズとに基づいて推定される。
機械学習装置100は、機械学習アルゴリズムAの学習ステップ31と、機械学習アルゴリズムBの学習ステップ34と、機械学習アルゴリズムCの学習ステップ37とを実行する。機械学習装置100は、学習ステップ31,34,37の実行結果に基づいて、機械学習アルゴリズムA,B,Cの改善速度をそれぞれ推定する。ここでは、機械学習アルゴリズムAの改善速度=2.5、機械学習アルゴリズムBの改善速度=2.0、機械学習アルゴリズムCの改善速度=1.0と推定されたとする。すると、機械学習装置100は、改善速度が最大の機械学習アルゴリズムAを選択し、学習ステップ32を実行する。
学習ステップ32が実行されると、機械学習装置100は、機械学習アルゴリズムA,B,Cの改善速度を更新する。ここでは、機械学習アルゴリズムAの改善速度=0.73、機械学習アルゴリズムBの改善速度=1.0、機械学習アルゴリズムCの改善速度=0.5と推定されたとする。学習ステップ32によって達成予測性能が上昇したため、機械学習アルゴリズムB,Cの改善速度も低下している。機械学習装置100は、改善速度が最大の機械学習アルゴリズムBを選択し、学習ステップ35を実行する。
学習ステップ35が実行されると、機械学習装置100は、機械学習アルゴリズムA,B,Cの改善速度を更新する。ここでは、機械学習アルゴリズムAの改善速度=0.0、機械学習アルゴリズムBの改善速度=0.8、機械学習アルゴリズムCの改善速度=0.0と推定されたとする。機械学習装置100は、改善速度が最大の機械学習アルゴリズムBを選択し、学習ステップ36を実行する。学習ステップ36によって予測性能が十分に上昇したと判定されると、機械学習は終了する。この場合、機械学習アルゴリズムAの学習ステップ33や機械学習アルゴリズムCの学習ステップ38,39は実行されない。
このように、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
次に、予測性能の推定について説明する。
図6は、予測性能の分布例を示すグラフである。
あるサンプルサイズに対する予測性能の実測値は、機械学習アルゴリズムとデータの母集合の性質とから決まる期待値から乖離するリスクがある。すなわち、同じデータ母集合を使用しても、訓練データおよびテストデータの選択の偶然性などによって、予測性能の実測値にばらつきが生じる。予測性能のばらつきは、サンプルサイズが小さいほど大きく、サンプルサイズが大きいほど小さくなる傾向にある。すなわち、サンプルサイズによって予測性能のばらつきの程度(標準偏差や分散)が異なるという異分散性がある。
グラフ41は、サンプルサイズと予測性能との間の関係を示す。ここでは、同じ機械学習アルゴリズムおよび同じデータ母集合を用いて、サンプルサイズ1つ当たり50回ずつ学習ステップを実行している。グラフ41は、1つのサンプルサイズにつき50個の予測性能の実測値をプロットしたものである。なお、グラフ41では、予測性能の指標として、値が大きいほど予測性能が高いことを示す正答率を用いている。
この例では、グラフ41に示すように、サンプルサイズが「100」の場合の予測性能の実測値は、約0.58〜0.68であり広範囲に広がっている。サンプルサイズが「500」の場合の予測性能の実測値は、約0.69〜0.75であり、サンプルサイズが「100」の場合よりもその範囲が狭くなっている。以降、サンプルサイズが大きくなるに従い、予測性能の実測値の範囲は狭くなる。サンプルサイズが十分に大きくなると、予測性能の実測値は約0.76に収束している。
上記のように、機械学習装置100は、機械学習アルゴリズム毎に、次の学習ステップを実行した場合に達成される予測性能を推定する。予測性能の推定のため、機械学習装置100は、それまでに取得した予測性能の実測値に基づいて予測性能曲線を推定する。しかし、予測性能の実測値(特に、小さなサンプルサイズにおける予測性能の実測値)は、期待値から乖離することがある。よって、予測性能曲線の推定精度が問題となる。これに対し、機械学習装置100は、以下のようにして予測性能曲線を推定する。
まず、バイアス・バリアンス分解の考え方について説明する。バイアス・バリアンス分解は、1つの機械学習アルゴリズムの良否や機械学習アルゴリズムに適用するハイパーパラメータの良否を評価するために用いられることがある。バイアス・バリアンス分解では、ロス(損失)とバイアスとバリアンスという3つの指標が用いられる。ロス=バイアスの二乗+バリアンスという関係が成立する。
ロスは、機械学習によって生成されるモデルが予測を外す度合いを示す指標である。ロスの種類には0−1ロスや二乗ロスなどがある。0−1ロスは、予測に成功すれば0を付与し予測に失敗すれば1を付与することで算出されるロスであり、その期待値は予測が失敗する確率を示す。予測が外れることが少ないほど0−1ロスの期待値は小さく、予測が外れることが多いほど0−1ロスの期待値は大きい。二乗ロスは、予測値と真の値との差(予測誤差)の二乗である。予測誤差が小さいほど二乗ロスは小さく、予測誤差が大きいほど二乗ロスは大きい。期待ロス(ロスの期待値)と予測性能とは相互に変換できる。予測性能が正答率(Accuracy)でありロスが0−1ロスである場合、期待ロス=1−予測性能である。予測性能が平均二乗誤差(MSE)でありロスが二乗ロスである場合、期待ロス=MSEである。予測性能が二乗平均平方根誤差(RMSE)でありロスが二乗ロスである場合、期待ロス=RMSEの二乗である。
バイアスは、機械学習によって生成されるモデルの予測値が真の値に対して偏る程度を示す指標である。バイアスが小さいほど精度の高いモデルであると言うことができる。バリアンスは、機械学習によって生成されるモデルの予測値がばらつく程度を示す指標である。バリアンスが小さいほど精度の高いモデルであると言うことができる。ただし、バイアスとバリアンスの間にはトレードオフの関係があることが多い。
次数の小さい多項式など複雑性の低いモデル(表現力の低いモデルと言うこともできる)では、モデルの係数をどのように調整しても、複数のサンプルケースの全てについて真の値に近い予測値を出力するようにすることは難しい。すなわち、複雑性の低いモデルを用いると複雑な事象を表現できない。よって、複雑性の低いモデルのバイアスは大きくなる傾向にある。この点、次数の大きい多項式など複雑性の高いモデル(表現力の高いモデルと言うこともできる)では、モデルの係数を適切に調整することで、複数のサンプルケースの全てについて真の値に近い予測値を出力することができる余地がある。よって、複雑性の高いモデルのバイアスは小さくなる傾向にある。
一方で、複雑性の高いモデルでは、訓練データとして使用するサンプルケースの特徴に過度に依存したモデルが生成されるという過学習が生じるリスクがある。過学習によって生成されたモデルは、他のサンプルケースについて適切な予測値を出力できないことが多い。例えば、n次の多項式を用いると、n+1個のサンプルケースについて真の値と完全に一致する予測値を出力するモデル(残差が0のモデル)を生成できる。しかし、あるサンプルケースについて残差が0になるモデルは、通常は過度に複雑なモデルであり、他のサンプルケースについて予測誤差が著しく大きい予測値を出力してしまうリスクが高くなる。よって、複雑性の高いモデルのバリアンスは大きくなる傾向にある。この点、複雑性の低いモデルでは、予測誤差が著しく大きい予測値を出力してしまうリスクは低く、バリアンスは小さくなる傾向にある。このように、ロスの成分としてのバイアスとバリアンスは、モデルを生成する機械学習アルゴリズムの特性に依存している。
次に、ロスとバイアスとバリアンスの形式的定義を説明する。ここでは、二乗ロスをバイアスとバリアンスに分解する例について説明する。
同一のデータ母集合からK個の訓練データDk(k=1,2,…,K)が抽出され、K個のモデルが生成されたとする。また、上記のデータ母集合からn個のテストケースを含むテストデータTが抽出されたとする。i番目のテストケースは、説明変数の値Xiと目的変数の真の値Yiとを含む(i=1,2,…,n)。k番目のモデルからは説明変数の値Xiに対して目的変数の予測値yikが算出される。
すると、k番目のモデルとi番目のテストケースとの間で算出される予測誤差eikはeik=Yi−yikと定義され、そのロス(二乗ロス)はeik 2と定義される。i番目のテストケースに対しては、バイアスBiとバリアンスViとロスLiが定義される。バイアスBiはBi=ED[eik]と定義される。ED[]はK個の訓練データの間の平均値(期待値)を表す。バリアンスViはVi=VD[eik]と定義される。VD[]はK個の訓練データの間の分散を表す。ロスLiはLi=ED[eik 2]と定義される。前述のロスとバイアスとバリアンスの間の関係からLi=Bi 2+Viが成立する。
テストデータT全体に対しては、期待バイアスEB2と期待バリアンスEVと期待ロスELが定義される。期待バイアスEB2はEB2=Ex[Bi 2]と定義される。Ex[]はn個のテストケースの間の平均値(期待値)を表す。期待バリアンスEVはEV=Ex[Vi]と定義される。期待ロスELはEL=Ex[Li]と定義される。前述のロスとバイアスとバリアンスの間の関係からEL=EB2+EVが成立する。
次に、予測性能曲線を推定するにあたって、各サンプルサイズで測定される予測性能に生じるばらつき度(分散度)を推定する方法を説明する。第2の実施の形態では、予測性能の分散の推定に上記のバイアス・バリアンス分解の考え方を応用する。
本出願の発明者らは、各サンプルサイズにおける予測性能の分散が、次の数式によって近似されることを発見した。VLj=C×(ELj+EB2)×(ELj−EB2)。VLjはサンプルサイズsjにおける予測性能の分散を表す。Cは所定の定数である。第2の実施の形態では複数のサンプルサイズの間の分散VLjの比を予測性能曲線の推定に利用するため、定数Cの値は不明であってもよい。例えば、C=1と仮定してもよい。ELjはサンプルサイズsjにおける期待ロスを表す。EB2は機械学習アルゴリズムの期待バイアスを表す。以下、この数式の意味について説明を加える。
図7は、サンプルサイズとロスの関係例を示すグラフである。
曲線42はサンプルサイズとロスの推定値との間の関係を示すロス曲線である。図3では縦軸が予測性能であるのに対し、図7では縦軸がロスに変換されている。前述のように予測性能とロスは、予測性能の指標とロスの指標に応じて相互に変換可能である。曲線42は、サンプルサイズの増加に応じてロスが単調に減少し一定の下限ロスに漸近する非線形曲線である。サンプルサイズが小さいうちはロスの減少量が大きく、サンプルサイズが大きくなるとロスの減少量が小さくなっていく。
サンプルサイズsjにおける曲線42上の点のロス(ロス=0から曲線42上の点までの距離)は、サンプルサイズsjの期待ロスELjに相当する。曲線42によって特定される下限ロスは、図3の曲線21によって特定される予測性能上限に対応しており、0より大きい値である。例えば、予測性能上限をcとおくと、予測性能が正答率(Accuracy)である場合、下限ロスは1−cとなる。予測性能が平均二乗誤差(MSE)である場合、下限ロスはcとなる。予測性能が二乗平均平方根誤差(RMSE)である場合、下限ロスはc2となる。下限ロスは、この機械学習アルゴリズムにとっての期待バイアスEB2に相当する。サンプルサイズが十分大きくなると、機械学習に使用する訓練データの特徴がデータ母集合の特徴に一致し、期待バリアンスが0に近づくためである。
期待ロスELjと期待バイアスEB2の差は、サンプルサイズsjにおけるギャップと言うことができる。ギャップは、サンプルサイズを大きくすることでその機械学習アルゴリズムがロスを低減できる余地を表している。ギャップは、図3の曲線21上の点と予測性能上限との間の距離に対応し、サンプルサイズを大きくすることでその機械学習アルゴリズムが予測性能を改善できる余地を表しているとも言える。ギャップは、サンプルサイズsjにおける期待バリアンスの影響を受ける。
ここで、分散VLjの近似式は、ELj+EB2という項とELj−EB2という項を含む。これは、分散VLjは、期待ロスと期待バイアスの和に比例する側面と、期待ロスと期待バイアスの差であるギャップに比例する側面を有していることを意味している。
期待バイアスEB2が十分に小さい、すなわち、予測性能上限が十分に大きい機械学習アルゴリズムでは、サンプルサイズがある程度大きくなってもELj+EB2の値とELj−EB2の値は共に変化する。また、この場合にはELj+EB2の値はELj−EB2の値に近似する。よって、分散VLjは全体としてギャップの二乗に比例する傾向にある。一方、期待バイアスEB2が十分に大きい、すなわち、予測性能上限が十分に大きいとは言えない機械学習アルゴリズムでは、サンプルサイズがある程度大きくなるとELj+EB2の値はほとんど変化しなくなり、早期に定数化する。よって、分散VLjは全体としてギャップに比例する傾向にある。このように、機械学習アルゴリズムによって、分散VLjが概ねギャップの二乗に比例する場合とギャップに比例する場合とがある。
後述するように第2の実施の形態では、上記のVLj=C×(ELj+EB2)×(ELj−EB2)という性質を利用して、異分散性のもとで予測性能曲線を推定する。
次に、予測性能曲線に対する予測性能の推定値の振れについて説明する。
上記のように機械学習装置100は、性能改善量の推定値を実行時間の推定値で割った改善速度の推定値を使用する。ここで言う性能改善量の推定値としては、予測性能のばらつきを考慮して、予測性能曲線上の期待値ではなく期待値よりも大きな値を用いることが好ましい。これにより、予測性能が期待値よりも大きく上振れする可能性のある機械学習アルゴリズムを切り捨ててしまうリスクが低減される。
予測性能のばらつきの程度を示す情報(分散情報)としては、信頼区間、予測区間、分散、標準偏差、確率分布などが挙げられる。信頼区間は、回帰分析によって算出された回帰曲線上の点(期待値)に対する信頼区間である。95%信頼区間は、回帰曲線に基づく推定値が期待値の周りに確率分布するとき、推定値の小さい方から累積した累積確率が2.5%から97.5%である範囲を指す。予測区間は、信頼区間に誤差分布を付加した区間である。回帰曲線に基づく推定値の分布は更に誤差に応じて広がっており、予測区間はその広がりを考慮したものである。95%予測区間は、誤差分布を加えた確率分布において累積確率が2.5%から97.5%である範囲を指す。
信頼区間、予測区間、分散、標準偏差、確率分布などの分散情報は、相互に変換可能であることが多く、1つの分散情報を求めれば他の分散情報も算出できることが多い。第2の実施の形態では、分散情報の代表として95%信頼区間を算出する。機械学習装置100は、改善速度の算出に用いる予測性能の推定値として、95%信頼区間の上限値(UCB:Upper Confidence Bound)を使用する。これは、予測性能が期待値より上振れする可能性を数量的に評価したものである。ただし、UCBに代えて、予測性能の確率分布を積分して、予測性能が達成予測性能を超える確率(PI:Probability of Improvement)を算出することもできる。また、予測性能の確率分布を積分して、予測性能が達成予測性能を超える期待値(EI:Expected Improvement)を算出することもできる。
ここで、予測性能曲線は異分散性をもっていることから、各サンプルサイズに対する信頼区間をどのように算出すればよいかが問題となる。以下では、2つの算出方法の例を挙げ、その後に機械学習装置100が採用する第3の算出方法を説明する。まず、信頼区間の算出方法の説明で使用する記号を定義する。
予測性能曲線(学習曲線と言うこともできる)はy=f(x;θ)と定義される。yは予測性能推定値、fは予測性能曲線を示す関数、xはサンプルサイズ、θは予測性能曲線の形状を決定するパラメータの集合であるパラメータベクタである。第2の実施の形態では一例として、f(x;θ)=c−a・x−dを用いる。この予測性能曲線の形状はパラメータa,c,dで決定されるため、θ=<a,c,d>である。ただし、d>0である。また、誤差を含んだ予測性能曲線はY=f(x;θ)+ε|x,θと定義される。Yは誤差を含む予測性能推定値を示す確率変数である。ε|x,θは、分散がxやθに依存するという異分散性をもち、期待値が0である誤差を示す確率変数である。誤差の分散が定数にならないことが、異分散性が成立する(等分散性が成立しない)ことを意味する。
予測性能曲線の推定に用いるデータはX={<x,y>}である。xはサンプルサイズ、yは予測性能実測値である。また、以下の尤度関数、事後確率(事後確率関数)および誤差確率密度関数が定義されているとする。尤度関数はL(θ;X)=P(X|θ)、事後確率はPposterior(θ|X)、ε|x,θの誤差確率密度関数はferr(ε;x,θ)である。尤度関数は、決定されたパラメータベクタθに従う予測性能曲線のもとで、データXが観測される確率を表す。事後確率は、データXのもとで、決定されたパラメータベクタθが正しい確率を表す。尤度関数と事後確率は何れか一方のみ与えられてもよい。
尤度関数L(θ;X)、事後確率Pposterior(θ|X)および誤差確率密度関数ferr(ε;x,θ)の定義例を説明する。誤差ε|x,θは、期待値0かつ分散v(x,θ)=(f(x;θ)−c)2/16の正規分布に従うと仮定する。この場合、誤差確率密度関数は、ferr(ε;x,θ)=1/(2πv(x,θ))0.5・exp(−ε2/(2v(x,θ)))と定義される。パラメータベクタθに対する尤度関数は、L(θ;X)=P(X|θ)=Πiferr(f(xi;θ)−yi;xi,θ)と定義される。xi,yiはデータXに含まれるi番目の要素<xi,yi>の成分である。
事後確率は、Pposterior(θ|X)=P(X|θ)・Pprior(θ)/Σθ’(P(X|θ’)・P(θ’))と定義される。Σθ’(P(X|θ’)・P(θ’))は正規化のための定数であるためC1と置き換える。a,cの事前分布を一様分布、dの事前分布をガンマ分布Gamma(2,1/3)と仮定すると、事前確率Pprior(θ)は正規化定数C2を用いて、Pprior(θ)=C2・9d/exp(3d)と定義される。よって、事後確率は正規化定数C3=C2/C1を用いて、Pposterior(θ|X)=C3・L(θ;X)・9d/exp(3d)と定義される。
以上の記号を用いて、信頼区間の3つの算出方法を説明する。
図8は、信頼区間の第1の算出方法の例を示す図である。
信頼区間の第1の算出方法は、単純サンプリング法である。第1の算出方法は、マルコフ連鎖モンテカルロ(MCMC)法などを用いてパラメータ空間51から複数のパラメータベクタをサンプリングする。そして、データ空間52において、サンプリングした複数のパラメータベクタに従う複数の予測性能曲線を用いて、サンプルサイズx0における予測性能の推定値の確率分布を近似する。
まず、回帰分析により決定されたパラメータベクタθに対する尤度関数L(θ;X)または事後確率Pposterior(θ|X)を確率密度関数として用いて、パラメータ空間51から50000個のパラメータベクタをサンプリングする。パラメータベクタのサンプリングには、Metropolis−HastingアルゴリズムなどのMCMC法を用いる。回帰分析により決定されたθに近いパラメータベクタほど多くサンプリングされ、決定されたθから遠いパラメータベクタほど少なくサンプリングされる。
次に、データ空間52において、サンプリングされた50000個のパラメータベクタθi(i=1,2,…,50000)に対応する50000個の予測性能曲線f(x;θi)を想定し、所望のサンプルサイズx0における50000個の予測性能yi=f(x0;θi)を算出する。50000個の予測性能により、サンプルサイズx0における推定値の確率分布が近似される。50000個の予測性能のうち小さい方から2.5%(2.5%分位点)の予測性能をa、小さい方から97.5%(97.5%分位点)の予測性能をbとすると、サンプルサイズx0における95%信頼区間は(a,b)と算出される。
第1の算出方法は、高い精度で信頼区間を算出するためには多数のパラメータベクタをサンプリングすることになり、計算負荷が高く計算時間が長いという問題がある。
図9は、信頼区間の第2の算出方法の例を示す図である。
信頼区間の第2の算出方法は、重み付きサンプリング法である。第2の算出方法は、パラメータ空間53を所定幅のグリッドに分割し、各グリッドから1つの代表値(例えば、各グリッドの中心値)であるパラメータベクタをサンプリングする。また、サンプリングしたパラメータベクタ毎に重みを決定する。そして、データ空間54において、サンプリングした複数のパラメータベクタに従う複数の予測性能曲線と重みを用いて、サンプルサイズx0における予測性能の推定値の確率分布を近似する。
まず、パラメータ空間53を1000個程度のグリッドに分割し、グリッド毎に代表点であるパラメータベクタθi(i=1,2,…,1000)を選択する。また、各グリッドの確率を尤度関数または事後確率を用いて、pi=L(θi|X)またはpi=Pposterior(θi|X)と算出し、パラメータベクタθiに対応する重みとする。
次に、データ空間54において、サンプリングされた1000個のパラメータベクタθiに対応する1000個の予測性能曲線f(x;θi)を想定し、所望のサンプルサイズx0における1000個の予測性能yi=f(x0;θi)を算出する。1000個の予測性能とその重みにより、サンプルサイズx0における推定値の確率分布が近似される。1000個の重み付き予測性能のうち、累積重みが2.5%になる予測性能(重み付き2.5%分位点)をa、累積重みが97.5%になる予測性能(重み付き97.5%分位点)をbとすると、サンプルサイズx0における95%信頼区間は(a,b)と算出される。
第2の算出方法は、第1の算出方法よりもサンプリングするパラメータベクタを減らすことができる。一方で、第2の算出方法は、パラメータ空間53をグリッドに分割する方法が問題となる。グリッド幅を大きくすると信頼区間の算出精度が低下し、グリッド幅を小さくすると計算負荷が高くなり計算時間が長くなる。また、回帰分析により決定されたθの近くのみグリッドを形成すると信頼区間の算出精度が低下し、θの遠くまでグリッドを形成すると計算負荷が高くなり計算時間が長くなる。なお、上記ではパラメータ空間53をグリッドに分割する方法を説明したが、パラメータ空間53から一様にパラメータベクタをサンプリングする方法など他の方法でも同様の問題が生じ得る。
これに対し、第2の実施の形態の機械学習装置100は、次に説明する第3の算出方法によって、所望のサンプルサイズにおける推定値の信頼区間を算出する。
図10は、信頼区間の第3の算出方法の例を示す図である。
上記の第2の算出方法は、パラメータ空間53において適切なパラメータベクタを選択する基準が不明であった。それに対して第3の算出方法は、誤差を考慮した予測性能曲線は、最も確率が高い予測性能曲線、すなわち、回帰分析で決定された1つの予測性能曲線の周辺に多く分布するという性質を利用する。データ空間55において誤差を考慮した複数の予測性能曲線をサンプリングし、それら複数の予測性能曲線をパラメータ空間56の複数のパラメータベクタにマッピングしてパラメータベクタ毎の確率を求める。そして、パラメータ空間56における確率をデータ空間57における確率に変換して予測性能曲線毎の重みを求め、サンプルサイズx0における予測性能の推定値の確率分布を近似する。
ここでは、パラメータベクタに含まれるパラメータの数(θの次元数)をMとする。θ=<a,c,d>である場合はM=3である。まず、機械学習装置100は、データXから回帰分析により予測性能曲線f(x;θ0)を生成する。θ0は回帰分析により決定される最も確率が高いパラメータベクタである。次に、機械学習装置100は、データXに含まれるサンプルサイズ(実行済みのサンプルサイズ)の範囲の中からM個の異なるサンプルサイズx1,x2,…,xM(x1<x2<…<xM)を選択する。M=3である場合はサンプルサイズx1,x2,x3(x1<x2<x3)を選択する。選択するM個のサンプルサイズは偏らないことが好ましい。例えば、x1をデータXの中の25%分位点、x3をデータXの中の75%分位点、x2をx1とx3の相乗平均(x2=(x1・x3)0.5)とする。
次に、機械学習装置100は、各サンプルサイズxiについて、誤差確率密度関数ferr(ε;x,θ)を用いて、確率が所定の閾値(例えば、10−6)以上であるyiの範囲[ai,bi]を求める。例えば、誤差確率密度関数ferr(ε;x1,θ)が標準正規分布の確率密度関数である場合、y1の範囲はf(x1;θ0)−4.75≦y1≦f(x1;θ0)+4.75となる。機械学習装置100は、サンプルサイズxi毎に範囲[ai,bi]から1点の予測性能をサンプリングし、サンプル点列Yj=<y1,y2,…,yM>を生成する。M=3である場合、機械学習装置100はサンプル点列Yj=<y1,y2,y3>を生成する。サンプル点列Yjのサンプリングは、[a1,b1]×[a2,b2]×…×[aM,bM]の中からの一様サンプリングである。この一様サンプリングは、準乱数(超一様分布列)を用いることで効率的に行うことができる。なお、一様分布に従ってサンプリングする代わりに、等間隔にサンプリングすることも可能である。
機械学習装置100は、上記のサンプリングをN回繰り返すことでN個のサンプル点列Y1,Y2,…,YNを生成する。例えば、N=9Mとする。M=3である場合、N=729であるため729個のサンプル点列Y1,Y2,…,Y729が生成される。このように、データ空間55においてθ0の周辺でサンプリングが行われる。なお、選択するサンプルサイズの数は、θの次元数Mより大きくてもよい。選択するサンプルサイズの数をM以上にすることで、1つのサンプル点列から1つの予測性能曲線を導出できる。選択するサンプルサイズの数をMとした場合、1つのサンプル点列に含まれるM個の点を全て通る単一の予測性能曲線を確定できる。この場合は数式に従って解析的にM個のパラメータを算出することが可能である。一方、選択するサンプルサイズの数をMより大きくした場合、回帰分析によって最良の予測性能曲線を算出できる。
次に、機械学習装置100は、N個のサンプル点列Yjに対応するN個のパラメータベクタθjを算出する。選択するサンプルサイズの数をMとした場合、1つのパラメータベクタは1つのサンプル点列の全ての点を通る予測性能曲線を表している。パラメータベクタθjは解析的に解いてもよいし回帰分析によって算出してもよい。これにより、パラメータ空間56においてN個のパラメータベクタθjがサンプリングされたことになる。これらのパラメータベクタθjはθ0を中心として適切にサンプリングされたものである。
次に、機械学習装置100は、N個のパラメータベクタθjそれぞれについて、データX上での生起確率qjを算出する。生起確率は、尤度関数を用いてqj=L(θj;X)と算出するか、または、事後確率を用いてqj=Pposterior(θj|X)と算出する。なお、下に凸の曲線を示すサンプル点列など幾つかのサンプル点列からは、適切なパラメータベクタを算出できない場合がある。その場合には生起確率をqj=0とすればよい。
次に、機械学習装置100は、パラメータ空間56におけるN個のパラメータベクタθjの生起確率qjを、データ空間57におけるN個のサンプル点列Yjの生起確率pjに変換する。サンプル点列Yjの生起確率pjは、パラメータベクタθjの生起確率qjを用いて数式(1)のように算出される。数式(1)においてdetは行列式を表し、Jはヤコビ行列を表す。M=3の場合のヤコビ行列は数式(2)のように定義される。
次に、機械学習装置100は、データ空間57において、N個のパラメータベクタθjに対応するN個の予測性能曲線f(x;θj)を想定し、所望のサンプルサイズx0におけるN個の予測性能yj=f(x0;θj)を算出する。機械学習装置100は、N個のサンプル点列Yjの生起確率pjを、N個の予測性能yjの重みとして使用する。N個の予測性能yjと重みpjによって、サンプルサイズx0における推定値の確率分布が近似される。予測性能yjが重みpjで重点サンプリングされたことになる。機械学習装置100は、累積重みが2.5%になる予測性能(重み付き2.5%分位点)をa、累積重みが97.5%になる予測性能(重み付き97.5%分位点)をbとし、サンプルサイズx0における95%信頼区間を(a,b)と算出する。
第3の算出方法は、データ空間55において当初の予測性能曲線の周辺でサンプル点列をサンプリングし、サンプル点列をパラメータ空間56のパラメータベクタに変換して重みを計算し、データ空間57でサンプルサイズx0の推定値の確率分布を近似する。これにより、適切なパラメータベクタのサンプリングが可能となる。よって、少ないサンプリング数でも信頼区間を精度よく算出することができる。
次に、機械学習装置100が行う処理について説明する。
図11は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、データ記憶部121、管理テーブル記憶部122、学習結果記憶部123、制限時間入力部131、ステップ実行部132、時間推定部133、性能改善量推定部134および学習制御部135を有する。データ記憶部121、管理テーブル記憶部122および学習結果記憶部123は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。制限時間入力部131、ステップ実行部132、時間推定部133、性能改善量推定部134および学習制御部135は、例えば、CPU101が実行するプログラムを用いて実装される。
データ記憶部121は、機械学習に使用できるデータの集合を記憶する。データの集合は、それぞれが目的変数の値(結果)と1以上の説明変数の値(要因)とを含む単位データの集合である。データ記憶部121に記憶されたデータは、機械学習装置100または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置100または他の情報処理装置に対してユーザが入力したものでもよい。
管理テーブル記憶部122は、機械学習の進行を管理する管理テーブルを記憶する。管理テーブルは、学習制御部135によって更新される。管理テーブルの詳細は後述する。
学習結果記憶部123は、機械学習の結果を記憶する。機械学習の結果には、目的変数と1以上の説明変数との間の関係を示すモデルが含まれる。例えば、各説明変数の重みを示す係数が機械学習によって決定される。また、機械学習の結果には、学習されたモデルの予測性能が含まれる。また、機械学習の結果には、モデルの学習に用いた機械学習アルゴリズムとサンプルサイズを示す情報が含まれる。機械学習アルゴリズムを示す情報には、使用されたハイパーパラメータが含まれることがある。
制限時間入力部131は、機械学習の制限時間の情報を取得し、制限時間を学習制御部135に通知する。制限時間の情報は、入力デバイス112を通じてユーザから入力されてもよい。また、制限時間の情報は、RAM102またはHDD103に記憶された設定ファイルから読み出すようにしてもよい。また、制限時間の情報は、ネットワーク114を介して他の情報処理装置から受信してもよい。
ステップ実行部132は、複数の機械学習アルゴリズムそれぞれを実行する。ステップ実行部132は、学習制御部135から、機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、ステップ実行部132は、データ記憶部121に記憶されたデータを用いて、指定された機械学習アルゴリズムおよび指定されたサンプルサイズについての学習ステップを実行する。すなわち、ステップ実行部132は、指定されたサンプルサイズに基づいて、データ記憶部121から訓練データとテストデータを抽出する。ステップ実行部132は、訓練データおよび指定された機械学習アルゴリズムを用いてモデルを学習し、テストデータを用いて予測性能を算出する。
モデルの学習と予測性能の算出について、ステップ実行部132は、クロスバリデーションやランダムサブサンプリングバリデーションなどの各種のバリデーション方法を使用できる。使用するバリデーション方法は、ステップ実行部132に予め設定されてもよい。また、ステップ実行部132は、1つの学習ステップに要した実行時間を測定する。ステップ実行部132は、モデルと予測性能と実行時間を学習制御部135に出力する。
時間推定部133は、ある機械学習アルゴリズムのある学習ステップの実行時間を推定する。時間推定部133は、学習制御部135から機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、時間推定部133は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの実行時間から、実行時間の推定式を生成する。時間推定部133は、指定されたサンプルサイズと生成した推定式から実行時間を推定する。時間推定部133は、推定した実行時間を学習制御部135に出力する。
性能改善量推定部134は、ある機械学習アルゴリズムのある学習ステップの性能改善量を推定する。性能改善量推定部134は、学習制御部135から機械学習アルゴリズムとサンプルサイズの指定を受け付ける。すると、性能改善量推定部134は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの予測性能から、予測性能の推定式を生成する。性能改善量推定部134は、指定されたサンプルサイズと生成した推定式から予測性能を推定する。このとき、性能改善量推定部134は、予測性能のばらつきを考慮して、UCBなど期待値よりも大きい予測性能を用いる。性能改善量推定部134は、現在の達成予測性能からの改善量を算出し、学習制御部135に出力する。
学習制御部135は、複数の機械学習アルゴリズムを用いた機械学習を制御する。学習制御部135は、まず複数の機械学習アルゴリズムそれぞれについて少なくとも1つの学習ステップをステップ実行部132に実行させる。学習制御部135は、学習ステップが進むと、同じ機械学習アルゴリズムの次の学習ステップの実行時間を時間推定部133に推定させ、次の学習ステップの性能改善量を性能改善量推定部134に推定させる。学習制御部135は、性能改善量を実行時間で割った改善速度を算出する。
そして、学習制御部135は、複数の機械学習アルゴリズムの中から改善速度が最大のものを選択し、選択した機械学習アルゴリズムの次の学習ステップをステップ実行部132に実行させる。学習制御部135は、改善速度の更新と機械学習アルゴリズムの選択とを、予測性能が所定の停止条件を満たすか学習時間が制限時間を超えるまで繰り返す。学習制御部135は、機械学習の停止までに得られたモデルのうち予測性能が最大のモデルを学習結果記憶部123に保存する。また、学習制御部135は、予測性能と機械学習アルゴリズムの情報とサンプルサイズの情報を学習結果記憶部123に保存する。
図12は、管理テーブルの例を示す図である。
管理テーブル122aは、学習制御部135によって生成されて管理テーブル記憶部122に記憶される。管理テーブル122aは、アルゴリズムID、サンプルサイズ、改善速度、予測性能および実行時間の項目を含む。
アルゴリズムIDの項目には、機械学習アルゴリズムを識別する識別情報が登録される。以下では、i番目(i=1,2,3,…)の機械学習アルゴリズムのアルゴリズムIDをaiと表記することがある。サンプルサイズの項目には、ある機械学習アルゴリズムについて次に実行すべき学習ステップのサンプルサイズが登録される。以下では、i番目の機械学習アルゴリズムに対応するサンプルサイズをkiと表記することがある。
なお、ステップ番号とサンプルサイズとは1対1に対応する。以下では、j番目の学習ステップのサンプルサイズをsjと表記することがある。データ記憶部121に記憶されたデータ集合をDとし、Dのサイズ(単位データの数)を|D|とすると、例えば、s1=|D|/210,sj=s1×2j−1と決定される。
改善速度の項目には、機械学習アルゴリズム毎に、次に実行すべき学習ステップの改善速度の推定値が登録される。改善速度の単位は、例えば、[秒−1]である。以下では、i番目の機械学習アルゴリズムに対応する改善速度をriと表記することがある。予測性能の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの予測性能の実測値が列挙される。以下では、i番目の機械学習アルゴリズムのj番目の学習ステップで算出された予測性能をpi,jと表記することがある。実行時間の項目には、機械学習アルゴリズム毎に、既に実行された学習ステップの実行時間の実測値が列挙される。実行時間の単位は、例えば、[秒]である。以下では、i番目の機械学習アルゴリズムのj番目の学習ステップの実行時間をTi,jと表記することがある。
図13は、性能改善量推定部の機能例を示すブロック図である。
性能改善量推定部134は、推定式生成部141、重み設定部142、非線形回帰部143、分散推定部144、サンプリング部145、パラメータ記憶部146、予測性能推定部147および性能改善量出力部148を有する。
推定式生成部141は、ある機械学習アルゴリズムの実行履歴を示すデータXから、当該機械学習アルゴリズムについてサンプルサイズと予測性能の関係を示す予測性能曲線を推定する。予測性能曲線は、サンプルサイズの増加に応じて予測性能が一定の限界値に漸近する曲線であって、サンプルサイズが小さいうちは予測性能の増加量が大きくサンプルサイズが大きくなると予測性能の増加量が小さくなる曲線である。予測性能曲線は、例えば、y=c−a・x−dなどの非線形式によって表される。推定式生成部141が生成する予測性能曲線は、データXのもとで最も確率の高い最良の予測性能曲線である。
推定式生成部141は、データXに基づいて、最良の予測性能曲線を表すパラメータベクタθ0=<a,c,d>を決定するよう重み設定部142に指示する。推定式生成部141は、決定されたパラメータベクタθ0をサンプリング部145に出力する。
重み設定部142は、非線形回帰分析に用いるデータXの中の各サンプルサイズxjに対して重みwjを設定する。重み設定部142は最初に、重みwjをwj=1に初期化する。重み設定部142は、設定した重みwjを非線形回帰部143に通知し、非線形回帰分析によって算出されたパラメータベクタを非線形回帰部143から取得する。重み設定部142は、パラメータベクタ<a,c,d>が十分に収束したか判断する。
十分に収束したとは言えない場合、重み設定部142は、パラメータcを分散推定部144に通知し、パラメータcに依存する各サンプルサイズxjの分散VLjを分散推定部144から取得する。重み設定部142は、分散VLjを用いて重みwjを更新する。通常、分散VLjと重みwjは反比例し、VLjが大きいほどwjは小さくなる。例えば、重み設定部142はwj=1/VLjとする。重み設定部142は、更新した重みwjを非線形回帰部143に通知する。このように、パラメータベクタ<a,c,d>が十分に収束するまで重みwjの更新とパラメータcの更新が繰り返される。
非線形回帰部143は、重み設定部142から通知された重みwjを用いて、データXの<xj,yj>を上記の非線形式にフィッティングしてパラメータベクタ<a,c,d>を決定する。非線形回帰部143は、決定したパラメータベクタ<a,c,d>を重み設定部142に通知する。非線形回帰部143が行う非線形回帰分析は重み付き回帰分析である。重みが小さいサンプルサイズについては相対的に大きな残差が許容され、重みが大きいサンプルサイズについては相対的に残差の制限が強くなる。
例えば、各サンプルサイズの重みと残差平方の積を合計した評価値が最小になるようにパラメータベクタ<a,c,d>が決定される。よって、重みが大きいサンプルサイズにおける残差を小さくすることが優先される。通常、サンプルサイズが大きいほど重みが大きいため、大きなサンプルサイズの残差を小さくすることが優先される。
分散推定部144は、重み設定部142から通知されたパラメータcを用いて、データXの予測性能yjに内包される誤差に関して各サンプルサイズxjの分散VLjを推定する。分散VLjは、期待バイアスEB2とサンプルサイズxjにおける期待ロスELjとから算出される。具体的には、VLj=C×(ELj+EB2)×(ELj−EB2)である。ただし、複数のサンプルサイズの間のVLjの比のみが重要であり各VLjの大きさ自体は重要でないことから、分散推定部144は計算を簡単にするため定数C=1とみなす。期待バイアスEB2はパラメータcから算出される。期待ロスELjは予測性能yjから算出される。分散推定部144は、推定した分散VLjを重み設定部142に通知する。
サンプリング部145は、推定式生成部141から取得したパラメータベクタθ0をパラメータ記憶部146に格納する。また、サンプリング部145は、パラメータベクタθ0を中心としてN個のパラメータベクタをサンプリングし、それらN個のパラメータベクタに対応するN個の重みを算出し、N組のパラメータベクタと重みをパラメータ記憶部146に格納する。例えば、サンプル数N=9Mとする。
パラメータベクタのサンプリングは、前述の第3の算出方法に従って行う。サンプリング部145は、データ空間55において、少なくともM個のサンプルサイズを選択する。サンプリング部145は、データ空間55において、パラメータベクタθ0が示す予測性能曲線の周辺からサンプルサイズ毎に点を1つサンプリングし、サンプル点列を生成する。サンプリング部145は、このサンプリングをN回繰り返すことでN個のサンプル点列を生成する。サンプリング部145は、N個のサンプル点列をパラメータ空間56におけるN個のパラメータベクタに変換する。サンプリング部145は、パラメータ空間56においてパラメータベクタの生起確率を算出し、パラメータベクタの生起確率をデータ空間57におけるサンプル点列の生起確率に変換する。これにより、N個のパラメータベクタとそれに対応するN個の重みが生成される。
パラメータ記憶部146は、推定式生成部141が決定したパラメータベクタθ0を記憶する。また、パラメータ記憶部146は、サンプリング部145がサンプリングしたN個のパラメータベクタとそれに対応するN個の重みを記憶する。パラメータベクタや重みは、サンプリング部145を介して予測性能推定部147に提供される。
なお、ある機械学習アルゴリズムの性能改善量を性能改善量推定部134が算出しようとするとき、当該機械学習アルゴリズムのデータXが前回から変化していない場合もある。その場合、推定式生成部141やサンプリング部145を実行せずに、パラメータ記憶部146に記憶されたパラメータベクタと重みを再利用してもよい。
予測性能推定部147は、サンプリング部145からN個のパラメータベクタとそれに対応するN個の重みを取得し、学習制御部135から指定されたサンプルサイズにおける予測性能の推定値を算出する。ここで算出する推定値は、最も確率が高い予測性能曲線上にある期待値よりも、推定値の振れを考慮した幅だけ大きい値とする。例えば、予測性能推定部147は、95%信頼区間の上限(UCB)を算出する。予測性能推定部147は、算出した推定値を性能改善量出力部148に出力する。
予測性能の推定値の算出は、前述の第3の算出方法に従って行う。予測性能推定部147は、データ空間57において、サンプリングされたN個のパラメータベクタに対応するN個の予測性能曲線を想定し、指定されたサンプルサイズにおけるN個の予測性能を算出する。予測性能推定部147は、算出したN個の予測性能とそれに対応するN個の重みを、指定されたサンプルサイズにおける推定値の確率分布とみなす。予測性能推定部147は、予測性能の小さい方から重みを累積した累積重みに基づいて、重み付き2.5%分位点と重み付き97.5%分位点を算出し、95%信頼区間を決定する。
性能改善量出力部148は、予測性能推定部147から予測性能の推定値Up(例えば、UCB)を取得し、取得した推定値Upから現在の達成予測性能Pを引いて性能改善量を算出する。ただし、Up−P<0である場合には性能改善量を0とする。性能改善量出力部148は、算出した性能改善量を学習制御部135に出力する。
図14は、機械学習の手順例を示すフローチャートである。
(S10)学習制御部135は、データ記憶部121を参照して、プログレッシブサンプリング法における学習ステップのサンプルサイズs1,s2,s3,…を決定する。例えば、学習制御部135は、データ記憶部121に記憶されたデータ集合Dのサイズに基づいて、s1=|D|/210,sj=s1×2j−1と決定する。
(S11)学習制御部135は、管理テーブル122aの各機械学習アルゴリズムのサンプルサイズkを最小値s1に初期化する。また、学習制御部135は、各機械学習アルゴリズムの改善速度rを、改善速度rが取り得る最大値に初期化する。また、学習制御部135は、達成予測性能Pを、達成予測性能Pが取り得る最低値(例えば、0)に初期化する。
(S12)学習制御部135は、管理テーブル122aの中から、改善速度が最大の機械学習アルゴリズムを選択する。ここで選択した機械学習アルゴリズムをaiとする。
(S13)学習制御部135は、機械学習アルゴリズムaiの改善速度riが、閾値Tr未満であるか判断する。閾値Trは、予め学習制御部135に設定されていてもよい。例えば、閾値Tr=0.001/3600とする。改善速度riが閾値Tr未満である場合はステップS28に処理が進み、それ以外の場合はステップS14に処理が進む。
(S14)学習制御部135は、管理テーブル122aから、機械学習アルゴリズムaiに対応する次のサンプルサイズkiを検索する。
(S15)学習制御部135は、ステップ実行部132に対して機械学習アルゴリズムaiとサンプルサイズkiを指定する。ステップ実行部132は、機械学習アルゴリズムaiとサンプルサイズkiとに基づく学習ステップを実行する。ステップ実行部132の処理の詳細は後述する。
(S16)学習制御部135は、ステップ実行部132から、学習されたモデルと当該モデルの予測性能pi,jと実行時間Ti,jとを取得する。
(S17)学習制御部135は、ステップS16で取得した予測性能pi,jと、達成予測性能P(現在までに達成された最大の予測性能)とを比較し、前者が後者より大きいか判断する。予測性能pi,jが達成予測性能Pよりも大きい場合はステップS18に処理が進み、それ以外の場合はステップS19に処理が進む。
(S18)学習制御部135は、達成予測性能Pを予測性能pi,jに更新する。また、学習制御部135は、達成予測性能Pと対応付けて、その予測性能が得られた機械学習アルゴリズムaiとサンプルサイズkiとを記憶しておく。
(S19)学習制御部135は、管理テーブル122aに記憶されたサンプルサイズkiを、1段階大きなサンプルサイズ(例えば、現在のサンプルサイズの2倍)に増加させる。また、学習制御部135は、合計時間tsumを0に初期化する。
図15は、機械学習の手順例を示すフローチャート(続き)である。
(S20)学習制御部135は、機械学習アルゴリズムaiの更新後のサンプルサイズkiとデータ記憶部121に記憶されたデータ集合Dのデータ量|D|とを比較し、前者が後者より大きいか判断する。サンプルサイズkiがデータ集合Dのデータ量|D|よりも大きい場合はステップS21に処理が進み、それ以外の場合はステップS22に処理が進む。
(S21)学習制御部135は、管理テーブル122aに記憶された改善速度のうち、機械学習アルゴリズムaiに対応する改善速度riを0に更新する。これにより、機械学習アルゴリズムaiは実行されなくなる。そして、前述のステップS12に処理が進む。
(S22)学習制御部135は、時間推定部133に対して機械学習アルゴリズムaiとサンプルサイズkiを指定する。時間推定部133は、機械学習アルゴリズムaiについてサンプルサイズkiに基づく次の学習ステップを実行した場合の実行時間ti,j+1を推定する。時間推定部133の処理の詳細は後述する。
(S23)学習制御部135は、性能改善量推定部134に対して機械学習アルゴリズムaiとサンプルサイズkiを指定する。性能改善量推定部134は、機械学習アルゴリズムaiについてサンプルサイズkiに基づく次の学習ステップを実行した場合の性能改善量gi,j+1を推定する。性能改善量推定部134の処理の詳細は後述する。
(S24)学習制御部135は、時間推定部133から取得した実行時間ti,j+1に基づいて、合計時間tsumをtsum+ti,j+1に更新する。また、学習制御部135は、更新した合計時間tsumと性能改善量推定部134から取得した性能改善量gi,j+1とに基づいて、改善速度ri=gi,j+1/tsumを算出する。学習制御部135は、管理テーブル122aに記憶された改善速度riを上記の値に更新する。
(S25)学習制御部135は、改善速度riが閾値Tr未満であるか判断する。改善速度riが閾値Tr未満の場合はステップS26に処理が進み、改善速度riが閾値Tr以上の場合はステップS27に処理が進む。
(S26)学習制御部135は、サンプルサイズkiを1段階大きなサンプルサイズに増加させる。そして、ステップS20に処理が進む。
(S27)学習制御部135は、機械学習を開始してからの経過時間が、制限時間入力部131から指定された制限時間を超えたか判断する。経過時間が制限時間を超えた場合はステップS28に処理が進み、それ以外の場合はステップS12に処理が進む。
(S28)学習制御部135は、達成予測性能Pとその達成予測性能Pが得られたモデルとを学習結果記憶部123に保存する。また、学習制御部135は、達成予測性能Pに対応付けられた機械学習アルゴリズムのアルゴリズムIDと達成予測性能Pに対応付けられたサンプルサイズとを、学習結果記憶部123に保存する。このとき、当該機械学習アルゴリズムに対して設定されたハイパーパラメータを更に保存してもよい。
図16は、ステップ実行の手順例を示すフローチャートである。
ここでは、バリデーション方法として、データ集合Dのサイズに応じて、ランダムサブサンプリングバリデーションまたはクロスバリデーションを実行する場合を考える。ただし、ステップ実行部132は、他のバリデーション方法を用いてもよい。
(S30)ステップ実行部132は、学習制御部135から指定された機械学習アルゴリズムaiとサンプルサイズki=sj+1とを特定する。また、ステップ実行部132は、データ記憶部121に記憶されているデータ集合Dを特定する。
(S31)ステップ実行部132は、サンプルサイズkiが、データ集合Dのサイズの2/3よりも大きいか判断する。サンプルサイズkiが2/3×|D|よりも大きい場合、ステップ実行部132は、データ量が不足しているためクロスバリデーションを選択する。そして、ステップS38に処理が進む。サンプルサイズkiが2/3×|D|以下である場合、ステップ実行部132は、データ量が十分あるためランダムサブサンプリングバリデーションを選択する。そして、ステップS32に処理が進む。
(S32)ステップ実行部132は、データ集合Dからサンプルサイズkiの訓練データDtをランダムに抽出する。訓練データの抽出は、非復元抽出サンプリングとして行う。よって、訓練データには互いに異なるki個の単位データが含まれる。
(S33)ステップ実行部132は、データ集合Dのうち訓練データDtを除いた部分から、サイズki/2のテストデータDsをランダムに抽出する。テストデータの抽出は、非復元抽出サンプリングとして行う。よって、テストデータには、訓練データDtと異なりかつ互いに異なるki/2個の単位データが含まれる。なお、ここでは訓練データDtのサイズとテストデータDsのサイズの比を2:1としたが、比を変更してもよい。
(S34)ステップ実行部132は、機械学習アルゴリズムaiとデータ集合Dから抽出した訓練データDtとを用いてモデルmを学習する。
(S35)ステップ実行部132は、学習したモデルmとデータ集合Dから抽出したテストデータDsとを用いて、モデルmの予測性能pを算出する。予測性能pを表す指標として、正答率、適合率、MSE、RMSEなど任意の指標を用いることができる。予測性能pを表す指標が、予めステップ実行部132に設定されてもよい。
(S36)ステップ実行部132は、上記ステップS32〜S35の繰り返し回数と閾値Kとを比較し、前者が後者未満であるか判断する。閾値Kは、予めステップ実行部132に設定されていてもよい。例えば、閾値K=10とする。繰り返し回数が閾値K未満の場合はステップS32に処理が進み、それ以外の場合はステップS37に処理が進む。
(S37)ステップ実行部132は、ステップS35で算出されたK個の予測性能pの平均値を算出し、予測性能pi,jとして出力する。また、ステップ実行部132は、ステップS30が開始されてからステップS32〜S36の繰り返しが終了するまでの実行時間Ti,jを算出して出力する。また、ステップ実行部132は、ステップS34で学習されたK個のモデルのうち予測性能pが最大のモデルを出力する。そして、ランダムサブサンプリングバリデーションによる1つの学習ステップが終了する。
(S38)ステップ実行部132は、上記のランダムサブサンプリングバリデーションに代えて、前述のクロスバリデーションを実行する。例えば、ステップ実行部132は、データ集合Dからサンプルサイズkiのサンプルデータをランダムに抽出し、抽出したサンプルデータをK個のブロックに均等に分割する。ステップ実行部132は、K−1個のブロックを訓練データとして使用し1個のブロックをテストデータとして使用することを、テストデータのブロックを変えながらK回繰り返す。ステップ実行部132は、K個の予測性能の平均値と、実行時間と、予測性能が最大のモデルとを出力する。
図17は、時間推定の手順例を示すフローチャートである。
(S40)時間推定部133は、学習制御部135から指定された機械学習アルゴリズムaiとサンプルサイズki=sj+1とを特定する。
(S41)時間推定部133は、機械学習アルゴリズムaiについてサンプルサイズが異なる2以上の学習ステップを実行済みか判断する。2以上の学習ステップを実行済みである場合はステップS42に処理が進み、実行済みの学習ステップが1つのみである場合はステップS45に処理が進む。
(S42)時間推定部133は、管理テーブル122aから機械学習アルゴリズムaiに対応する実行時間Ti,1,Ti,2を検索する。
(S43)時間推定部133は、サンプルサイズs1,s2と実行時間Ti,1,Ti,2を用いて、サンプルサイズsから実行時間tを推定する推定式t=α×s+βの係数α,βを決定する。係数α,βは、Ti,1をtに代入しs1をsに代入した式と、Ti,2をtに代入しs2をsに代入した式とを含む連立方程式を解くことで決定できる。ただし、機械学習アルゴリズムaiについて3以上の学習ステップを実行済みである場合、時間推定部133は、それら学習ステップの実行時間から回帰分析によって係数α,βを決定してもよい。ここでは、サンプルサイズと実行時間とが一次式で説明できると仮定している。
(S44)時間推定部133は、上記の実行時間の推定式とサンプルサイズkiを用いて(kiを推定式のsに代入して)、次の学習ステップの実行時間ti,j+1を推定する。時間推定部133は、推定した実行時間ti,j+1を出力する。
(S45)時間推定部133は、管理テーブル122aから機械学習アルゴリズムaiに対応する実行時間Ti,1を検索する。
(S46)時間推定部133は、サンプルサイズs1,s2と実行時間Ti,1を用いて、2番目の学習ステップの実行時間ti,2をs2/s1×Ti,1と推定する。時間推定部133は、推定した実行時間ti,2を出力する。
図18は、性能改善量推定の手順例を示すフローチャートである。
(S50)推定式生成部141は、学習制御部135から指定された機械学習アルゴリズムaiとサンプルサイズx0=kiとを特定する。
(S51)推定式生成部141は、予測性能の実測データであるデータXとして、サンプルサイズxと予測性能yの組である<x,y>の集合を取得する。データXは、予測性能曲線を学習するための訓練データとしての意味をもつ。
(S52)重み設定部142は、各xjに対する重みwjをwj=1に初期化する。
(S53)非線形回帰部143は、ステップS51で取得されたデータXを用いて、非線形回帰分析により非線形式y=c−a・x−dのパラメータベクタ<a,c,d>を算出する。サンプルサイズxが説明変数であり、予測性能yが目的変数である。この非線形回帰分析は、残差の評価に当たって各xjに対する重みwjを考慮する重み付き回帰分析である。重みが小さいサンプルサイズについては相対的に大きな残差が許容され、重みが大きいサンプルサイズについては相対的に残差の制限が強くなる。複数のサンプルサイズの間で異なる重みを設定できる。これにより、予測性能の等分散性が成立しない(異分散性が成立する)ことによる回帰分析の精度低下をカバーすることができる。なお、上記の非線形式は推定式の一例であり、xが増加したときにyが一定の限界値に漸近する曲線を示すような他の非線形式を用いてもよい。このような非線形回帰分析は、例えば、統計パッケージソフトウェアを用いて実行できる。
(S54)重み設定部142は、ステップS53で算出された今回のパラメータベクタと前回のパラメータベクタとを比較し、パラメータベクタが所定の収束条件を満たすか判断する。例えば、重み設定部142は、今回のパラメータベクタと前回のパラメータベクタとが一致したとき、または、両者の差が閾値未満であるとき、収束条件を満たすと判断する。1回目に算出されたパラメータベクタは、まだ収束条件を満たしていないと判断される。収束条件を満たさない場合、ステップS55に処理が進む。収束条件を満たす場合、今回のパラメータベクタをθ0として確定してステップS59に処理が進む。
(S55)分散推定部144は、ステップS53で算出されたパラメータcを期待バイアスEB2に変換する。パラメータcは機械学習アルゴリズムaiを用いた場合の予測性能上昇の限界を表しており、期待バイアスEB2と対応している。パラメータcと期待バイアスEB2との間の関係は、予測性能yの指標に依存する。予測性能yが正答率である場合、EB2=1−cである。予測性能yがMSEである場合、EB2=cである。予測性能yがRMSEである場合、EB2=c2である。
(S56)分散推定部144は、各サンプルサイズxjに対する予測性能yjを期待ロスELjに変換する。測定された予測性能yjと期待ロスELjとの間の関係は、予測性能yの指標に依存する。予測性能yが正答率である場合、ELj=1−yjである。予測性能yがMSEである場合、ELj=yjである。予測性能yがRMSEである場合、ELj=yj 2である。
(S57)分散推定部144は、ステップS55の期待バイアスEB2とステップS56の期待ロスELjとを用いて、各サンプルサイズxjに対する予測性能の分散VLjを算出する。VLj=(ELj+EB2)×(ELj−EB2)である。
(S58)重み設定部142は、各xjに対する重みwjをwj=1/VLjに更新する。そして、処理がステップS53に戻り、再び非線形回帰分析が行われる。
図19は、性能改善量推定の手順例を示すフローチャート(続き)である。
(S59)サンプリング部145は、データXに含まれるサンプルサイズの中から、パラメータベクタの次元数に相当するM個のサンプルサイズxiを選択する。例えば、M=3である場合、サンプリング部145は、データXに含まれるサンプルサイズのうちの25%分位点をx1、75%分位点をx3、x1とx3の相乗平均をx2とする。
(S60)サンプリング部145は、選択したサンプルサイズxiそれぞれについて、パラメータベクタθ0が示す予測性能曲線上の点を中心にして、確率が閾値(例えば、10−6)以上である予測性能の範囲[ai,bi]を算出する。この範囲の算出には、誤差確率密度関数ferr(ε;xi,θ0)を使用する。
(S61)サンプリング部145は、サンプル数Nを決定する。例えば、サンプリング部145は、次元数Mを用いてN=9Mと決定する。
(S62)サンプリング部145は、ステップS60で算出したM個の範囲から1つずつ点をサンプリングしてサンプル点列を生成する。サンプリング部145は、このサンプリングをN回繰り返すことでN個のサンプル点列Yjを生成する。N個のサンプル点列Yjの生成は、一様サンプリングとして行う。
(S63)サンプリング部145は、ステップS62で生成したN個のサンプル点列YjをN個のパラメータベクタθjに変換する。各サンプル点列Yjに含まれる点の数がパラメータベクタの次元数に等しい場合、各サンプル点列Yjからは原則として全ての点を通る1つの予測性能曲線を確定することができる。サンプリング部145は、y=c−a・x−dなどの数式を用いて解析的にパラメータベクタθjを解いてもよい。また、サンプリング部145は、回帰分析によってパラメータベクタθjを決定してもよい。なお、サンプル点列によっては、パラメータベクタの解が得られないこともある。
(S64)サンプリング部145は、ステップS63で変換された各パラメータベクタθjに対して、データXのもとでの生起確率qjを算出する。尤度関数を用いてqj=L(θj;X)とする。または、事後確率を用いてqj=Pposterior(θj|X)とする。なお、パラメータベクタθjの解が得られなかった場合はqj=0とする。
(S65)サンプリング部145は、ステップS64で算出したN個のパラメータベクタθjの生起確率qjを、N個のサンプル点列Yjの生起確率pjに変換する。生起確率pjは、ヤコビ行列を用いて前述の数式(1)のように算出される。サンプリング部145は、生起確率pjをパラメータベクタθjに対応する重みとみなす。サンプリング部145は、ステップS54で決定されたパラメータベクタθ0を保存する。また、サンプリング部145は、N個のパラメータベクタθjとそれに対応するN個の重みpjを保存する。
(S66)予測性能推定部147は、N個のパラメータベクタθjと予測性能曲線の関数f(x;θ)からN個の予測性能曲線を形成し、学習制御部135から指定されたサンプルサイズx0におけるN個の予測性能yj=f(x0;θj)を算出する。
(S67)予測性能推定部147は、ステップS66で算出したN個の予測性能yjとそれに対応するN個の重みpjによって、サンプルサイズx0における推定値の確率分布を形成する。予測性能推定部147は、予測性能yjの小さい方から重みpjを累積した累積重みが2.5%になる重み付き2.5%分位点aと、累積重みが97.5%になる重み付き97.5%分位点bとを算出し、(a,b)を95%信頼区間とする。
(S68)性能改善量出力部148は、ステップS67で算出された95%信頼区間の上限(UCB)を、サンプルサイズx0における予測性能の推定値Upとして特定する。性能改善量出力部148は、現在の達成予測性能Pを取得し、Up−Pを性能改善量として出力する。ただし、Up−P<0である場合は0を性能改善量として出力する。
第2の実施の形態の機械学習装置100によれば、複数の機械学習アルゴリズムそれぞれについて、1段階大きなサンプルサイズを用いた次の学習ステップを実行した場合の単位時間当たりの予測性能の改善量(改善速度)が推定される。そして、改善速度が最大の機械学習アルゴリズムが選択され、選択された機械学習アルゴリズムの次の学習ステップが実行される。改善速度の推定と機械学習アルゴリズムの選択とが繰り返され、予測性能が最も高くなったモデルが最終的に出力される。
これにより、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、改善速度の推定値が最大の機械学習アルゴリズムが選択されるため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムをサンプルサイズが小さいうちに切り捨ててしまうリスクを低減できる。このように、複数の機械学習アルゴリズムを利用してモデルの予測性能を効率的に向上させることができる。
また、改善速度の推定にあたっては、最も確率が高い予測性能曲線上の期待値ではなく、誤差を考慮して期待値よりも大きい値(95%信頼区間の上限など)が使用される。これにより、予測性能が期待値より上振れする可能性を考慮でき、予測性能の高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
また、所望のサンプルサイズにおける信頼区間の推定では、データ空間において当初の予測性能曲線の周辺でサンプル点列がサンプリングされ、サンプル点列がパラメータ空間のパラメータベクタに変換されると共にその重みが算出される。そして、データ空間に戻って、所望のサンプルサイズにおける推定値の確率分布が推定される。これにより、異分散性をもつ予測性能曲線に対して、信頼区間の推定精度を向上させることができる。また、最初からパラメータ空間でパラメータベクタをサンプリングする場合と比べて、適切なパラメータベクタをサンプリングすることが容易となる。よって、適切な推定精度のもとでサンプル数を減らすことが可能となり、計算負荷が低減し計算時間を短縮できる。