(57)【要約】【課題】周辺化変分ベイズ法による推論の収束を判定できるようにする。【解決手段】入力部１０が、ＣＶＢ学習装置２００から、変分事後分布の更新を繰り返す毎に、更新された変分事後分布の入力を受け付ける。そして、ＡＣＶＢ事後分布計算部２２が、入力部１０によって変分事後分布を受け付ける毎に、当該変分事後分布に基づいて、当該変分事後分布の平均を表すＡＣＶＢ事後分布を繰り返し計算する。収束判定部２８が、ＡＣＶＢ事後分布計算部２２によって計算されたＡＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、ＣＶＢ学習装置２００による変分事後分布の推論が収束したか否かを判定する。【選択図】図１
2015162233.tif 000002
【特許請求の範囲】
【請求項１】
パラメータの周辺化により前記パラメータを推論の計算対象から除外する変分ベイズ法である周辺化変分ベイズ法に従って、学習データについての周辺化不可であるパラメータに関する事後分布を表す変分事後分布を推論する学習装置であって、前記学習データに基づいて、前記変分事後分布を繰り返し更新することにより前記変分事後分布を推論する学習装置から、前記変分事後分布の更新を繰り返す毎に、前記更新された変分事後分布の入力を受け付ける入力部と、
前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記変分事後分布の平均を表す平均化ＣＶＢ事後分布を繰り返し計算するＡＣＶＢ事後分布計算部と、
前記ＡＣＶＢ事後分布計算部によって計算された前記平均化ＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、前記学習装置による前記変分事後分布の推論が収束したか否かを判定する収束判定部と、
を含む収束判定装置。
【請求項２】
前記ＡＣＶＢ事後分布計算部は、前記入力部によって前記変分事後分布を受け付ける毎に、前記受け付けた前記変分事後分布と、前記計算された前記平均化ＣＶＢ事後分布との重み付き平均を計算することにより、前記平均化ＣＶＢ事後分布を繰り返し計算する請求項１記載の収束判定装置。
【請求項３】
前記ＡＣＶＢ事後分布計算部は、前記ＡＣＶＢ事後分布計算部による計算の繰り返し回数が多いほど、前記変分事後分布に対する重みを小さくし、前記平均化ＣＶＢ事後分布に対する重みを大きくして、前記重み付き平均を計算することにより、前記平均化ＣＶＢ事後分布を計算する請求項１又は請求項２に記載の収束判定装置。
【請求項４】
前記ＡＣＶＢ事後分布計算部は、前記学習装置による前記変分事後分布の更新の繰り返し回数が予め定められた値よりも大きい場合に、前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記平均化ＣＶＢ事後分布を繰り返し計算する請求項１〜請求項３の何れか１項に記載の収束判定装置。
【請求項５】
入力部、ＡＣＶＢ事後分布計算部、及び収束判定部を含む収束判定装置における収束判定方法であって、
前記入力部が、パラメータの周辺化により前記パラメータを推論の計算対象から除外する変分ベイズ法である周辺化変分ベイズ法に従って、学習データについての周辺化不可であるパラメータに関する事後分布を表す変分事後分布を推論する学習装置であって、前記学習データに基づいて、前記変分事後分布を繰り返し更新することにより前記変分事後分布を推論する学習装置から、前記変分事後分布の更新を繰り返す毎に、前記更新された変分事後分布の入力を受け付けるステップと、
前記ＡＣＶＢ事後分布計算部が、前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記変分事後分布の平均を表す平均化ＣＶＢ事後分布を繰り返し計算するステップと、
前記収束判定部が、前記ＡＣＶＢ事後分布計算部によって計算された前記平均化ＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、前記学習装置による前記変分事後分布の推論が収束したか否かを判定するステップと、
を含む収束判定方法。
【請求項６】
コンピュータを、請求項１〜請求項４の何れか１項記載の収束判定装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、収束判定装置、方法、及びプログラムに係り、特に、変分事後分布の推論が収束したか否かを判定する収束判定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタルデータのストレージ容量の拡大、通信速度の向上、計算能力の向上によって、１０年前とは桁違いの量のデータ処理が可能となった。このような大量のデータは、統計的機械学習の利用によって客観的・統計的に健全に高精度のデータ予測、コンテンツ認識、知識発見などに役立てることができる。このような統計的機械学習技術の利用はビッグデータ、データサイエンティスト等の概念の流行に従って、研究者だけでなくビジネス上の実務でも必要な技術となっている。
【０００３】
統計的機械学習技術では、大量のデータに対して何らかの数学的・統計的なモデルを仮定する。これらのモデルは隠れ変数やパラメータと呼ばれる未知量によってその振る舞いがコントロールされる。統計的機械学習技術の目的は、図３に示すように、（ｉ）目的に応じたより良い確率モデルの開発および選択、（ｉｉ）目的および所与のデータに最もフィットする未知量を探す推論（推定）手法に大きく大別することができる。
【０００４】
実世界の事象を観測したデータは多くの揺らぎや不確定性を含んでいる。このようなデータのモデリングには確率に基づく非決定的な数理モデルが最もよく使われている。そして、これら確率モデルの未知量推定の手法として幾つもの推論手法が提案されてきた。その中でも理論上もっとも正確な推定解を与えることが保証されているのがＧｉｂｂｓサンプラーを含むマルコフチェインモンテカルロ（ＭＣＭＣ）法である。ＭＣＭＣ法の与える解は、無限回の確率的シミュレーション（サンプリングと呼ばれる）を行うことでモデルの真の解に収束することが示されている。しかし、現実的には無限回の演算は不可能であり、またその推論が収束したのかどうかの判定も困難である。
【０００５】
一方、モデルを近似することで有限回の計算で必ず局所解に到達することを保証した推論手法も存在する。その一つが変分ベイズ法である。変分ベイズ法は有名なＥＭアルゴリズムをより高精度にした決定的繰り返し計算手法であり、繰り返しのうちに必ず局所最適解に到達する。また、アルゴリズムには初期値設定以外に確率的揺らぎを含む部分がない上に、必ず局所最適解に到達することが保証されているため、自動的に推論の収束を判定することが可能である。
【０００６】
近年、Ｇｉｂｂｓサンプラーおよび変分ベイズ法をさらに改良する「周辺化」と呼ばれる技術が広く用いられるようになっている。通常、確率モデルでは多くのパラメータと隠れ変数は複雑に絡み合っており、その確率的変動の影響を陽に検算することが困難である。しかし、共役性と呼ばれる特性を満たすモデルの組み合わせでは、その確率的揺らぎの影響を全て事前に計算することが可能である。周辺化とは、パラメータの確率的影響を事前に解析的に計算して、そのパラメータを推論の計算対象から除外する技術である。この周辺化は推論手法の計算の高速化および高精度化への寄与が期待できる。
【０００７】
特に周辺化を施した変分ベイズ法、「周辺化変分ベイズ（Collapsed Variational Bayes, ＣＶＢ）」法（以下、単にＣＶＢ法と称する。）は、現実的な有限サンプル・有限時間の範囲内では、周辺化したＧｉｂｂｓサンプラーよりもしばしば高速により高精度の解を得ることが多数の研究で報告されている(非特許文献１)。以上推論手法の関係を図４に示す。
【０００８】
これまでＣＶＢ法を使った確率モデルの推論は、トピックモデルと呼ばれる手法で多数研究されてきた（非特許文献１、２）。また、トピックモデルではない確率モデルへの応用も検討されている（非特許文献３）。これらの検証では、多くのデータセットにおいて周辺化Ｇｉｂｂｓ法よりも良い解が得られる事、またさらに計算を高速化するＣＶＢ０法（非特許文献２）などが提案されてきた。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Teh, Newman, and Welling, “A Collapsed Variational Bayesian Inference Algorithm for Latent Dirichlet Allocation”, Advances in Neural Information Processing Systems 19, 2007.
【非特許文献２】Asuncion, Welling, Smyth, and Teh, “On Smoothing and Inference for Topic Models”, in Proceedings of the 25th Conference on Uncertainty in Artificial Intelligence, 2009.
【非特許文献３】Wang and Blunsom, “Collapsed Variational Bayesian Inference for PCFGs”, in Proceedings of the 17th Conference on Computational Natural Language Learning, pp. 173-182, 2013.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、非特許文献１〜３に代表される文献では、ＣＶＢ法の収束非保証性については議論されてこなかった。ＣＶＢ法は決定的繰り返し手法であるが、元となった変分ベイズ法と異なり、理論的な収束保証が発見されていない。したがって、ＣＶＢ法を使う場合には、適当な基準により自動収束判定を実施しているため、その信頼性は低くなってしまう、という問題があった。
【００１１】
本発明は、上記の事情を鑑みてなされたもので、周辺化変分ベイズ法による推論の収束を判定することができる収束判定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために本発明に係る収束判定装置は、パラメータの周辺化により前記パラメータを推論の計算対象から除外する変分ベイズ法である周辺化変分ベイズ法に従って、学習データについての周辺化不可であるパラメータに関する事後分布を表す変分事後分布を推論する学習装置であって、前記学習データに基づいて、前記変分事後分布を繰り返し更新することにより前記変分事後分布を推論する学習装置から、前記変分事後分布の更新を繰り返す毎に、前記更新された変分事後分布の入力を受け付ける入力部と、前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記変分事後分布の平均を表す平均化ＣＶＢ事後分布を繰り返し計算するＡＣＶＢ事後分布計算部と、前記ＡＣＶＢ事後分布計算部によって計算された前記平均化ＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、前記学習装置による前記変分事後分布の推論が収束したか否かを判定する収束判定部と、を含んで構成されている。
【００１３】
本発明に係る収束判定方法は、入力部、ＡＣＶＢ事後分布計算部、及び収束判定部を含む収束判定装置における収束判定方法であって、前記入力部が、パラメータの周辺化により前記パラメータを推論の計算対象から除外する変分ベイズ法である周辺化変分ベイズ法に従って、学習データについての周辺化不可であるパラメータに関する事後分布を表す変分事後分布を推論する学習装置であって、前記学習データに基づいて、前記変分事後分布を繰り返し更新することにより前記変分事後分布を推論する学習装置から、前記変分事後分布の更新を繰り返す毎に、前記更新された変分事後分布の入力を受け付けるステップと、前記ＡＣＶＢ事後分布計算部が、前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記変分事後分布の平均を表す平均化ＣＶＢ事後分布を繰り返し計算するステップと、前記収束判定部が、前記ＡＣＶＢ事後分布計算部によって計算された前記平均化ＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、前記学習装置による前記変分事後分布の推論が収束したか否かを判定するステップと、を含む。
【００１４】
本発明の前記ＡＣＶＢ事後分布計算部は、前記入力部によって前記変分事後分布を受け付ける毎に、前記受け付けた前記変分事後分布と、前記計算された前記平均化ＣＶＢ事後分布との重み付き平均を計算することにより、前記平均化ＣＶＢ事後分布を繰り返し計算するようにすることができる。
【００１５】
本発明の前記ＡＣＶＢ事後分布計算部は、前記ＡＣＶＢ事後分布計算部による計算の繰り返し回数が多いほど、前記変分事後分布に対する重みを小さくし、前記平均化ＣＶＢ事後分布に対する重みを大きくして、前記重み付き平均を計算することにより、前記平均化ＣＶＢ事後分布を計算するようにすることができる。
【００１６】
本発明の前記ＡＣＶＢ事後分布計算部は、前記学習装置による前記変分事後分布の更新の繰り返し回数が予め定められた値よりも大きい場合に、前記入力部によって前記変分事後分布を受け付ける毎に、前記変分事後分布に基づいて、前記平均化ＣＶＢ事後分布を繰り返し計算するようにすることができる。
【００１７】
本発明に係るプログラムは、コンピュータを、上記の収束判定装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１８】
以上説明したように、本発明の収束判定装置、方法、及びプログラムによれば、周辺化変分ベイズ法に従って変分事後分布を推論する学習装置から、変分事後分布を受け付ける毎に、変分事後分布の平均を表す平均化ＣＶＢ事後分布を繰り返し計算し、計算された平均化ＣＶＢ事後分布の変化量と、予め定められた閾値とに基づいて、学習装置による変分事後分布の推論が収束したか否かを判定することにより、周辺化変分ベイズ法による推論の収束を判定することができる、という効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る収束判定装置の構成を示す概略図である。
【図２】本発明の実施の形態に係る収束判定装置における収束判定処理ルーチンの内容を示すフローチャートである。
【図３】統計的機械学習技術の目的を示す図である。
【図４】推論手法の関係を示す図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態は、様々なデータモデリングの未知量推定（推論）に使われる「周辺化変分ベイズ法」（ＣＶＢ法）を利用するものである。周辺化変分ベイズ法とは、パラメータの周辺化により、当該パラメータを推論の計算対象から除外する変分ベイズ法のことである。本実施の形態は、一般のＣＶＢ法を利用する推論器に適用することで、推論の収束を保証して自動的な収束判定を可能にする。まず、本発明の実施の形態の概要について説明する。
【００２１】
＜概要＞
本発明の実施の形態は、ＣＶＢ法を利用した推論器の欠点の一つである、収束保証の問題を解決する。一般のＣＶＢ法を利用する推論器に、本発明の実施の形態を追加的に適用することで、推論の収束を保証して自動的な収束判定を可能にする。理論的には、本発明の実施の形態の保証する収束解は、「もしＣＶＢが収束するのであれば」達成される解に一致する。
【００２２】
また、本発明の実施の形態の最小の構成では、１つの単純な閾値パラメータを設定するだけで良く、この閾値パラメータによって収束への速度をある程度コントロールすることが可能である。なお、以降では、本実施の形態で提案する収束保証アルゴリズムを、ＡＣＶＢ（Ａｖｅｒａｇｅｄ ＣＶＢ、平均化ＣＶＢ）法と呼ぶこととする。
【００２３】
本発明の実施の形態のポイントは、以下の（１）〜（３）である。
【００２４】
（１）モデルに関わらず、周辺化変分ベイズ法を利用した推論器すべてに適用できる点。
（２）推論の収束が理論的に保証されていない周辺化変分ベイズ法による推論に補助的に適用することで推論収束の保証を与える点。
（３）最小の構成では、一つの単純な閾値パラメータだけを与えれば良い点。
【００２５】
本発明の実施の形態で利用するアルゴリズムであるＡＣＶＢ法は、任意のモデルに対するＣＶＢ推論器に付加的に適用される。従って、利用者は自身の目的・タスクにふさわしいモデルを事前に選定し、そのモデルのＣＶＢ学習器を準備する必要がある。このモデルおよびＣＶＢ学習器をまとめてＣＶＢ学習装置と呼称する。なお、このＣＶＢ学習装置自体は、本発明の実施の形態に係る収束判定装置には含まない。ＣＶＢ学習装置の構成方法は、上記非特許文献２、３及び参考文献（Blei, Ng，and Jordan，“Latent Dirichlet Allocation”，Journal of Machine Learning Research，Vol. 3，p.993-1022，2003）などに記載の方法と同様の方法であるため、説明を省略する。
【００２６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２７】
＜システム構成＞
図１は、本発明の実施の形態に係る収束判定装置１００を示すブロック図の一例である。収束判定装置１００は、ＣＰＵと、ＲＡＭと、後述する収束判定処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には、収束判定装置１００は、入力部１０と、ＡＣＶＢ計算部２０と、出力部３０と、を備えている。
【００２８】
図１に示すように、入力部１０は、ＣＶＢ学習装置２００から、変分事後分布ｑ（Ｚ）の入力を受け付ける。変分事後分布ｑ（Ｚ）は、学習データについての周辺化不可であるパラメータＺに関する事後分布を表す。
【００２９】
ここで、ＣＶＢ学習装置２００は、周辺化変分ベイズ法に従って、学習データに基づいて、変分事後分布ｑ（Ｚ）を繰り返し更新することにより変分事後分布ｑ（Ｚ）を推論する装置である。なお、入力部１０は、ＣＶＢ学習装置２００が変分事後分布ｑ（Ｚ）の更新を繰り返す毎に、更新された変分事後分布ｑ（Ｚ）の入力を受け付ける。
【００３０】
また、入力部１０は、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の更新の繰り返し回数を受け付ける。
【００３１】
以下、ＣＶＢ学習装置２００について簡単に説明する。
【００３２】
ＣＶＢ学習装置２００の構成は、ユーザの目的やタスクに依存するものの、最低限以下を備えるものとする。
【００３３】
ＣＶＢ学習装置２００に入力される学習データＸは、目的に応じたものが適宜入力される。
【００３４】
変分事後分布ｑ（Ｚ）は、上記図４でいうところの、「周辺化が不可能な未知量Ｚ」の推定値を意味する。ＣＶＢ法では、通常、Ｚに確率値が入力される。なお、未知量（パラメータ）Ｚはベクトルであり、Ｚ＝[ｚ（１），…，ｚ（Ｋ）]である。
【００３５】
例えば、ある未知量ｚ（ｉ）の値がｋとなる確率が０．１、ｌとなる確率が０．０５、…といった具合である。
【００３６】
なお、未知量の種類の数（すなわちｉの取れる範囲）や取りうる値の形式（ｋやｌが連続値か離散値かシンボルか）などは、本発明では特に限定されない。ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の更新の繰り返し回数は、ＣＶＢ法で導出される決定的繰り返し計算を何回繰り返したかを表す。上記の変分事後分布は繰り返して再計算され、更新され続ける。
【００３７】
ＡＣＶＢ計算部２０は、入力部１０によって受け付けた変分事後分布ｑ（Ｚ）に基づいて、ＣＶＢ学習装置２００の学習が収束したか否かを判定する。ＡＣＶＢ計算部２０は、ＡＣＶＢ事後分布計算部２２と、ＡＣＶＢ記憶部２４と、定数記憶部２６と、収束判定部２８とを備えている。
【００３８】
ＡＣＶＢ事後分布計算部２２は、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の更新の繰り返し回数が予め定められた値より大きい場合に、入力部１０によって変分事後分布ｑ（Ｚ）を受け付ける毎に、当該変分事後分布ｑ（Ｚ）に基づいて、変分事後分布ｑ（Ｚ）の平均を表す平均化ＣＶＢ事後分布ｒ（Ｚ）（以下、ＡＣＶＢ事後分布ｒ（Ｚ）と称する。）を繰り返し計算する。
【００３９】
ＡＣＶＢ事後分布ｒ（Ｚ）は、ＣＶＢ学習装置２００が計算する変分事後分布ｑ(Ｚ)に基づいて計算される量で、ｑ(Ｚ)よりも収束判定に有利な性質を持つ。ＡＣＶＢ事後分布ｒ（Ｚ）の要素数はｑ（Ｚ）と一致しており、ｑ(Ｚ)の中の１要素ｑ（ｚ（ｉ））に対応してｒ（ｚ（ｉ））が存在する。
【００４０】
ここで、ＣＶＢ学習装置２００の更新の繰り返し回数をｔ、ＡＣＶＢ事後分布計算部２２による計算の繰り返し回数をｓ、予め定められた値をＢとすると、ＡＣＶＢ事後分布計算部２２による計算の繰り返し回数ｓは、以下の式（１）に示すように割り引いて計算される。なお、以下では、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の更新の繰り返し回数をＣＶＢ繰り返し回数ｔと称し、ＡＣＶＢ事後分布計算部２２による計算の繰り返し回数をＡＣＶＢ繰り返し回数ｓと称する。
【００４１】
【数１】
2015162233.tif 000003
【００４２】
なお、ＣＶＢ繰り返し回数ｔが予め定められた値Ｂよりも大きい場合に、ＡＣＶＢ事後分布ｒ（Ｚ）を繰り返し計算することを、以下、バーンインと称する。バーンインとは、ＭＣＭＣ法などで用いられるテクニックで、簡単に言うと繰り返し計算の最初の方の計算結果は棄却する方法である。これは、一般に推論の初期の結果はばらつきが大きく、あまり良い解ではないためである。本実施の形態の場合、例えば、予め定められた値Ｂ（以下、ＡＣＶＢバーンイン回数Ｂと称する。）を自然数に設定する。そして、ＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂ以上になるまでは、ＡＣＶＢ事後分布の計算を行わない、ということである。ＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂ以上に到達したらそこからＡＣＶＢ事後分布の計算を開始する。その際、後述する式（２）、（３）、（４）のＡＣＶＢ繰り返し回数ｓは上記式（１）のように割り引いて計算する。
【００４３】
なお、ＡＣＶＢ事後分布ｒ（Ｚ）の初期値は、ＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂに到達したときに、ＡＣＶＢ繰り返し回数ｓをｓ＝０から始めると、自然にその時点の変分事後分布ｑ（Ｚ）の値で初期化される。
【００４４】
具体的には、ＡＣＶＢ事後分布計算部２２は、以下の式（２）に示すように、ＡＣＶＢ繰り返し回数ｓが多いほど、変分事後分布ｑ（Ｚ）に対する重みを小さくし、ＡＣＶＢ事後分布ｒ（Ｚ）に対する重みを大きくして、重み付き平均を計算することにより、ＡＣＶＢ事後分布ｒ（Ｚ）を計算する。
【００４５】
【数２】
2015162233.tif 000004
【００４６】
すなわち、ＡＣＶＢ事後分布計算部２２は、入力部１０によって変分事後分布ｑ(Ｚ)を受け付ける毎に、受け付けた変分事後分布ｑ(Ｚ)と、ｑ(Ｚ)を受け付けた時点でＡＣＶＢ記憶部２４に記憶されているＡＣＶＢ事後分布ｒ（Ｚ）との重み付き平均を計算することにより、ＡＣＶＢ事後分布ｒ（Ｚ）を繰り返し計算する。なお、上記式（２）に示すように、ＡＣＶＢ繰り返し回数ｓを用いて重みは表現される。
【００４７】
ＡＣＶＢ記憶部２４には、ＡＣＶＢ事後分布計算部２２によって計算されたＡＣＶＢ事後分布ｒ（Ｚ）と、ＡＣＶＢ繰り返し回数ｓとが記憶される。
【００４８】
定数記憶部２６には、閾値パラメータＡと、上述のバーンイン処理のためのＡＣＶＢバーンイン回数Ｂとが格納されている。閾値パラメータＡは、収束判定部２８において収束を判定するための値である。１回のＡＣＶＢ事後分布計算部２２による計算で、ＡＣＶＢ事後分布ｒ（Ｚ）の絶対的、あるいは相対的な変化の大きさが、閾値パラメータＡ（例えば相対的に５％）を下回った（あるいは上回った）時に収束と判定するための基準である。
【００４９】
ＡＣＶＢバーンイン回数Ｂは、上述のとおり、ＣＶＢ学習装置２００による学習がＢ回繰り返しを完了するまでＡＣＶＢ事後分布計算部２２による計算を実施しない、といった処理に利用できる。
【００５０】
収束判定部２８は、ＡＣＶＢ事後分布計算部２２によって計算されたＡＣＶＢ事後分布ｒ（Ｚ）の変化量に基づいて、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の推論が収束したか否かを判定する。具体的には、収束判定部２８は、入力部１０によって変分事後分布ｑ（Ｚ）を受け付けた時点でＡＣＶＢ記憶部２４に記憶されているＡＣＶＢ事後分布ｒ（Ｚ）、ＡＣＶＢ事後分布計算部２２で再計算されたＡＣＶＢ事後分布ｒ（Ｚ）、及び閾値パラメータＡに基づいて、以下の式（３）、（４）に示すように、ＡＣＶＢ事後分布の収束判定を行う。
【００５１】
以下の式（３）、（４）では、入力部１０によって受け付けた変分事後分布ｑ（Ｚ）を用いて計算されたｓ回目のＡＣＶＢ事後分布の計算結果をｒ（Ｚ；ｓ）とし、ＡＣＶＢ記憶部２４に記憶されているｓ−１回目のＡＣＶＢ事後分布の計算結果をｒ（Ｚ；ｓ−１）としている。
【００５２】
【数３】
2015162233.tif 000005
【００５３】
収束判定部２８は、上記式（３）が満たされた場合には、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の推論が収束したと判定し、収束したこと示す情報を出力する。
【００５４】
また、収束判定部２８は、上記式（４）が満たされた場合には、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ）の学習が収束していないと判定し、ＡＣＶＢ事後分布計算部２２で再計算されたＡＣＶＢ事後分布ｒ（Ｚ）をＡＣＶＢ記憶部２４に記憶させると共に、ＡＣＶＢ繰り返し回数ｓなどをそれぞれ適宜更新して定数記憶部２６に記憶させる。また収束判定部２８は、収束していないこと示す情報を出力する。
【００５５】
出力部３０は、収束判定部２８によって出力された、収束したこと示す情報又は収束していないこと示す情報をＣＶＢ学習装置２００に向けて出力する。また、出力部３０は、収束判定部２８によって収束していないと判定された場合には、ＡＣＶＢ記憶部２４に記憶されたＡＣＶＢ事後分布ｒ（Ｚ）をユーザに出力する。
【００５６】
ＣＶＢ学習装置２００は、収束したこと示す情報を受け付けた場合には、推論を終了する。また、ＣＶＢ学習装置２００は、収束していないこと示す情報を受け付けた場合には、推論を続ける。
【００５７】
＜典型的な動作の流れと計算式＞
次に、ＣＶＢ学習装置２００による学習、ＡＣＶＢ事後分布計算部２２による計算の説明と共に、上記で説明した各部がどのように処理を行うか、及び具体的な計算式を説明する。なお、以下の説明では、ＡＣＶＢ繰り返し回数ｓを単にｓと称し、ＣＶＢ繰り返し回数ｔを単にｔと称する。
【００５８】
ＣＶＢ学習装置２００において対象とする最も単純なモデルでは、例えばＮ個の学習データがあった場合に、それらをＫ個のクラスに識別したいとする。この場合、典型的なＣＶＢ法ではｉ＝１，…，Ｎ個の隠れ変数（未知量）を推定する。ｉ番目の隠れ変数ｚ（ｉ）は、ｉ番目のデータがＫ個のクラスのうち、どれに所属しているかを表現する。たとえば、ｚ（ｉ）＝１ならばｉ番目のデータは１番目のクラスに所属、ｚ（ｉ）＝３ならば３番目のクラス、といった具合である。このｚ（ｉ）は未知なので、ＣＶＢではｚ（ｉ）はどのクラスの番号になりそうか、という確率を計算する。これが変分事後分布ｑ（Ｚ）である。
【００５９】
たとえば、ｑ（ｚ（ｉ）＝１）＝０．１、ｑ(ｚ(ｉ) ＝ ３)＝０．８、であれば、０．８の確率でｉ番目のデータはクラス３に所属すると考える。このように、変分事後分布ｑ（Ｚ）にはｉ個のデータそれぞれについてＫ種のクラスに入る確率が記録される。具体的な形はモデルや学習データによって異なる。
【００６０】
ＣＶＢ学習装置２００では、このｑ（Ｚ）を、学習データＸを使って繰り返し計算し、更新していく。更新式をｆ、ｔ回目の繰り返し計算の結果をｑ（Ｚ；ｔ）と書くと、以下の式（５）として表現される。
【００６１】
【数４】
2015162233.tif 000006
【００６２】
すなわち、ｔ回目の繰り返し計算の際にはｔ−１回目の更新結果のｑ（Ｚ）を元にする。ｔ＝１、つまり最初の更新時には、適当に設定した変分事後分布ｑ（Ｚ）の初期値から計算を始める。
【００６３】
上記式（５）内のｆの具体的な式はモデルやデータによって異なり、本発明では限定されない。
【００６４】
本実施の形態で提案するＡＣＶＢ事後分布は、繰り返し計算された変分事後分布ｑ（Ｚ）の重み付き平均をとって、その値の変動を吟味して収束判定を下す。重み付き平均は、ＡＣＶＢ繰り返し回数ｓの増加とともに変動しにくくなるように設計されており、したがって重み付き平均は有限回のうちに収束に向かうことになる。
【００６５】
最も単純な処理の例を、以下に示す。
【００６６】
いま、ＣＶＢ学習装置２００がｔ回目の繰り返しを終えて、ｑ（Ｚ；ｔ）を変分事後分布として更新保存しているとする。すなわちｑ（Ｚ）＝ｑ（Ｚ；ｔ）となっている。
この時、ＡＣＶＢ事後分布計算部２２は、上記式(２)でｓ回目のＡＣＶＢ事後分布の再計算結果ｒ（Ｚ；ｓ）を決定する。
【００６７】
ここで、上記式（２）におけるｒ（Ｚ）は、現在ＡＣＶＢ事後分布としてＡＣＶＢ記憶部２４に保存されている値、すなわちｒ（Ｚ；ｓ−１）である。単純にはｓ＝ｔとなるように設定しても良い。なお、ｓ＝１の場合には適当に初期化したｒ（Ｚ）の値をｒ（Ｚ；０）として使う。
【００６８】
続いて、収束判定部２８で、このｓ回目のＡＣＶＢ事後分布計算部２２による計算で収束したかどうかを判定する。
【００６９】
これには、先ほど求めたｒ（Ｚ；ｓ）とｒ（Ｚ；ｓ−１）、すなわち、再計算されたｒ（Ｚ；ｓ）と現在ＡＣＶＢ記憶部２４に保存されているｒ（Ｚ）との相違を計算し、その変化分が閾値パラメータＡを下回る（あるいは上回る）場合に収束したと判定する。
【００７０】
最も簡単な例では、相対変化量が利用できる。最初の例だと、ｑ（Ｚ）、ｒ（Ｚ）、ｒ（Ｚ；ｓ）はいずれもＮ×Ｋ個の確率値（すなわち０以上１以下の連続値）からなるベクトルと考えられるので、上記式（３）、（４）にある通り、差分ベクトルの２乗ノルムとｒ（Ｚ）の２乗ノルムの比率を計算し、比率が閾値（例えば１％）未満ならば収束と判定する。
【００７１】
収束判定部２８によって収束したと判定された場合、出力部３０によって収束したことをＣＶＢ学習装置２００に通知する。ＣＶＢ学習装置２００は収束したことを示す情報の通知を受けて、これ以上の更新を止めて、ユーザに所望の出力を提示する。また、収束判定装置１００も、ＡＣＶＢ記憶部２４に保存されたＡＣＶＢ事後分布ｒ（Ｚ）に基づいて、同様にユーザに所望の出力を提示する。
【００７２】
収束判定部２８によって収束しなかったと判定された場合、ｒ（Ｚ；ｓ）をＡＣＶＢ事後分布ｒ（Ｚ）としてＡＣＶＢ記憶部２４に保存すると共に、ＡＣＶＢ事後分布の計算の繰り返し回数ｓを１増やして更新し、定数記憶部２６に記憶させる。そして、出力部３０によって、収束しなかったこと示す情報をＣＶＢ学習装置２００に通知する。ＣＶＢ学習装置２００は、収束しなかったこと示す情報の通知を受けてＣＶＢ学習装置２００による学習の繰り返し回数ｔを１増やすとともに再度、変分事後分布ｑ（Ｚ）の繰り返し計算を行う。
【００７３】
以上の処理を収束判定が出るまで繰り返す。
【００７４】
また、上記式（２）はこの式の通りでなくても良い。ただし、有限の繰り返し回数で収束に向かうことが保証できるようにｒ（Ｚ）およびｑ（Ｚ）の重みをｓの増加に応じて逓減させることが重要である。なお、上記式（２）を使った場合、「真にＣＶＢが収束する場合には」ｒ（Ｚ）は真のｑ（Ｚ）に一致することが証明できる。ただし、ＣＶＢが収束するかどうかはまだ明らかになっていない。
【００７５】
上記式（３）、（４）についてもこれに限らず、Ｌ１ノルムの比率、あるいは分子項のみ（つまり絶対変化量）などについて、閾値判定を行ってもよい。
【００７６】
＜収束判定装置の動作＞
次に、本発明の実施の形態に係る収束判定装置１００の作用について説明する。まず、ＣＶＢ学習装置２００が、学習データに基づいて、ＣＶＢ法に従って、変分事後分布ｑ（Ｚ；ｔ）を繰り返し更新し、更新する毎に、変分事後分布ｑ（Ｚ；ｔ）を収束判定装置１００へ出力する。ＣＶＢ学習装置２００から、変分事後分布ｑ（Ｚ；ｔ）とＣＶＢ繰り返し回数ｔとの入力を受け付けると、収束判定装置１００において、図２に示す収束判定処理ルーチンが実行される。
【００７７】
まず、ステップＳ１００において、入力部１０によって、変分事後分布ｑ（Ｚ；ｔ）とＣＶＢ繰り返し回数ｔとの入力を受け付ける。
【００７８】
そして、ステップＳ１０２において、ＡＣＶＢ事後分布計算部２２によって、上記ステップＳ１００で受け付けたＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂ以上か否かを判定する。ＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂ以上である場合には、ステップＳ１０４へ進む。一方、ＣＶＢ繰り返し回数ｔがＡＣＶＢバーンイン回数Ｂ未満である場合には、ステップＳ１００へ戻る。
【００７９】
次のステップＳ１０４において、ＡＣＶＢ事後分布計算部２２によって、上記式（１）に従って、ＡＣＶＢ繰り返し回数ｓを算出する。
【００８０】
ステップＳ１０６において、ＡＣＶＢ事後分布計算部２２によって、上記ステップＳ１００で受け付けた変分事後分布ｑ（Ｚ；ｔ）と、上記ステップＳ１０４で算出されたＡＣＶＢ繰り返し回数ｓと、前回のステップＳ１１０でＡＣＶＢ記憶部２４に記憶されたＡＣＶＢ事後分布ｒ（Ｚ；ｓ−１）とに基づいて、上記式（２）に従って、ＡＣＶＢ事後分布ｒ（Ｚ；ｓ）を計算する。
【００８１】
ステップＳ１０８において、上記ステップＳ１０６で計算されたＡＣＶＢ事後分布ｒ（Ｚ；ｓ）と、前回のステップＳ１１０でＡＣＶＢ記憶部２４に記憶されたＡＣＶＢ事後分布ｒ（Ｚ；ｓ−１）と、閾値パラメータＡとに基づいて、上記式（３）、（４）に従って、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ；ｔ）の推論が収束したか否かを判定する。上記式（３）を満たす場合には、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ；ｔ）の推論が収束したと判定し、ステップＳ１１４へ移行する。一方、上記式（４）を満たす場合には、ＣＶＢ学習装置２００による変分事後分布ｑ（Ｚ；ｔ）の推論が収束していないと判定し、ステップＳ１１０へ進む。
【００８２】
ステップＳ１１０において、上記ステップＳ１０６で計算されたＡＣＶＢ事後分布ｒ（Ｚ；ｓ）をＡＣＶＢ事後分布ｒ（Ｚ）としてＡＣＶＢ記憶部２４に記憶させると共に、ＡＣＶＢ事後分布の計算の繰り返し回数ｓを１増やして更新し、ＡＣＶＢ記憶部２４に記憶させる。
【００８３】
ステップＳ１１２において、出力部３０によって、推論が収束していないことを示す情報を、ＣＶＢ学習装置２００へ出力する。
【００８４】
ステップＳ１１４において、出力部３０によって、推論が収束したこと示す情報を、ＣＶＢ学習装置２００へ出力する。また、出力部３０によって、ＡＣＶＢ記憶部２４に記憶されたＡＣＶＢ事後分布ｒ（Ｚ）を出力し、収束判定処理ルーチンを終了する。
【００８５】
ＣＶＢ学習装置２００は、出力部３０から出力された情報に基づいて、変分事後分布ｑ（Ｚ）を繰り返し更新するか否かを決定する。出力部３０から出力された情報が、収束したこと示す情報である場合には、変分事後分布ｑ（Ｚ）の更新を終了し、推論を終了する。一方、出力部３０から出力された情報が、収束していないことを示す情報である場合には、変分事後分布ｑ（Ｚ）を更新し、推論を続ける。
【００８６】
＜実施例＞
本発明の実施の形態のより具体的な適用例を示すために、データ解析を行うモデルをLatent Dirichlet Allocation (ＬＤＡ、上記参考文献)と想定して、その場合の本実施の形態に係る収束判定装置の挙動を具体的に説明する。
【００８７】
ＬＤＡはBag-of-Words形式のデータ解析に用いられる確率モデルである。この形式では、データセットは「文書」と呼ばれるデータ群の集合である。各文書内には「単語」と呼ばれる観測データが多数入っている。典型的には、新聞記事データセットを考える。このときデータセットはある１日の新聞のテキスト情報、「文書」はその日のある記事内のテキスト情報、「単語」はある記事内に利用された言葉である。
【００８８】
ＬＤＡの目的は、このデータセットが与えられたときに、各「文書」内の「単語」をクラスタリングすることである。このクラスタはトピックと呼ばれており、新聞記事のような文書テキストデータの場合、「話題」や「文脈」に推定したことになる。たとえば、あるトピック（クラスタ）にアサインされた単語の多くが「ゴール」「ワールドカップ」「ホームラン」などといった単語の場合、そのトピックは「スポーツ」に関する話題であると判断できる。逆に、ある文書（記事）の中の単語（記事内に出てくる言葉）の多くがＬＤＡによってスポーツトピックにアサインされた場合、その記事はスポーツに関する内容であろうことが推測できる。
【００８９】
ＬＤＡは典型的な確率モデルであり、未知のパラメータおよび隠れ変数の値によって観測されたBag-of-Words形式データが制御されると考える。与えられたデータセットに対し最適な未知パラメータおよび隠れ変数を推定することがＬＤＡ解析のタスクとなる。
【００９０】
ＬＤＡの未知数推定には様々な手法が利用できるが、上記非特許文献２，３及び参考文献などによってＣＶＢ法による推定が最も精度が良いことが知られている。ここではＬＤＡをＣＶＢ法によって推定すると仮定して、その際に、本発明の実施の形態で説明した収束判定装置１００がどのように動作するかを説明する。
【００９１】
まず、ＬＤＡの場合、入力されるBag-of-Words形式データが学習データＸとなる。次に推定する変分事後分布ｑ（Ｚ）は、Bag-of-Words形式データ内の各「記事」内の各「単語」をどのトピック（クラスタ）にアサインするか、という情報である。
【００９２】
具体的には、ｄ番目の記事内に登場するｉ番目の単語が、ｋ番目のトピックにアサインされた、ということをｚ（ｄ，ｉ）＝ｋと表現する。このとき、ＬＤＡのＣＶＢ法による推定では、学習データＸが与えられたときに、このデータの表現上最も適切な「ｚ（ｄ,ｉ）＝ｋとなる確率」を計算する。これをｑ（ｚ（ｄ，ｉ）＝ｋ）と表現する。ｑ（Ｚ）は全てのｄ，ｉ，ｋについてｑ（ｚ（ｄ,ｉ,）＝ｋ）を計算した集合である。具体的にどのようにｑ（Ｚ）を計算するかは上記非特許文献２，３及び参考文献に記載されている。
【００９３】
ここで、上記非特許文献２，３及び参考文献などに記載の方法でｑ（Ｚ）を繰り返し更新計算する際に、本発明の実施の形態に係る収束判定装置を同時に利用する。
【００９４】
たとえばＡＣＶＢバーンイン回数ＢをＢ＝１０と設定、また閾値パラメータＡをＡ＝０．０１と事前に入力する。
【００９５】
ＡＣＶＢ計算部２０では、ＣＶＢ繰り返し回数ｔを監視し、例えばｔ＝Ｂとなった時点でＡＣＶＢの計算を開始する。ＡＣＶＢ計算部２０ではＣＶＢ法の繰り返し計算が１度完了するごとに、更新されたｑ（Ｚ）の結果を受け取って上記式（２）に従ってＡＣＶＢ事後分布ｒ（Ｚ；ｓ）を繰り返し計算する。繰り返しのたびにＡＣＶＢ繰り返し回数ｓを１ずつインクリメントする。ｒ（Ｚ）の初期値は、バーンイン終了後、ＡＣＶＢ繰り返し回数ｓをｓ＝０から始めると、自然にその時点のｑ（Ｚ）の値で初期化される。そして、計算のたびに、収束判定部で上記式（３）、（４）の成立を確認する。
【００９６】
上記式（３）が成立した場合、ＡＣＶＢ事後分布を出力してＣＶＢ学習装置２００に推定の収束を通知する。ＣＶＢ学習装置２００では、たとえばこの収束通知を受けて推定を終了して所望の出力をユーザに提供する。
【００９７】
上記式（４）が成立した場合は、ＡＣＶＢ事後分布の更新結果をＡＣＶＢ記憶部２４に保存して、ＣＶＢ学習装置２００に推定が収束していないことを通知する。ＣＶＢ学習装置２００では、たとえばこの通知を受けて再びＣＶＢの繰り返し計算を行ってｑ（Ｚ）を更新する。
【００９８】
先に述べたとおり、提案する本実施の形態の計算によって、理論的には繰り返し計算の収束の保証のないＣＶＢ法による推定を確実に収束させることが可能となる。
【００９９】
以上説明したように、本発明の実施の形態に係る収束判定装置によれば、周辺化変分ベイズ法に従って変分事後分布を推論する学習装置から、変分事後分布を受け付ける毎に、変分事後分布の平均を表すＡＣＶＢ事後分布を繰り返し計算し、計算されたＡＣＶＢ事後分布の変化量と、閾値パラメータＡとに基づいて、学習装置による変分事後分布の推論が収束したか否かを判定することにより、周辺化変分ベイズ法による推論の収束を判定することができる。
【０１００】
また、本発明の実施の形態に係る収束判定装置によれば、収束が保証されるため、推論の計算がいつまで経っても終了しない、という事態を回避することができる。
【０１０１】
また、周辺化変分ベイズ法を利用する推論器全てで、人手による推論収束判定を不要として、自動的に収束を判定させることができる。
【０１０２】
また、単純な一つの閾値パラメータによって、収束の速度を変えることができる。
【０１０３】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０４】
例えば、本実施の形態では、収束判定装置１００とＣＶＢ学習装置２００とを別々の装置として構成する場合を例に説明したが、収束判定装置１００とＣＶＢ学習装置２００とを１つの装置として構成してもよい。
【０１０５】
また、上述の収束判定装置１００は、ＡＣＶＢ記憶部２４、及び定数記憶部２６を備えている場合について説明したが、例えばＡＣＶＢ記憶部２４、及び定数記憶部２６の少なくとも１つが収束判定装置１００の外部装置に設けられ、収束判定装置１００は、外部装置と通信手段を用いて通信することにより、ＡＣＶＢ記憶部２４、及び定数記憶部２６を参照するようにしてもよい。
【０１０６】
また、上述の収束判定装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１０７】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１０８】
１０   入力部
２０   ＡＣＶＢ計算部
２２   ＡＣＶＢ事後分布計算部
２４   ＡＣＶＢ記憶部
２６   定数記憶部
２８   収束判定部
３０   出力部
１００ 収束判定装置
２００ ＣＶＢ学習装置
【図１】
2015162233.tif 000007
【図２】
2015162233.tif 000008
【図３】
2015162233.tif 000009
【図４】
2015162233.tif 000010