(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022017872
(43)【公開日】2022-01-26
(54)【発明の名称】論理プログラム推論装置、論理プログラム推論方法、及びプログラム
(51)【国際特許分類】
G06N 5/04 20060101AFI20220119BHJP
G06N 20/00 20190101ALI20220119BHJP
【FI】
G06N5/04
G06N20/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2020120683
(22)【出願日】2020-07-14
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】山本 章博
(72)【発明者】
【氏名】新藤 光
(57)【要約】
【課題】∂ILPによる帰納論理プログラミングにおける計算量及びメモリ使用量を削減する。
【解決手段】ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置において、確定節の集合を格納する記憶部と、前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定部と、前記包摂関係判定部により、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理部とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置であって、
確定節の集合を格納する記憶部と、
前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定部と、
前記包摂関係判定部により、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理部と
を備える論理プログラム推論装置。
【請求項2】
前記学習処理部は、前記訓練例に対する損失関数を最小にするように、各確定節の組に付与されたパラメータを調整することにより前記学習を行う
請求項1に記載の論理プログラム推論装置。
【請求項3】
前記学習処理部は、∂ILP(Differentiable Inductive Logic Programming)の学習方法を用いて前記学習を行う
請求項1又は2に記載の論理プログラム推論装置。
【請求項4】
ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置が実行する論理プログラム推論方法であって、
前記論理プログラム推論装置は、確定節の集合を格納する記憶部を備え、
前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定ステップと、
前記包摂関係判定ステップにより、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理ステップと
を備える論理プログラム推論方法。
【請求項5】
コンピュータを、請求項1ないし3のうちいずれか1項に記載の論理プログラム推論装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、与えられた正例と負例から、正例を導出できて、かつ負例を導出しないような規則の集合を見つけ出すための機械学習手法である、帰納論理プログラミングを効率的に実行するための技術に関連するものである。
【背景技術】
【0002】
一階述語論理を用いて記述された規則の集合のことを論理プログラムと呼ぶ。帰納論理プログラミングとは、訓練データとして正例の集合と負例の集合とが与えられたときに、全ての正例が論理的帰結とし、かついずれの負例も論理的帰結としないような規則の集合(論理プログラム)を推定する、機械学習手法の一種である。
【0003】
一般の機械学習手法と比較した際の帰納論理プログラミングの最大の特徴は、推定される機械学習モデルが論理プログラムとして与えられる点にある。論理プログラムは一階述語論理で記述された論理式(確定節)の集合であるため、可読性が高く、また他の論理プログラムと組み合わせたり、人手で学習結果を修正することが容易であるという特徴がある。
【0004】
帰納論理プログラミングの欠点として、訓練データに含まれる誤りやノイズに対応できないという点が挙げられる。帰納論理プログラミングは矛盾のない論理プログラムを求める手法であるため、ノイズや誤りがあると正しくプログラムを推定することができない。
【0005】
非特許文献1には、上記のような帰納論理プログラミングの欠点を克服するために考案された機械学習手法である∂ILP(Differentiable Inductive Logic Programming)が開示されている。
【0006】
∂ILPでは、帰納論理プログラミングにおいて訓練例から論理プログラムを推定する代わりに、損失関数の値を最小とするような論理プログラムに付与された実数値のパラメータを求めることで、訓練例と適合するような論理プログラムを求める。また、学習にはニューラルネットワークの学習で広く用いられている微分に基づくパラメータ推定手法を用いることで、効率的な学習を実現している。∂ILPを用いることにより、訓練例に誤りやノイズが含まれるような場合であっても、妥当な論理プログラムを推定することが可能である。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Richard Evans and Edward Grefestette, "Learning Explanatory Rules from Noisy Data", Journal of Artificial Intelligence Research, Vol 61, pp 1 - 64, 2018.
【非特許文献2】山本 章博,「帰納論理プログラムの基礎理論とその展開」,コンピュータソフトウェア,Vol.23, No. 2 (2006)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、非特許文献1に開示されている∂ILPでは、下記のように論理プログラムの推定にかかる計算時間及び計算機のメモリ使用量が大きくなり、計算が難しくなるという課題があった。
【0009】
ある述語pに対してpを頭部とする確定節の集合Vpを適当に定める。∂ILPにより訓練例から推定する論理プログラムは、各述語pに対して、Vpに含まれる確定節を2個ずつ選択することで構成されるもののうち、損失関数を最小とするものである。
【0010】
正しい論理プログラムを推定するためには多様な確定節の候補を考慮する必要があるため、Vpに多様な確定節を含める必要がある。一方で必要なパラメータの数及び論理プログラムの推定にかかる計算時間及び計算機のメモリ使用量は|Vp|2に比例して増大するため、確定節の候補数を大きくすると計算が難しくなるという課題があった。
【0011】
本発明は上記の点に鑑みてなされたものであり、∂ILPによる帰納論理プログラミングにおける計算量及びメモリ使用量を削減することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0012】
開示の技術によれば、ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置であって、
確定節の集合を格納する記憶部と、
前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定部と、
前記包摂関係判定部により、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理部と
を備える論理プログラム推論装置が提供される。
【発明の効果】
【0013】
開示の技術によれば、∂ILPによる帰納論理プログラミングにおける計算量及びメモリ使用量を削減することを可能とする技術が提供される。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施の形態における論理プログラム推論装置の構成図である。
【
図2】論理プログラム推論装置のハードウェア構成例を示す図である。
【
図3】論理プログラム推論装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0016】
なお、以下の説明では、∂ILPによる帰納論理プログラミングを前提としているが、本発明に係る技術は、∂ILP以外の帰納論理プログラミングにも適用し得る。
【0017】
(実施の形態の概要)
前述したように、∂ILPでは、論理プログラムの推定にかかる計算量及びメモリ使用量が大きくなるという課題があった。以下で説明するように、本実施の形態における論理プログラム推定装置100によりこの課題が解決される。
【0018】
∂ILPではVp種類の確定節から構成できる、(Vp(Vp-1))/2通りの全ての確定節のペアを解の候補とするため、計算量及びメモリ使用量が増加していた。一方で、本実施の形態における論理プログラム推定装置100は、全てのペアを候補とはせず、その代わりに精密化演算子(例えば非特許文献2)によって定まる包摂関係にない確定節の組合せのみを論理プログラムの候補として、論理プログラム推論処理を実行する。
【0019】
精密化演算子とは、ある確定節を入力として受け取り、その確定節が包摂する確定節の集合を返す関数である。ある確定節Cに精密化演算子を1回又は繰り返し適用することで確定節Dが得られる場合、CはDを包摂するという。
【0020】
述語pを頭部とする確定節Cが、同じく述語pを頭部とする確定節Dを包摂する場合、∂ILPにおいては節のペアC、Dで論理的帰結とされる訓練例の集合と、Cのみから論理的帰結とされる節の集合とが一致するため、C、Dを候補として考えなくてもCのみを候補として考えることで、等価な論理プログラムを得ることができる。以上より、包摂関係にある確定節の組み合わせを論理プログラムの候補から除去することができ、∂ILPの論理プログラム推論処理における計算量及びメモリ使用量を削減することができる。
【0021】
(概念)
論理プログラム推論装置100の構成及び動作を説明する前に、まず、説明で使用する用語の概念を説明する。なお、ここで説明する概念は、非特許文献1、2等にも記載されているように、一般的なものである。
【0022】
確定節とは、α←β1,…,βmの形をした規則のことである。αを規則の頭部、β1、…、βmを規則の本体と呼ぶ。α,β1,…,βmはそれぞれアトムと呼ぶ。上記規則は右から左に読まれ、もしも右側の全てのアトムがtrueであれば、左側のアトムもtrueである。アトムは述語記号pとn個の引数によってp(t1,…,tn)という形をとる。t1,…,tnはそれぞれ項と呼ばれる。項は変数もしくは定数である。
【0023】
論理プログラムは確定節の集合として表現される。例えば、下記の確定節の集合(2つの確定節)は論理プログラムである。
【0024】
connected(X,Y)←edge(X,Y)
connected(X,Y)←edge(X,Z),connected(Z,Y)
上記の論理プログラムにおいて、X、Y、Zは変数であり、edge、connectedは述語記号であり、connected(X,Y)、edge(X,Y)、connected(Z,Y)はアトムである。上記の論理プログラムは、「connected」という述語が、2つの確定節で定義されることを示している。
【0025】
(装置構成)
図1は、本発明の実施の形態における論理プログラム推論装置100の構成図である。
図1に示すように、論理プログラム推論装置100は、入力部110、包摂関係判定部120、学習処理部130、学習結果出力部140、記憶部150を有する。
【0026】
入力部110は、訓練例、確定節の候補集合、精密化演算子を外部から受け取り、入力する。包摂関係判定部120は、確定節の組に対する包摂関係の判定を行う。
【0027】
学習処理部130は、訓練例に対する損失関数を最小にするような最適化を実行することで、訓練例に適した論理プログラムを求める。学習結果出力部140は、学習処理部130で求めた論理プログラムを外部に出力する。記憶部150は、入力された情報、計算結果等を格納する。
【0028】
<ハードウェア構成例>
本実施の形態における論理プログラム推論装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
【0029】
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0030】
図2は、上記コンピュータのハードウェア構成例を示す図である。
図2のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。
【0031】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0032】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、論理プログラム推論装置100に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
【0033】
(論理プログラム推論装置の動作)
次に、
図3のフローチャートの手順に沿って、論理プログラム推論装置100の動作を説明する。
【0034】
なお、
図3に示す処理のうち、S102(ステップ102)、S103が本発明に係る技術に固有の処理である。残りのステップにおける処理の内容は、非特許文献1に開示されている∂ILPでの処理の内容に等しい。
【0035】
<S101>
S101において、入力部110より、各述語記号に対して、その述語記号を用いたアトムが頭部となるような確定節の集合を入力する。入力された確定節の集合は、記憶部150に格納される。
【0036】
上述した「述語記号を用いたアトムが頭部となるような確定節」における述語記号として使用される述語記号の数は1以上であり、それぞれの述語記号は、推論対象の論理プログラム(=2つの確定節)が表現するターゲットの述語記号である。
【0037】
例えば、「偶数」(even)という概念を表す論理プログラムを推論したい場合に、1以上の述語記号には「even」が含まれる。1以上の述語記号の中に、「even」の他に、補助となる述語記号が含まれてもよい。
【0038】
上記の確定節の集合は、例えば、集合の範囲を定めるルールテンプレートから生成されたものである。より具体的には、確定節の頭部に使用される述語記号毎に、2つのルールテンプレートから生成されたものとしてもよい。
【0039】
なお、入力部110にルールテンプレートを入力し、入力部110が、ルールテンプレートに基づいて、確定節の集合を生成することとしてもよい。また、「確定節の集合を入力する」ことが、「ルールテンプレートを入力し、ルールテンプレートに基づいて、確定節の集合を生成する」ことを意味していると解釈してもよい。
【0040】
<S102>
S102において、入力部110より、精密化演算子を入力する。入力された精密化演算子は、記憶部150に格納される。
【0041】
精密化演算子とは、確定節を受け取り、確定節の集合を出力する関数である。例えば、p(X)←q(Y)を受け取り、
p(a)←q(Y)
p(X)←q(a)
を返すような関数を精密化演算子と呼ぶ。非特許文献2には精密化演算子の例が推論規則として記載されている。
【0042】
ある確定節Cに精密化演算子を適用することで確定節Dが得られるとき、CはDを包摂するという。同様に、ある確定節Cに精密化演算子を適用し、得られたある確定節に繰り返し精密化演算子を適用することで確定節Eが得られた場合も、CはEを包摂するという。
【0043】
<S103>
S103において、包摂関係判定部120は、各述語記号pに対して、S101で入力した確定節の集合に含まれる確定節の組を記憶部150から一つ取り出し、当該確定節の組がS102で入力した精密化演算子による包摂関係を満たしているかどうかを調べる。包摂関係にあるかどうかの判定は、確定節の集合に含まれる全ての確定節の組に対して行われる。
【0044】
ある確定節の組が包摂関係にない場合は、その確定節の組を解の候補に加える。つまり、その確定節の組を、該当の述語記号に対する解の候補として、記憶部150に格納する。
【0045】
より詳細には、例えば、ある述語記号pに対して、ルールテンプレート1から確定節の集合1が得られ、ルールテンプレート2から確定節の集合2が得られている場合、包摂関係判定部120は、確定節の集合1から1つの確定節を取り出し、確定節の集合2から1つの確定節を取り出すことにより、確定節の組とする。この場合、確定節の集合1に含まれる確定節の数をN1とし、確定節の集合2に含まれる確定節の数をN2とすると、包摂関係判定の対象となる確定節の組の数はN1×N2となる。
【0046】
なお、上記のように、2つのルールテンプレートを用いることは例であり、1つのルールテンプレートから生成された確定節の集合から、確定節の組を取得することとしてもよい。この場合、確定節の集合における確定節の数をVpとすると、包摂関係判定の対象となる確定節の組の数は(Vp(Vp-1))/2となる。
【0047】
包摂関係の判定について、より詳細には、例えば、確定節の組が確定節Cと確定節Dである場合に、包摂関係判定部120は、確定節Cに対して精密化演算子を1回以上適用して確定節Dが得られるか否かを判定し、確定節Dが得られない場合に、確定節Dに対して精密化演算子を1回以上適用して確定節Cが得られるか否かを判定する。精密化演算子を適用する最大回数は予め定めておく。
【0048】
また、複数の精密化演算子を用いる場合には、複数の精密化演算子のそれぞれで上記の処理を行い、包摂関係にあることが確認できた時点で、判定対象の確定節の組は包摂関係にあると判定する。
【0049】
<S104>
S104において、入力部110により訓練例を入力する。入力された訓練例は記憶部150に格納される。訓練例は、ターゲットとする概念の正しい例である正例と、誤った例である負例からなる。evenをターゲットとする場合、例えば、正例は{even(0);even(2);even(4);even(6);even(8);even(10)}で与えられ、負例は{even(1);even(3);even(5);even(7);even(9)}で与えられる。つまり、この例では、訓練例は、変数を含まないアトム(グラウンドアトム(ground atom)と呼ぶ)の集合として与えられる。
【0050】
<S105>
S105において、学習処理部130は、記憶部150から、述語記号毎の解の候補となる確定節の組の集合を読み出し、訓練例を読み出し、訓練例に対する損失関数を最小とするようなパラメータを推定することで、述語記号毎の解を決定する。各解は、2つの確定節からなる論理プログラムである。
【0051】
学習処理自体は非特許文献1に記載されたとおりであり従来技術である。概要として、学習処理部130は、述語記号毎に、確定節の組毎の重みからなる行列を生成し、当該行列を用いることで、候補の確定節の集合を前提としたグラウンドアトムαのラベルλ´を計算(推定)する。そして、訓練例におけるグラウンドアトムαのラベルλ(λは、αが正例に属する場合は1、αが負例に属する場合は0)と、計算(推定)されたラベルλ´との間の誤差を示す損失関数が最小になるように、確定節の組の重みを調整することにより学習を進める。
【0052】
上記の重みが学習過程で調整されるパラメータである。学習処理の結果、最も高い重みになった確定節の組(=論理プログラム)を解とする。
【0053】
なお、非特許文献1に記載された従来技術では、確定節の組毎の重みからなる行列を格納するためのメモリ使用量が非常に大きくなるが、本発明に係る技術により、確定節の組の数を削減できるため、メモリ使用量を削減できる。
【0054】
<S106>
S106において、学習結果出力部140は、学習処理部130により推定された論理プログラムを出力して処理を終了する。
【0055】
(実施の形態の効果)
本実施の形態によって、論理プログラムの推定にかかる計算時間及び計算機のメモリ使用量を削減できる。また、効率的に計算できるため、従来技術の方法よりも多様な確定節の集合を入力として受け取っても効率的な計算が可能となるため、より損失関数の値を小さくするような論理プログラムを求めることも可能となる。
【0056】
(実施の形態のまとめ)
本明細書には、少なくとも下記の各項に記載した論理プログラム推論装置、論理プログラム推論方法、及びプログラムが記載されている。
(第1項)
ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置であって、
確定節の集合を格納する記憶部と、
前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定部と、
前記包摂関係判定部により、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理部と
を備える論理プログラム推論装置。
(第2項)
前記学習処理部は、前記訓練例に対する損失関数を最小にするように、各確定節の組に付与されたパラメータを調整することにより前記学習を行う
第1項に記載の論理プログラム推論装置。
(第3項)
前記学習処理部は、∂ILP(Differentiable Inductive Logic Programming)の学習方法を用いて前記学習を行う
第1項又は第2項に記載の論理プログラム推論装置。
(第4項)
ある概念についての訓練例に基づいて、当該概念を表す論理プログラムを推論する論理プログラム推論装置が実行する論理プログラム推論方法であって、
前記論理プログラム推論装置は、確定節の集合を格納する記憶部を備え、
前記確定節の集合に含まれる確定節の組を前記記憶部から取得し、前記確定節の組を構成する確定節に対して精密化演算子を適用することにより、前記確定節の組が包摂関係を満たしているか否かを判定し、前記確定節の組が包摂関係を満たしていない場合に、前記確定節の組を、解となる論理プログラムの候補として前記記憶部に格納する包摂関係判定ステップと、
前記包摂関係判定ステップにより、包摂関係を満たしていないと判定された確定節の組の集合を前記記憶部から取得し、前記確定節の組の集合と、前記訓練例とを用いて、解となる論理プログラムを求めるための学習を行う学習処理ステップと
を備える論理プログラム推論方法。
(第5項)
コンピュータを、第1項ないし第3項のうちいずれか1項に記載の論理プログラム推論装置における各部として機能させるためのプログラム。
【0057】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0058】
100 論理プログラム推論装置
110 入力部
120 包摂関係判定部
130 学習処理部
140 学習結果出力部
150 記憶部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置