以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の予測性能曲線推定装置の例を示す図である。
第1の実施の形態の予測性能曲線推定装置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でもよい)に記憶されたプログラムを実行する。プログラムには、予測性能曲線推定プログラムが含まれる。複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼ぶこともある。
生成部12は、あるデータ集合から訓練データを抽出し、抽出した訓練データを用いてモデルを学習する。生成部12は、テストデータを用いて、学習したモデルの予測性能値を算出する。予測性能の指標として、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(RMSE)など任意の指標を用いることができる。生成部12は、複数の訓練データのサイズに対して複数の予測性能値を算出する。一例として、サイズ13aに対して予測性能値14aが算出され、サイズ13bに対して予測性能値14bが算出され、サイズ13cに対して予測性能値14cが算出される。記憶部11は、サイズ13a,13b,13cと予測性能値14a,14b,14cとを対応付けた実測データを記憶する。
生成部12は、予測性能値14a,14b,14cを用いて予測性能曲線15を生成する。予測性能曲線15は、訓練データのサイズに対する予測性能の推定を示す曲線である。予測性能曲線15は、訓練データのサイズの増加に応じて予測性能が上限値16に漸近する曲線である。ここで、生成部12は、算出された予測性能値に含まれ得る誤差と、予測性能曲線15上の推定値と上限値16との差との間に成立する関係を使用する。
この関係は、例えば、予測性能値に含まれ得る誤差が、予測性能曲線15上の推定値と上限値16との差に比例するという比例関係である。予測性能曲線15上の推定値と上限値16との差は、訓練データのサイズが大きいほど小さくなる。よって、比例関係は、訓練データのサイズが大きいほど誤差が小さくなることを意味する。
例えば、サイズ13a,13b,13cに対応する予測性能曲線15上の推定値を推定値15a,15b,15cとする。予測性能値14aに含まれ得る誤差は、推定値15aと上限値16の差に依存する。予測性能値14bに含まれ得る誤差は、推定値15bと上限値16の差に依存する。予測性能値14cに含まれ得る誤差は、推定値15cと上限値16の差に依存する。なお、予測性能曲線15を推定する際には、予測性能値14a,14b,14cの期待値からの乖離度は未知である。
上記関係の利用方法として、例えば、生成部12は、予測性能値14a,14b,14cを目的変数の値として使用する代わりに、上記関係に基づいて予測性能値14a,14b,14cから変換された変数値を目的変数の値として使用して回帰分析を行う。目的変数の変換は、好ましくは、サイズ13a,13b,13cの間で目的変数の値に含まれ得る誤差が同じ大きさに近づくように行われる。すなわち、回帰分析にあたり、目的変数について等分散性が成立することが好ましい。等分散性を成立させるため、例えば、生成部12は、上限値16と予測性能値14a,14b,14cの差または当該差に応じた値(例えば、当該差の対数)を、回帰分析の目的変数の値として使用する。その場合、生成部12は、変換後の推定式に対する回帰分析によって係数の値を決定し、決定した係数の値を変換前の推定式に戻すことで予測性能曲線15を生成できる。
ただし、目的変数の変換に使用する上限値16は、予測性能曲線15を生成する前には未知である。そこで、例えば、生成部12は、複数の上限値の候補それぞれに対して、目的変数の変換を行い回帰分析を行って予測性能曲線の候補を生成する。生成部12は、複数の予測性能曲線の候補それぞれの評価値を算出し、評価値に基づいて上限値16を推定する。すなわち、生成部12は、上限値の仮設定と仮設定した上限値に基づく目的変数の変換とを繰り返して、試行錯誤的に上限値16を探索することが考えられる。
予測性能曲線15が生成されると、生成部12は、予測性能曲線15と予測性能値14a,14b,14cを用いて、予測性能曲線15に対する推定誤差を含む予測性能曲線17,18を生成する。予測性能曲線17はいわゆる予測区間の上限を示す曲線でもよく、予測性能曲線18はいわゆる予測区間の下限を示す曲線でもよい。予測性能曲線17,18は、例えば、同じ条件のもとで予測性能値の測定を繰り返した場合に、95%の測定値が収まると予想される範囲である。予測性能曲線17,18は、回帰分析によって決定される係数の値の分散など回帰分析に伴って得られる統計情報を用いて生成できる。分散などの統計情報は、例えば、目的変数を変換した後の空間上のものを使用する。
第1の実施の形態の予測性能曲線推定装置10によれば、予測性能値14a,14b,14cに含まれ得る誤差と、予測性能曲線15上の推定値15a,15b,15cと上限値16との差の間に成立する関係に基づいて、予測性能曲線15が推定される。そして、予測性能曲線15に対する推定誤差を含む予測性能曲線17,18が生成される。
予測性能値14a,14b,14cに含まれ得る測定上の誤差は、訓練データやテストデータの選択の偶然性などの影響が異なるため、サイズ13a,13b,13cに応じて異なる。等分散性が成立しないため、予測性能値14a,14b,14cをそのまま用いて回帰分析を行うと、予測性能曲線の推定精度が低くなるおそれがある。また、回帰分析の精度が低くなるため、推定誤差を考慮した予測性能曲線の変動範囲を算出してもその信頼性が低くなり、算出される変動範囲が過度に広くなってしまうおそれがある。
これに対し、予測性能曲線推定装置10によれば、上記関係を利用して予測性能曲線15の推定精度を向上させることができる。例えば、等分散性が成立するように目的変数を変換することができ、回帰分析の精度を向上させることができる。また、推定誤差を考慮した予測性能曲線15の変動範囲を示す予測性能曲線17,18の信頼性が高くなり、算出される変動範囲が十分に絞り込まれる。その結果、機械学習によって得られるモデルの予測性能の推定について、信頼性の高い情報を提供することが可能となる。
[第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)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機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は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、機械学習装置100は、クライアントコンピュータなどのクライアント装置でもよいし、サーバコンピュータなどのサーバ装置でもよい。機械学習装置100は、媒体リーダ106を備えていなくてもよく、サーバ装置である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、機械学習装置100の筐体と一体に形成されていてもよい。
次に、機械学習におけるサンプリングサイズと予測性能と学習時間の間の関係、および、プログレッシブサンプリング法について説明する。
第2の実施の形態の機械学習では、既知の事例を示す複数の単位データを含むデータを予め収集しておく。機械学習装置100または他の情報処理装置が、センサデバイスなどの各種デバイスからネットワーク114経由でデータを収集してもよい。収集されるデータは、「ビッグデータ」と呼ばれるサイズの大きなデータであってもよい。各単位データは、通常は、2以上の説明変数の値と1つの目的変数の値とを含む。例えば、商品の需要予測を行う機械学習では、気温や湿度など商品需要に影響を与える要因を説明変数とし、商品需要量を目的変数とした実績データを収集する。
機械学習装置100は、収集されたデータの中から一部の単位データを訓練データとしてサンプリングし、訓練データを用いてモデルを学習する。モデルは、説明変数と目的変数との間の関係を示し、通常は、2以上の説明変数と2以上の係数と1つの目的変数とを含む。モデルは、例えば、線形式、二次以上の多項式、指数関数、対数関数などの各種数式によって表されてもよい。数式の形は、機械学習の前にユーザによって指定されてもよい。係数は、機械学習によって訓練データに基づいて決定される。
学習されたモデルを用いることで、未知の事例の説明変数の値(要因)から、未知の事例の目的変数の値(結果)を予測することができる。例えば、来期の気象予報から来期の商品需要量を予測できる。モデルによって予測される結果は、0以上1以下の確率値などの連続値であってもよいし、YES/NOの2値などの離散値であってもよい。
学習されたモデルに対しては「予測性能」を算出することができる。予測性能は、未知の事例の結果を正確に予測する能力であり、「精度」と言うこともできる。機械学習装置100は、収集されたデータの中から訓練データ以外の単位データをテストデータとしてサンプリングし、テストデータを用いて予測性能を算出する。テストデータのサイズは、例えば、訓練データのサイズの1/2程度とする。機械学習装置100は、テストデータに含まれる説明変数の値をモデルに入力し、モデルが出力する目的変数の値(予測値)とテストデータに含まれる目的変数の値(実績値)とを比較する。なお、学習したモデルの予測性能を検証することを「バリデーション」と言うことがある。
予測性能の指標としては、正答率(Accuracy)、適合率(Precision)、平均二乗誤差(RMSE)などが挙げられる。例えば、結果がYES/NOの2値で表されるとする。また、N1件のテストデータの事例のうち、予測値=YES・実績値=YESの件数をTp、予測値=YES・実績値=NOの件数をFp、予測値=NO・実績値=YESの件数をFn、予測値=NO・実績値=NOの件数をTnとする。正答率は予測が当たった割合であり、(Tp+Tn)/N1と算出される。適合率は「YES」の予測を間違えない確率であり、Tp/(Tp+Fp)と算出される。平均二乗誤差は、各事例の実績値をyと表し予測値をy^と表すと、(sum(y−y^)2/N1)1/2と算出される。
ここで、ある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つのクラスに最も明確に分割するような境界面を算出する機械学習アルゴリズムである。境界面は、各クラスとの距離(マージン)が最大になるように算出される。
ランダムフォレストは、複数の単位データを適切に分類するためのモデルを生成する機械学習アルゴリズムである。ランダムフォレストでは、母集合から単位データをランダムにサンプリングする。説明変数の一部をランダムに選択し、選択した説明変数の値に応じてサンプリングした単位データを分類する。説明変数の選択と単位データの分類を繰り返すことで、複数の説明変数の値に基づく階層的な決定木を生成する。単位データのサンプリングと決定木の生成を繰り返すことで複数の決定木を取得し、それら複数の決定木を合成することで、単位データを分類するための最終的なモデルを生成する。
図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は実行されない。
なお、次の学習ステップの予測性能を推定するにあたっては、統計誤差を考慮し、予測性能が今後上昇する可能性のある機械学習アルゴリズムを早期に切り捨ててしまうリスクを低減することが好ましい。例えば、機械学習装置100は、回帰分析によって予測性能の期待値とその95%予測区間を算出し、95%予測区間の上限値(UCB:Upper Confidence Bound)を、改善速度を算出する際の予測性能を推定値として使用することが考えられる。95%予測区間は、測定される予測性能(測定値)のばらつきを示すものであり、新たな予測性能が95%の確率でこの区間に収まると予想されることを示す。すなわち、統計上の期待値よりも統計誤差に応じた幅だけ大きい値を使用する。
このように、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、単位時間当たりの性能改善量が最大である機械学習アルゴリズムの学習ステップが優先的に実行される。このため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムを切り捨ててしまうリスクを低減できる。
次に、予測性能の推定について説明する。
図6は、予測性能の分布例を示すグラフである。
あるサンプリングサイズについて算出された予測性能の実測値は、機械学習アルゴリズムとデータの母集合の性質とから決まる期待値から乖離するリスクがある。すなわち、同じデータの母集合を使用しても、訓練データおよびテストデータの選択の偶然性によって、予測性能の実測値にばらつきが生じる。予測性能のばらつき(分散)は、サンプリングサイズが小さいほど大きく、サンプリングサイズが大きいほど小さくなる傾向にある。
グラフ41は、サンプリングサイズと予測性能との間の関係を示す。ここでは、同じ機械学習アルゴリズムおよび同じデータの母集合を用いて、サンプリングサイズ1つ当たり50回ずつ学習ステップを実行している。グラフ41は、1つのサンプリングサイズにつき50個の予測性能の実測値をプロットしたものである。なお、グラフ41では、予測性能を示す指標として正答率を用いている。
この例では、グラフ41に示すように、サンプリングサイズが「100」の場合の予測性能の実測値は、約0.58〜0.68であり広範囲に広がっている。サンプリングサイズが「500」の場合の予測性能の実測値は、約0.69〜0.75であり、サンプリングサイズが「100」の場合よりもその範囲が狭くなっている。以降、サンプリングサイズが大きくなるに従い、予測性能の実測値の範囲は狭くなる。サンプリングサイズが十分に大きくなると、予測性能の実測値は約0.76に収束している。
上記のように、機械学習装置100は、機械学習アルゴリズム毎に、次の学習ステップを実行した場合に達成される予測性能を推定する。予測性能の推定のため、機械学習装置100は、それまでに取得した予測性能の実測値に基づいて予測性能曲線を推定する。しかし、予測性能の実測値(特に、小さなサンプリングサイズに対応する予測性能の実測値)は、期待値から乖離することがある。また、グラフ41ではサンプリングサイズ1つ当たり50回ずつ学習ステップを実行しているが、時間的制約から、サンプリングサイズ1つ当たりの学習ステップの実行回数は実際には1回または少数回になることが好ましい。よって、推定される予測性能曲線の精度が問題となる。
図7は、予測性能曲線の第1の推定例を示すグラフである。
ここでは、複数のサンプリングサイズのうち小さい方から6つについて学習ステップを実行して予測性能の実測値を取得し、その6つの予測性能の実測値を用いて予測性能曲線を推定している。そして、それ以降のサンプリングサイズについて学習ステップを進め、取得された予測性能の実測値と推定した予測性能曲線とを対比している。
(A)曲線42は、前述の非特許文献3("Prediction of Learning Curves in Machine Translation")の方法によって推定された予測性能曲線である。非特許文献3の方法は、予測性能の実測値を非線形関数に直接フィッティングして、非線形回帰分析によって予測性能曲線を算出するものである。この例では、4番目と5番目の実測値が期待値よりも小さくなっている。このため、曲線42は、4番目と5番目の実測値の影響を受けて、予測性能の上限を小さく見積もったものとなっている。その結果、7番目以降のサンプリングサイズについて、曲線42が示す予測性能の推定値は実測値を大きく下回っている。
曲線42aは、曲線42に対する予測区間の上限を示す。曲線42bは、曲線42に対する予測区間の下限を示す。予測区間は、同じ条件で実測値を繰り返し取得した場合に、取得した実測値の95%が収まると予想される範囲である。予測区間は、回帰分析の過程で、曲線42と併せて算出することができる。曲線42a,42bが示すように、予測性能の実測値を非線形関数に直接フィッティングすると、予測区間が広くなっている。そのため、予測性能が推定値から乖離するリスクを適切に評価することが難しい。
(B)曲線43は、前述の非特許文献4("Predicting sample size required for classification performance")の方法によって推定された予測性能曲線である。非特許文献4の方法は、予測性能の実測値を重み付けして非線形関数にフィッティングし、非線形回帰分析によって予測性能曲線を算出するものである。使用する予測性能の実測値は、曲線42の算出に用いたものと同じである。ただし、6番目の実測値に対して大きな重みが付与され、1番目の実測値に対しては小さな重みが付与される。このため、曲線43は、曲線42と比べて予測性能の上限を大きく見積もったものとなっている。その結果、8番目のサンプリングサイズについて、曲線43が示す予測性能の推定値は実測値に近い。
曲線43aは、曲線43に対する予測区間の上限を示す。曲線43bは、曲線43に対する予測区間の下限を示す。曲線43a,43bが示すように、曲線43に対する予測区間は曲線42に対する予測区間よりも広くなっている。特に、サンプリングサイズが、最も大きな重みを付与した6番目のサンプリングサイズから離れるほど、予測区間が広くなっている。これは、サンプリングサイズが小さいほど曲線43と実測値との間の残差を大きく許容した結果として、回帰分析技術上生じたものである。そのため、予測性能が推定値から乖離するリスクを適切に評価することが難しい。
このように、単純な非線形回帰分析では、算出される予測性能曲線の推定精度が高くならないおそれがある。これは、サンプリングサイズによって予測性能のばらつきが異なる、すなわち、等分散性が成立しないことが一因である。等分散性は、推定式に含まれる説明変数の何れの値に対しても、目的変数の実測値と推定値の差(残差)の分散が等しくなるという統計上の性質である。通常、回帰分析では等分散性が成立していることを仮定する。これに対し、グラフ41に示したように、サンプリングサイズと予測性能には等分散性が成立しない。そのため、サンプリングサイズを説明変数とし予測性能を目的変数とすると、回帰分析によって予測性能曲線を高精度に推定することは容易でない。
そこで、機械学習装置100は、以下のようにして予測性能曲線を推定する。
図8は、予測性能の上限値と推定値と標準誤差の関係例を示すグラフである。
曲線44は、機械学習アルゴリズムとデータの母集合の性質とから決まる予測性能の期待値を示す曲線、すなわち、理想的な予測性能曲線である。曲線44が示す予測性能の上限を上限値44aとする。また、あるサンプリングサイズに対応する曲線44上の予測性能の値を推定値44bとする。この場合に、当該サンプリングサイズにおける予測性能の実測値の標準誤差は、多くの場合、上限値44aと推定値44bの差に比例するという性質をもつ。実測値の標準誤差は、推定値44bと実測値の差(残差)の標準偏差である。この性質は、任意のサンプリングサイズに対して成立する。
すなわち、サンプリングサイズが小さい場合、予測性能の実測値の標準誤差は大きい。また、サンプリングサイズが小さい場合、予測性能の推定値(期待値)と上限値44aとの差も大きい。一方、サンプリングサイズが大きい場合、予測性能の実測値の標準誤差は小さい。また、サンプリングサイズが大きい場合、予測性能の推定値と上限値44aとの差も小さい。多くの場合、全てのサンプリングサイズに対して、予測性能の実測値の標準誤差と、予測性能の推定値と上限値44aとの差が、比例するという関係をもつ。
機械学習装置100は、この性質を利用して予測性能の実測値から曲線44を推定する。第2の実施の形態では、機械学習装置100は、予測性能曲線を示す推定式として次の推定式を使用する:y=c−exp(a×f(x)+b)。xは当初の説明変数でありサンプリングサイズを表す。yは当初の目的変数であり予測性能を表す。a,b,cは未知の係数であり、回帰分析を通じてその値が決定される。係数cは、予測性能の上限値を表す。f(x)は、サンプリングサイズを示す説明変数xを引数として含み未知の係数を含まない関数である。以下では一例として、f(x)=log(x)であると仮定する。
上記の推定式は、次のように変形することができる:log(c−y)=a×log(x)+b。ここで、機械学習装置100は、回帰分析に用いる説明変数および目的変数を次のように変換する:x*=log(x),y*=log(c−y)。これにより、上記の推定式は次のように表現される:y*=a×x*+b。機械学習装置100は、(x,y)について回帰分析を行う代わりに、(x*,y*)について線形回帰分析を行う。
(x,y)に対する回帰分析は非線形回帰分析である一方、(x*,y*)に対する回帰分析は線形回帰分析である。また、前述のように予測性能の標準誤差が上限値と推定値の差に比例するため、任意のx*=log(x)に対してy*=log(c−y)の標準誤差が概ね一定になり、x*,y*について等分散性が成立する。このように、線形性および等分散性が成立するため、変数変換後の回帰分析によれば変数変換前の回帰分析よりも適切な予測性能曲線が得られる可能性が高くなる。
ただし、変換後の目的変数y*=log(c−y)は、回帰分析によって値が決定されるべき未知の係数cを含んでいる。そこで、機械学習装置100は、試行錯誤により適切な係数cの値を探索する。すなわち、機械学習装置100は、最初に係数cの値を仮定して線形回帰分析を行い、係数a,bの値を算出する。機械学習装置100は、この係数a,b,cの値によって特定される予測性能曲線を評価し、係数cの値を変更して再び線形回帰分析を行う。機械学習装置100は、評価値が十分に良好な予測性能曲線が得られるまで、係数cの値の変更と係数a,bの値の算出とを繰り返す。
図9は、説明変数と目的変数の変換例を示すグラフである。
(A)グラフ45は、前述のグラフ41から変換されたデータを表す。グラフ45の横軸は、x*=log(x)でありグラフ41と同じである。グラフ45の縦軸は、y*=log(1−y)である。すなわち、グラフ45は、係数cの値(予測性能の上限値)を1と仮定して予測性能の実測値を変換したものである。グラフ45に示すように、c=1とした場合、x*,y*に線形性も等分散性も成立していない。これは、係数cの値が不適切である(予測性能の上限値が間違っている)ためである。
(B)グラフ46の横軸は、グラフ45と同じである。グラフ46の縦軸は、y*=log(0.8−y)である。すなわち、グラフ46は、係数cの値(予測性能の上限値)を0.8と仮定して予測性能の実測値を変換したものである。グラフ46に示すように、c=0.8とした場合、線形性や等分散性がまだ不十分である。
(C)グラフ47の横軸は、グラフ45,46と同じである。グラフ47の縦軸は、y*=log(0.762−y)である。すなわち、グラフ47は、係数cの値(予測性能の上限値)を0.762と仮定して予測性能の実測値を変換したものである。グラフ47に示すように、c=0.762とした場合、概ね線形性および等分散性が成立している。このように、予測性能の上限値を適切に判定することで、線形性および等分散性が成立するように変数変換を行うことができ、線形回帰分析が可能となる。
図10は、予測性能曲線の第2の推定例を示すグラフである。
曲線48は、図7と同じ予測性能の実績値を用いて機械学習装置100が推定した予測性能曲線である。曲線48が示す推定値は、前述の曲線42,43と比べて、サンプリングサイズが大きくなっても実測値との乖離が小さく推定精度が高いと言える。曲線48aは、曲線48に対する予測区間の上限を示す。曲線48bは、曲線48に対する予測区間の下限を示す。曲線48a,48bが示すように、サンプリングサイズが大きくなっても予測区間は十分に狭い。そのため、予測区間の情報を、予測性能が推定値から乖離するリスクを考慮する上で有用な情報として活用できる。
次に、機械学習装置100が行う処理について説明する。
図11は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、データ記憶部121、管理テーブル記憶部122、学習結果記憶部123、制限時間入力部131、ステップ実行部132、時間推定部133、性能改善量推定部134および学習制御部135を有する。データ記憶部121、管理テーブル記憶部122および学習結果記憶部123は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実現できる。制限時間入力部131、ステップ実行部132、時間推定部133、性能改善量推定部134および学習制御部135は、例えば、CPU101が実行するプログラムモジュールを用いて実現できる。
データ記憶部121は、機械学習に使用できるデータの集合を記憶する。データの集合は、それぞれが目的変数の値(結果)と1または2以上の説明変数の値(要因)とを含む単位データの集合である。データ記憶部121に記憶されたデータは、機械学習装置100または他の情報処理装置が各種デバイスから収集したものでもよいし、機械学習装置100または他の情報処理装置に対してユーザが入力したものでもよい。
管理テーブル記憶部122は、機械学習の進行を管理する管理テーブルを記憶する。管理テーブルは、学習制御部135によって更新される。管理テーブルの詳細は後述する。
学習結果記憶部123は、機械学習の結果を記憶する。機械学習の結果には、目的変数と1または2以上の説明変数との間の関係を示すモデルが含まれる。例えば、各説明変数の重みを示す係数が、機械学習によって決定される。また、機械学習の結果には、学習されたモデルの予測性能が含まれる。また、機械学習の結果には、モデルの学習に用いた機械学習アルゴリズムとサンプリングサイズの情報が含まれる。
制限時間入力部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は、推定した実行時間を学習制御部135に出力する。
性能改善量推定部134は、ある機械学習アルゴリズムの次の学習ステップの性能改善量を推定する。性能改善量推定部134は、学習制御部135から、機械学習アルゴリズムとステップ番号の指定を受け付ける。すると、性能改善量推定部134は、指定された機械学習アルゴリズムに属する実行済みの学習ステップの予測性能から、予測性能の推定式を生成する。性能改善量推定部134は、指定されたステップ番号に対応するサンプリングサイズと生成した推定式とから、指定されたステップ番号の学習ステップの予測性能を推定する。このとき、性能改善量推定部134は、統計誤差を考慮して、UCBなど予測性能の期待値よりも大きい値を用いる。性能改善量推定部134は、現在の達成予測性能からの改善量を算出し、学習制御部135に出力する。
学習制御部135は、複数の機械学習アルゴリズムを用いた機械学習を制御する。学習制御部135は、複数の機械学習アルゴリズムそれぞれの最初の学習ステップをステップ実行部132に実行させる。学習制御部135は、1つの学習ステップが実行される毎に、同じ機械学習アルゴリズムの次の学習ステップの実行時間を時間推定部133に推定させ、次の学習ステップの性能改善量を性能改善量推定部134に推定させる。学習制御部135は、性能改善量を実行時間で割った改善速度を算出する。
そして、学習制御部135は、複数の機械学習アルゴリズムの中から改善速度が最大のものを選択し、選択した機械学習アルゴリズムの次の学習ステップをステップ実行部132に実行させる。学習制御部135は、改善速度の更新と機械学習アルゴリズムの選択とを、予測性能が所定の停止条件を満たすか、学習時間が制限時間を超えるまで繰り返す。学習制御部135は、機械学習の停止までに得られたモデルのうち予測性能が最大のモデルを学習結果記憶部123に保存する。また、学習制御部135は、予測性能と機械学習アルゴリズムの情報とサンプリングサイズの情報を学習結果記憶部123に保存する。
図12は、管理テーブルの例を示す図である。
管理テーブル122aは、学習制御部135によって生成されて管理テーブル記憶部122に記憶される。管理テーブル122aは、アルゴリズムID、ステップ番号、改善速度、予測性能および実行時間の項目を含む。
アルゴリズムIDは、機械学習アルゴリズムを識別する識別情報である。以下の説明では、i番目(i=1,2,3,…)の機械学習アルゴリズムのアルゴリズムIDをaiと表記することがある。ステップ番号は、プログレッシブサンプリング法の学習ステップを示す番号である。管理テーブル122aには、機械学習アルゴリズム毎に、次に実行される学習ステップのステップ番号が登録される。以下の説明では、i番目の機械学習アルゴリズムに対応するステップ番号をkiと表記することがある。
また、ステップ番号からはサンプリングサイズを一意に特定することができる。以下の説明では、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は、第2の実施の形態の性能改善量推定部の機能例を示すブロック図である。
性能改善量推定部134は、推定式生成部141、上限値推定部142、変数変換部143、線形回帰部144、予測性能推定部145および予測区間算出部146を有する。
推定式生成部141は、予測性能曲線を示す推定式を生成する。推定式は、例えば、y=c−exp(a×log(x)+b)の形をとる。推定式生成部141は、推定式に含まれる係数集合θ={a,b,c}の値を決定することになる。推定式生成部141は、推定式の生成に用いる実測データとして、サンプリングサイズxと予測性能yの組(x,y)の集合を取得する。サンプリングサイズは回帰分析における説明変数に相当し、予測性能は回帰分析における目的変数に相当する。
推定式生成部141は、実績データを取得すると、係数集合θ={a,b,c}の値を決定するよう上限値推定部142に指示する。推定式生成部141は、係数集合θの値を上限値推定部142から取得する。また、推定式生成部141は、係数集合θについての分散共分散行列Vと残差分散Rを上限値推定部142から取得する。分散共分散行列Vおよび残差分散Rについては後述する。推定式生成部141は、係数集合θの値と分散共分散行列Vと残差分散Rを予測性能推定部145に出力する。
上限値推定部142は、係数集合θ={a,b,c}のうち、予測性能の上限値を示す係数cの値を仮選択する。上限値推定部142は、係数cの値と実測データ(x,y)の集合を変数変換部143に通知し、変換後データ(x*,y*)の集合を変数変換部143から取得する。上限値推定部142は、変換後データ(x*,y*)の集合を線形回帰部144に通知し、係数a,bの値を線形回帰部144から取得する。また、上限値推定部142は、係数a,bについての分散共分散行列Wを線形回帰部144から取得する。
上限値推定部142は、係数集合θ={a,b,c}の値と実測データ(x,y)の集合を用いて評価値Gを算出する。評価値Gは、実測データ(x,y)の空間上で算出される。例えば、評価値Gを次のように推定値と実測値の間の重み付き残差二乗和として定義できる:G=sum{(c−exp(a×log(x))+b−y)2×wp}。wpは各実測値の重みを表す。全ての実測値についてwp=1としてもよいし、wp=x(サンプリングサイズ)としてもよい。全ての実測値についてwp=1とした場合、評価値Gは次の式と等価である:sum{(c−exp(a×log(x))+b−y)2}。
上限値推定部142は、評価値Gが最小になるように、係数cの値を変更して上記の処理を繰り返す。この数値最適化方法として、例えば、Nelder−Mead法などを用いることができる。また、上限値推定部142は、係数cについての分散共分散行列Uを算出する。上限値推定部142は、係数a,bについての分散共分散行列Wと係数cについての分散共分散行列Uを合成して、係数集合θについての分散共分散行列Vを生成する。また、上限値推定部142は、係数集合θの値と変換後データ(x*,y*)から、係数集合θについての残差分散Rを算出する。
ここで、分散共分散行列Vと残差分散Rについて説明する。係数a,bについての分散共分散行列Wは2×2の行列である。分散共分散行列Wの要素のうち、w11は係数aの分散に対応し、w21は係数aと係数bの共分散に対応し、w12は係数bと係数aの共分散に対応し、w22は係数bの分散に対応する。係数cについての分散共分散行列Uは1×1の行列である。分散共分散行列Uの要素であるu11は係数cの分散に対応する。
係数集合θについての分散共分散行列Vは3×3の行列である。分散共分散行列Vの要素のうち、v11は係数aの分散に対応し、v21は係数aと係数bの共分散に対応し、v31は係数aと係数cの共分散に対応する。v12は係数bと係数aの共分散に対応し、v22は係数bの分散に対応し、v32は係数bと係数cの共分散に対応する。v13は係数cと係数aの共分散に対応し、v23は係数cと係数bの共分散に対応し、v33は係数cの分散に対応する。そのため、v11=w11、v21=w21、v12=w12、v22=w22となる。また、v33=u11となる。一方、係数aと係数cの間の関係および係数bと係数cの間の関係は無視し、v13=v23=v31=v32=0と仮定する。よって、分散共分散行列Vは、分散共分散行列W,Uを合成して数式(1)のように算出することができる。
一般に、最小二乗法などの回帰分析によってN2個の係数の値を決定すると、それに伴ってN2×N2の分散共分散行列が算出される。上記の分散共分散行列W,Uは、例えば、以下に説明する方法で算出することが可能である。数値最適化の目的関数をf(θ)とする。ここでは、θは係数集合(N2次元の係数ベクトル)である。目的関数f(θ)はθ=θ0のときに最小値をとるものとする。exp(−f(θ))をガウス関数を用いて近似するラプラス近似を考える。目的関数f(θ)をθ0の周辺で二次項までテーラー展開すると、数式(2)のような近似式が得られる。θ0が極値であるため、近似式から一次項は消える。数式(3)に示すように、行列Hは目的関数f(θ)のヘッセ行列である。
数式(2)より、exp(−f(θ))は数式(4)のように近似される。数式(4)の右辺の近似式に正規化係数をかけたものは、期待値θ0、分散共分散行列H-1の多次元正規分布を示す。係数集合θに含まれる各係数の値は、近似的にこの正規分布に従う。よって、係数集合θについての分散共分散行列は、ヘッセ行列Hを算出し、ヘッセ行列Hの逆行列(H-1)を算出することによって得ることができる。
残差分散Rは、第2の実施の形態では、実測データ(x,y)の空間上で算出する代わりに変換後データ(x*,y*)の空間上で算出される。具体的には、残差分散Rは次の式によって算出される:R=sum{(a×x*+b−y*)2×wp}/(sum(wp)−3)。sum(wp)−3は、推定式の自由度を表す。全ての実測値についてwp=1とした場合、上記の式は次の式と等価である:R=sum{(a×x*+b−y*)2}/(N3−3)。N3は予測性能の実測値の数である。
なお、上限値推定部142は、残差分散Rを算出する際に考慮されなかった残差成分であるy−(c−exp(y*))の分散を、残差分散R*として算出してもよい。推定式生成部141は、残差分散Rと共に残差分散R*を予測性能推定部145に出力してもよい。また、上記では推定式生成部141が分散共分散行列Vを出力したが、分散共分散行列Vに代えて予測性能の分散に関する他の情報を出力してもよい。また、推定式生成部141は、実測データ(x,y)の集合を予測性能推定部145に出力してもよい。
変数変換部143は、係数cの値と実測データ(x,y)の集合を上限値推定部142から取得する。すると、変数変換部143は、実測データ(x,y)の集合から変換後データ(x*,y*)の集合を生成し、上限値推定部142に出力する。実測データ(x,y)それぞれは、例えば、次のように変換される:x*=log(x),y*=log(c−y)。ただし、c<yの場合はy*=10―8とする。
線形回帰部144は、変換後データ(x*,y*)の集合を上限値推定部142から取得する。すると、線形回帰部144は、x*を説明変数の値、y*を目的変数の値として用いて線形回帰分析を行う。すなわち、線形回帰部144は、変換後データ(x*,y*)の集合を用いて、線形式y*=a×x*+bにおける係数a,bの値を決定する。線形回帰部144は、決定した係数a,bの値を上限値推定部142に出力する。また、線形回帰部144は、線形回帰分析を通じて係数a,bについての分散共分散行列Wを算出し、分散共分散行列Wを上限値推定部142に出力する。
予測性能推定部145は、係数集合θの値と分散共分散行列Vと残差分散Rを推定式生成部141から取得する。また、予測性能推定部145は、予測性能を推定すべきサンプリングサイズの情報を取得する。第2の実施の形態では、性能改善量推定部134が1回に推定する予測性能は1つのサンプリングサイズに対応する1つの予測性能である。ただし、予測性能推定部145は、同じ推定式(同じ予測性能曲線)を用いて、複数のサンプリングサイズに対応する複数の予測性能を推定することも可能である。
予測性能推定部145は、係数集合θの値によって特定される推定式y=c−exp(a×log(x)+b)にサンプリングサイズを代入することで、予測性能の推定値を算出する。また、予測性能推定部145は、係数集合θの値と分散共分散行列Vと残差分散Rとサンプリングサイズを予測区間算出部146に出力し、予測区間を算出するよう指示する。予測性能推定部145は、予測区間の上限値と下限値を、予測区間算出部146から取得する。予測性能推定部145は、推定値と予測区間上限値と予測区間下限値を出力する。前述のように、性能改善量の推定には予測区間上限値が使用される。
予測区間算出部146は、係数集合θの値(期待値)と分散共分散行列Vと残差分散Rとサンプリングサイズを予測性能推定部145から取得する。予測区間算出部146は、モンテカルロ法によって95%予測区間を推定する。具体的には、予測区間算出部146は、算出される係数a,b,cの値が統計誤差を含むことを想定して、係数a,b,cの期待値および分散共分散行列Vが示す3次元正規分布に従うように、係数a,b,cの値をランダムにQ組生成する。Qは十分大きな数とし、例えば、Q=10000とする。
また、予測区間算出部146は、期待値「0」および残差分散Rが示す正規分布に従うように、残差eの値をランダムにQ個生成する。予測区間算出部146は、Q組の係数a,b,cおよび残差eの値それぞれについて、y=c−exp(a×log(x)+b+e)を、統計誤差を考慮したシミュレーション値として算出する。推定式生成部141が残差分散R*を出力した場合、予測区間算出部146は、期待値「0」および残差分散R*が示す正規分布に従った乱数を、上記の式に更に加えてもよい。
予測区間算出部146は、Q個のシミュレーション値を用いて、予測区間の上限値および下限値を算出する。具体的には、予測区間算出部146は、Q個のシミュレーション値をソートし、下位から2.5%の位置のシミュレーション値を予測区間下限値とする。また、予測区間算出部146は、上位から2.5%(下位から97.5%)の位置のシミュレーション値を予測区間上限値とする。予測区間算出部146は、算出した予測区間上限値および予測区間下限値を予測性能推定部145に出力する。なお、予測区間算出部146は、予測区間の情報に代えて、シミュレーション値の分散などシミュレーション値の分布を示す情報を出力してもよい。また、予測区間算出部146は、モンテカルロシミュレーション以外の方法で予測区間を推定するようにしてもよい。
図14は、機械学習の手順例を示すフローチャートである。
(S10)学習制御部135は、データ記憶部121を参照して、プログレッシブサンプリング法における学習ステップのサンプリングサイズs1,s2,s3,…を決定する。例えば、学習制御部135は、データ記憶部121に記憶されたデータ集合Dのサイズに基づいて、s1=|D|/210,sj=s1×2j-1と決定する。
(S11)学習制御部135は、管理テーブル122aの各機械学習アルゴリズムのステップ番号を1に初期化する。また、学習制御部135は、各機械学習アルゴリズムの改善速度を、改善速度が取り得る最大値に初期化する。また、学習制御部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を検索する。ここでは、ki=jであるとする。
(S15)学習制御部135は、ステップ番号jに対応するサンプリングサイズsjを算出し、ステップ実行部132に対して機械学習アルゴリズムaiとサンプリングサイズsjを指定する。ステップ実行部132は、機械学習アルゴリズムaiについてj番目の学習ステップを実行する。ステップ実行部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とステップ番号jとを記憶しておく。
(S19)学習制御部135は、管理テーブル122aに記憶されたステップ番号のうち、機械学習アルゴリズムaiに対応するステップ番号kiをj+1に更新する。すなわち、ステップ番号kiをインクリメント(1だけ加算)する。また、学習制御部135は、合計時間tsum=0に初期化する。
図15は、機械学習の手順例を示すフローチャート(続き)である。
(S20)学習制御部135は、機械学習アルゴリズムaiの次の学習ステップのサンプリングサイズsj+1を算出する。学習制御部135は、サンプリングサイズsj+1とデータ記憶部121に記憶されたデータ集合Dのサイズとを比較し、前者が後者より大きいか判断する。サンプリングサイズsj+1がデータ集合Dのサイズよりも大きい場合はステップS21に処理が進み、それ以外の場合はステップS22に処理が進む。
(S21)学習制御部135は、管理テーブル122aに記憶された改善速度のうち、機械学習アルゴリズムaiに対応する改善速度riを0に更新する。これにより、機械学習アルゴリズムaiは実行されなくなる。そして、前述のステップS12に処理が進む。
(S22)学習制御部135は、時間推定部133に対して機械学習アルゴリズムaiとステップ番号j+1を指定する。時間推定部133は、機械学習アルゴリズムaiについて次の学習ステップ(j+1番目の学習ステップ)を実行した場合の実行時間ti,j+1を推定する。時間推定部133の処理の詳細は後述する。
(S23)学習制御部135は、性能改善量推定部134に対して機械学習アルゴリズムaiとステップ番号j+1を指定する。性能改善量推定部134は、機械学習アルゴリズムaiについて次の学習ステップ(j+1番目の学習ステップ)を実行した場合の性能改善量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は、j=j+1に更新する。そして、ステップS20に処理が進む。
(S27)学習制御部135は、機械学習を開始してからの経過時間が、制限時間入力部131から指定された制限時間を超えたか判断する。経過時間が制限時間を超えた場合はステップS28に処理が進み、それ以外の場合はステップS12に処理が進む。
(S28)学習制御部135は、達成予測性能Pと当該予測性能が得られたモデルとを学習結果記憶部123に保存する。また、学習制御部135は、達成予測性能Pに対応付けられた機械学習アルゴリズムのアルゴリズムIDと、達成予測性能Pに対応付けられたステップ番号に相当するサンプリングサイズとを、学習結果記憶部123に保存する。
図16は、ステップ実行の手順例を示すフローチャートである。
ここでは、バリデーション方法として、データ集合Dのサイズに応じて、ランダムサブサンプリングバリデーションまたはクロスバリデーションを実行する場合を考える。ただし、ステップ実行部132は、他のバリデーション方法を用いてもよい。
(S30)ステップ実行部132は、学習制御部135から指定された機械学習アルゴリズムaiとサンプリングサイズsjとを特定する。また、ステップ実行部132は、データ記憶部121に記憶されているデータ集合Dを特定する。
(S31)ステップ実行部132は、サンプリングサイズsjが、データ集合Dのサイズの2/3よりも大きいか判断する。サンプリングサイズsjが2/3×|D|よりも大きい場合、ステップ実行部132は、データ量が不足しているためクロスバリデーションを選択する。そして、ステップS38に処理が進む。サンプリングサイズsjが2/3×|D|以下である場合、ステップ実行部132は、データ量が十分あるためランダムサブサンプリングバリデーションを選択する。そして、ステップS32に処理が進む。
(S32)ステップ実行部132は、データ集合Dからサンプリングサイズsjの訓練データDtをランダムに抽出する。訓練データの抽出は、非復元抽出サンプリングとして行う。よって、訓練データには、互いに異なるsj個の単位データが含まれる。
(S33)ステップ実行部132は、データ集合Dのうち訓練データDtを除いた部分から、サイズsj/2のテストデータDsをランダムに抽出する。テストデータの抽出は、非復元抽出サンプリングとして行う。よって、テストデータには、訓練データDtと異なりかつ互いに異なるsj/2個の単位データが含まれる。なお、ここでは訓練データDtのサイズとテストデータDsのサイズの比を2:1としたが、比を変更してもよい。
(S34)ステップ実行部132は、機械学習アルゴリズムaiとデータ集合Dから抽出した訓練データDtとを用いてモデルmを学習する。
(S35)ステップ実行部132は、学習したモデルmとデータ集合Dから抽出したテストデータDsとを用いて、モデルmの予測性能pを算出する。予測性能pを表す指標として、正答率、適合率、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個のモデルmのうち予測性能pが最大のモデルを出力する。そして、ランダムサブサンプリングバリデーションによる1つの学習ステップが終了する。
(S38)ステップ実行部132は、上記のランダムサブサンプリングバリデーションに代えて、前述したクロスバリデーションを実行する。例えば、ステップ実行部132は、データ集合Dからサンプリングサイズsjのサンプルデータをランダムに抽出し、抽出したサンプルデータをK個のブロックに均等に分割する。ステップ実行部132は、K−1個のブロックを訓練データとして使用し1個のブロックをテストデータとして使用することを、テストデータのブロックを変えながらK回繰り返す。ステップ実行部132は、K個の予測性能の平均値と、実行時間と、予測性能が最大のモデルを出力する。
図17は、時間推定の手順例を示すフローチャートである。
(S40)時間推定部133は、学習制御部135から指定された機械学習アルゴリズムaiとステップ番号j+1とを特定する。
(S41)時間推定部133は、機械学習アルゴリズムaiの学習ステップが2つ以上実行済みか、すなわち、ステップ番号j+1が2より大きいか判断する。j+1>2の場合はステップS42に処理が進み、それ以外の場合はステップS45に処理が進む。
(S42)時間推定部133は、管理テーブル122aから機械学習アルゴリズムaiに対応する実行時間Ti,1,Ti,2を検索する。
(S43)時間推定部133は、サンプリングサイズs1,s2と実行時間Ti,1,Ti,2を用いて、サンプリングサイズsから実行時間tを推定する推定式t=α×s+βの係数α,βを決定する。係数α,βは、Ti,1およびs1をtおよびsにそれぞれ代入した式と、Ti,2およびs2をtおよびsにそれぞれ代入した式とを含む連立方程式を解くことで決定できる。ただし、機械学習アルゴリズムaiの学習ステップが3つ以上実行済みである場合、時間推定部133は、それら学習ステップの実行時間から回帰分析によって係数α,βを決定してもよい。実行時間をサンプリングサイズの一次式と仮定することは、例えば、前述の非特許文献2("The Learning-Curve Sampling Method Applied to Model-Based Clustering")にも記載がある。
(S44)時間推定部133は、上記の実行時間の推定式とサンプリングサイズsj+1を用いて(sj+1を推定式のsに代入して)、j+1番目の学習ステップの実行時間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)性能改善量推定部134は、学習制御部135から指定された機械学習アルゴリズムaiとステップ番号j+1とを特定する。
(S51)性能改善量推定部134は、管理テーブル122aから機械学習アルゴリズムaiに対応する全ての予測性能pi,1,pi,2,…を検索する。
(S52)性能改善量推定部134は、サンプリングサイズs1,s2,…と予測性能pi,1,pi,2,…を用いて、サンプリングサイズから予測性能を推定する推定式を生成する。推定式生成の詳細は後述する。
(S53)性能改善量推定部134は、ステップS52で生成した予測性能の推定式とサンプリングサイズsj+1を用いて(sj+1を推定式に代入して)、j+1番目の学習ステップの予測性能の期待値を算出する。また、性能改善量推定部134は、予測性能の期待値に対する95%予測区間の上限値を算出する。ここで算出された上限値を推定上限値Upとする。予測性能推定の詳細は後述する。
(S54)性能改善量推定部134は、現在の達成予測性能Pと推定上限値Upを比較して性能改善量gi,j+1を推定し、推定した性能改善量gi,j+1を出力する。性能改善量gi,j+1は、Up>PであればUp−Pであり、Up≦Pであれば0である。
図19は、推定式生成の手順例を示すフローチャートである。
(S60)推定式生成部141は、実測データ(x,y)の集合を取得する。
(S61)推定式生成部141は、係数集合θ={a,b,c}を特定する。
(S62)上限値推定部142は、係数cの初期値として、取得した予測性能の実測値の中の最大値に所定値(例えば、10-8)を加えた値を設定する。
(S63)変数変換部143は、現在の係数cの値を用いて、実測データ(x,y)の集合を変換後データ(x*,y*)の集合に変換する。具体的には、変数変換部143は、x*=log(x),y*=log(c−y)と変換する。
(S64)線形回帰部144は、変換後データ(x*,y*)の集合を用いて、線形回帰分析により線形式y*=a×x*+bの係数a,bの値を算出する。例えば、線形回帰部144は、最小二乗法により残差二乗和が最小になる係数a,bの値を算出する。
(S65)上限値推定部142は、係数a,b,cの値を用いて、実測データ(x,y)それぞれについて推定値y0=c−exp(a×log(x)+b)を算出する。
(S66)上限値推定部142は、予測性能の実測値yと推定値y0から重み付き残差二乗和を算出し、係数a,b,cの値に対する評価値Gとする。具体的には、上限値推定部142は、G=sum{(y0−y)2×wp}を算出する。重みwpの値は、全ての実測値yについて共通でもよいし実測値yによって異なってもよい。例えば、重みwpの値は、サンプリングサイズxでもよいし、サンプリングサイズxに応じた値でもよい。
(S67)上限値推定部142は、係数cの最適化が完了したか判断する。例えば、評価値Gが閾値未満になった場合や、評価値Gが過去と比べて改善しなくなった場合に、最適化が完了したと判断してもよい。また、例えば、ステップS63〜S66の繰り返し回数が閾値に達した場合や、係数cの最適化を開始してから所定時間経過した場合に、最適化が完了したと判断してもよい。最適化が完了した場合はステップS69に処理が進み、最適化が完了していない場合はステップS68に処理が進む。
(S68)上限値推定部142は、係数cの値を変更する。上限値推定部142は、ランダムに係数cの値を選択してもよいし、現在の値から所定の方向に所定の幅だけ離れた値を選択してよい。また、上限値推定部142は、過去の評価値Gから、評価値Gが改善すると期待される係数cの値を予測してもよい。そして、ステップS63に処理が進む。
(S69)上限値推定部142は、評価値Gが最小になった係数集合θの値を特定する。上限値推定部142は、その係数集合θの値に対応する分散共分散行列Vを算出する。分散共分散行列Vは、係数a,bについての分散共分散行列Wと係数cについての分散共分散行列Uとを合成することで算出される。
(S70)上限値推定部142は、特定した係数集合θの値に対応する残差分散Rを算出する。具体的には、上限値推定部142は、変換後データ(x*,y*)の集合を用いて、R=sum{(a×x*+b−y*)2×wp}/(sum(wp)−3)を算出する。重みwpの値は、ステップS66と同じものを用いる。
図20は、予測性能推定の手順例を示すフローチャートである。
(S80)予測性能推定部145は、指定されたサンプリングサイズx0について、予測性能の推定値y0=c−exp(a×log(x0)+b)を算出する。
(S81)予測区間算出部146は、係数a,b,cの期待値および分散共分散行列Vに従うように、ランダムに係数a,b,cの値aq,bq,cqを生成する(q=1,2,…,Q)。Qは十分大きな整数とし、例えば、Q=10000とする。
(S82)予測区間算出部146は、期待値を「0」とし残差分散Rに従うように、ランダムに残差eqを生成する(q=1,2,…,Q)。
(S83)予測区間算出部146は、予測性能のシミュレーション値yq=cq−exp(aq×log(x0)+bq+eq)を算出する(q=1,2,…,Q)。
(S84)予測区間算出部146は、予測性能のシミュレーション値yqを昇順または降順にソートする。予測区間算出部146は、予測性能のシミュレーション値yqのうち下位から2.5%の位置の値を、95%予測区間の下限値と推定する。また、予測区間算出部146は、予測性能のシミュレーション値yqのうち上位から2.5%の位置の値を、95%予測区間の上限値と推定する。
第2の実施の形態の機械学習装置100によれば、複数の機械学習アルゴリズムそれぞれについて、次の学習ステップを実行した場合の単位時間当たりの予測性能の改善量(改善速度)が推定される。そして、改善速度が最大の機械学習アルゴリズムが選択され、選択された機械学習アルゴリズムの学習ステップが1つだけ進められる。改善速度の推定と機械学習アルゴリズムの選択が繰り返され、最終的に1つのモデルが選択される。
これにより、予測性能の改善に寄与しない学習ステップは実行されず、全体の学習時間を短縮することができる。また、改善速度の推定値が最大の機械学習アルゴリズムが選択されるため、学習時間に制限があり機械学習を途中で打ち切った場合であっても、終了時刻までに得られたモデルが、制限時間内に得られる最善のモデルとなる。また、少しでも予測性能の改善に寄与する学習ステップは、実行順序が後になる可能性はあるものの実行される余地が残される。このため、予測性能の上限が高い機械学習アルゴリズムをサンプリングサイズが小さいうちに切り捨ててしまうリスクを低減できる。このように、複数の機械学習アルゴリズムを利用してモデルの予測性能を効率的に向上させることができる。
また、次の学習ステップで達成される予測性能を推定する際に、サンプリングサイズと予測性能の実測値とを対応付けた実測データが、線形性および等分散性が成立するように変換される。変換にあたっては、予測性能の実測値の標準誤差が、上限値と推定値の差に比例するという経験則が利用される。これにより、回帰分析の精度が向上し、誤差を含む実測値からも信頼性の高い予測性能曲線を推定することができる。また、小さなサンプリングサイズに関する少量の実測値からでも、大きなサンプリングサイズの予測性能を推定することができる。また、予測区間を正確に算出することができる。
また、予測性能の推定精度が向上することで、予測性能の上限値が低い機械学習アルゴリズムを誤選択してしまうリスクが下がり、全体の学習時間を短縮することができる。また、各機械学習アルゴリズムについて予測性能が上限値に十分近づいたか否かを早い段階で判断することができ、学習ステップの打ち切りを適切なタイミングで判断できる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との違いを中心に説明し、第2の実施の形態と同様の事項については説明を省略することがある。
予測性能を示す指標の中には、最大値が「1」である正答率のように、理論上有限の最大値が存在する指標がある。また、機械学習アルゴリズムの中には、予測性能の上限値が最大値近くになりやすい機械学習アルゴリズムが存在する。例えば、機械学習アルゴリズムの中には、「0.995」や「0.999」などの正答率を達成し得るものがある。この場合、予測性能の指標がもつ特性として、天井効果が生じてしまう。
すなわち、予測性能の実測値の分布が最大値付近で圧縮されてしまい、サンプリングサイズと予測性能との対応関係を示す分析空間に歪みが生じてしまうおそれがある。そのままでは、説明変数や目的変数を変換しても線形性や等分散性が成立しづらくなり、回帰分析の精度が低下するおそれがある。そこで、第3の実施の形態では、予測性能の指標が有限の最大値をもつことによって生じる歪みを補正する。
図21は、第3の実施の形態の性能改善量推定部の機能例を示すブロック図である。
第3の実施の形態の機械学習装置100aは、性能改善量推定部134に代えて性能改善量推定部134aを有する。性能改善量推定部134aは、推定式生成部141、上限値推定部142、変数変換部143、線形回帰部144、予測性能推定部145、予測区間算出部146、実測値変換部147および推定値逆変換部148を有する。
実測値変換部147は、予測性能の実測値yを、ロジット関数を用いてycに変換する。ロジット関数は、(0,1)の値域をもつ変数を実数全体の値域をもつ変数に変換するものであり、yc=log(y/(1−y))と定義される。これにより、最大値付近で圧縮された実測値yの分布を引き延ばすことができ、天井効果を除去できる。実測値変換部147は、yに代えてycを推定式生成部141に出力する。
推定値逆変換部148は、ycのスケールで表現された推定値、予測区間上限値および予測区間下限値を予測性能推定部145から取得する。推定値逆変換部148は、ロジスティック関数を用いて、これらの推定値、予測区間上限値および予測区間下限値を、実測値yのスケールで表現された推定値、予測区間上限値および予測区間下限値に逆変換する。ロジスティック関数は、ロジット関数の逆関数である。ロジスティック関数は、実数全体の値域をもつ変数を(0,1)の値域をもつ変数に変換するものであり、y=1/(1+exp(−yc))と定義される。推定値逆変換部148は、逆変換した推定値、予測区間上限値および予測区間下限値を出力する。
なお、実測値変換部147および推定値逆変換部148は、予測性能の指標として正答率のように有限の最大値をもつ指標が用いられている場合のみ、上記の変換および逆変換を行うようにしてもよい。実測値変換部147および推定値逆変換部148は、予測性能の指標として有限の最大値が存在しない(最大値が無限大になる)指標が用いられている場合には、上記の変換および逆変換を行わなくてもよい。
第3の実施の形態の機械学習装置100aによれば、第2の実施の形態の機械学習装置100と同様の効果が得られる。更に、機械学習装置100aでは、予測性能の実測値の分布が最大値付近で圧縮されている場合であっても、その歪みを抑制することができる。これにより、説明変数および目的変数の変換によって線形性や等分散性が成立しやすくなり、線形回帰分析の精度を向上させることができる。
なお、前述のように、第1の実施の形態の情報処理は、予測性能曲線推定装置10にプログラムを実行させることで実現できる。第2の実施の形態の情報処理は、機械学習装置100にプログラムを実行させることで実現できる。第3の実施の形態の情報処理は、機械学習装置100aにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体113)に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(例えば、HDD103)にプログラムをコピーして実行してもよい。