TOP > 国内特許検索 > パラメータ推定装置、方法、及びプログラム > 明細書

明細書 :パラメータ推定装置、方法、及びプログラム

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第6745507号 (P6745507)
公開番号 特開2019-061623 (P2019-061623A)
登録日 令和2年8月6日(2020.8.6)
発行日 令和2年8月26日(2020.8.26)
公開日 平成31年4月18日(2019.4.18)
発明の名称または考案の名称 パラメータ推定装置、方法、及びプログラム
国際特許分類 G06N   5/04        (2006.01)
G06N  99/00        (2019.01)
FI G06N 5/04
G06N 99/00 180
請求項の数または発明の数 5
全頁数 14
出願番号 特願2017-187870 (P2017-187870)
出願日 平成29年9月28日(2017.9.28)
審査請求日 令和元年8月19日(2019.8.19)
特許権者または実用新案権者 【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
発明者または考案者 【氏名】西野 正彬
【氏名】山本 章博
個別代理人の代理人 【識別番号】110001519、【氏名又は名称】特許業務法人太陽国際特許事務所
審査官 【審査官】渡部 博樹
参考文献・文献 特開2016-018323(JP,A)
特開2017-102540(JP,A)
特開2017-228068(JP,A)
調査した分野 G06N3/00-99/00
特許請求の範囲 【請求項1】
確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置であって、
前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付ける訓練例入力部と、
前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するパラメータ推定部と、
を含むパラメータ推定装置。
【請求項2】
前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を0又は1にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定する請求項1に記載のパラメータ推定装置。
【請求項3】
確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置におけるパラメータ推定方法であって、
訓練例入力部が、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付けるステップと、
パラメータ推定部が、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するステップと、
を含むパラメータ推定方法。
【請求項4】
前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を0又は1にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定する請求項3に記載のパラメータ推定方法。
【請求項5】
コンピュータを、請求項1又は請求項2に記載のパラメータ推定装置の各部として機能させるためのプログラム。
発明の詳細な説明 【技術分野】
【0001】
本発明は、パラメータ推定装置、方法、及びプログラムに係り、特に、確率論理プログラムで用いられる確率パラメータの各々の値を推定するパラメータ推定装置、方法、及びプログラムに関する。
【背景技術】
【0002】
論理プログラムは一階述語論理の節の集まりによって、対象領域における関係性を表現するものである。例えば、
【0003】
mother(X,Y):- parent(X,Y),female(X).
female(hanako).
parent(hanako,taro).
【0004】
は3つの節からなる論理プログラムである。X,Yは変数、hanako,taroは定数、mother,parent,femaleは述語記号である。
【0005】
また、A:-B,...,Bの形の節のうち、Aを頭部、B,...,Bを本体部とよぶ。上記の論理プログラムは、ある事象間の論理的な関係を定めている。
【0006】
確率論理プログラムは論理プログラムの拡張であり、論理プログラムが確率的な事象を扱えるようにしたものである。通常の論理プログラムの枠組みにおいては、ある論理プログラムTとある質問qが与えられたとき、節の集合からその質問を論理的帰結として導き出せるかどうかを判断するしかできなかった。すなわち、例えば30%の確率でqを導き出すことができるといったような、不確実性を含む関係を表現することができなかった。確率論理プログラムは確率分布を用いることによって、ある質問qをプログラムが導出できる確率
【0007】
【数1】
JP0006745507B2_000002t.gif

【0008】
を定義することができるようになる。そのため、確率論理プログラムを用いることでより柔軟に対象領域における関係性を記述することが可能となる。
【0009】
mother(X, Y) :- parent(X, Y), female(X).
0.3::female(hanako).
0.5::parent(hanako, taro).
【0010】
上記は確率論理プログラムの一種である、ProbLog(非特許文献1参照)の記述例である。以下、ProbLogを対象としたパラメータ推定について説明する。通常の論理プログラムとの違いは、節female(hanako)., parent(taro).に[0,1]の範囲のパラメータが付与されていることである。このパラメータは該当の節が論理プログラムに含まれる確率を表している。
【0011】
例えば0.3::female(hanako).は、節female(hanako)が0.3の確率で論理プログラムに含まれることを表している。確率論理プログラムでは、このようにいくつかの節に数値を付与することで、確率分布P(q)を定義する。例えば上記のプログラムでは、
【0012】
【数2】
JP0006745507B2_000003t.gif

JP0006745507B2_000004t.gif
JP0006745507B2_000005t.gif
【0013】
となる。
【0014】
確率論理プログラムのパラメータが未知のときに、訓練データを入力として与え、訓練データに対する負の対数尤度を最小化するようにパラメータを推定するパラメータ推定手法が提案されている(非特許文献2参照)。すなわち、wを論理プログラムに含まれるi番目の確率の付与された節に対応するパラメータとし、すべてのパラメータの集合をw={w,...,w}とすると、論理プログラムTと、訓練データとを入力として受け取り、訓練データに対する負の対数尤度を最小化するようなパラメータの集合^w={^w,...,^w}を求める手法が提案されている。さらには、確率論理プログラムのパラメータ推定問題において、パラメータの値が0または1をとるように目的関数に正規化項を足し合わせて最小化することによって確率論理プログラムのパラメータ数を減らすパラメータ推定手法も提案されている(非特許文献2参照)。この手法を用いると、推定されたパラメータ^w中には、w=0またはw=1となる成分が多く含まれることになる。確率が0または1となる確率つき節は削除したり、あるいは確率をとらない通常の節として扱うことができるようになる。確率論理プログラムを用いた推論の手続きは、確率つき節の数に応じて複雑になるため、確率つき節の数を減らすことでより推論が高速に行えるという効果がある。
【先行技術文献】
【0015】

【非特許文献1】Luc De Raedt, Angelika Kimmig, and Hannu Toivonen.,"Problog: A probabilistic prolog and its application in link discovery.", In IJCAI, p.2462-2467, 2007.
【非特許文献2】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.
【発明の概要】
【発明が解決しようとする課題】
【0016】
既存の正則化項を用いた手法では、^w=0または^w=1となるパラメータの数を増やすことで確率つき節の数の少ない確率論理プログラムを推定することができた。しかし、既存法で用いられている正則化項では、0または1の値をとらないパラメータの個数が最終的にいくつになるかを事前に知ることができないという課題があった。そのため、得られた確率論理プログラムを用いた確率推論における推論プロセスの計算時間をある一定時間以下に収めたいなどの要求があった場合には、ハイパーパラメータを変更させつつ所望のパラメータが推定できるまで何度もパラメータ推定処理を繰り返す必要があった。
【0017】
本発明は、上記問題点を解決するために成されたものであり、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができるパラメータ推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0018】
上記目的を達成するために、第1の発明に係るパラメータ推定装置は、確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置であって、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付ける訓練例入力部と、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するパラメータ推定部と、を含んで構成されている。
【0019】
また、第1の発明に係るパラメータ推定装置において、前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を0又は1にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定するようにしてもよい。
【0020】
第2の発明に係るパラメータ推定方法は、確率パラメータが付与された事実を表す節の集合と、前記確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる前記確率パラメータの各々の値を推定するパラメータ推定装置におけるパラメータ推定方法であって、
【0021】
訓練例入力部が、前記確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とからなる予め用意された複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付けるステップと、
【0022】
パラメータ推定部が、前記訓練例入力部によって受け付けた複数の訓練例と、前記確率論理プログラムと、前記サイズとに基づいて、前記確率論理プログラムのもとでの前記複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、前記確率パラメータが付与された事実を表す節の数が前記サイズ以下となるように、前記確率論理プログラムの前記確率パラメータの各々の値を推定するステップと、を含んで実行することを特徴とする。
【0023】
また、第2の発明に係るパラメータ推定方法において、前記確率パラメータの各々の初期値、又は前回更新された前記確率パラメータの各々の値に基づいて、前記目的関数の勾配を計算し、計算された前記目的関数の勾配に基づいて、前記確率パラメータの各々の値を更新し、更新された前記確率パラメータの値に基づいて、予め定められた基準値との差が小さい順に前記確率パラメータを前記サイズ分だけ選択し、選択されなかった前記確率パラメータの値を0又は1にすることを、予め定められた繰り返し終了条件を満たすまで繰り返すことにより、前記確率論理プログラムの前記確率パラメータの各々の値を推定するようにしてもよい。
【0024】
第3の発明に係るプログラムは、コンピュータを、第1の発明に係るパラメータ推定装置の各部として機能させるためのプログラムである。
【発明の効果】
【0025】
本発明のパラメータ推定装置、方法、及びプログラムによれば、複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付け、複数の訓練例と、確率論理プログラムと、サイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズ以下となるように、確率論理プログラムの確率パラメータの各々の値を推定することにより、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができる、という効果が得られる。
【図面の簡単な説明】
【0026】
【図1】本発明の実施の形態に係るパラメータ推定装置の構成を示すブロック図である。
【図2】本発明の実施の形態に係るパラメータ推定装置における推定処理ルーチンを示すフローチャートである。
【図3】本発明の実施の形態に係るパラメータ推定装置におけるパラメータ推定処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0027】
<本発明の実施の形態の概要>

【0028】
まず、本発明の実施の形態の概要について説明する。本発明の実施の形態では、確率論理プログラムにおける確率パラメータが付与された事実を表す節の数を示すサイズ(Rとする)が予め指定されているときに、推定された確率パラメータが^w≠0かつ^w≠1であるような要素の数がR個以下であるように、パラメータ^wを推定する手法を提案する。

【0029】
以下、図面を参照して本発明の実施の形態を詳細に説明する。

【0030】
<本発明の実施の形態に係るパラメータ推定装置の構成>

【0031】
本発明の実施の形態に係るパラメータ推定装置の構成について説明する。本発明の実施の形態に係るパラメータ推定装置100は、確率パラメータが付与された事実を表す節の集合と、確率パラメータが付与されていない節の集合とを含む確率論理プログラムであって、かつ、質問として与えられた事実を論理的帰結として導出することができる確率を算出する確率論理プログラムで用いられる確率パラメータの各々の値を推定する。

【0032】
本発明の実施の形態に係るパラメータ推定装置100は、CPU(Central Processing Unit)と、CPUが後述する各処理ルーチンを実行するためのプログラム等を記憶したROM(Read Only Memory)と、RAM(Random Access Memory)と、を備えたコンピュータで構成することができる。このパラメータ推定装置100は、機能的には図1に示すようにプログラム入力部10と、訓練例入力部12と、演算部20と、出力部30とを備えている。

【0033】
プログラム入力部10は、確率論理プログラムを受け付ける。具体的には、プログラム入力部10は、確率パラメータを推定する対象となる確率論理プログラムのひな形の入力を受け付ける。ここで、ひな形とは、いくつかの節の確率パラメータの値が未定義であるような確率論理プログラムのことをいう。例えば、

【0034】
mother(X, Y):- parent(X, Y), female(X).
::female(hanako).
::parent(hanako, taro).

【0035】
は、2つの確率パラメータつき節の値が定まっていない、ひな形である。

【0036】
訓練例入力部12は、確率論理プログラムの論理的帰結として導出されるべき事実の集合と、論理的帰結として導出されるべきではない事実の集合とを含む予め用意された訓練例を複数受け付ける。訓練例は、確率論理プログラムのひな形のパラメータが正しく推定されたときに、生成されると考えられる事実の集合である。以下では、訓練例の集合を{I,I,...,I}と表現する。各Iは一つの訓練例であり、訓練例Iは、I=(I,I)というペアによって構成されているとする。Iは推定された確率論理プログラムから論理的帰結として導出される事実の集合、Iは導出されなかった事実の集合である。上記の確率論理プログラムでは、例えば

【0037】
={parent(hanako, taro)},I={female(hanako), mother(hanako, taro)}

【0038】
などが訓練例となり、これは推定された確率論理プログラムから、parent(hanako, taro)を論理的帰結として導出できるが、female(hanako)とmother(hanako, taro)を導出できないような例が生成されることがあるということを表している。

【0039】
また、訓練例入力部12は、確率論理プログラムにおける確率パラメータが付与された事実を表す節の数を示すサイズRの指定を受け付ける。

【0040】
演算部20は、プログラムデータベース22と、訓練例データベース24と、パラメータ推定部26とを備えている。

【0041】
プログラムデータベース22には、プログラム入力部10によって受け付けた確率論理プログラムと、後述する代入の集合Lとが格納される。

【0042】
訓練例データベース24には、訓練例入力部12によって受け付けた複数の訓練例、及び確率パラメータが付与された事実を表す節の数を示すサイズRが格納される。

【0043】
パラメータ推定部26は、訓練例データベース24に格納された複数の訓練例と、プログラムデータベース22に格納された、確率論理プログラムと、確率パラメータが付与された事実を表す節の数を示すサイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズR個以下となるように、確率論理プログラムの確率パラメータの各々の値を推定する。

【0044】
そして、パラメータ推定部26は、推定された確率パラメータの値が1である事実を表す節から、確率パラメータを取り除いて、確率パラメータが付与されていない節とし、推定された確率パラメータの値が0である事実を表す節を、確率論理プログラムから取り除く。

【0045】
パラメータ推定部26の具体的な処理の内容を説明するために、はじめに、以下で用いる記法および確率論理プログラムについて説明する。

【0046】
まず、一階述語論理の節の集合である確率論理プログラムをTとする。さらにTに含まれる節を、確率パラメータが付与された事実の集合Fと、確率パラメータが付与されていない節の集合Bとに分ける。すなわち、

【0047】
【数3】
JP0006745507B2_000006t.gif

【0048】
である。上述の例では、F={female(hanako)., parent(hanako, taro).},B={mother(X,Y):-parent(X,Y) ,female(X).}である。以下ではFに含まれている事実の集合をf,...,fとし、それぞれの事実に対応する確率パラメータの各々をw,...,wとする。

【0049】
節、項に対する代入とは、その節または項に含まれる変数Xを、変数を含まない項で置き換えることをいう。代入は変数と置き換えられる項のペアで与えられ、また以下ではある代入をθとして表す。Fに含まれる事実f∈Fに対する、代入後の項が変数を含まないような全ての代入を考える。定数記号の数が有限であると仮定すると、事実fに対する全ての代入の集合は

【0050】
【数4】
JP0006745507B2_000007t.gif

【0051】
となる。ここでKはfに対する可能な代入の数である。全ての事実f∈Fに対する全ての可能な代入の集合の和集合を

【0052】
【数5】
JP0006745507B2_000008t.gif

【0053】
とする。パラメータ推定部26は、プログラムデータベース22に格納された確率論理プログラムに基づいて、全ての事実f∈Fに対する全ての可能な代入の集合の和集合Lを生成し、プログラムデータベース22に格納する。

【0054】
ここで、ある論理プログラムTのもとで、質問(リテラル)qが論理的帰結として求められることを

【0055】
【数6】
JP0006745507B2_000009t.gif

【0056】
と表現する。同様に、ある論理プログラムTのもとで、論理的帰結として求められないことを

【0057】
【数7】
JP0006745507B2_000010t.gif

【0058】
と表現する。そして、δ(T,I)を、すべてのq∈Iについて

【0059】
【数8】
JP0006745507B2_000011t.gif

【0060】
かつすべてのq∈Iについて

【0061】
【数9】
JP0006745507B2_000012t.gif

【0062】
であるなら、δ(T,I)=1、そうでないならばδ(T,I)=0であるような関数として定義する。

【0063】
以上を用いて、確率論理プログラムTのもとでの訓練例Iの出現確率P(I|T)を

【0064】
【数10】
JP0006745507B2_000013t.gif

・・・(1)

【0065】
として定義する。また複数の訓練例の出現確率の負の対数尤度関数l(w)を

【0066】
【数11】
JP0006745507B2_000014t.gif

・・・(2)

【0067】
として定義する。上記(2)式を目的関数とする。

【0068】
以上の定義のもと、パラメータ推定部26は、パラメータ推定処理を行う。まず、パラメータ推定部26は、プログラムデータベース22より、確率論理プログラムのひな形を入力として受け取る。次に、パラメータ推定部26は、複数の訓練例、及びサイズRの指定を訓練例データベース24より受け取る。ここで、ひな形に含まれる確率パラメータをw={w,w,...,w}とする。また、訓練例の集合を{I,I,...,I}とする。そして、パラメータ推定部26は、パラメータ推定処理を行う。

【0069】
パラメータ推定処理において、パラメータ推定部26は、まず、確率パラメータwを初期化する。また、kを0に設定する。次にパラメータ推定部26は、現在のw(k)を用いて、上記(2)式の目的関数の勾配∇l(w)を計算する。勾配の定義は非特許文献2の(5)式に等しいものである。

【0070】
次にパラメータ推定部26は、計算した目的関数の勾配∇l(w)を用いて、

【0071】
【数12】
JP0006745507B2_000015t.gif

・・・(3)
と確率パラメータxを更新する。αは勾配の更新度合いを調整するスカラー値のパラメータである。αの値の設定方法は非特許文献2にある手法を用いてもよい。

【0072】
次にパラメータ推定部26は、xの各要素の値が0以下ならば0に、1以上ならば1に修正する。そして、パラメータ推定部26は、xの各要素xから、(x-0.5)の値が小さい順にR分だけ選択する。選択されなかった要素xについては、xの値がx≧0.5ならば0に、x>0.5ならば1に修正する。

【0073】
次にパラメータ推定部26は、wk+1←xとし、繰り返し終了条件を満たす場合は処理を終了する。繰り返し終了条件を満たさない場合は、k←k+1として処理を繰り返す。繰り返し終了条件は、wk+1とxとの差分が小さい、もしくはkがある定められた値より大きくなった場合とする。

【0074】
パラメータ推定部26は、パラメータ推定処理の終了後、推定結果を出力する。ここで、パラメータ推定部26は、入力として与えられたひな形に推定された確率パラメータを付与したものを推定結果とする。このとき、あるwがw=0であったならば、対応する節を出力する確率論理プログラムから取り除く。また、w=1であったならば、Fよりfを取り除き、かつBにfを追加する。こうして得られた確率論理プログラムを出力して処理を終了する。

【0075】
出力部30は、パラメータ推定部26によって出力された確率論理プログラムを出力する。

【0076】
<本発明の実施の形態に係るパラメータ推定装置の作用>

【0077】
次に、本発明の実施の形態に係るパラメータ推定装置100の作用について説明する。確率論理プログラムと、複数の訓練例と、確率パラメータが付与された事実を表す節の数を示すサイズRの指定とがパラメータ推定装置100に入力されると、演算部20によって、図3に示す推定処理ルーチンが実行される。

【0078】
まず、ステップS100において、プログラム入力部10によって、入力された確率論理プログラムを受け付け、プログラムデータベース22に格納する。

【0079】
次に、ステップS102において、訓練例入力部12によって、入力された複数の訓練例、及びサイズRを受け付け、訓練例データベース24に格納する。

【0080】
次に、ステップS104において、パラメータ推定部26によって、上記ステップS100でプログラムデータベース22に格納された確率論理プログラムと、ステップS102で訓練例データベース24に格納された、複数の訓練例と、サイズRとに基づいて、全ての事実f∈Fに対する全ての可能な代入の集合の和集合Lを生成し、プログラムデータベース22に格納する。

【0081】
次に、ステップS106において、パラメータ推定部26によって、上記ステップS100でプログラムデータベース22に格納された確率論理プログラムと、ステップS102で訓練例データベース24に格納された、複数の訓練例と、サイズRとに基づいて、確率パラメータの各々の値を推定する。ステップS106は、図3に示すパラメータ推定処理ルーチンによって実現される。

【0082】
ステップS108において、ステップS106で確率パラメータの各々の値を推定することにより生成された確率論理プログラムを出力し、処理を終了する。

【0083】
[パラメータ推定処理ルーチン]

【0084】
次に、上記ステップS106の処理を説明する。

【0085】
ステップS200において、確率パラメータwを初期化し、kを0に設定する。

【0086】
次に、ステップS202において、上記(2)式の目的関数の勾配∇l(w)を計算する。

【0087】
次に、ステップS204において、ステップS202で計算した目的関数の勾配∇l(w)を用いて、上記(3)式のように、確率パラメータxを更新する。

【0088】
次に、ステップS206において、ステップS204で更新されたxの各要素の値が0以下ならば0に、1以上ならば1に修正する。

【0089】
次に、ステップS208において、xの各要素xから、(x-0.5)の値が小さい順にR分だけ選択する。つまり基準値との差が小さい確率パラメータをR分だけ選択する。

【0090】
次に、ステップS210において、ステップS208で選択されなかった要素xについては、xの値がx≧0.5ならば0に、x>0.5ならば1に修正する。

【0091】
次に、ステップS212において、wk+1←xとし、繰り返し終了条件を満たす場合はステップS216へ移行し、繰り返し終了条件を満たさない場合はステップS214へ移行する。

【0092】
次に、ステップS214において、k←k+1としてステップS202に戻って処理を繰り返す。

【0093】
ステップS216において、上記ステップS204~S208で推定された確率パラメータの各々に基づいて、ある確率パラメータwがw=0であったならば、対応する節を出力する確率論理プログラムから取り除く。また、確率パラメータw=1であったならば、Fよりfを取り除き、かつBにfを追加し、確率論理プログラムを生成し処理を終了する。

【0094】
以上説明したように、本発明の実施の形態に係るパラメータ推定装置によれば、複数の訓練例と、前記確率パラメータが付与された事実を表す節の数を示すサイズの指定とを受け付け、複数の訓練例と、確率論理プログラムと、サイズとに基づいて、確率論理プログラムのもとでの複数の訓練例の出現確率の負の対数尤度を表す目的関数を最小化し、かつ、確率パラメータが付与された事実を表す節の数がサイズ以下となるように、確率論理プログラムの確率パラメータの各々の値を推定することにより、確率論理プログラムで用いられる確率パラメータの数を指定して、確率パラメータを推定することができる。

【0095】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。

【0096】
例えば、本実施の形態のパラメータ推定装置100は、プログラムデータベース22及び訓練例データベース24を備えている場合について説明したが、例えばプログラムデータベース22及び訓練例データベース24の少なくとも1つがパラメータ推定装置100の外部装置に設けられ、パラメータ推定装置100は、外部装置と通信手段を用いて通信することにより、プログラムデータベース22及び訓練例データベース24の少なくとも1つを参照するようにしてもよい。

【0097】
例えば、上述のパラメータ推定装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。

【0098】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【0099】
10 プログラム入力部
12 訓練例入力部
20 演算部
22 プログラムデータベース
24 訓練例データベース
26 パラメータ推定部
30 出力部
100 パラメータ推定装置
図面
【図1】
0
【図2】
1
【図3】
2