(57)【要約】【課題】確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができる。【解決手段】パラメータ推定部２６が、複数の訓練例と、確率論理プログラムと、確率パラメータが付与された事実を表す節の数を示すサイズの指定とに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズ以下となるように、確率論理プログラムの確率パラメータの各々の値を推定する。【選択図】図１
2019061623.tif 000002
【特許請求の範囲】
【請求項１】
確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置であって、
前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付ける訓練例入力部と、
前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するパラメータ推定部と、
を含むパラメータ推定装置。
【請求項２】
前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を０又は１にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定する請求項１に記載のパラメータ推定装置。
【請求項３】
確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置におけるパラメータ推定方法であって、
訓練例入力部が、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付けるステップと、
パラメータ推定部が、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するステップと、
を含むパラメータ推定方法。
【請求項４】
前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を０又は１にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定する請求項３に記載のパラメータ推定方法。
【請求項５】
コンピュータを、請求項１又は請求項２に記載のパラメータ推定装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パラメータ推定装置、方法、及びプログラムに係り、特に、確率論理プログラムで用いられる確率パラメータの各々の値を推定するパラメータ推定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
論理プログラムは一階述語論理の節の集まりによって、対象領域における関係性を表現するものである。例えば、
【０００３】
mother(X,Y):- parent(X,Y),female(X).
female(hanako).
parent(hanako,taro).
【０００４】
は３つの節からなる論理プログラムである。X,Yは変数、hanako,taroは定数、mother,parent,femaleは述語記号である。
【０００５】
また、Ａ:−Ｂ１,...,ＢＮの形の節のうち、Ａを頭部、Ｂ１,...,ＢＮを本体部とよぶ。上記の論理プログラムは、ある事象間の論理的な関係を定めている。
【０００６】
確率論理プログラムは論理プログラムの拡張であり、論理プログラムが確率的な事象を扱えるようにしたものである。通常の論理プログラムの枠組みにおいては、ある論理プログラムＴとある質問ｑが与えられたとき、節の集合からその質問を論理的帰結として導き出せるかどうかを判断するしかできなかった。すなわち、例えば３０％の確率でｑを導き出すことができるといったような、不確実性を含む関係を表現することができなかった。確率論理プログラムは確率分布を用いることによって、ある質問ｑをプログラムが導出できる確率
【０００７】
【数１】
2019061623.tif 000003
【０００８】
を定義することができるようになる。そのため、確率論理プログラムを用いることでより柔軟に対象領域における関係性を記述することが可能となる。
【０００９】
mother(X, Y) :- parent(X, Y), female(X).
0.3::female(hanako).
0.5::parent(hanako, taro).
【００１０】
上記は確率論理プログラムの一種である、ＰｒｏｂＬｏｇ（非特許文献１参照）の記述例である。以下、ＰｒｏｂＬｏｇを対象としたパラメータ推定について説明する。通常の論理プログラムとの違いは、節female(hanako)., parent(taro).に［０，１］の範囲のパラメータが付与されていることである。このパラメータは該当の節が論理プログラムに含まれる確率を表している。
【００１１】
例えば0.3::female(hanako).は、節female(hanako)が0.3の確率で論理プログラムに含まれることを表している。確率論理プログラムでは、このようにいくつかの節に数値を付与することで、確率分布Ｐ（ｑ）を定義する。例えば上記のプログラムでは、
【００１２】
【数２】
2019061623.tif 000004
2019061623.tif 000005
2019061623.tif 000006
【００１３】
となる。
【００１４】
確率論理プログラムのパラメータが未知のときに、訓練データを入力として与え、訓練データに対する負の対数尤度を最小化するようにパラメータを推定するパラメータ推定手法が提案されている（非特許文献２参照）。すなわち、ｗｉを論理プログラムに含まれるｉ番目の確率の付与された節に対応するパラメータとし、すべてのパラメータの集合をｗ＝｛ｗ１,...,ｗｎ｝とすると、論理プログラムＴと、訓練データとを入力として受け取り、訓練データに対する負の対数尤度を最小化するようなパラメータの集合＾ｗ＝｛＾ｗ１,...,＾ｗｎ｝を求める手法が提案されている。さらには、確率論理プログラムのパラメータ推定問題において、パラメータの値が０または１をとるように目的関数に正規化項を足し合わせて最小化することによって確率論理プログラムのパラメータ数を減らすパラメータ推定手法も提案されている（非特許文献２参照）。この手法を用いると、推定されたパラメータ＾ｗ中には、ｗｉ＝０またはｗｉ＝１となる成分が多く含まれることになる。確率が０または１となる確率つき節は削除したり、あるいは確率をとらない通常の節として扱うことができるようになる。確率論理プログラムを用いた推論の手続きは、確率つき節の数に応じて複雑になるため、確率つき節の数を減らすことでより推論が高速に行えるという効果がある。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Luc De Raedt, Angelika Kimmig, and Hannu Toivonen.,"Problog: A probabilistic prolog and its application in link discovery.", In IJCAI, p.2462-2467, 2007.
【非特許文献２】Masaaki Nishino, Akihiro Yamamoto and Masaaki Nagata, "A sparse parameter learning method for probabilistic logic programs", In Proceedings of the AAAI workshop on Statistical and Relational AI, 2014.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
既存の正則化項を用いた手法では、＾ｗｉ＝０または＾ｗｉ＝１となるパラメータの数を増やすことで確率つき節の数の少ない確率論理プログラムを推定することができた。しかし、既存法で用いられている正則化項では、０または１の値をとらないパラメータの個数が最終的にいくつになるかを事前に知ることができないという課題があった。そのため、得られた確率論理プログラムを用いた確率推論における推論プロセスの計算時間をある一定時間以下に収めたいなどの要求があった場合には、ハイパーパラメータを変更させつつ所望のパラメータが推定できるまで何度もパラメータ推定処理を繰り返す必要があった。
【００１７】
本発明は、上記問題点を解決するために成されたものであり、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができるパラメータ推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、第１の発明に係るパラメータ推定装置は、確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置であって、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付ける訓練例入力部と、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するパラメータ推定部と、を含んで構成されている。
【００１９】
また、第１の発明に係るパラメータ推定装置において、前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を０又は１にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定するようにしてもよい。
【００２０】
第２の発明に係るパラメータ推定方法は、確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置におけるパラメータ推定方法であって、
【００２１】
訓練例入力部が、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付けるステップと、
【００２２】
パラメータ推定部が、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するステップと、を含んで実行することを特徴とする。
【００２３】
また、第２の発明に係るパラメータ推定方法において、前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を０又は１にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定するようにしてもよい。
【００２４】
第３の発明に係るプログラムは、コンピュータを、第１の発明に係るパラメータ推定装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２５】
本発明のパラメータ推定装置、方法、及びプログラムによれば、複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付け、複数の訓練例と、確率論理プログラムと、サイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズ以下となるように、確率論理プログラムの確率パラメータの各々の値を推定することにより、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができる、という効果が得られる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係るパラメータ推定装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係るパラメータ推定装置における推定処理ルーチンを示すフローチャートである。
【図３】本発明の実施の形態に係るパラメータ推定装置におけるパラメータ推定処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２７】
＜本発明の実施の形態の概要＞
【００２８】
まず、本発明の実施の形態の概要について説明する。本発明の実施の形態では、確率論理プログラムにおける確率パラメータが付与された事実を表す節の数を示すサイズ（Ｒとする）が予め指定されているときに、推定された確率パラメータが＾ｗｉ≠０かつ＾ｗｉ≠１であるような要素の数がＲ個以下であるように、パラメータ＾ｗを推定する手法を提案する。
【００２９】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００３０】
＜本発明の実施の形態に係るパラメータ推定装置の構成＞
【００３１】
本発明の実施の形態に係るパラメータ推定装置の構成について説明する。本発明の実施の形態に係るパラメータ推定装置１００は、確率パラメータが付与された事実を表す節の集合と、確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる確率パラメータの各々の値を推定する。
【００３２】
本発明の実施の形態に係るパラメータ推定装置１００は、ＣＰＵ（Central Processing Unit）と、ＣＰＵが後述する各処理ルーチンを実行するためのプログラム等を記憶したＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）と、を備えたコンピュータで構成することができる。このパラメータ推定装置１００は、機能的には図１に示すようにプログラム入力部１０と、訓練例入力部１２と、演算部２０と、出力部３０とを備えている。
【００３３】
プログラム入力部１０は、確率論理プログラムを受け付ける。具体的には、プログラム入力部１０は、確率パラメータを推定する対象となる確率論理プログラムのひな形の入力を受け付ける。ここで、ひな形とは、いくつかの節の確率パラメータの値が未定義であるような確率論理プログラムのことをいう。例えば、
【００３４】
mother(X, Y):- parent(X, Y), female(X).
ｗ１::female(hanako).
ｗ２::parent(hanako, taro).
【００３５】
は、２つの確率パラメータつき節の値が定まっていない、ひな形である。
【００３６】
訓練例入力部１２は、確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とを含む予め用意された訓練例を複数受け付ける。訓練例は、確率論理プログラムのひな形のパラメータが正しく推定されたときに、生成されると考えられる事実の集合である。以下では、訓練例の集合を｛Ｉ１,Ｉ２,...,ＩＭ｝と表現する。各Ｉｊは一つの訓練例であり、訓練例Ｉｊは、Ｉｊ＝（Ｉｊ＋，Ｉｊ−）というペアによって構成されているとする。Ｉｊ＋は推定された確率論理プログラムから論理的帰結として導出される事実の集合、Ｉｊ−は導出されなかった事実の集合である。上記の確率論理プログラムでは、例えば
【００３７】
Ｉｊ＋＝｛parent(hanako, taro)｝,Ｉｊ−＝｛female(hanako), mother(hanako, taro)｝
【００３８】
などが訓練例となり、これは推定された確率論理プログラムから、parent（hanako, taro）を論理的帰結として導出できるが、female(hanako)とmother(hanako, taro)を導出できないような例が生成されることがあるということを表している。
【００３９】
また、訓練例入力部１２は、確率論理プログラムにおける確率パラメータが付与された事実を表す節の数を示すサイズＲの指定を受け付ける。
【００４０】
演算部２０は、プログラムデータベース２２と、訓練例データベース２４と、パラメータ推定部２６とを備えている。
【００４１】
プログラムデータベース２２には、プログラム入力部１０によって受け付けた確率論理プログラムと、後述する代入の集合ＬＴとが格納される。
【００４２】
訓練例データベース２４には、訓練例入力部１２によって受け付けた複数の訓練例、及び確率パラメータが付与された事実を表す節の数を示すサイズＲが格納される。
【００４３】
パラメータ推定部２６は、訓練例データベース２４に格納された複数の訓練例と、プログラムデータベース２２に格納された、確率論理プログラムと、確率パラメータが付与された事実を表す節の数を示すサイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズＲ個以下となるように、確率論理プログラムの確率パラメータの各々の値を推定する。
【００４４】
そして、パラメータ推定部２６は、推定された確率パラメータの値が１である事実を表す節から、確率パラメータを取り除いて、確率パラメータが付与されていない節とし、推定された確率パラメータの値が０である事実を表す節を、確率論理プログラムから取り除く。
【００４５】
パラメータ推定部２６の具体的な処理の内容を説明するために、はじめに、以下で用いる記法および確率論理プログラムについて説明する。
【００４６】
まず、一階述語論理の節の集合である確率論理プログラムをＴとする。さらにＴに含まれる節を、確率パラメータが付与された事実の集合Ｆと、確率パラメータが付与されていない節の集合Ｂとに分ける。すなわち、
【００４７】
【数３】
2019061623.tif 000007
【００４８】
である。上述の例では、Ｆ＝｛female(hanako)., parent(hanako, taro).｝,Ｂ＝｛mother(X,Y):-parent(X,Y) ，female(X).｝である。以下ではＦに含まれている事実の集合をｆ１,...,ｆＮとし、それぞれの事実に対応する確率パラメータの各々をｗ１,...,ｗＮとする。
【００４９】
節、項に対する代入とは、その節または項に含まれる変数Ｘを、変数を含まない項で置き換えることをいう。代入は変数と置き換えられる項のペアで与えられ、また以下ではある代入をθとして表す。Ｆに含まれる事実ｆｉ∈Ｆに対する、代入後の項が変数を含まないような全ての代入を考える。定数記号の数が有限であると仮定すると、事実ｆｉに対する全ての代入の集合は
【００５０】
【数４】
2019061623.tif 000008
【００５１】
となる。ここでＫｉはｆｉに対する可能な代入の数である。全ての事実ｆｉ∈Ｆに対する全ての可能な代入の集合の和集合を
【００５２】
【数５】
2019061623.tif 000009
【００５３】
とする。パラメータ推定部２６は、プログラムデータベース２２に格納された確率論理プログラムに基づいて、全ての事実ｆｉ∈Ｆに対する全ての可能な代入の集合の和集合ＬＴを生成し、プログラムデータベース２２に格納する。
【００５４】
ここで、ある論理プログラムＴのもとで、質問（リテラル）ｑが論理的帰結として求められることを
【００５５】
【数６】
2019061623.tif 000010
【００５６】
と表現する。同様に、ある論理プログラムＴのもとで、論理的帰結として求められないことを
【００５７】
【数７】
2019061623.tif 000011
【００５８】
と表現する。そして、δ（Ｔ,Ｉｊ）を、すべてのｑ∈Ｉｊ＋について
【００５９】
【数８】
2019061623.tif 000012
【００６０】
かつすべてのｑ∈Ｉｊ−について
【００６１】
【数９】
2019061623.tif 000013
【００６２】
であるなら、δ（Ｔ，Ｉｊ）＝１、そうでないならばδ（Ｔ，Ｉｊ）＝０であるような関数として定義する。
【００６３】
以上を用いて、確率論理プログラムＴのもとでの訓練例Ｉｊの出現確率Ｐ（Ｉｊ｜Ｔ）を
【００６４】
【数１０】
2019061623.tif 000014
・・・（１）
【００６５】
として定義する。また複数の訓練例の出現確率の負の対数尤度関数ｌ（ｗ）を
【００６６】
【数１１】
2019061623.tif 000015
・・・（２）
【００６７】
として定義する。上記（２）式を目的関数とする。
【００６８】
以上の定義のもと、パラメータ推定部２６は、パラメータ推定処理を行う。まず、パラメータ推定部２６は、プログラムデータベース２２より、確率論理プログラムのひな形を入力として受け取る。次に、パラメータ推定部２６は、複数の訓練例、及びサイズＲの指定を訓練例データベース２４より受け取る。ここで、ひな形に含まれる確率パラメータをｗ＝｛ｗ１，ｗ２,...,ｗＮ｝とする。また、訓練例の集合を｛Ｉ１，Ｉ２,...,ＩＭ｝とする。そして、パラメータ推定部２６は、パラメータ推定処理を行う。
【００６９】
パラメータ推定処理において、パラメータ推定部２６は、まず、確率パラメータｗ０を初期化する。また、ｋを０に設定する。次にパラメータ推定部２６は、現在のｗ（ｋ）を用いて、上記（２）式の目的関数の勾配∇ｌ(ｗｋ)を計算する。勾配の定義は非特許文献２の（５）式に等しいものである。
【００７０】
次にパラメータ推定部２６は、計算した目的関数の勾配∇ｌ(ｗｋ)を用いて、
【００７１】
【数１２】
2019061623.tif 000016
・・・（３）
と確率パラメータｘｋを更新する。αｋは勾配の更新度合いを調整するスカラー値のパラメータである。αｋの値の設定方法は非特許文献２にある手法を用いてもよい。
【００７２】
次にパラメータ推定部２６は、ｘｋの各要素の値が０以下ならば０に、１以上ならば１に修正する。そして、パラメータ推定部２６は、ｘｋの各要素ｘｉｋから、(ｘｉｋ−０．５)２の値が小さい順にＲ分だけ選択する。選択されなかった要素ｘｉｋについては、ｘｉｋの値がｘｉｋ≧０．５ならば０に、ｘｉｋ＞０．５ならば１に修正する。
【００７３】
次にパラメータ推定部２６は、ｗｋ＋１←ｘｋとし、繰り返し終了条件を満たす場合は処理を終了する。繰り返し終了条件を満たさない場合は、ｋ←ｋ＋１として処理を繰り返す。繰り返し終了条件は、ｗｋ＋１とｘｋとの差分が小さい、もしくはｋがある定められた値より大きくなった場合とする。
【００７４】
パラメータ推定部２６は、パラメータ推定処理の終了後、推定結果を出力する。ここで、パラメータ推定部２６は、入力として与えられたひな形に推定された確率パラメータを付与したものを推定結果とする。このとき、あるｗｉがｗｉ＝０であったならば、対応する節を出力する確率論理プログラムから取り除く。また、ｗｉ＝１であったならば、Ｆよりｆｉを取り除き、かつＢにｆｉを追加する。こうして得られた確率論理プログラムを出力して処理を終了する。
【００７５】
出力部３０は、パラメータ推定部２６によって出力された確率論理プログラムを出力する。
【００７６】
＜本発明の実施の形態に係るパラメータ推定装置の作用＞
【００７７】
次に、本発明の実施の形態に係るパラメータ推定装置１００の作用について説明する。確率論理プログラムと、複数の訓練例と、確率パラメータが付与された事実を表す節の数を示すサイズＲの指定とがパラメータ推定装置１００に入力されると、演算部２０によって、図３に示す推定処理ルーチンが実行される。
【００７８】
まず、ステップＳ１００において、プログラム入力部１０によって、入力された確率論理プログラムを受け付け、プログラムデータベース２２に格納する。
【００７９】
次に、ステップＳ１０２において、訓練例入力部１２によって、入力された複数の訓練例、及びサイズＲを受け付け、訓練例データベース２４に格納する。
【００８０】
次に、ステップＳ１０４において、パラメータ推定部２６によって、上記ステップＳ１００でプログラムデータベース２２に格納された確率論理プログラムと、ステップＳ１０２で訓練例データベース２４に格納された、複数の訓練例と、サイズＲとに基づいて、全ての事実ｆｉ∈Ｆに対する全ての可能な代入の集合の和集合ＬＴを生成し、プログラムデータベース２２に格納する。
【００８１】
次に、ステップＳ１０６において、パラメータ推定部２６によって、上記ステップＳ１００でプログラムデータベース２２に格納された確率論理プログラムと、ステップＳ１０２で訓練例データベース２４に格納された、複数の訓練例と、サイズＲとに基づいて、確率パラメータの各々の値を推定する。ステップＳ１０６は、図３に示すパラメータ推定処理ルーチンによって実現される。
【００８２】
ステップＳ１０８において、ステップＳ１０６で確率パラメータの各々の値を推定することにより生成された確率論理プログラムを出力し、処理を終了する。
【００８３】
[パラメータ推定処理ルーチン]
【００８４】
次に、上記ステップＳ１０６の処理を説明する。
【００８５】
ステップＳ２００において、確率パラメータｗ０を初期化し、ｋを０に設定する。
【００８６】
次に、ステップＳ２０２において、上記（２）式の目的関数の勾配∇ｌ(ｗｋ)を計算する。
【００８７】
次に、ステップＳ２０４において、ステップＳ２０２で計算した目的関数の勾配∇ｌ(ｗｋ)を用いて、上記（３）式のように、確率パラメータｘｋを更新する。
【００８８】
次に、ステップＳ２０６において、ステップＳ２０４で更新されたｘｋの各要素の値が０以下ならば０に、１以上ならば１に修正する。
【００８９】
次に、ステップＳ２０８において、ｘｋの各要素ｘｉｋから、(ｘｉｋ−０．５)２の値が小さい順にＲ分だけ選択する。つまり基準値との差が小さい確率パラメータをＲ分だけ選択する。
【００９０】
次に、ステップＳ２１０において、ステップＳ２０８で選択されなかった要素ｘｉｋについては、ｘｉｋの値がｘｉｋ≧０．５ならば０に、ｘｉｋ＞０．５ならば１に修正する。
【００９１】
次に、ステップＳ２１２において、ｗｋ＋１←ｘｋとし、繰り返し終了条件を満たす場合はステップＳ２１６へ移行し、繰り返し終了条件を満たさない場合はステップＳ２１４へ移行する。
【００９２】
次に、ステップＳ２１４において、ｋ←ｋ＋１としてステップＳ２０２に戻って処理を繰り返す。
【００９３】
ステップＳ２１６において、上記ステップＳ２０４〜Ｓ２０８で推定された確率パラメータの各々に基づいて、ある確率パラメータｗｉがｗｉ＝０であったならば、対応する節を出力する確率論理プログラムから取り除く。また、確率パラメータｗｉ＝１であったならば、Ｆよりｆｉを取り除き、かつＢにｆｉを追加し、確率論理プログラムを生成し処理を終了する。
【００９４】
以上説明したように、本発明の実施の形態に係るパラメータ推定装置によれば、複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付け、複数の訓練例と、確率論理プログラムと、サイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズ以下となるように、確率論理プログラムの確率パラメータの各々の値を推定することにより、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができる。
【００９５】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９６】
例えば、本実施の形態のパラメータ推定装置１００は、プログラムデータベース２２及び訓練例データベース２４を備えている場合について説明したが、例えばプログラムデータベース２２及び訓練例データベース２４の少なくとも１つがパラメータ推定装置１００の外部装置に設けられ、パラメータ推定装置１００は、外部装置と通信手段を用いて通信することにより、プログラムデータベース２２及び訓練例データベース２４の少なくとも１つを参照するようにしてもよい。
【００９７】
例えば、上述のパラメータ推定装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００９８】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００９９】
１０   プログラム入力部
１２   訓練例入力部
２０   演算部
２２   プログラムデータベース
２４   訓練例データベース
２６   パラメータ推定部
３０   出力部
１００ パラメータ推定装置
【図１】
2019061623.tif 000017
【図２】
2019061623.tif 000018
【図３】
2019061623.tif 000019