以下に、本発明に係る表示方法、表示プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。また、実施例の検出装置は、検出方法及び表示方法を実行する情報処理装置ということができる。
[コンセプトドリフトについて]
まず、コンセプトドリフトについて説明する。ここで、ラベルが既知の学習データを用いて学習が行われた学習済みのモデルをオリジナルモデルと呼ぶ。また、本実施例におけるモデルは、特徴量を基にデータが属するクラスを推定し分類する分類器であるものとする。分類器は、各データについてクラスごとのスコアを計算し、スコアに基づいて分類を行う。ここで、スコアは、データが各クラスに属する確率であってもよい。また、分類器は、正常であるか否か等の2つのクラスの分類を行うものであってもよいし、3つ以上のクラスの分類を行うものであってもよい。
図1は、コンセプトドリフトを説明するための図である。図1の左図及び右図は、横軸及び縦軸がそれぞれ異なる特徴量である平面上に、各クラスの学習時及び運用時におけるデータ点、及びオリジナルモデルを表す曲線を描画したものである。図1の○、△、×のデータ点は、それぞれクラスA、クラスB、クラスCに属するデータに対応している。
図1の左図に示すように、学習時において、オリジナルモデルは各クラスのデータを高い精度で分類することができている。一方で、運用時においては、特にクラスBとクラスCの分布が大きく変化し、オリジナルモデルの分類精度が低下している。このように、モデルの運用時に、学習時と比べてデータの質が変化していく現象がコンセプトドリフトである。言い換えれば、運用データの傾向の時間変化に起因するモデルの出力結果の変化が大きくなることである。そして、図1に示すように、コンセプトドリフトが発生すると、モデルの精度が相対的に低下する場合がある。
例えば、モデルが、株式取引において、各銘柄を「買い」、「売り」、「中立」のいずれかに分類するものである場合を考える。この場合、2018年のデータで学習を行ったモデルが、2019年初頭には高い精度を示すが、2019年半ばにはデータの傾向が変わり、精度が低下するというケースが考えられる。
また、室内環境が暑いか否かを判断するためのモデルの学習を、6月のデータを使って行った場合、8月には、モデルの判断結果がユーザの感覚と合わなくなっていることが考えられる。これは、人間が暑さになれる暑熱馴化がコンセプトドリフトとして現れるためである。例えば、ユーザは、6月には暑いと感じていた室温に対して8月には暑いと感じなくなる場合がある。
また、あるプログラムがマルウェアであるか否かに分類するモデルの分類精度は、マルウェアの進化にともなって発生するコンセプトドリフトにより低下していくことが考えられる。既存の手法では検知されないようなマルウェアが日夜開発されているため、時間経過によりそれまで知られていなかった特徴を持つマルウェアが出現する場合がある。
また、例えば、モデルは、製造ラインにおいて、製造環境の温度や明るさ等の条件、及び各工程で得られる所定の測定値を特徴量とし、成果物が不良品であるか否かを判定することができる。この場合、環境の変化等がコンセプトドリフトとして現れ、モデルの判定精度が低下することが考えられる。
本実施例の検出装置は、上記のようなコンセプトドリフトの影響を受けるあらゆるモデルに適用することができる。本実施例の検出装置は、オリジナルモデルから生成した複数のレプリカモデルを用いてコンセプトドリフトの検出を行う。レプリカモデルの生成には学習を要しないため、検出装置は少ない計算量でレプリカモデルを生成することができる。
なお、多くの場合、運用時のデータが属する真のクラスは不明であるが、図1では説明のため、運用時のデータ点についても各クラスに対応する○、△、×の各形状を割り当てている。本実施例の検出装置は、運用時のデータの真のクラスが不明であってもユーザが対応する必要のあるコンセプトドリフトを検出することを目的としている。
また、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、自動又は手動でのオリジナルモデルの再学習、及びコンセプトドリフトの原因となった不適正なデータの除外といった対策が講じられる場合がある。
[機能構成]
図2を用いて、実施例に係る検出装置の構成を説明する。図2は、実施例1の検出装置の構成例を示す図である。図2に示すように、検出装置10は、通信部11、入力部12、出力部13、記憶部14及び制御部15を有する。
通信部11は、他の装置との間でデータの通信を行うためのインタフェースである。例えば、通信部11は、NIC(Network Interface Card)であり、インターネットを介してデータの通信を行うものであってもよい。
入力部12は、データの入力を受け付けるためのインタフェースである。例えば、入力部12は、キーボードやマウス等の入力装置等の入力装置であってもよい。また、出力部13は、データを出力するためのインタフェースである。出力部13は、ディスプレイやスピーカ等の出力装置であってもよい。また、入力部12及び出力部13は、USBメモリ等の外部記憶装置との間でデータの入出力を行うものであってもよい。
記憶部14は、データや制御部15が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部14は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を記憶する。
オリジナルモデル情報141は、オリジナルモデルを構築するためのパラメータ等の情報である。例えば、オリジナルモデルがニューラルネットワークである場合、オリジナルモデル情報141は、各層の重み及びバイアスである。
レプリカモデル情報142は、レプリカモデルを構築するためのパラメータ等の情報である。本実施例では、レプリカモデルとオリジナルモデルのアルゴリズムは共通であるものとする。このため、例えば、オリジナルモデルのアルゴリズムがニューラルネットワークであれば、レプリカモデルのアルゴリズムもニューラルネットワークである。この場合、レプリカモデル情報142は、ニューラルネットワークの各層の重み及びバイアスである。また、レプリカモデルは複数であってもよく、その場合、レプリカモデル情報142は複数のレプリカモデルのそれぞれに対応するパラメータである。レプリカモデルを生成する方法については後述する。
分布情報143は、学習時のレプリカモデルの出力の分布に関する情報である。分布情報143は、運用時のデータを評価し、ユーザが対応する必要のあるコンセプトドリフトを検出するための基準となる情報である。分布情報143は、運用時のデータを評価値を計算するために十分な情報であればよい。例えば、分布情報143は、レプリカモデルの出力の全部又は一部であってもよいし、レプリカモデルの出力の分布を示す分布パラメータであってもよい。レプリカモデルの出力の分布を取得する方法については後述する。
制御部15は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部15は、学習部151、生成部152、計算部153、検出部154及び表示制御部155を有する。
図3に示す処理の流れに沿って、制御部15の各部の詳細を説明する。図3は、検出装置の処理の流れを説明するための図である。検出装置10の処理は、学習フェーズと運用フェーズに分けられる。学習フェーズにおいて、検出装置10は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を生成する。一方、運用フェーズにおいて、検出装置10は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を用いてユーザが対応する必要のあるコンセプトドリフトの検出を行う。
(学習フェーズ)
まず、学習フェーズの処理について説明する。図3のステップS11に示すように、学習部151は、学習データを基にオリジナルモデルを生成する。学習部151は、既知の手法で学習を行うことができる。例えば、オリジナルモデルがニューラルネットワークであれば、学習部151は、誤差逆伝播法により学習を行う。
次に、生成部152は、学習済みのオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。以降の説明では、生成部152によって生成された複数のレプリカモデルをレプリカモデル群と呼ぶ場合がある。また、オリジナルモデルは第一のモデルの一例である。また、レプリカモデルは第二のモデルの一例である。
生成部152は、学習済みのオリジナルモデルであるニューラルネットワークの所定の層における重み及びバイアスを変化させることにより、複数のニューラルネットワークをレプリカモデルとして生成する。
図4は、ニューラルネットワークのパラメータについて説明するための図である。図4に示すように、オリジナルモデルのニューラルネットワークの出力層と隠れ層との間には、重みw_a1、w_a2、w_b1、w_b2、w_c1、w_c2、w_d1、w_d2及びバイアスb1、b2が設定されている。生成部152は、重み及びバイアスに、乱数を掛けることによりレプリカモデルを生成する。
ε_iを、平均が1.0、標準偏差が0.3である正規分布に従う乱数であるものとする。このとき、生成部152は、1つ目のレプリカモデルとして、出力層と隠れ層との間に、重みw´_a1、w´_b1、w´_c1、w´_d1、w´_a2、w´_b2、w´_c2、w´_d2、及びバイアスb´1、b´2が設定されたニューラルネットワークを生成する。ただし、各パラメータは、例えばw´_a1 = w_a1 * 1.04、w´_a2 = w_a2 * 0.91、…、w´_d2 = w_d2 * 1.13、b1´ = b1 * 0.83, 、b2´ = b2 * 1.35のよう表される。
レプリカモデルとオリジナルモデルとのかい離が大きすぎると、コンセプトドリフトの誤検出が起きやすくなる場合がある。このため、生成部152は、オリジナルモデルとのかい離がある程度狭い範囲に収まるようにレプリカモデルを生成する。例えば、生成部152は、所定のパラメータに平均が1.0、標準偏差が0.3である正規分布に従う乱数を掛けることによりレプリカモデルを生成する。
計算部153は、実際にモデルに入力されたデータに対する出力を計算する。図3のステップS12に示すように、計算部153は、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布に関する情報を分布情報143として記憶部14に格納する。また、計算部153は、レプリカモデル群の出力だけでなく、オリジナルモデルの出力を含めた分布に関する情報を分布情報143としてもよい。
なお、学習部151は、計算部153と連動し、モデルの出力を最適化することによって学習を行う。一方で、生成部152は、計算部153による計算を行うことなくレプリカモデルを生成することができる。
ここで、図5を用いて、レプリカモデルについて説明する。図5は、レプリカモデルについて説明するための図である。レプリカモデルを図1と同様の平面に描画すると、図5のように表される。すなわち、レプリカモデル群は、曲線であるオリジナルモデルの周囲に所定のばらつきを持って分散する曲線群、又は曲線群が形成する領域ということができる。
図5の左図に示すように、学習時においては、レプリカモデル群は、オリジナルモデル群と同様の分類結果を示す。一方、図5の右図に示すように、運用時においては、オリジナルモデルの曲線の近傍に位置するデータ点に対しては、各レプリカモデルが異なる分類結果を示す場合がある。本実施例の検出装置10は、レプリカモデル群のそれぞれの出力の時間経過に伴う変化に着目してユーザが対応する必要のあるコンセプトドリフトを検出する。
図6は、学習データに対する出力の分布を取得する方法を説明するための図である。本実施例では、オリジナルモデルは、データをクラスA、クラスB、クラスCのいずれかに分類するものとする。また、検出装置10は、各クラスごとに例えば70個の学習データを学習に用いるものとする。また、検出装置10は、例えば1,000個のレプリカモデルを生成するものとする。
このとき、図6に示すように、計算部153は、クラスCに属することが既知の学習データs1、s2、…、s70のそれぞれを、レプリカモデルr1、r2、r1000のそれぞれに入力して、各クラスのスコアを計算する。例えば、スコアは、データが各クラスに属する確率である。例えば、(A0.0, B0.0, C1.0)は、データがクラスAに属する確率が0.0、クラスBに属する確率が0.0、クラスCに属する確率が1.0であることを示している。
(運用フェーズ)
次に、運用フェーズの処理について説明する。図3のステップS21に示すように、計算部153は、オリジナルモデルに運用データを入力し、出力を計算する。例えば、出力は、分類対象のクラスごとのスコアである。このとき、出力部13は、分類結果として、クラスごとのスコア、又は最もスコアが大きかったクラスを特定する情報を出力することができる。
また、学習データ及び運用データは時系列のデータであってもよい。このとき、学習データは、時系列のデータのうち、オリジナルモデルの学習時のデータということができる。一方、運用データは、時系列のデータのうち、学習時より後の所定の時間のデータということができる。
そして、図3のステップS22に示すように、検出部154は、学習データをレプリカモデルに入力して得られる出力の分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異を検出する。運用データは、学習データと異なる所定のデータの一例である。
計算部153は、運用データを各レプリカモデルに入力し出力を計算する。検出部154は、計算部153によって計算された出力の分布を取得する。また、検出部154は、学習データをレプリカモデルに入力して得られる出力の分布を、分布情報143から取得する。
図7は、運用データに対する出力の分布を取得する方法を説明するための図である。ここでは、運用データは1つであるものとする。また、前述の通り、例えば1,000個のレプリカモデルが生成されているものとする。
このとき、図7に示すように、計算部153は、オリジナルモデルがクラスCに分類した運用データu1を、レプリカモデルr1、r2、…、r1000のそれぞれに入力して、各クラスのスコアを計算する。なお、運用データが単数の場合、図7のように、計算部153は、リアルタイム処理によりスコアを計算することができる。一方で、計算部153は、複数の運用データをまとめてバッチ処理によりスコアを計算してもよい。
図3に戻り、検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られるスコアの分布とのKLD(Kullback-Leibler divergence)を基に、差異を検出する。KLDは、分布間の差異の大きさを示す指標の一例である。検出部154は、学習データのスコアの確率分布P(i)と運用データのスコアの確率分布Q(i)とのKLDを(1)式のように計算する。ただし、iは区分を示す識別子である。
さらに、検出部154は、(2)式のように、クラスA、クラスB及びクラスCについてのDKLの和を計算する。そして、検出部154は、各クラスのDKL又は計算したDKLの和が閾値以上である場合に、ユーザが対応する必要のあるコンセプトドリフトを検出する。
図8は、KLDの変化の一例を示す図である。「サンプルID」は、運用データに含まれる個別のデータを識別するためのIDである。また、ここでは、「正解」は、運用データの真の正解クラスである。また、「予測」は、オリジナルモデルによる分類結果である。
図8に示すように、学習時又は学習直後においては、分類結果と正解が合致し、全てのKLDが0.5以下と小さい値を取っている。一方、運用時においては、分類結果と正解が合致しないものや、KLDが30以上の大きい値を取るものが多くなる。なお、分類結果と正解が合致しない場合にKLDは大きくなる傾向があるが、分類結果と正解が合致していたとしても、KLDだけが増加していく場合もある。
図9を用いて、時間経過に伴う分布の変化について説明する。図9は、分布の変化の一例を示す図である。tは日、週、月等の一定の時間を表す。また、図9の各ヒストグラムは、オリジナルモデルがクラスCに分類したデータに対して、各レプリカモデルが出力したスコアをプロットしたものである。t=0のヒストグラムは、学習データに対するスコアをプロットしたものである。また、t=1以降のヒストグラムは、運用データに対するスコアをプロットしたものである。
図9に示すように、t=0のヒストグラムでは、70個の学習データ全てに対し、1,000個のレプリカモデルの全てが(A0.0, B0.0, C1.0)というスコアを出力したことを示している。また、t=0の時点のKLDは0である。なお、オリジナルモデルの学習方法やレプリカモデルの生成方法によっては、t=0のヒストグラムにも多少のばらつきが発生する場合がある。
そして、時間が経過するに従って、クラスBのスコアとクラスCのスコアのヒストグラムにばらつきが発生する。例えば、t=1の時点では、1個の運用データに対して1,000個のレプリカモデルのうちの多くが、(A0.0, B0.1, C0.9)のようなスコアを出力し始めている。さらに、t=2の時点では、クラスBに対して大きいスコアを出力するレプリカモデルが増加する。さらに、t=3の時点では、クラスCのスコアとクラスBのスコアが逆転するようなレプリカモデルが増加する。また、ヒストグラムのばらつきが大きくなるに従い、KLDも大きくなっている。
検出部154がユーザが対応する必要のあるコンセプトドリフトを検出するための閾値は、データの分類が実施される業務の業種や内容及び求められる精度等によって異なる。例えば、図9の例において、KLDの閾値が10である場合、検出部154は、t=2の時点でユーザが対応する必要のあるコンセプトドリフトを検出する。
表示制御部155は、検出部154による分布の比較結果及びコンセプトドリフトの検出結果を出力部13を介して画面に表示することができる。図10は、コンセプトドリフト非発生時の月単位表示画面の一例を示す図である。図10に示すように、表示制御部155は、月単位表示画面に、月ごとのKLDの変化を折れ線グラフで表示する。さらに、表示制御部155は、データ点がクリックされると、画面遷移メニューを表示する。画面遷移メニューには、「詳細を表示」及び「日単位で表示」という項目が含まれる。遷移先の画面については後述する。
(表示装置の画面の表示例)
ここで、図11~図15を用いて、表示装置の表示画面の表示例について説明する。表示装置の画面には、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報が表示させる。ここで、コンセプトドリフトには、incremental drift、sudden drift、recurring driftといった種類があることが知られている。
incremental driftとは、コンセプトドリフトによりモデルの精度が徐々に低下する現象をいう。sudden driftとは、コンセプトドリフトによりモデルの精度が急峻に低下する現象をいう。recurring driftとは、コンセプトドリフトによりモデルの精度が、周期的な時間軸で特定のタイミングのみ低下する現象をいう。
なお、データの傾向が変わることでモデルの精度が相対的に低下するが、ユーザが許容できるモデルの精度は、ユーザ毎に変わってくる。例えば、モデルが、株式取引において、各銘柄を「買い」、「売り」、「中立」のいずれかに分類するものである場合を考える。この場合、モデルの精度が高い状態を維持することが必要であるため、モデルの精度が相対的に少しでも低下した場合には、即座に新しい傾向のデータによる再学習を実施する必要ある。そして、現在運用されているモデルを再学習されたモデルに更新する必要がある。一方で、室内環境が暑いか否かを判断する場合を考える。この場合では、ユーザによっては、暑さに耐性があるため、ある程度のモデルの精度の低下を許容することがあるため、新しい傾向のデータの変化が大きくなったときに、新しい傾向のデータによる再学習を実行すれば良い。そして、現在運用されているモデルを再学習されたモデルに更新する。
つまり、ユーザが許容できるモデルの精度に応じて、モデルの再学習をするタイミングを決定することができる。
図11は、incremental drift発生時の月単位表示画面の一例を示す図である。生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す指標を算出する。
さらに、生成部152は、算出された指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
具体的には、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
つまり、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。そして、検出部154は、各分布の差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。また、表示制御部155は、複数の時間のそれぞれの指標に関する情報を画面に表示させる。そして、表示制御部155は、さらに、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間の指標に関する情報を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間の指標に関する情報と異なる態様で表示させる。
このとき、検出部154は、各分布の差異の大きさを示す指標についての閾値を設定する。当該閾値は、ユーザが許容できるモデルの精度によって設定することができる。まず、検出部154は、ユーザから許容できるモデルの精度に関連する値を受け付ける。そして、検出部154は、受け付けた値に対応する値を閾値として設定する。なお、閾値の設定は、業種で求められるモデルの精度に関する情報を用いて行われることができる。検出部154は、ユーザの業種情報から、当該業種で求められるモデルの精度を特定する。そして、検出部154は、特定されたモデルの精度から閾値を決定する。例えば、製品を撮像した画像から不良品を検出するようなモデルの精度では、1つでも不良品を見逃してはいけないので、高い精度に応じた閾値を設定する必要がある。
図11の例では、2018年7月以前の学習データを用いてオリジナルモデルの学習が行われたものとする。ここで、2018年7月、2018年8月等の月は、複数の時間の一例である。図11に示すように、2018年11月にKLDが閾値である10以上になるため、検出部154は、2018年11月にincremental driftを検出する。
図11に示すように、表示制御部155は、複数の時間のそれぞれの指標を折れ線グラフで表示させる。表示制御部155は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトを検出した時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
つまり、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
図11の例では、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点を、黒塗りの丸及び当該丸を囲む大きいサイズの丸で表示させている。さらに、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、incremental driftが発生した旨のメッセージが表示される。また、表示制御部155は、ツールチップによりメッセージを表示させてもよい。
表示制御部155は、遷移メニューの「詳細を表示」が選択されると、詳細表示画面を表示させる。図12は、詳細表示画面の一例を示す図である。表示制御部155は、学習データをレプリカモデルに入力して得られる出力の分布のヒストグラム、及び、指定された時間のデータをレプリカモデルに入力して得られる出力の分布を示すヒストグラムを詳細表示画面に表示させる。各ヒストグラムは、図9を用いて説明したものと同様のものであってもよい。さらに、表示制御部155は、選択されたデータ点に対応する入力データの各変数の値を表示させてもよい。
学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の運用データを抽出する。そして、学習部151は、運用データを用いて再学習を実行し、新たなモデルを生成する。例えば、学習部151は、ニューラルネットワークを用いて再学習を実行する。このとき、学習部151は、詳細表示画面に表示されている入力データを学習データとして再学習を行うことができる。なお、再学習における学習データのラベルは、人手によって付与されたものであってもよいし、オリジナルモデル及びレプリカモデルの出力を基に自動的に付与されたものであってもよい。
学習部151は、抽出した運用データを入力層より入力してニューラルネットワークに順伝播させる。そして、出力層から得られる分類結果とユーザ操作の正解(正例・負例)とを比較して誤差を求める。さらに、誤差逆伝播法により、分類結果と正解との誤差を分類時と逆方向にニューラルネットワークに伝播させ、ニューラルネットワークの各階層のパラメータを変更して最適解に近づける。なお、学習モデルとして、ニューラルネットワークを用いた例を説明したが、これに限定されるものではなく、ロジスティック回帰モデルや、サポートベクターマシンなど他の機械学習を採用することもできる。学習部151は、現在のオリジナルモデルを、新たに生成されたモデルに変更する。
図13は、sudden drift発生時の月単位表示画面の一例を示す図である。生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す指標を算出し、算出された指標から時系列での指標の変化を特定する。さらに、生成部152は、特定された指標の変化と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
このとき、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
具体的には、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。さらに、検出部154は、各分布の差異の大きさを示す指標の時系列での変化が所定の条件を満たす場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
つまり、検出部154は、指標の時系列での変化の量が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。図13に示すように、2018年11月にKLDが急激に増加しているため、検出部154は、2018年11月にsudden driftが発生したことを検出する。この場合、KLDはincremental driftの閾値である10以下であるものの、2018年10月と2018年11月との間の変化の量がsudden driftの閾値以上であるものとする。
表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、sudden driftが発生した旨のメッセージを表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。
さらに、学習部151は、学習済みのユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の運用データを抽出する。学習部151は、予め設定された期間前の運用データを用いて再学習を実施する。
これまで説明した月単位表示画面のKLDは、例えば日単位のKLDの合計値であってもよい。この場合、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。ここで、表示制御部155は、検出部154が取得した各分布の差異の大きさを示す指標の、一定期間ごとの合計値を画面に表示させる。
検出部154は、指標又は合計値が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。つまり、検出部154は、日単位のKLD及び月単位のKLDの両方又はいずれかを基にユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この場合、例えば、ある月のKLDの合計が第一の閾値を超えていない場合であっても、その月の日のうち1日のKLDが第二の閾値以上である場合、検出部154は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出することができる。
表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、コンセプトドリフトに関する情報を画面に表示させる。例えば、表示制御部155は、日単位のKLDからユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合であっても、月単位表示画面にコンセプトドリフトが発生した旨のメッセージを表示してもよい。
また、表示制御部155は、複数の時間ごとの指標に関する情報を表示する画面と、一定期間ごとの合計値に関する情報を表示する画面とを切り替えて表示させる。例えば、表示制御部155は、月単位表示遷移メニューの「日単位で表示」が選択されると、日単位表示画面を表示させる。
図14及び図15を用いて、日単位表示画面及びrecurring driftの検出について説明する。図14は、recurring drift発生時の月単位表示画面の一例を示す図である。また、図15は、日単位表示画面の一例を示す図である。
図14の例では、月単位表示画面では、日単位のKLDの合計値が月単位のKLDとして表示されているものとする。そして、検出部154は、2018年11月に含まれる日単位のKLDに対してrecurring driftを検出したものとする。
生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す第一の指標を算出する。さらに、生成部152は、算出された第一の指標を、運用データの周期的な単位時間で区分した第二の指標を算出し、算出された第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
このとき、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、recurring driftが発生した旨のメッセージを表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。さらに、検出部154は、各分布の差異の大きさを示す指標が、一定の周期で所定の条件を満たす場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。例えば、検出部154は、指標が一定期間ごとに閾値以上になる場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
図15に示すように、表示制御部155は、日単位表示画面に、日付及び曜日とともにKLDを表示させる。図15の例では、11/6(水)、11/13(水)、11/20(水)、11/27(水)のKLDが閾値の0.4以上である。これより、検出部154は、1週間おきの水曜日に周期的にユーザが対応する必要のあるコンセプトドリフトが発生していることを検出する。
表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した、11/6(水)、11/13(水)、11/20(水)、11/27(水)のデータ点の近傍に、メッセージを表示させる。
さらに、学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、所定の条件を満たす時間のデータを用いて新たなモデルの学習を行う。例えば、図15の例では、学習部151は、毎週水曜日のデータのみを用いて水曜日向けの新たなモデルの学習を行ってもよい。つまり、学習部151は、ユーザの対応する必要のある、2018年11月の水曜日の運用データを学習する。
具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の同じ時間単位の運用データを抽出する。学習部151は、予め設定された期間前の運用データを用いて再学習を実施する。
[処理の流れ]
図16を用いて、検出装置10の学習時の処理の流れを説明する。図16は、検出装置の学習時の処理の流れを示すフローチャートである。図16に示すように、まず、検出装置10は、学習データの学習によりオリジナルモデルを生成する(ステップS101)。次に、検出装置10は、オリジナルモデルの所定のパラメータを変化させたレプリカモデル群を生成する(ステップS102)。そして、検出装置10は、レプリカモデル群に学習データを入力したときの出力の分布に関する情報を保存する(ステップS103)。
図17を用いて、検出装置10の学習時の処理の流れを説明する。図17は、検出装置の学習時の処理の流れを示すフローチャートである。図17に示すように、まず、検出装置10は、オリジナルモデルに運用データを入力したときの出力を計算する(ステップS201)。検出装置10は、ステップS201で計算した出力を基に推論結果を得ることができる。
次に、検出装置10は、レプリカモデル群に運用データを入力したときの出力の分布を取得する(ステップS202)。そして、検出装置10は、運用時に取得した分布と学習時に取得した分布との差異を評価するための指標を計算する(ステップS203)。運用時に取得した分布は、検出装置10がステップS202で取得した分布である。一方、学習時に取得した分布は、検出装置10が図16のステップS103で取得したものである。また、例えば、指標はKLDである。
ここで、検出装置10は、指標が条件を満たすか否かを判定する(ステップS204)。指標が条件を満たす場合(ステップS204、Yes)、検出装置10は、コンセプトドリフトを検出し、アラートを出力する(ステップS205)。アラートは、例えば図11に示すようなメッセージであってもよい。また、指標が条件を満たさない場合(ステップS204、No)、検出装置10は、オリジナルモデルの出力に基づく推論結果を出力する(ステップS206)。なお、ここでの条件は、前述の各種類のコンセプトドリフトを検出するための各条件である。
[効果]
これまで説明してきたように、生成部152は、学習済みのオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布と、学習データと異なる所定のデータをレプリカモデルに入力して得られる出力の分布との差異を検出する。このように、検出装置10は、オリジナルモデルが生成済みであれば、学習を行うことなくレプリカモデルを生成し、コンセプトドリフトの検出を行うことができる。この結果、検出装置10は、少ない計算量でコンセプトドリフトを検出することができる。
検出部154は、時系列のデータのうち、オリジナルモデルの学習時のデータであって、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布を取得する。検出部154は、時系列のデータのうち、学習時より後の所定の時間のデータをレプリカモデルに入力して得られる出力の分布を取得する。検出部154は、各分布の差異を検出する。このように、検出装置10は、時系列データに対する学習時及び運用時のそれぞれにおける出力の分布の差異を評価することができる。この結果、検出装置10は、少ない計算量で時系列データにおけるコンセプトドリフトを検出することができる。
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、学習データと異なる所定のデータをレプリカモデルに入力して得られる出力の分布とのKLD(Kullback-Leibler divergence)を基に、差異を検出する。このように、検出装置10は、KLDを用いることで容易に分布間の差異を評価することができる。
生成部152は、所定のパラメータに平均が1.0、標準偏差が0.3である正規分布に従う乱数を掛けることによりレプリカモデルを生成する。このように、検出装置10は、オリジナルモデルとレプリカモデルとのかい離が大きくなり過ぎないようにすることができる。この結果、検出装置10は、コンセプトドリフトの誤検出を少なくすることができる。
生成部152は、学習済みのオリジナルモデルであるニューラルネットワークの所定の層における重み及びバイアスを変化させることにより、複数のニューラルネットワークをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがニューラルネットワークである場合にレプリカモデルを生成することができる。
生成部152は、学習済みのオリジナルモデルであるSVMの識別関数における各特徴量についての重み及びバイアスを変化させることにより、複数のSVMをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがSVMである場合にレプリカモデルを生成することができる。
生成部152は、学習済みのオリジナルモデルであるロジスティック回帰モデルの決定関数における各特徴量についての重み及びバイアスを変化させることにより、複数のロジスティック回帰モデルをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがロジスティック回帰モデルである場合にレプリカモデルを生成することができる。
生成部152は、学習済みのオリジナルモデルである決定木の情報利得の閾値を変化させることにより、複数の決定木をレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルが決定木である場合にレプリカモデルを生成することができる。
学習部151は、検出部154が差異を検出した場合、所定のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、コンセプトドリフトにオリジナルモデルを適合させることができる。
(incremental driftの検出に関する効果)
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量でincremental driftを検出することができる。
検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。表示制御部155は、複数の時間のそれぞれの指標に関する情報を画面に表示させる。表示制御部155は、さらに、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間の指標に関する情報を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間の指標に関する情報と異なる態様で表示させる。この結果、検出装置10は、時系列データのincremental driftを検出し、検出結果を直感的な態様により提示することができる。
表示制御部155は、複数の時間のそれぞれの指標を折れ線グラフで表示させる。表示制御部155は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。この結果、検出装置10は、時系列データのincremental driftを検出し、検出結果を直感的な態様により提示することができる。
表示制御部155は、学習データをレプリカモデルに入力して得られる出力の分布のヒストグラム、及び、指定された時間のデータをレプリカモデルに入力して得られる出力の分布を示すヒストグラムを画面に表示させる。この結果、検出装置10は、コンセプトドリフトの発生を多様な側面から提示し、ユーザの理解を促すことができる。
学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、incremental driftにオリジナルモデルを適合させることができる。
(sudden driftの検出に関する効果)
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標の時系列での変化が所定の条件を満たす場合、ユーザが対応する必要があるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量で時系列データのsudden driftを検出することができる。
検出部154は、指標の時系列での変化の量が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、時系列データのsudden driftを検出することができる。
学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、sudden driftにオリジナルモデルを適合させることができる。
(合計値表示に関する効果)
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。表示制御部155は、検出部154が取得した各分布の差異の大きさを示す指標の、一定期間ごとの合計値を画面に表示させる。この結果、検出装置10は、少ない計算量で所定の期間にユーザが対応する必要があるコンセプトドリフトが発生したことを検出することができる。
検出部154は、指標又は合計値が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、コンセプトドリフトに関する情報を画面に表示させる。この結果、検出装置10は、狭い時間の範囲及び広い時間の範囲の両方でユーザが対応する必要のあるコンセプトドリフトの発生を検出することができる。
表示制御部155は、複数の時間ごとの指標に関する情報を表示する画面と、一定期間ごとの合計値に関する情報を表示する画面とを切り替えて表示させる。この結果、検出装置10は、狭い時間の範囲及び広い時間の範囲の両方のコンセプトドリフトに関する情報を提示することができる。
学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、コンセプトドリフトにオリジナルモデルを適合させることができる。
(recurring driftの検出に関する効果)
生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標が、一定の周期で所定の条件を満たす場合、ユーザが対応する必要があるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量で時系列データのrecurring driftを検出することができる。
検出部154は、指標が一定期間ごとに閾値以上になる場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、時系列データのrecurring driftを検出することができる。
学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、所定の条件を満たす時間のデータを用いて新しいモデルの学習を行う。この結果、検出装置10は、recurring driftに新しいモデルを適合させることができる。
[他の実施例]
上記の実施例では、オリジナルモデル及びレプリカモデルのアルゴリズムがニューラルネットワークである場合の例を説明した。一方で、検出装置10は、各モデルのアルゴリズムがニューラルネットワーク以外のアルゴリズムである場合であっても、コンセプトドリフトの検出を行うことができる。
例えば、アルゴリズムはSVM(Support Vector Machine)であってもよい。この場合、生成部152は、学習済みのオリジナルモデルであるSVMの識別関数における各特徴量についての重み及びバイアスを変化させることにより、複数のSVMをレプリカモデルとして生成する。(3)式は、SVMの識別関数である。生成部152は、識別関数の重みai及びバイアスbに乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
同様に、生成部152は、学習済みのオリジナルモデルであるロジスティック回帰モデルの決定関数における各特徴量についての重み及びバイアスを変化させることにより、複数のロジスティック回帰モデルをレプリカモデルとして生成することができる。(4)式は、ロジスティック回帰の決定関数である。生成部152は、決定関数の重みwi及びバイアスbに乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
さらに、生成部152は、学習済みのオリジナルモデルである決定木の情報利得の閾値を変化させることにより、複数の決定木をレプリカモデルとして生成することができる。生成部152は、各質問の情報利得の閾値に乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
図18は、決定木のパラメータについて説明するための図である。例えば、「温度25℃以上?」という質問の情報利得の閾値は25である。生成部152は、25に乱数を掛けて得られる25.1や24.5といった値を使って、「温度25.1℃以上?」、「温度24.5℃以上?」といった質問を持つ決定木をレプリカモデルとして生成することができる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
図19は、ハードウェア構成例を説明する図である。図19に示すように、検出装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図19に示した各部は、バス等で相互に接続される。
通信インタフェース10aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD10bは、図2に示した機能を動作させるプログラムやDBを記憶する。
プロセッサ10dは、図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、学習部151、生成部152、計算部153、検出部154及び表示制御部155と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、学習部151、生成部152、計算部153、検出部154及び表示制御部155等と同様の処理を実行するプロセスを実行する。
このように検出装置10は、プログラムを読み出して実行することで検出方法又は表示方法を実行する情報処理装置として動作する。また、検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。