(57)【要約】【課題】高精度な確率を出力可能なロジスティック回帰モデルの重みを少ない更新回数で得る。【解決手段】読み出し手段は、推定対象変数と、複数の説明変数とを含む複数の学習データを格納するデータ集合記憶装置から、１つの学習データを読み出す。更新手段は、読み出された学習データと、前記説明変数の重みとに基づきロジスティック損失を計算し、前記損失が不感応パラメータより大きいときは、前記損失と前記不感応パラメータとの差を０にする、または０に近づけるように、前記重みを平均、重み信頼度を分散とする多変量正規分布について前記重みおよび前記重み信頼度の更新前後の分布の差を表す尺度を最小化するとともに、前記読み出された学習データに含まれる前記複数の説明変数に応じて前記多変量正規分布の分散を最小化することにより、前記重みと前記重み信頼度を更新する重みを更新する。制御手段は、終了条件が満足されるまで、前記読み出し手段と、前記更新手段の処理を繰り返し行うよう制御する。【選択図】図１
2014146161.tif 000002
【特許請求の範囲】
【請求項１】
複数の説明変数と前記説明変数に対応する各重みとから推定対象について所定事象が発生する確率を計算するためのロジスティック回帰モデルの前記重みを推定するモデル推定装置であって、
前記所定事象が発生したかを２値で表現した推定対象変数と、前記所定事象の発生有無に影響を与える複数の説明変数とを含む複数の学習データを格納するデータ集合記憶装置から、前記学習データを読み出す読み出し手段と、
前記読み出し手段によって読み出された学習データと、前記各重みとに基づきロジスティック損失または指数損失を計算し、前記ロジスティック損失または指数損失が不感応パラメータより大きい場合に、前記ロジスティック損失または指数損失と前記不感応パラメータとの差を０にする、または０に近づけるように、前記重みを平均、重み信頼度を分散とする多変量正規分布について前記重みおよび前記重み信頼度の更新前後の分布の差を表す尺度を最小化するとともに、前記読み出された学習データに含まれる前記複数の説明変数に応じて前記分散を最小化することにより、前記重みと前記重み信頼度を更新する更新手段と、
あらかじめ与えられた終了条件が満足されるまで、前記読み出し手段と前記更新手段の処理を繰り返し行うよう制御する制御手段と、
を備えたモデル推定装置。
【請求項２】
前記更新手段は、アグレッシブパラメータを用いて前記重みの更新前後の幅である重み更新幅の絶対値が小さくなるよう計算する
請求項１に記載のモデル推定装置。
【請求項３】
前記更新手段は、
前記ロジスティック損失または指数損失と前記不感応パラメータとの差がアグレッシブパラメータより大きいときは、前記ロジスティック損失または指数損失と前記不感応パラメータとの差をアグレッシブパラメータに置き換えて前記重みを更新する、
もしくは、
アグレッシブパラメータを勾配係数として用いて前記ロジスティック損失または前記指数損失を計算する
請求項１または２に記載のモデル推定装置。
【請求項４】
前記更新手段は、
【数１】
2014146161.tif 000039
により重み信頼度を更新し、
Σtは更新前の重み信頼度、xtは説明変数、
【数２】
2014146161.tif 000040
はxtの転置、rは重み信頼度調整パラメータである
請求項１ないし３のいずれか一項に記載のモデル推定装置。
【請求項５】
前記あらかじめ指定された終了条件は、前記読み出し手段と前記更新手段の処理を一定回数繰り返すことである
請求項１ないし４のいずれか一項に記載のモデル推定装置。
【請求項６】
前記あらかじめ指定された終了条件は、前記重みの更新前後の幅である重み更新幅が収束条件を満たしたこと
である請求項１ないし４のいずれか一項に記載のモデル推定装置。
【請求項７】
前記読み出し手段は、前記学習データをランダムに読み出す
請求項１ないし６のいずれか一項に記載のモデル推定装置。
【請求項８】
前記重み信頼度は、前記多変量正規分布の分散共分散をあらわす行列、あるいは、前記行列の、対角成分を取りだしたベクトルもしくは対角行列によって表される
請求項１ないし６のいずれか一項に記載のモデル推定装置。
【請求項９】
前記複数の説明変数は、センサデータ、動画像の特徴量ベクトル、テキストの素性データ、商品データのいずれかを含む
請求項１ないし８のいずれか一項に記載のモデル推定装置。
【請求項１０】
前記データ集合記憶手段に記憶された学習データの説明変数は、予め外れ値が除去または異常値が除去された
請求項１ないし９のいずれか一項に記載のモデル推定装置。
【請求項１１】
前記更新手段によって最終的に更新した重みと、複数の説明変数とに基づき、前記ロジスティック回帰モデルにしたがって、前記所定事象が発生する確率を推定する確率推定手段
をさらに備えた請求項１ないし１０のいずれか一項に記載のモデル推定装置。
【請求項１２】
前記確率推定手段は、前記最終的に更新した重みに代えて、前記更新手段により更新された重みの平均を用いる
請求項１１に記載のモデル推定装置。
【請求項１３】
複数の説明変数と前記説明変数の各重みとから推定対象について所定事象が発生する確率を計算するためのロジスティック回帰モデルの前記重みを推定するデータ処理方法であって、
前記所定事象が発生したかを２値で表現した推定対象変数と、前記所定事象の発生有無に影響を与える複数の説明変数とを含む複数の学習データを格納するデータ集合記憶手段から前記学習データを読み出す読み出しステップと、
前記読み出しステップによって読み出された学習データと、前記各重みとに基づきロジスティック損失または指数損失を計算し、前記ロジスティック損失または指数損失が不感応パラメータより大きい場合に、前記ロジスティック損失または指数損失と前記不感応パラメータとの差を０にする、または０に近づけるように、前記重みを平均、重み信頼度を分散とする多変量正規分布について前記重みおよび前記重み信頼度の更新前後の分布の差を表す尺度を最小化するとともに、前記読み出された学習データに含まれる前記複数の説明変数に応じて前記多変量正規分布の分散を最小化することにより、前記重みと前記重み信頼度を更新する更新ステップと、
あらかじめ与えられた終了条件が満足されるまで、前記読み出しステップと、前記更新ステップとが繰り返し行われるよう制御する制御ステップと、
を備えたモデル推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデル推定装置およびその方法に関する。
【背景技術】
【０００２】
ロジスティック回帰モデルの重みを推定する方法として、学習用のデータを１つ読み込むごとにロジスティック回帰モデルの重みを逐次更新する方法（オンラインロジスティック回帰モデルの逐次的重み更新方法）が知られている。具体的な方法として、損失関数の勾配に基づいて重みの更新を行う方法（第１の関連技術）が知られている。この第１の関連技術では、高精度なモデル出力（確率）が得られる重みを取得するまでに必要な重み更新回数や、モデルの精度が、単位更新幅を表すパラメータに依存しており、最適なパラメータ設定をするのが難しいという問題がある。また、重みごとの学習度を考慮していないため、更新回数が多くなりやすいという問題もある。
【０００３】
また、２値判別問題において、逐次的に読み込んだデータの損失を0とするあるいは最小化するよう重み更新を行うPassive Aggressiveアルゴリズムと類似の重み更新を行う方法が知られている（第２の関連技術）。この第２の関連技術では、重みごとの学習度を考慮していないため更新回数が多くなりがちで、精度も高くなりにくいという問題がある。
【０００４】
また、２値判別問題において、各重みの学習度に基づく更新幅の調整と、逐次的に読み込んだデータに対し損失関数を最小にするよう重み更新とを行う方法が知られている（第３の関連技術）。しかしながら、この第３の関連技術では、２値判別問題のみに対応しており、ロジスティック回帰モデルのような確率出力には対応していない。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】確率的勾配降下法(英：Stochastic Gradient Descent, SGD)、参考文献：「わかりやすいパターン認識(石井健一郎ら著,オーム社)」等に記載
【非特許文献２】The Learning Behind Gmail Priority Inbox、D. Aberdeen et.al., NIPS2010 Workshop on Learning on Cores, Clusters and Clouds
【非特許文献３】K. Crammer et. al , Online Passive Aggressive Algorithm, Journal of Machine Learning Reseaerch, Vol.7, pp.551-585
【非特許文献４】K. Crammer et. al., Adaptive Regularization of Weight Vectors, NIPS2009, pp.414-422
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の一側面は、高精度な確率を出力可能とするロジスティック回帰モデルの重みを少ない更新回数で得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様としてのモデル推定装置は、複数の説明変数と前記説明変数に対応する各重みとから推定対象について所定事象が発生する確率を計算するためのロジスティック回帰モデルの前記重みを推定するモデル推定装置であって、読み出し手段と、更新手段と、制御手段とを備える。
【０００８】
前記読み出し手段は、前記所定事象が発生したかを２値で表現した推定対象変数と、前記所定事象の発生有無に影響を与える複数の説明変数とを含む複数の学習データを格納するデータ集合記憶装置から、前記学習データを読み出す。
【０００９】
前記更新手段は、前記読み出し手段によって読み出された学習データと、前記各重みとに基づきロジスティック損失または指数損失を計算し、前記ロジスティック損失または指数損失が不感応パラメータより大きい場合に、前記ロジスティック損失または指数損失と前記不感応パラメータとの差を０にする、または０に近づけるように、前記重みを平均、重み信頼度を分散とする多変量正規分布について前記重みおよび前記重み信頼度の更新前後の分布の差を表す尺度を最小化すると同時に、前記読み出された学習データに含まれる前記複数の説明変数に応じて前記分散を最小化することにより、前記重みと前記重み信頼度を更新する。
【００１０】
前記制御手段は、あらかじめ与えられた終了条件が満足されるまで、前記読み出し手段と前記更新手段の処理を繰り返し行うよう制御する。
【図面の簡単な説明】
【００１１】
【図１】本発明のモデル推定装置の一実施形態としての確率推定装置のブロック図。
【図２】本発明の一実施の形態に関わる重み推定処理の流れを示すフローチャート。
【図３】重み更新処理の手順の第１の例を示すフローチャート。
【図４】重み更新処理の手順の第２の例を示すフローチャート。
【図５】重み更新処理の手順の第３の例を示すフローチャート。
【図６】重み更新処理の手順の第４の例を示すフローチャート。
【図７】重み更新処理の手順の第５の例を示すフローチャート。
【図８】重み更新処理の手順の第６の例を示すフローチャート。
【図９】重み更新処理の手順の第７の例を示すフローチャート。
【図１０】重み更新処理の手順の第８の例を示すフローチャート。
【図１１】重み更新処理の手順の第９の例を示すフローチャート。
【図１２】重み更新処理の手順の第１０の例を示すフローチャート。
【図１３】センサデータを利用した故障確率算出の例を説明するための図。
【図１４】動画像の特徴量を利用したオブジェクト認識の例を説明するための図。
【図１５】テキストの素性データを利用したテキストの評判判定を説明するための図。
【図１６】顧客の購買履歴データを利用した継続購入顧客判定を説明するための図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１３】
図１は、本発明のモデル推定装置の一実施形態としての確率推定装置のブロック図である。
【００１４】
本確率推定装置は、データ集合記憶手段１１、重み記憶手段１２、重み信頼度記憶部１３、不感応パラメータ指定手段１４、アグレッシブパラメータ指定手段１５、データ逐次読み込み手段１６、重み更新手段１７、重み信頼度調整パラメータ指定手段１８、重み更新終了条件指定手段１９、重み信頼度更新手段２０、データ読み込み制御手段２１、および確率推定手段２２を備える。
【００１５】
本装置は、これらの手段を用いて、ロジスティック回帰モデルの重みを逐次的な更新により推定する機能（重み推定機能）と、推定された重みに基づきロジスティック回帰モデルに従って所定事象が発生する確率を推定する機能（確率推定機能）とを実行する。重み推定機能は、手段１１〜２１を用いて行われ、確率推定は手段１１と２２を用いて行われる。
【００１６】
一般に、ロジスティック回帰モデルは、次の式によって表すことができる。
【数１】
2014146161.tif 000003
pは、出力（所定事象が発生する確率）、wは重みデータ（重みベクトル）、xは説明変数データ（説明変数ベクトル）を表す。ベクトルの要素数をＮとすれば、w=(a1,a2,a3,…aN), x=(b1,b2,b3,…,bN)と表すことができる。a1,a2,a3,…aNは重みベクトルの各要素（重み）、b1,b2,b3,…,bNは説明変数ベクトルの各要素（説明変数）である。
【００１７】
データ集合記憶手段１１は、説明変数データと推定対象データとを格納する。これらのデータは、問題に応じて予め適切な前処理を行っておくことが望ましい。たとえば、外れ値や異常値等を除去しておくことが望ましい。
【００１８】
推定対象データは、推定対象に所定事象が発生したかを1もしくは-1の２値で表したデータである。たとえば所定事象が発生した場合が1、発生しない場合が-1で表される。所定事象の発生有無が1もしくは-1となる２値で表されていない場合、データ集合記憶手段１１に記憶する前に、1もしくは-1の２値で表すデータに変換しておく。
【００１９】
説明変数データは、所定事象の発生の有無に影響を与える複数の説明変数を含むベクトルである。説明変数データは、推定対象データと１対１に対応付けられた数値ベクトルデータである。数値ではない名義変数データは、データ集合記憶手段１１に記憶する前に数値に変換しておく。変換方法は、問題に応じた変換ルールを用いてもよいし、ダミー変数変換を用いてもよい。
【００２０】
データ集合記憶手段１１は、ハードディスクやフラッシュメモリ等、必要な記憶容量やアクセス速度の条件を満たすものを用いて実現する。
【００２１】
重み記憶手段１２は、複数の重みを含む重みデータ（重みベクトル）を記憶する。重みデータは、数値で構成されるベクトルデータである。重みデータの各要素と、説明変数データの各要素は互いに対応づけられている。重みデータと、説明変数データを上記式（１）に入力することで、所定事象が発生する確率が出力される。なお、所定事象が発生しない確率＝１−（所定事象が発生する確率）の関係がある。最終的に更新された重みではなく、推定過程で得られた重みの平均値を使って確率推定を行うことも可能である。
【００２２】
重み信頼度記憶手段１３は、各重みに対する重み信頼度を表す重み信頼度データを記憶する手段である。重み信頼度データは、正の数値で構成される行列データである。重み信頼度データの各要素は、重みデータの各要素と対応づけられている。行列データの演算時間短縮あるいは記憶容量の節約のため、重み信頼度データとして、対角行列もしくは対角行列の対角成分からなるベクトルを用いてもよい。重み信頼度データとしてベクトルを用いた場合、後で詳述する重み信頼度更新幅の算出方法において、対角行列と同じ演算を行う。
【００２３】
重み信頼度が高いほど、重み信頼度の値は小さな値になる。重み信頼度データを使うことで、重みデータの要素ごとに、学習度に応じた更新幅での重み更新が可能になる。重み信頼度データによる重み更新への寄与については後で詳述する。
【００２４】
不感応パラメータ指定手段１４は、不感応パラメータを指定する手段である。不感応パラメータは、後述する損失関数に含まれるパラメータの１つである。不感応パラメータの調整により、損失関数によって算出される損失の制御ができる。不感応パラメータについては後で詳述する。
【００２５】
アグレッシブパラメータ指定手段１５は、アグレッシブパラメータを指定する手段である。重み更新にアグレッシブパラメータを利用しない場合、アグレッシブパラメータ指定手段１５はなくともよい。アグレッシブパラメータについては後で詳述する。
【００２６】
データ逐次読み込み手段１６は、データ読み込み制御手段２１による制御の下、データ集合記憶手段１１から、推定対象データと説明変数データを対応付けた１つ分のベクトルデータを読み込み、重み更新手段１７に出力する。このとき読み込まれた１つ分のベクトルデータを、これ以降、学習データと呼ぶ。
【００２７】
重み更新手段１７は、不感応パラメータ指定手段１４によって指定された不感応パラメータと、アグレッシブパラメータ指定手段１５によって指定されたアグレッシブパラメータと、データ逐次読み込み手段１６によって読み込まれた学習データと、重み信頼度記憶手段１３に記憶されている重み信頼度データと、重み記憶手段１２に記憶されている重みデータに基づき、重み更新処理を行う。重み更新処理では重み更新を行うかを判断し、行う場合は、各重みの重み更新幅をそれぞれ算出し、各重み更新幅を、当該重みデータの対応する要素（重み）に加算することで、重みデータを更新する。重み更新幅は負の値も取り得る。
【００２８】
データ逐次読み込み手段１６は、重み更新手段１７によって重みデータが更新された場合に、重み信頼度更新手段２０に、重み信頼度データの更新を行うよう指示する。
【００２９】
重み信頼度調整パラメータ指定手段１８は、重み信頼度調整パラメータを指定する手段である。重み信頼度調整パラメータについては後で詳述する。
【００３０】
重み信頼度更新手段２０は、重み信頼度調整パラメータ指定手段１８によって指定された重み信頼度調整パラメータと、データ逐次読み込み手段１６によって読み込まれた学習データに含まれる説明変数データ（重み更新処理に用いられた説明変数データと同じデータ）と、重み信頼度記憶手段１３に記憶されている重み信頼度データから、各重み信頼度の更新幅（重み信頼度更新幅）を算出する。そして、当該各重み信頼度から重み信頼度更新幅を減算することで、重み信頼度データを更新する。重み信頼度更新幅の算出方法および更新方法については後で詳述する。
【００３１】
重み更新終了条件指定手段１９は、手段１１〜２０により行われる重み推定処理の終了条件（重み更新終了条件）を指定する手段である。重み更新終了条件には、たとえば、（１）データの逐次読み込み回数を用いる方法と、（２）重み更新幅の絶対値を用いる方法がある。
【００３２】
上記（１）の方法には、（１−Ａ）データ集合を構成する個々のデータの読み込み回数を条件とする方法と、（１−Ｂ）データ集合の読み込み回数を条件とする方法がある。
【００３３】
上記（１−Ａ）の方法では、データ集合を構成する個々のデータの読み込み回数が、重み更新終了条件指定手段１９によって指定された値に達することを、重み更新の終了条件とする。例えば、データ集合に含まれるデータの数が10、重み更新終了条件の指定値が15であるとする。この場合、データ集合全体に対する処理を1回行った後、5つのデータの処理を終えたときに、データの読み込み回数が15回となり、重み更新終了条件が満たされる。
【００３４】
上記（１−Ｂ）のデータ集合の読み込み回数を条件とする方法では、データ集合全体に対するデータ読み込みを1回として数え、データ読み込み回数が、重み更新終了条件指定手段１９によって指定された値に達することを、重み更新の終了条件とする。例えば、重み更新終了条件の指定値が3であれば、データ集合全体に対する処理を3回行ったときにデータ集合全体に対するデータの読み込み回数が3回となり、重み更新終了条件が満たされる。
【００３５】
上記（２）における重み更新終了条件として重み更新幅の絶対値を用いる方法では、重みの更新幅の絶対値が、重み更新終了条件指定手段１９によって指定された値以下になることを終了条件とする。終了条件は重みの更新幅の絶対値が安定的に十分小さくなっていると判断できるものであれば何でもよく、問題に応じて適切なものを使う。例えば、1回でも10個の重みの重み更新幅の絶対値が一度に指定値以下になることを条件としてもよいし、5回連続して10個の重みの重み更新幅の絶対値が一度に指定値以下になることを条件としてもよいし、1回でも一定比率に対応する個数の重みの重み更新幅の絶対値が一度に指定値以下になることを条件としてもよい。
【００３６】
データ読み込み制御手段２１は、重み更新終了条件指定手段１９によって指定された重み更新終了条件が満たされたかの判定を行う。重み更新終了条件が満たされていなければ、データ読み込み制御手段２１は、データ逐次読み込み手段１６に、次のデータの読み込みを行うよう制御する。重み終了条件を満たしていれば、重み推定処理を終了するよう制御する。
【００３７】
確率推定手段２２は、最終的に更新された重みデータと、データ集合記憶手段１１によって記憶されている説明変数データ、あるいは別途外部から与えられる説明変数データに基づき、式（１）を計算することで、推定対象に所定事象が発生する確率を得る。確率推定に用いる重みデータは、重み推定処理の過程で繰り返し算出（更新）された重みデータの平均値でもよい。
【００３８】
図２は、図１の装置の手段１１〜２０により行われる重み推定処理の流れを示すフローチャートである。
【００３９】
推定対象データおよび説明変数データはデータ集合記憶手段１１に予め準備しておくとともに、重み更新終了条件も重み更新終了条件指定手段１９を用いて予め指定しておく。以降の説明では、必要に応じて、推定対象データをyと表記し、説明変数データをxと表記する。
【００４０】
まず、不感応パラメータ指定手段１４を用いて、不感応パラメータを指定する（ステップＳ１１）。以降の説明では、必要に応じて不感応パラメータをεと表記する。不感応パラメータには、たとえば、log(2)≒0.693よりも小さな値を指定する。
【００４１】
次にアグレッシブパラメータ指定手段１５を用いて、アグレッシブパラメータを指定する（ステップＳ１２）。以降の説明では、必要に応じてアグレッシブパラメータをＣと表記する。なお、アグレッシブパラメータを利用しない場合は、本ステップは不要である。
【００４２】
次に、重み信頼度調整パラメータを用いて、重み信頼度調整パラメータを指定する（ステップＳ１３）。以降の説明では、必要に応じて重み信頼度調整パラメータをrと表記する。重み信頼度調整パラメータは、問題やデータの性質に応じて適当な正の値を指定する。重み信頼度調整パラメータの値が大きいほど、重み信頼度の更新幅は小さくなる。重み信頼度の更新幅が小さいと、重み信頼度の値が大きい状態（すなわち重み信頼度が低い状態）が継続しやすい。
【００４３】
なお、不感応パラメータ、アグレッシブパラメータ、重み信頼度調整パラメータは、学習データを読み込む前であれば、いずれを先に指定しても構わない。
【００４４】
次に、データ逐次読み込み手段１６が、学習データを1つ分読み込む（ステップＳ１４）。類似するデータを連続して読み込むことによる偏った重み更新を回避するため、データ読み込みは、ランダム順で行うことが望ましい。
【００４５】
次に、重み更新手段１７が、重み更新処理を行う（ステップＳ１５）。重み更新処理では、重みデータの更新が必要かを判断し、必要であれば、重みデータを更新する。図３から図１２は重み更新処理の手順を示すフローチャートである。図３から図１２のいずれかの手順を行う。以降の説明では、必要に応じて重み信頼度データをΣと表記する。また、重み更新がt回目であることを添え字tで表す。
【００４６】
図３から図１２に示すいずれの手順でも、重み更新幅は
【数２】
2014146161.tif 000004
によって算出され、wtに
【数３】
2014146161.tif 000005
を加算することで、重みデータが更新される（Ｓ１０３、Ｓ２０３、Ｓ３０４、Ｓ４０５、Ｓ５０３、Ｓ６０３、Ｓ７０３、Ｓ８０３、Ｓ９０５、Ｓ１００３）。
【００４７】
図３〜図１２に示す手順の違いは、重みデータを更新するか否かの判断（Ｓ１０１、Ｓ２０１、Ｓ３０１、Ｓ４０１、Ｓ５０１、Ｓ６０１、Ｓ７０１、Ｓ８０１、Ｓ９０１、Ｓ１００１）と、上記重み更新幅
【数４】
2014146161.tif 000006
を構成するτtの計算方法（Ｓ１０２、Ｓ２０２、Ｓ３０２、Ｓ４０２〜Ｓ４０４、Ｓ５０２、Ｓ６０２、Ｓ７０２、Ｓ８０２、Ｓ９０２〜Ｓ９０４、Ｓ１００２）である。図３〜図１２の詳細は後述する。
【００４８】
なお、重みデータを更新する際、更新前の重みデータを消去することなく、保存しておいても良い。すなわち重みデータの更新の履歴を記憶してもよい。データ集合記憶手段１１からのデータの読み出し回数も記憶してもよい。重みデータを更新しないと判断された場合は、当該重みデータと同じデータを記憶し、読み出し回数をインクリメントしてもよい。更新の履歴は、必要に応じて、図２のステップＳ１９の処理で用いられる。
【００４９】
次に、重み更新処理によって重みデータが更新されたかを判断し（ステップＳ１６）、更新された場合（ＹＥＳ）、次に重み信頼度データを更新する（ステップＳ１７）。重み信頼度データは、以下の式にしたがって更新する。
【数５】
2014146161.tif 000007
はxtの転置である。重み信頼度の更新式の根拠については後で詳述する。
【数６】
2014146161.tif 000008
【００５０】
重みデータが更新されなかった場合（ステップＳ１６のＮＯ）、重み信頼度データの更新は行わない。ただし、重みデータが更新されなかった場合に、重み信頼度データの更新を行う構成も可能であり、この構成が排除されるものではない。
【００５１】
以上に示した学習データの読み込みから重み信頼度更新までが、１データ分の処理である。
【００５２】
次に、データ読み込み制御手段２１が、重み更新終了条件が満たされているか判定する（ステップＳ１８）。重み更新終了条件が満たされていれば（ＹＥＳ）、本フローの処理を終了する。重み更新終了条件が満たされていなければ、再度、学習データを読み込み、一連の処理（ステップＳ１５、Ｓ１６、Ｓ１７）を継続する。
【００５３】
この後、ステップＳ１９で、ステップＳ１５、Ｓ１６、Ｓ１７のループで繰り返し計算された重みデータの平均を算出してもよい。確率推定手段２２で重みデータの平均を使う場合、本ステップで事前に平均を計算しておくことで、確率推定時に平均算出を行うことを回避できる。よって、高速な確率推定が可能になる。平均の算出のため、前述したように、データ集合記憶手段１１からのデータの読み出し回数を重みデータの更新履歴とともに記憶してもよい。
【００５４】
以下、重み更新式の導出方法、および前述の重み信頼度更新式（２）の導出方法について説明する。
【００５５】
重み更新式および重み信頼度更新式は、ラグランジュの未定乗数法などを用いて、次の制約条件付最適化問題を解くことによって得ることができる。
【数７】
2014146161.tif 000009
添え字がついていないΣとwは、算出したい未知の値を示す変数である。最適化問題を解き、具体的な値が算出されたものが添え字t+1がついたΣとwになる。すなわち、右辺のargminの中身を最小化するように計算されたwとΣの値が、左辺の添え字t+1がついたwとΣに代入される。「subject to」は制約条件を意味する。
【００５６】
N(w,Σ)は、平均をw、分散をΣとする多変量正規分布である。平均は重み、分散は重み信頼度に対応している。wはベクトルである。Σは分散共分散行列、あるいは、分散共分散行列の非対角成分を0とした対角行列である。
【００５７】
DKLは、カルバック・ライブラ情報量で、2つの分布の差を示す尺度である。多変量正規分布N(w,Σ)とN(wt,Σt)のカルバック・ライブラ情報量は次の式で計算される。detは行列式、Trは行列の対角成分の和を表す。
【数８】
2014146161.tif 000010
l(w;(x,y))は損失関数であり、損失関数から算出される値を損失と呼ぶ。なお、損失は、後述のロジスティック損失あるいは指数損失とは区別される。損失関数には次のような関数を使うことができる。
【数９】
2014146161.tif 000011
【００５８】
式（５）、式（６）、式（７）の損失関数は、ロジスティック損失を利用した損失関数である。式（５）では、log(1+e^(-y(w・x)))の部分がロジスティック損失と呼ばれているが、これをそのまま利用すると、重み更新幅が極度に大きくなる場合がある。このため、重み更新に適した形にするため、不感応パラメータεを導入している。εが大きいほど、損失が小さくなりやすい。また、損失関数にmax()が含まれているのは、損失の最小値を0にするためである。
【００５９】
式（５）の損失関数を使って前述の制約問題を解くことで、図３のステップＳ１０２、Ｓ１０３のブロック内に記述されている更新式が得られる。さらに、非特許文献３に記載のアルゴリズムPAI、PAIIと同様にアグレッシブパラメータＣを導入すると、それぞれ図４のステップＳ２０２、Ｓ２０３のブロック内に記述された更新式と、図５のステップＳ３０２、Ｓ３０３のブロック内に記述された更新式が得られる。図４および図５に示す更新式では損失を０にする更新ではなく、損失を０に近づける更新となる。
【００６０】
式（６）の損失関数は、式（５）の損失関数の上限値をＣとしたものである。図３のステップＳ１０２、Ｓ１０３において、式（５）の損失関数から計算される損失がＣを超えたときに損失をＣに置き換えることで、図６のステップＳ４０３〜Ｓ４０５のブロック内に記述された更新式が得られる。図６に示す更新式では、式（５）の損失関数から計算される損失がＣを超えた場合、損失を０にする更新ではなく、損失を０に近づける更新となる。
【００６１】
式（７）の損失関数は、式（５）の損失関数の勾配をＣによって調節可能にしたものである。つまりＣを、ロジスティック損失の勾配係数として用いている。この損失関数を使って前述の制約問題を解くことで、図７のステップＳ５０２、Ｓ５０３のブロック内に記述された更新式が得られる。
【００６２】
式（８）、式（９）、式（１０）の損失関数は、指数損失を利用した損失関数である。式（８）では、exp(-y(w・x))の部分が指数損失と呼ばれる。
【００６３】
式（８）の損失関数を使って前述の制約問題を解くことで、図８のステップＳ６０２、Ｓ６０３のブロック内に記述された更新式が得られる。さらに、非特許文献３に記載のアルゴリズムPAI、PAIIと同様にアグレッシブパラメータＣを導入すると、それぞれ図９のステップＳ７０２、Ｓ７０３のブロック内に記述された更新式、図１０のステップＳ８０２、Ｓ８０３のブロック内に記述された更新式が得られる。図９および図１０に示す更新式では損失を０にする更新にはならず、損失を０に近づける更新となる。
【００６４】
式（９）の損失関数は、式（８）の損失関数の上限値をＣとしたものである。図８のステップＳ６０２、Ｓ６０３において、式（８）の損失関数から計算される損失がＣを超えたときに損失をＣに置き換えることで、図１１のステップＳ９０３、Ｓ９０４、Ｓ９０５のブロック内に記述された更新式が得られる。図１１に示す更新式では、式（８）の損失関数から計算される損失がＣを超えた場合、損失を０にする更新ではなく、損失を０に近づける更新となる。
【００６５】
式（１０）の損失関数は、式（８）の損失関数の勾配をアグレッシブパラメータＣによって調節可能にしたものである。つまり、Ｃを、指数損失の勾配係数として用いている。これを使って前述の制約問題を解くことで、図１２のステップＳ１００２、Ｓ１００３のブロック内に記述された更新式が得られる。
【００６６】
損失関数l(w;(x,y))は、重みwによって、説明変数データxから、推定対象データyを推定しにくい（yの推定誤差が大きい）ほど、大きな値となる関数である。yとw・xの符号が逆の場合、|w・x|が大きいほど損失は大きくなる。yとw・xの符号が同一の場合、|w・x|が小さいほど損失は大きくなる。ただし、式（５）等の損失関数では、yとw・xの符号が同一の場合、不感応パラメータεと比較して|w・x|が十分大きいと、損失は０になる。
【００６７】
アグレッシブパラメータＣは、問題やデータの性質に応じて適当な正の値を指定する。アグレッシブパラメータの値が小さいほど、重みの更新幅は小さくなる。例えば、データのばらつきが大きい場合、重みの更新幅が過度に大きくなり精度の低下を招きやすいため、アグレッシブパラメータに適度に大きな値を指定することで、重み更新幅が過度に大きくなりにくくなるため精度低下が回避される。
【００６８】
前述の制約条件付最適化問題は、損失を０にしつつ（図３、図６〜図８、図１１、図１２の処理の場合）、あるいは０に近づけつつ（図４〜図６、図９〜図１１の処理の場合）、１ステップ前の重みと重み信頼度に基づく分布との差を最小化しかつ、説明変数データの大きさに応じて分散を最小化させている。１ステップ前の分布との差を最小化していることは、前に読み込んだデータの損失を０にさせる、あるいは０に近づける重みの情報を、可能な限り維持させていることを意味している。また、重み信頼度はその値が小さいほど信頼度が高いので、分散の最小化は、重み信頼度を高めていることを意味している。
【数１０】
2014146161.tif 000012
【００６９】
Σは更新されるほど値が小さくなり、重みwの更新幅を小さくさせる効果がある。仮にΣを使わない場合、xtの要素が大きいほど、重みwの更新幅も大きくなりやすいため、更新が十分行われた後でも重みwが大きく変化しやすく安定しない。しかし、Σを使うと、xtの要素の値が大きくとも、それに応じてΣも急激に小さくなり、重みwの更新幅も小さくなるので、重みwは安定した値になる。すなわち、上記のように、xtに応じたΣの更新が行われることで、Σに応じた重みwの更新が行われる。これが、重みの学習度に基づく更新幅の調整の仕組みである。
【００７０】
以下、図３〜図１２の重み更新の手順の詳細を説明する。
【００７１】
図３に示す重み更新手順では、ロジスティック損失
【数１１】
2014146161.tif 000013
が不感応パラメータεより大きいかを判断し（ステップＳ１０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数１２】
2014146161.tif 000014
によりτtを計算する（ステップＳ１０２）。なお、図における「←」は、←の右辺を左辺に代入することを意味する。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ１０３）。ステップＳ１０２、Ｓ１０３の処理は、ロジスティック損失と不感応パラメータとの差が０になるように、重みを更新していることに相当する。
【００７２】
図４に示す重み更新手順では、ロジスティック損失
【数１３】
2014146161.tif 000015
が不感応パラメータεより大きいかを判断し（ステップＳ２０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数１４】
2014146161.tif 000016
によりτtを計算する（ステップＳ２０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ２０３）。ステップＳ２０２、Ｓ２０３の処理は、ロジスティック損失と不感応パラメータとの差が０に近づくように、重みを更新していることに相当する。τtの上限をＣに抑えることで、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００７３】
図５に示す重み更新手順では、ロジスティック損失
【数１５】
2014146161.tif 000017
が不感応パラメータεより大きいかを判断し（ステップＳ３０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数１６】
2014146161.tif 000018
によりτtを計算する（ステップＳ３０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ３０３）。ステップＳ２０２、Ｓ２０３の処理は、ロジスティック損失と不感応パラメータとの差が０に近づくように、重みを更新していることに相当する。
【数１７】
2014146161.tif 000019
によってτtが大きくなりにくくなるため、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００７４】
図６に示す重み更新手順では、ロジスティック損失
【数１８】
2014146161.tif 000020
が不感応パラメータεより大きいかを判断し（ステップＳ４０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数１９】
2014146161.tif 000021
が成立するかを判断する（ステップＳ４０２）。つまり、ロジスティック損失と不感応パラメータとの差がアグレッシブパラメータより大きいかを判断する。アグレッシブパラメータより大きくないときは（ＮＯ）、図３のステップＳ１０２と同様、
【数２０】
2014146161.tif 000022
によりτtを計算する（ステップＳ４０４）。一方、アグレッシブパラメータより大きいときは（ＹＥＳ）、
【数２１】
2014146161.tif 000023
によりτtを計算する（ステップＳ４０３）。ステップＳ４０３またはＳ４０４の後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ４０５）。ステップＳ４０３の処理は、式（５）の損失関数から計算される損失が、アグレッシブパラメータの値より大きくなったときに、損失をアグレッシブパラメータの値に置き換えて重み更新幅を計算し、重みを更新していることに相当する。損失の上限をＣに抑えることで、外れ値などにより更新幅が大きくなり過ぎることを防止している。τtの上限をＣに抑えるのではなく、損失の上限をＣに抑えることで、εやΣによる重み更新幅の調整が働きやすくなっている。
【００７５】
図７に示す重み更新手順では、アグレッシブパラメータにより勾配が調整されたロジスティック損失
【数２２】
2014146161.tif 000024
が、不感応パラメータεより大きいかを判断し（ステップＳ５０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数２３】
2014146161.tif 000025
によりτtを計算する（ステップＳ５０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ５０３）。ステップＳ５０２、Ｓ５０３の処理は、ロジスティック損失と不感応パラメータとの差が０になるように、重みを更新していることに相当する。Ｃに１より小さい値を指定することでτtが大きくなりにくくなるため、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００７６】
図８に示す重み更新手順では、指数損失
【数２４】
2014146161.tif 000026
が不感応パラメータεより大きいかを判断し（ステップＳ６０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数２５】
2014146161.tif 000027
によりτtを計算する（ステップＳ６０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ６０３）。ステップＳ６０２、Ｓ６０３の処理は、指数損失と不感応パラメータとの差が０になるように、重みを更新していることに相当する。
【００７７】
図９に示す重み更新手順では、指数損失
【数２６】
2014146161.tif 000028
が不感応パラメータεより大きいかを判断し（ステップＳ７０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数２７】
2014146161.tif 000029
によりτtを計算する（ステップＳ７０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ７０３）。ステップＳ７０２、Ｓ７０３の処理は、指数損失と不感応パラメータとの差が０に近づくように、重みを更新していることに相当する。τtの上限をＣに抑えることで、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００７８】
図１０に示す重み更新手順では、指数損失
【数２８】
2014146161.tif 000030
が不感応パラメータεより大きいかを判断し（ステップＳ８０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数２９】
2014146161.tif 000031
によりτtを計算する（ステップＳ８０２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ８０３）。ステップＳ８０２、Ｓ８０３の処理は、指数損失と不感応パラメータとの差が０に近づくように、重みを更新していることに相当する。
【数３０】
2014146161.tif 000032
によってτtが大きくなりにくくなるため、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００７９】
図１１に示す重み更新手順では、指数損失
【数３１】
2014146161.tif 000033
が不感応パラメータεより大きいかを判断し（ステップＳ９０１）、不感応パラメータより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータより大きいときは（ＹＥＳ）、
【数３２】
2014146161.tif 000034
が成立するかを判断する（ステップＳ９０２）。つまり、指数損失と不感応パラメータとの差がアグレッシブパラメータより大きいかを判断する。アグレッシブパラメータより大きくないときは（ＮＯ）、図８のステップＳ６０２と同様、
【数３３】
2014146161.tif 000035
によりτtを計算する（ステップＳ９０４）。アグレッシブパラメータより大きいときは（ＹＥＳ）、
【数３４】
2014146161.tif 000036
によりτtを計算する（ステップＳ９０３）。ステップＳ９０３あるいはステップＳ９０４の後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ９０５）。ステップＳ９０３の処理は、式（８）の損失関数から計算される損失が、アグレッシブパラメータの値より大きくなったときに、損失をアグレッシブパラメータの値に置き換えて重み更新幅を計算し、重みを更新していることに相当する。損失の上限をＣに抑えることで、外れ値などにより更新幅が大きくなり過ぎることを防止している。τtの上限をＣに抑えるのではなく、損失の上限をＣに抑えることで、εやΣによる重み更新幅の調整が働きやすくなっている。
【００８０】
図１２に示す重み更新手順では、アグレッシブパラメータにより勾配が調整された指数損失
【数３５】
2014146161.tif 000037
が、不感応パラメータεより大きいかを判断し（ステップＳ１００１）、不感応パラメータεより大きくないときは（ＮＯ）、重み更新を行わない。不感応パラメータεより大きいときは（ＹＥＳ）、
【数３６】
2014146161.tif 000038
によりτtを計算する（ステップＳ１００２）。この後、τtytΣtxtによって重み更新幅を計算し、重み更新幅をwtに加算することで、更新された重みデータwt+1を得る（ステップＳ１００３）。ステップＳ１００２、Ｓ１００３の処理は、指数損失と不感応パラメータとの差が０になるように、重みを更新していることに相当する。Ｃに１より小さい値を指定することでτtが大きくなりにくくなるため、外れ値などにより更新幅が大きくなり過ぎることを防止している。
【００８１】
図３から図１２の手順のうちどれを用いるかは、問題やデータの性質に応じて適切に決定すればよい。例えば、ノイズデータがほとんど含まれない質の高いデータを用いる場合は、図３や図８の手順のいずれか用いる。例えば、不適切なデータの混入やノイズを多く含む質の低いデータを用いる場合は、アグレッシブパラメータＣに適度に小さな値を設定し、図４から図７、図９から図１２の手順のいずれかを用いる。
【００８２】
以下、本実施形態の具体例として例１〜例４を挙げる。
【００８３】
［例１］センサデータを使って、装置の障害または故障等の確率を推定することが可能である。この場合、センサデータを説明変数データ、障害または故障の有無を推定対象データとして、データ集合記憶手段１１に記憶しておく。必要に応じて、これらのデータに前処理を行っておく。本例では、障害有りまたは故障有りが、所定事象の発生有りに対応する。
【００８４】
図１３を用いて、センサデータを利用した故障確率算出について説明する。詳細な点検を行わなくとも、センサデータから故障有無が分かれば、不要な点検を回避することができる。装置には、温度計、湿度計、圧力計、番号で認識可能な複数のセンサが備わっており、これらからセンサデータを入手できるものとする。センサデータは適切な前処理を施すことで数値ベクトルに変換されると、本実施形態における説明変数データとして扱うことが可能である。図１３では、説明変数データである各計測値を装置ごとに記憶し、表形式で表している。また、装置が正常稼働しているときを-1、故障しているときを1として故障有無を表現し、そのときのセンサデータと対応付ければ、本実施形態における推定対象データとして扱うことができる。図１３では、推定対象データである故障有無に関して、装置２は故障しているので1、装置１と３は正常稼働しているので-1として記憶し、センサデータと対応付けている。複数の装置、あるいは、同一の装置から複数回得られた複数のセンサデータを使って、前述の重み更新を行うことで、故障確率の算出に必要な重みが得られる。この重みを利用することで、センサデータから故障確率を算出することができるため、確率に基づく故障推定が可能になる。さらに、遠隔でセンサデータを取得するシステムを使うことで、装置状態を遠隔監視し故障確率をすることも可能である。故障有無を確率として得ることができるため、柔軟な運用が可能である。故障判定ではなく、故障確率がわかることで、柔軟な対応が可能になる。故障が重大事故につながる場合は、故障確率が低くとも緊急に点検を行う必要がある。一方で、フォールトトレラントシステムを構成する装置であれば一部の装置の故障確率が多少高くとも緊急点検は不要であると判断できる。 
［例２］動画像の特徴量ベクトルデータを使って、オブジェクト認識をすることが可能である。この場合、動画像の特徴量ベクトルデータを説明変数データ、認識したいオブジェクトの有無を推定対象データとして、データ集合記憶手段１１に記憶しておく。必要に応じて、これらのデータに前処理を行っておく。本例では、オブジェクト有りが、所定事象の発生有りに対応する。
【００８５】
図１４を用いて、動画像の特徴量を利用したオブジェクト認識について説明する。人が確認しなくとも動画像から文字や顔・人物等を認識できれば、OCR(Optical Character Reader)や、動画からの特定場面切り出し、犯罪者の検出等が可能になる。数値化と、目的に応じた適切な特徴量抽出技術を用いることで、動画像や音声から特徴量を抽出することができる。特徴量抽出技術としては、例えば、主成分分析や、各種ウェーブレット、SIFT(Scale Invariant Feature Transform)、SURF(Speed-Up Robust Features)、HOG(Histogram of Oriented Gradients)のような技術を使うことで、動画像から特徴量を数値ベクトルとして抽出できる。これら抽出された特徴量ベクトルは、本実施形態における説明変数データとして扱うことが可能である。図１４では、各画素を1もしくは0に２値化した特徴量を画像ごとに説明変数データとして記憶し、表形式で表している。また、認識したいオブジェクトを含んでいれば1、含んでいなければ-1として認識対象物を表現し、特徴量ベクトルと対応付ければ、本実施形態における推定対象データとして扱うことができる。図１４では、認識対象物を円としており、画像１と３は円を含んでいるので1、画像２は円を含んでいないので-1と表現した推定対象データを、各画像の特徴量ベクトルと対応付けている。複数の画像を使って、前述の重み更新を行うことで、円の認識に必要な重みが得られ、この重みを使うことで画像に円が含まれているかを推定できる。
【００８６】
推定対象を、複数の文字や顔、人物等とする場合、各認識対象ごとに推定対象データを生成し、各認識対象ごとに認識に必要な重みを生成する。例えば、「あ」、「い」、「う」という文字を認識したい場合、それぞれに対応する重みを得ておき、認識したい文字を含む画像から各文字の認識確率を算出する。「あ」の確率が10%、「い」の確率が60%、「う」の確率が80%であれば、画像には「う」が含まれていると判定できる。このように重みを用いることで、複数の文字や顔・人物を認識することが可能になる。
【００８７】
［例３］テキストの素性データを使って、評判判定等のテキスト分類をすることが可能である。この場合、テキストの素性データを説明変数データ、好評か不評か等の評判情報を推定対象データとして、データ集合記憶手段１１に記憶しておく。必要に応じてこれらのデータに前処理を行っておく。本例では、好評の評判情報が得られることが、所定事象の発生有りに対応する。
【００８８】
図１５を用いて、テキストの素性データを利用したテキストの評判判定について説明する。図１５では、製品の感想を記載したWeb掲示板や、ブログ、マイクロブログから、製品の好評確率を推定するケースを考えている。Web上にある多数のテキスト情報から各製品の評判を推定することができれば、マーケティングや販売施策の策定に活用することが可能になる。目的に応じた適切な前処理によってテキストから素性を抽出できる。素性は数値ベクトルであるため、本実施形態における説明変数データとして扱うことが可能である。素性は、問題やデータ特性に応じて適切なものを抽出する。図１５では、素性として”素晴らしい”等の活用形をそろえた単語の頻度を使っている。好評を1、不評を-1と表現し、各テキストの素性と対応付けることで、評判情報は本発明における推定対象データとして扱うことができる。図１５では、テキスト２と３は好評なので1、テキスト１は不評なので-1として記憶し、各素性データと対応付けられている。複数のテキストを使って、前述の重み更新を行うことで、好評確率算出に必要な重みが得られる。評判を確率として得ることで、評価の高さを知ることができる。
【００８９】
同様の仕組みで、電子メール等のテキストを自動的にフォルダに分類することも可能である。電子メールに含まれるテキストの素性を説明変数データとし、各フォルダの振り分け有無を推定対象データとして、フォルダごとに重みを生成する。例えば、「緊急案件」、「プロジェクト」、「プライベート」というフォルダに自動分類したい場合、それぞれに対応する重みを得ておき、電子メールに含まれるテキストの素性からフォルダ分類確率を算出する。「緊急案件」の確率が10%、「プロジェクト」の確率が60%、「プライベート」の確率が80%であれば、「プライベート」フォルダに分類すればよいと判定できる。このように分類確率を使うことで、差出人やタイトルだけでは分類が不明瞭な電子メールを自動的に分類することができる。同様に、未整理の大量ドキュメントやWeb上のホームページを分類することも可能である。
【００９０】
［例４］商品データを使って、継続購入顧客判定等をすることが可能である。この場合、顧客の購入商品を説明変数データ、再購入の有無を推定対象データとして、データ集合記憶手段１１に記憶しておく。必要に応じて、これらのデータには前処理を行っておく。本例では、再購入有りが、所定事象の発生有りに対応する。
【００９１】
図１６を用いて、顧客の購買履歴データを利用した継続購入顧客判定について説明する。図１６では、会員カード等で顧客を識別可能で、例えば１週間以内に再度来店して商品を購入した顧客を継続購入顧客と判定するケースを考えている。継続購入確率が分かれば、確率の高い顧客には利益率の高い商品の購入を促すクーポンを提供し、確率の低い顧客には継続購入を促すお買い得商品のちらしを提供することが可能になる。購買履歴データから、顧客ごとに商品の購入有無や、購入個数、購入価格を抽出し、数値ベクトルに変換することで、購買履歴データを本発明における説明変数データとして扱うことが可能である。購買履歴データの変換方法は、問題やデータ特性に応じて適切なものを使う。図１６では、各商品の購入有無を、購入を1、購入なしを0と表現したデータを用いている。顧客を識別可能な場合、継続購入があったときに1、あるいは、継続購入がないまま前回購入から継続購入とみなせる時間が経過したときに-1として、継続購入有無を表現し、前回の購入履歴データと対応付けることで、継続購入有無は本発明における推定対象データとして扱うことが可能である。図１６では、顧客１と３は継続購入のため1、顧客２は今回のみの購入のため-1として記憶し、各顧客の購買履歴と対応付けられている。複数の購買履歴を使って、前述の重み更新を行うことで、継続購入確率算出に必要な重みが得られる。継続購入確率が分かることで、確率に応じた顧客ごとの販売促進策が可能になる。同様の仕組みで、高額商品の購入有無を推定対象データとすれば、高額商品購入顧客判定が可能であるし、利益率の高い商品の購入有無を推定対象データとすれば、高利益率顧客判定も可能である。
【００９２】
上記のような本実施形態によれば、重み信頼度による各重みの学習度に基づく更新幅の調整と、逐次的に読み込んだデータの損失を0とする、あるいは0に近づける重み更新を行うことが可能になるから、高精度なモデル出力を算出可能とする重みを少ない更新回数で得ることが可能になる。
【００９３】
従来のオンラインロジスティック回帰には、(1)逐次的に読み込んだデータに対し損失を0とする、あるいは損失を0に近づけるよう、更新を行う方法と、(2)重み信頼度に基づいて更新を行う方法を同時に実行する方法がなかった。
【００９４】
従来における確率的勾配降下法のように損失関数の勾配を使う方法では、少しずつ損失を小さくするよう重み更新が行われるので、重みの解(最適な確率を出力できる重み)に収束するまでに時間がかかり、更新回数が多くなりやすい。
【００９５】
一方、本実施形態では、(1)の方法を用いることで、読み込んでいるデータについては損失が0となるよう、あるいは0に近づくよう、大きな更新が行われるため重みの解への収束が速くなりやすく、少ない更新回数で高精度な出力が可能な重みを得ることができる。また、(2)の方法を用いることで、重み信頼度に基づいて、十分な更新が行われた重みの更新幅は小さく、十分な更新が行われていない重みの更新幅は大きくすることができる。これによって、解への収束速度を速めるとともに、解に近づくにつれて更新幅が小さくなる。解に近づいたとき、更新幅が大きいと解を飛び越えてしまい、かえって解から離れてしまうことがあるので、小さい更新幅で解近辺での微調整が行われたほうが、より解に近づきやすく、精度が高くなる。
【００９６】
以上に説明した実施形態におけるモデル推定装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。たとえば、モデル推定装置の各ブロックの処理は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、モデル推定装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
【図１】
2014146161.tif 000041
【図２】
2014146161.tif 000042
【図３】
2014146161.tif 000043
【図４】
2014146161.tif 000044
【図５】
2014146161.tif 000045
【図６】
2014146161.tif 000046
【図７】
2014146161.tif 000047
【図８】
2014146161.tif 000048
【図９】
2014146161.tif 000049
【図１０】
2014146161.tif 000050
【図１１】
2014146161.tif 000051
【図１２】
2014146161.tif 000052
【図１３】
2014146161.tif 000053
【図１４】
2014146161.tif 000054
【図１５】
2014146161.tif 000055
【図１６】
2014146161.tif 000056