JP6044691B2 - Logic inference system, calculation learning device, and logic inference method - Google Patents

Logic inference system, calculation learning device, and logic inference method Download PDF

Info

Publication number
JP6044691B2
JP6044691B2 JP2015196047A JP2015196047A JP6044691B2 JP 6044691 B2 JP6044691 B2 JP 6044691B2 JP 2015196047 A JP2015196047 A JP 2015196047A JP 2015196047 A JP2015196047 A JP 2015196047A JP 6044691 B2 JP6044691 B2 JP 6044691B2
Authority
JP
Japan
Prior art keywords
node
calculation
token
network
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015196047A
Other languages
Japanese (ja)
Other versions
JP2016021262A (en
Inventor
鈴木 秀明
秀明 鈴木
秀文 澤井
秀文 澤井
吉田 幹
幹 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2015196047A priority Critical patent/JP6044691B2/en
Publication of JP2016021262A publication Critical patent/JP2016021262A/en
Application granted granted Critical
Publication of JP6044691B2 publication Critical patent/JP6044691B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、人工知能の分野における論理推論システムおよび論理推論方法、ならびに、論理推論、または算術演算および論理演算を実行する計算学習装置に関する。   The present invention relates to a logical reasoning system and a logical reasoning method in the field of artificial intelligence, and a calculation learning device that executes logical reasoning or arithmetic operations and logical operations.

これまでに、「人工知能(AI:Artificial Intelligence)」の技術分野では、(a)知識の表現方法、(b)知織に基づいた演繹推論の方法、また(c)知識を事例などを基に作り上げる帰納推論の方法などが研究されてきた。   So far, in the technical field of “AI (Artificial Intelligence)”, (a) knowledge representation method, (b) deduction reasoning method based on knowledge, and (c) knowledge based on examples. The method of inductive reasoning to be made up has been studied.

ここで、人工知能の研究は、1950年代に産声を上げた。以来数十年間、この分野は情報科学において最も活発に研究された分野の一つである。特に、1980年代に我が国で進められた第5世代コンピュータ・プロジェクトでは、知識の記述形式として述語論理を、演繹推論の方法としてProlog(述語論理式をプログラムに見立てて処理する言語)を採用し、それに基づいて知識処理を並列化・高速化するための数多くの研究が行なわれた。   Here, artificial intelligence research was born in the 1950s. For decades since then, this is one of the most actively researched areas of information science. In particular, the 5th generation computer project promoted in Japan in the 1980s adopted predicate logic as a knowledge description format and Prolog (a language that processes predicate formulas as programs) as a deductive reasoning method. Based on this, many studies have been conducted to parallelize and speed up knowledge processing.

しかしながら、上述した第5世代コンピュータ・プロジェクトは、最終的に一定の成果を収めたものの、厳密には、その投資規模に見合った成果、たとえば、社会を変革するような成果を産み出すことまでは成功しなかったといわざるをえない。その理由は、人工知能で真に解決しなければならない課題が、上述した人工知能の研究分野のうち、(c)知
識を作るための帰納推論(学習)の方法の開発であるのに、(b)知識に基づいた演繹推
論の方法の高速化に的を絞り、巨大なハードウェア計算機を開発することに精力を注いだことに一因があると考えられる。
However, although the 5th generation computer project mentioned above has finally achieved a certain result, strictly speaking, until it produces an outcome that is commensurate with the scale of its investment, for example, an outcome that transforms society. It must be said that it was not successful. The reason is that the problem that must be truly solved by artificial intelligence is (c) the development of inductive reasoning (learning) method for creating knowledge in the above-mentioned research field of artificial intelligence ( b) This may be due to the focus on speeding up the method of deductive reasoning based on knowledge and focusing on developing huge hardware computers.

以上のような従来のアプローチを、記号/シンボルを明示的に扱う”狭義の”AI(記
号処理AI)とすると、これとは別に”広義の”AIには、記号/シンボルを明示的に扱
わない技術(代表的なものに人工ニューラルネットワーク研究がある)も含まれる。これら2つの技術、記号処理AIとニューラルネットは、それぞれが得意とする分野が違うこともあり、これまでなかなか研究の交流や融合は行なわれなかった。
If the conventional approach as described above is “narrowly defined” AI (symbol processing AI) that explicitly handles symbols / symbols, the symbol / symbol is explicitly handled in “broadly defined” AI. This includes non-technical techniques (typically artificial neural network research). These two technologies, symbol processing AI and neural network, have different fields of expertise, and so far there has been little exchange or fusion of research.

ここで、上述した狭義のAIにおいては、記号論理、なかでも、「述語論理」について研究が行なわれてきた。   Here, in the narrow AI described above, research has been conducted on symbolic logic, particularly “predicate logic”.

ここで、「記号論理」は、言葉で表現される意味内容を、記号(シンボル)に変換し、その論理関係によって捉えようとするものであり、論理を数学によって研究するものである。したがって、「数理論理学」とも呼ばれる。   Here, “symbol logic” is to convert meaning contents expressed in words into symbols (symbols) and try to grasp them by their logical relationship, and to study logic by mathematics. Therefore, it is also called “Mathematical logic”.

「記号論理」には、「命題論理」と「述語論理」とが含まれる。「述語論理」は、命題論理とは異なり、個々の命題の内容について論じるために、命題の中に変数を用いて、変数の値によって、真・偽をとらえる記号論理である。   “Symbolic logic” includes “propositional logic” and “predicate logic”. Unlike propositional logic, “predicate logic” is a symbolic logic that uses variables in a proposition to capture true / false depending on the value of the variable in order to discuss the contents of each proposition.

すなわち、命題論理は、言明として真か偽かを問うものであり、言明の中で表される内容に関する推論はできない。たとえば、
(p1)すべての人は平和を好む。
In other words, propositional logic asks whether a statement is true or false, and cannot infer about the contents expressed in the statement. For example,
(P1) Everyone likes peace.

(p2)太郎は人である。
ならば
(p3)太郎は平和を好む。
(P2) Taro is a person.
Then (p3) Taro likes peace.

との命題がある場合、命題論理の枠組みでは、命題(p1)、(p2)が真であっても、命題(p3)が常に真であるとは主張できない。これは、命題論理の下では、命題の中に含まれる個体に関しての内容には着目せず、命題そのものの真偽性のみ着目するからである。   In the framework of the propositional logic, it cannot be asserted that the proposition (p3) is always true even if the propositions (p1) and (p2) are true. This is because, under the propositional logic, attention is not paid to the contents relating to the individuals included in the proposition, but only the authenticity of the proposition itself.

それに対して、述語論理では、命題に含まれる個体変数に着目し、その命題における個体変数の性質や状態を述語を用いて推論を行なうことになる。   On the other hand, in predicate logic, attention is paid to individual variables included in a proposition, and the properties and states of individual variables in the proposition are inferred using predicates.

述語論理を構成する要素としては、たとえば、以下のようなものがある。
・個体定数:特定の個体を表す記号(a,b,…などの定数によって表現される)
・個体変数:任意の個体を表す記号(x,y,…などの変数によって表現される)
・述語記号:個体に関する性質や状態を表す記号(p,q,…などの記号によって表現される)
・関数記号:個体間の関係を表す記号(f(x)のfなどによって表現される)
・論理記号:命題論理の論理記号と同様に否定(¬あるいは〜),論理積(∧),論理和(∨),含意(→)などが用いられる。
Examples of elements constituting the predicate logic include the following.
Individual constant: a symbol representing a specific individual (expressed by a constant such as a, b,...)
Individual variable: A symbol representing an arbitrary individual (represented by variables such as x, y,...)
-Predicate symbols: Symbols representing the properties and states of individuals (represented by symbols such as p, q, ...)
Function symbol: Symbol representing the relationship between individuals (expressed by f in f (x), etc.)
・ Logical symbols: Negation (¬ or ~), logical product (∧), logical sum (∨), implication (→), etc. are used in the same way as logical symbols of propositional logic.

・限量記号:対象領域において対象とする固体の範囲を示す記号、全称記号(∀)、存在記号(∃)が用いされる。限量記号により限定される変数を束縛変数とよび、束縛変数でない変数を自由変数と呼ぶ。   Limit symbol: A symbol indicating a range of a target solid in the target region, a generic symbol (∀), and an existence symbol (∃) are used. A variable defined by a quantifier is called a bound variable, and a variable that is not a bound variable is called a free variable.

述語の引数となる項は、述語論理が対象とする世界である対象領域における要素を表現するものであり、述語に引数に相当する。項には、個体定数、個体変数のほか、関数自体も項となることができる。   A term that is an argument of a predicate expresses an element in a target area that is a world targeted by predicate logic, and corresponds to an argument in the predicate. A term can be an individual constant, an individual variable, or a function itself.

述語論理式の定義等は、周知であるので、ここでは、その説明は省略する。
また、恒真性を証明する対象述語論理式は、一般的にその否定形である恒偽式が全称記号と存在記号とが含まれる形となる。しかし、真偽性を保存しながら、形式的に存在記号を消去して、全称記号のみの述語論理式で表現されることが知られており、このような存在記号を取り除いた節形式を「スコーレム標準形」と呼ぶ。
Since the definition of the predicate logical expression is well known, the description thereof is omitted here.
In addition, the target predicate logical expression that proves its authenticity generally has a negative expression of a constant expression including a universal symbol and an existence symbol. However, it is known that the existence symbol is erased formally while preserving the authenticity, and it is expressed by a predicate logical expression of only the universal symbol. It is called “Scolem standard form”.

たとえば、述語論理式Pの否定形〜Pが、以下のようにスコーレム標準形で表されているとする。 For example, negative form to P 0 of the predicate logic formulas P 0 is assumed to be represented by Skolem normal form as follows.

Figure 0006044691
Figure 0006044691

ここで、素式または素式の否定のことを「リテラル」と呼ぶ。リテラルの論理和のみ、または、リテラルの論理積のみから構成される論理式のことを「節」と呼ぶ。節が、リテラルの論理和のみ、または、リテラルの論理積のみから構成されているとき、節の論理積のみ、または節の論理和のみから構成される論理式のことを「節形式」と呼ぶ。   Here, the prime expression or the negation of the prime expression is called “literal”. A logical expression composed of only a logical OR of literals or only a logical product of literals is called a “clause”. When a clause is composed only of a logical OR of literals or only a logical product of literals, a logical expression composed of only the logical product of clauses or only the logical sum of clauses is called a "clause form" .

上述したスコーレム標準形において、すべての個体変数は、全称記号によって、束縛されているため、母式を構成している節からなる集合C={C,…C}を「節集合」と呼ぶ。節集合が真であるとは、すべてのC,…Cが同時に真であることをいう。また、節集合が偽であるとは、C,…Cのうちの少なくとも一つが偽であることをいう。 In the Skolem standard form described above, all individual variables are constrained by a universal symbol. Therefore, a set C = {C 1 ,... C n } consisting of clauses constituting a matrix is referred to as a “node set”. Call. A clause set is true means that all C 1 ,... C n are true at the same time. Further, the phrase set is false means that at least one of C 1 ,... C n is false.

あらゆる解釈に対して節集合が偽となるとき(すなわち、すべてのが同時に真とはならないとき)、節集合は充足不能であるという。節集合Cが充足不能ならば、スコーレム標準形は恒偽式であり、対象としている述語論理式P0が恒真式であることが証明できる。   A clause set is said to be unsatisfiable when the clause set is false for all interpretations (ie, not all are true at the same time). If the clause set C is unsatisfiable, it can be proved that the Skolem standard form is a false expression and that the target predicate logical expression P0 is a true expression.

いま、節集合C={C,…C}における節C,Cが、あるリテラルとその否定リテラル〜Pを含み、を含み、以下のように表されるとする。 Now, assume that the clauses C i and C j in the clause set C = {C 1 ,... C n } include a certain literal and its negative literals ~ P, and are expressed as follows.

Figure 0006044691
Figure 0006044691

このような2つの節から以下のような新たな節Cijを導く推論を「導出」という。 An inference that leads to the following new clause C ij from these two clauses is called “derivation”.

Figure 0006044691
Figure 0006044691

このとき、節C,Cを親節、導出された節を導出節という。
導出は、妥当な推論形式である。
At this time, the clauses C i and C j are referred to as parent clauses, and the derived clause is referred to as a derived clause.
Derivation is a valid inference form.

節集合において、導出を行なった後、導出節を節集合に加えることを繰り返すことにより、最終的に「空節」を導くことができれば、その節集合が充足不能であるこを意味し、与えられた述語論理式の恒真性を証明できる。ここで、空節とは、0個のリテラルからなる節を指す。   In a clause set, if derivation is performed and then adding the derived clause to the clause set is repeated, the final “empty clause” can be derived, which means that the clause set is unsatisfiable. Can prove the identity of the predicate formula. Here, an empty clause refers to a clause consisting of zero literals.

このような恒偽性の判断手続きを「導出原理」と呼ぶ。
また、述語論理式に対する導出では、述語論理式に含まれる個体変数に予め適切な処置を施さないと導出を行なうことができない。
Such a procedure for determining the identity is called “derivation principle”.
Further, in the derivation for the predicate logical expression, the derivation cannot be performed unless the individual variables included in the predicate logical expression are appropriately treated in advance.

そこで、個体変数を別の項に置き換える操作を「単一化」と呼ぶ、単一化置換は、一度施されると、以降の導出過程において個体変数は、その項に束縛される。単一化置換が存在しない場合は、導出はできない。単一化置換sの元に、導出により最終的に空節が導出された場合は、「単一化置換sの下で証明された」という。   Therefore, an operation for replacing an individual variable with another term is referred to as “singleization”. Once the single substitution is performed, the individual variable is bound to that term in the subsequent derivation process. Derivation is not possible if there is no unification substitution. When an empty clause is finally derived by derivation under the unification replacement s, it is said to be “proven under the unification replacement s”.

後により詳しく説明するように、述語論理と関連する「述語論理と導出」、「Prolog」、「プロダクションシステム」、「意味ネットワーク」、「高レベルペトリネット」等については、非特許文献1〜非特許文献7に記載されている。   As will be described in more detail later, “predicate logic and derivation”, “Prolog”, “production system”, “semantic network”, “high-level Petri net”, etc. related to predicate logic It is described in Patent Document 7.

一方、ニューラルネットの研究では、知識は記号やシンボルではなく、脳内のニューロ素子を真似て作ったネットワークの繋がり情報として非明示的に表現される。その人工的なネットワ-クを、事例に基づいて所定の学習則に従って改変することで、事例の背後に
ある知識を帰納的に構成しようとする。この方式に基づき、これまで様々なネットワーク・トポロジーや学習則が提案されており、パターン認識等の分野では実用化例も報告されている(非特許文献8〜非特許文献11を参照)。
On the other hand, in neural network research, knowledge is not expressed as symbols or symbols but as network connection information created by imitating neuro elements in the brain. By modifying the artificial network according to a predetermined learning rule based on the case, the knowledge behind the case is recursively constructed. Based on this method, various network topologies and learning rules have been proposed so far, and examples of practical use have been reported in the field of pattern recognition and the like (see Non-Patent Document 8 to Non-Patent Document 11).

図44は、述語論理と導出についての別の例を示す概念図である。
図44においては、以下のような論理式を対象とし、するものとする。
FIG. 44 is a conceptual diagram showing another example of predicate logic and derivation.
In FIG. 44, the following logical expressions are targeted.

1)太郎は男である。 : Man(Taro)で表す。
2)男は人間である。 :Human(x)←Man(x)で表す。
1) Taro is a man. : Man (Taro).
2) A man is a human being. : Human (x) ← Man (x).

3)人間は誰か? :←Human(q)で表す。
ここで、1)は事実節であり、2)は規則節であり、ここでの論理プログラムの目的は、3)のゴール節の中のクエリ変数(q)が何であるかを決めることにある。
3) Who is a human being? : ← Expressed as Human (q).
Where 1) is the fact clause, 2) is the rule clause, and the purpose of the logic program here is to determine what the query variable (q) in the goal clause of 3) is .

この場合、図44の右側に示されるように、空節が得られるまで、導出を繰り返すことで、クエリ変数が「Taro」であることが導かれる。   In this case, as shown on the right side of FIG. 44, it is derived that the query variable is “Taro” by repeating the derivation until an empty node is obtained.

一方、図45は、述語論理を扱う論理型プログラミング言語であるPrologにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。   On the other hand, FIG. 45 is a conceptual diagram showing the contents for executing derivation for the fact clause, rule clause, and goal clause similar to those in FIG. 44 by Prolog, which is a logical programming language that handles predicate logic.

Prologでは、ホーン節とよばれるリテラルを1つしか含まない節について、SLD(Selective Linear definite resolution)導出とよばれる手法により、導出が実行される。Prologでは、導出の過程において単一化が失敗すると、失敗する直前の節まで戻り、他の親節候補となる節と導出を行い、処理を続けるメカニズムを有している。これを、「バックトラック」と呼ぶ。したがって、Prologは、深さ優先探索で後向き推論を実行することになる。   In Prolog, derivation is executed by a method called SLD (Selective Linear definite resolution) derivation for a clause including only one literal called a horn clause. In Prolog, when unification is unsuccessful in the derivation process, it returns to the section just before the failure, performs derivation with other parent section candidate sections, and has a mechanism to continue processing. This is called “backtrack”. Therefore, Prolog will perform backward inference with depth-first search.

図46は、述語論理を扱うプロダクション・システムにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。   FIG. 46 is a conceptual diagram showing the contents for executing derivation for the fact clause, rule clause, and goal clause similar to those in FIG. 44 by the production system that handles predicate logic.

プロダクション・システムは、ルールベースにより、作業記憶内の事実に対して、認識行動サイクルが、前向き推論により、答えとなる事実を生成する。   The production system generates facts in which the recognition behavior cycle is the answer by forward reasoning for the facts in the working memory based on the rule base.

図47は、述語論理を扱う高レベルペトリネットにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。   FIG. 47 is a conceptual diagram showing the contents for executing derivation for the fact clause, rule clause, and goal clause similar to those in FIG. 44 by the high-level Petri net that handles predicate logic.

高レベルペトリネットでは、プレースとトランジションと呼ばれる2つのノードがあり、これらをラベル付のアークで結んだ有向グラフで、論理を表現する。そして、発火が前向き推論として実行され、最終的に事実トークンが生成される。   In a high-level Petri net, there are two nodes called places and transitions, and logic is expressed by a directed graph obtained by connecting these nodes with labeled arcs. Firing is then performed as forward reasoning, and finally a fact token is generated.

図48は、述語論理を扱う意味ネットワークにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。   FIG. 48 is a conceptual diagram showing the contents for executing derivation for the fact clause, rule clause, and goal clause similar to those in FIG. 44 by the semantic network that handles predicate logic.

意味ネットワークは、知識を概念とそれらを結ぶ関係で記述することにより表現する。表現された知識は、概念ノードが属性を示す矢印で値ノードと連結されたラベル付き有向グラフで表現される。意味ネットワークでは、演繹は、グラフ間の構造を照合することで実行される。   Semantic networks express knowledge by describing concepts as relationships between them. The expressed knowledge is expressed by a directed graph with a label in which a concept node is connected to a value node by an arrow indicating an attribute. In a semantic network, deduction is performed by matching structures between graphs.

さらに、図49は、述語論理を扱う確率論理プログラミング、特に、ベイジアンネットワークにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。   Further, FIG. 49 is a conceptual diagram showing the contents of executing the derivation for the fact clause, the rule clause, and the goal clause similar to those in FIG. 44 by the stochastic logic programming that handles the predicate logic, in particular, the Bayesian network.

ベイジアンネットワークでは、事象間に存在する因果関係を定量的に確率で表現し、有向非循環グラフを使って視覚的にネットワークの形で表現した確率推論モデルである。   A Bayesian network is a probabilistic inference model in which causal relationships existing between events are quantitatively expressed as probabilities, and visually expressed in the form of a network using a directed acyclic graph.

因果関係を確率により定量的に表現する際に、ベイズの定理に基づいているため「ベイジアンネットワーク」と呼ばれる。   When causal relations are expressed quantitatively by probability, they are called “Bayesian networks” because they are based on Bayes' theorem.

ベイジアンネットワークでは、重み付けされたルールに基づき確率推論することで、知識の曖昧性を表現することができる。   In Bayesian networks, knowledge ambiguity can be expressed by probabilistic inference based on weighted rules.

一方で、本願の発明者らにより、「プログラムを作成する計算処理装置」を実現するために、特許文献1において提案された「ATN(Algorithmically Transitive Network;アルゴリズム可変ネットワーク)」の手法がある。この手法では、プログラムをネットワーク型のグラフ表現で処理しつつ、学習によりアルゴリズムを改変していく。   On the other hand, there is a method of “ATN (Algorithmically Transitive Network)” proposed in Patent Document 1 by the inventors of the present application in order to realize a “computation processing device that creates a program”. In this method, the algorithm is modified by learning while processing the program with a network-type graph representation.

国際公開2010/047388号公報International Publication No. 2010/047388

ロイド著、佐藤、森下訳,論理プログラミングの基礎。産業図書(1987)Lloyd, Sato, Morishita, basics of logic programming. Industrial books (1987) 太原育夫著:人工知能の基磁知識。近代科学杜(1988)Ikuo Taihara: Fundamental knowledge of artificial intelligence. Modern Science (1988) 菅原研次著:人工知能(情報工学入門シリーズ)。森北出版(1997)Kenji Sugawara: Artificial Intelligence (Introduction to Information Engineering Series). Morikita Publishing (1997) 古川康一、向井国昭著:数理論理学。コロナ社(2008)Furukawa Koichi and Mukai Kuniaki: Mathematical Logic. Corona (2008) Peterka, C, Murata, T.: Proof procedure and answer extraction in Petri net model of logic programs, IEEE Transactions on Software Engineering V.15 N.2 (1989) 209-217 DOI: 10.1109/32.21746Peterka, C, Murata, T .: Proof procedure and answer extraction in Petri net model of logic programs, IEEE Transactions on Software Engineering V.15 N.2 (1989) 209-217 DOI: 10.1109 / 32.21746 村田忠夫著:ペトリネットの解析と応用。近代科学社(1992)Tadao Murata: Petri net analysis and application. Modern Science (1992) Richardson, M, Domingos, P.: Markov logic networks. Machine Learning V.62 N.1-2 (2006) 107-136Richardson, M, Domingos, P .: Markov logic networks. Machine Learning V.62 N.1-2 (2006) 107-136 坂和正敏,田中雅博著:ニューロコンピューティング入門。森北出版(1997)Masatoshi Sakawa and Masahiro Tanaka: Introduction to neurocomputing. Morikita Publishing (1997) 熊沢逸夫著:学習とニューラルネットワーク(電子情報通信工学シリーズ)。森北出版(1998)Kumazawa Ikuo: Learning and Neural Networks (Electronic Information and Communication Engineering Series). Morikita Publishing (1998) 吉富康成著:ニューラルネットワーク(シリーズ非線形科学入門)。朝倉書店(2002)YOSHITOMI Yasunari: Neural network (Introduction to the series nonlinear science). Asakura Shoten (2002) Haykin, S.:Neural networks and learning machines. Prentice-Hall. Inc. (2009)Haykin, S .: Neural networks and learning machines. Prentice-Hall. Inc. (2009)

図50は、これまで記号処理AIの分野で提案されてきた代表的なモデルを示す図である。   FIG. 50 is a diagram showing a typical model that has been proposed so far in the field of symbol processing AI.

図50の第2列には、知識がグラフ表現されているかを示している。また第3、4列には、演繹推論の効率を決めるファクターを示している。   The second column in FIG. 50 indicates whether the knowledge is represented in a graph. The third and fourth columns show the factors that determine the efficiency of deductive reasoning.

ここで、第2列において、「○」は、演算効率の点から望ましいことを示し、「△」は、グラフ表現はされるものの、演算処理を直接的に導くものではないことを意味し、「×」はグラフ表現が用いられないことを示す。   Here, in the second column, “◯” indicates that it is desirable from the viewpoint of calculation efficiency, and “Δ” indicates that the graph is expressed but does not directly lead to the calculation process. “X” indicates that no graph representation is used.

また、第3,4列においては、「○」は、グラフ表現が演繹処理の過程で、原理的に計算効率が高い処理方法が採用されていることを意味し、「△」は、演繹の原理としては効率的・非効率的とは一概に言えないことを意味し、「×」は、演繹の原理としては、むし
ろ非効率的であることを示す。
In the third and fourth columns, “○” means that the graph representation is in the process of deduction processing, and in principle, a processing method with high calculation efficiency is adopted, and “△” means deduction. In principle, efficient / inefficient means that it cannot be said in general, and “x” indicates that the principle of deduction is rather inefficient.

後向き推論が前向き推論より評価が高いのは、後向き推論ではゴールを念頭において探索の絞り込みをするため、事実の爆発的生成がないからである。   The reason why backward reasoning is higher than that of forward reasoning is that there is no explosive generation of facts in backward reasoning because the search is narrowed down with the goal in mind.

一方、ニューラルネットの研究では、知識は記号やシンボルではなく、脳内のニューロ素子を真似て作ったネットワークの繋がり情報として非明示的に表現される。その人工的なネットワ-クを、事例に基づいて所定の学習則に従って改変することで、事例の背後に
ある知識を帰納的に構成しようとする。この方式に基づき、これまで様々なネットワーク・トポロジーや学習則が提案されており、パターン認識等の分野では実用化例も報告されている。
On the other hand, in neural network research, knowledge is not expressed as symbols or symbols but as network connection information created by imitating neuro elements in the brain. By modifying the artificial network according to a predetermined learning rule based on the case, the knowledge behind the case is recursively constructed. Based on this method, various network topologies and learning rules have been proposed so far, and examples of practical use have been reported in the field of pattern recognition and the like.

図50の記号処理AIのモデルは、(a)知織表現と(b)演繹推論の観点から主としてデザインされたもので、これに(c)学習機能を盛り込むことは難しい技術課題である。   The model of the symbol processing AI in FIG. 50 is designed mainly from the viewpoints of (a) knowledge weaving expression and (b) deductive reasoning, and (c) it is difficult to incorporate a learning function into this.

「例からの学習」として行なわれてきた機械学習の研究はそれに挑戦してきたが、記号の持つ離散性と事例情報の持つあいまい性やノイズとの間のギャップを埋めることは多くの方法で実現できていない。   The machine learning research that has been conducted as "learning from examples" has challenged it, but there are many ways to fill the gap between the discreteness of symbols and the ambiguity and noise of case information. Not done.

また、図50の一番下の確率論理プログラミングは、“重み付け“された述語論理を元にペイジアンネットワークを生成し、その上で確率推論を行なうことで、知識のあいまい性を衣現している。ただ、この方法の場合、述語論理からネットワークの変換の段階で変数を消去して命題論理化してしまうため、述語論理特有の汎用な知識表現ができない上、出来上がるグラフの規模も、エルブラン基底の要素すべてをノードとして持つという膨大なものとなる。また学習も、そのように網羅的に用意されたノードの条件付き確率の最適化であり、新しい述語の生成や、論理構造の変更といったことは行なえない。   Further, the bottom stochastic logic programming in FIG. 50 generates the ambiguity of knowledge by generating a Paysian network based on the predicate logic that is “weighted” and performing probability inference on it. . However, in this method, variables are deleted and converted to propositional logic at the stage of network conversion from predicate logic, so general knowledge representation unique to predicate logic cannot be performed, and the scale of the resulting graph is also an element of Elblanc It becomes a huge thing to have everything as nodes. Learning is also the optimization of conditional probabilities of nodes prepared in this way, and it is impossible to generate new predicates or change the logical structure.

一方、ニューラルネットは、より(C)学習の機能に特化したシステムである。このモ
デルの困難性はむしろ出来上がった知識の非明示性にあり、学習によって構築された知識を人間が解釈・抽出できないが故に、人間がそれを修正・活用したり、別のアーキテクチャ上に移植するといったことができないでいる。
On the other hand, the neural network is a system specialized in the function of (C) learning. The difficulty of this model is rather the indefiniteness of the completed knowledge. Since the knowledge constructed by learning cannot be interpreted and extracted by humans, it can be modified and used by humans or ported to another architecture. I can't do that.

本発明は、上記のような問題を解決するためになされたものであって、その目的は、学習機能を盛り込みつつ演繹推論を実行し、構築された知識の構造がグラフにおいて明示されるような論理推論システム、計算学習装置および論理推論方法を提供することである。   The present invention has been made to solve the above-described problems, and its purpose is to perform deductive inference while incorporating a learning function, and the structure of the constructed knowledge is clearly shown in a graph. A logical reasoning system, a calculation learning device, and a logic reasoning method are provided.

この発明の他の目的は、演繹推論のための論理プログラム、または、算術演算および論理演算を実行するプログラムを学習により、ユーザが所望する演算結果を出力するプログラムを作成する計算学習装置を提供することである。   Another object of the present invention is to provide a calculation learning device that creates a program that outputs a calculation result desired by a user by learning a logical program for deductive reasoning or a program that executes arithmetic operations and logical operations. That is.

この発明の1つの局面にしたがうと、論理で表わされた知識をもとに推論を実行するための論理推論システムであって、知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、複数の演算ノードは、論理の各種演算に対応する演算ノードを含み、演算ノードに対応づけられるシンボルは、論理における項に対して予め設定された数値に変換されたものが割り当てられ、データフローグラフ上での各ノードの発火に基づくトークン伝搬により、データフローグラフをAND/ORグラフへ展開する展開手段と、AND/ORグラフ上での各ノードの発火に基づくトークン伝搬により、論理に対する導出を実行する推論実行部とを備える。   According to one aspect of the present invention, there is provided a logical reasoning system for executing inference based on knowledge expressed in logic, wherein the knowledge is a data flow graph in the form of backward reasoning, This is expressed by using a data flow graph composed of multiple operation nodes and a plurality of edges each connecting between the operation nodes. The plurality of operation nodes include operation nodes corresponding to various logical operations and are associated with the operation nodes. Expands the data flow graph into an AND / OR graph by token propagation based on the firing of each node on the data flow graph, to which a value converted to a preset value is assigned to a term in logic Inference execution unit that performs derivation on logic by means of token propagation based on means and firing of each node on AND / OR graph Equipped with a.

好ましくは、AND/ORグラフにおける推論実行部は、各ノードが並列独立に発火し、トークンを生成して必要な事実節の探索を行なう順伝播処理と、補正情報を表わすトークンを逆方向に流し、それに確率的な選択を施すことにより変数間の矛盾を解消する逆伝播処理とを繰返し実行することにより、演繹推論を実行する推論手段を含む。   Preferably, the inference execution unit in the AND / OR graph fires each node in parallel and independently, generates a token to search for a necessary fact clause, and flows a token representing correction information in the reverse direction. And inference means for performing deductive inference by repeatedly executing backpropagation processing for eliminating contradiction between variables by making a probabilistic selection.

好ましくは、データフローグラフでは、論理を表わす知識を述語論理で表現し、それをもとに演算ノードとその間を各々つなぐ複数のエッジにより論理の構造を表わすデータフローグラフを生成する変換手段を備える。   Preferably, the data flow graph includes conversion means for expressing knowledge representing logic by predicate logic and generating a data flow graph representing the structure of the logic based on the plurality of operation nodes and a plurality of edges connecting between the nodes. .

好ましくは、推論実行部において、トークンとして逆伝搬される補正情報を元に確率的に数値を補正することによりデータフローグラフ中の定数をより最適な値へと近づける定数学習手段を含む。   Preferably, the inference execution unit includes constant learning means for making a constant in the data flow graph closer to an optimum value by correcting a numerical value stochastically based on correction information back-propagated as a token.

好ましくは、データフローグラフにおいて、ランダムに生成された節に対応する部分木の付加を行う第1のトポロジー変更手段をさらに備える。   Preferably, the data flow graph further includes first topology changing means for adding a subtree corresponding to a randomly generated clause.

好ましくは、データフローグラフにおいて、偽枝を生成する節に対応する部分木の削除を行う第2のトポロジー変更手段をさらに備える。   Preferably, the data flow graph further includes second topology changing means for deleting a subtree corresponding to the node generating the false branch.

この発明の他の局面に従うと、計算学習装置であって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行する計算実行部を備え、複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、計算実行部の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出する補正情報算出部と、補正情報に基づきデータフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なう処理部とをさらに備える。   According to another aspect of the present invention, there is provided a calculation learning device for executing forward propagation calculation using a data flow graph representing a calculation procedure by a plurality of operation nodes and a plurality of edges respectively connecting between the operation nodes. Correction information for calculating correction information for satisfying a teacher value and constraints given from the outside based on the calculation result of the calculation execution unit. Based on the correction information, the tokens representing the local correction information are propagated in the reverse direction in the data flow graph based on the correction information. And a processing unit that performs calculation.

好ましくは、計算学習装置において、トークンが持つ局所的な補正情報を、各ノードにおける逆算によって求める。   Preferably, in the calculation learning device, local correction information held by the token is obtained by back calculation at each node.

好ましくは、計算学習装置において、トークンが持つ局所的な補正情報を、各ノードにおける微分係数の伝搬によって求める。   Preferably, in the calculation learning device, local correction information held by the token is obtained by propagation of a differential coefficient at each node.

好ましくは、計算手続きは、知識を表す論理プログラムである。
好ましくは、計算手続きは、算術演算および論理演算の処理を実行するためのプログラムである。
Preferably, the calculation procedure is a logic program representing knowledge.
Preferably, the calculation procedure is a program for executing processing of arithmetic operation and logical operation.

好ましくは、計算手続きは、算術演算を組み合わせてできる線形、または非線形の連立方程式である。   Preferably, the calculation procedure is a linear or non-linear simultaneous equation obtained by combining arithmetic operations.

この発明のさらに他の局面に従うと、論理で表わされた知識をもとに推論を実行するための論理推論方法であって、知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、複数の演算ノードは、論理の各種演算に対応する演算ノードを含み、演算ノードに対応づけられるシンボルは、論理における項に対して予め設定された数値に変換されたものが割り当てられ、データフローグラフ上での各ノードの発火に基づくトークン伝搬により、データフローグラフをAND/ORグラフへ展開するステップと、AND/ORグラフ上での各ノードの発火に基づくトークン伝搬により、論理に対する
導出を実行するステップとを備える。
According to yet another aspect of the present invention, there is provided a logical reasoning method for executing inference based on knowledge expressed in logic, wherein the knowledge is a data flow graph in the form of backward reasoning, This is expressed by using a data flow graph composed of multiple operation nodes and a plurality of edges each connecting between the operation nodes. The plurality of operation nodes include operation nodes corresponding to various logical operations and are associated with the operation nodes. Is a step of assigning a value converted into a preset numerical value to a term in logic and expanding the data flow graph into an AND / OR graph by token propagation based on the firing of each node on the data flow graph And performing derivation on the logic by token propagation based on the firing of each node on the AND / OR graph. That.

好ましくは、論理に対する導出を実行するステップは、各ノードが並列独立に発火し、トークンを生成して必要な事実節の探索を行なう順伝播処理と、補正情報を表わすトークンを逆方向に流し、それに確率的な選択を施すことにより変数間の矛盾を解消する逆伝播処理とを繰返し実行することにより、演繹推論を実行するステップを含む。   Preferably, the step of performing the derivation for the logic includes a forward propagation process in which each node fires independently in parallel, generates a token and searches for a necessary fact clause, and a token representing correction information flows in the reverse direction. It includes the step of performing deductive inference by repeatedly executing backpropagation processing that resolves contradictions between variables by making a probabilistic selection.

好ましくは、データフローグラフでは、論理を表わす知識を述語論理で表現し、それをもとに演算ノードとその間を各々つなぐ複数のエッジにより述語論理の構造を表わすデータフローグラフを生成する変換手段を備える。   Preferably, in the data flow graph, conversion means for expressing knowledge representing logic in predicate logic and generating a data flow graph representing the structure of the predicate logic based on the plurality of operation nodes and a plurality of edges respectively connecting between the nodes. Prepare.

この発明のさらに他の局面に従うと、計算学習方法であって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行するステップを備え、複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、順伝播計算の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出するステップと、補正情報に基づきデータフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なうステップとをさらに備える。   According to still another aspect of the present invention, there is provided a calculation learning method for executing forward propagation calculation using a data flow graph representing a calculation procedure by a plurality of operation nodes and a plurality of edges respectively connecting between the operation nodes. A plurality of operation nodes including operation nodes corresponding to various operations of the program, and calculating correction information for satisfying a teacher value and constraints given from the outside based on a calculation result of forward propagation calculation; Propagating tokens representing local correction information in the data flow graph based on the correction information in the reverse direction, and performing variable learning based on constant learning and constraints by performing probabilistic selection on these tokens And further comprising.

好ましくは、補正情報を算出するステップにおいては、トークンが持つ局所的な補正情報を、各ノードにおける逆算によって求める。   Preferably, in the step of calculating correction information, local correction information held by the token is obtained by back calculation at each node.

好ましくは、補正情報を算出するステップにおいては、トークンが持つ局所的な補正情報を、各ノードにおける微分係数の伝搬によって求める。   Preferably, in the step of calculating correction information, local correction information held by the token is obtained by propagation of a differential coefficient at each node.

この発明によれば、学習機能を盛り込みつつ演繹推論が実行され、構築された知識の構造がグラフにおいて明示される。   According to the present invention, deductive reasoning is executed while incorporating a learning function, and the structure of the constructed knowledge is clearly shown in the graph.

また、この発明によれば、演繹推論のための論理プログラム、または、算術演算および論理演算を実行するプログラムを学習により、ユーザが所望する演算結果を出力するプログラムが作成される。   According to the present invention, a logic program for deductive reasoning, or a program that outputs a calculation result desired by the user is created by learning a program that executes arithmetic operations and logic operations.

本実施の形態に係る計算処理装置100の構成をブロック図形式で表す図である。It is a figure showing the structure of the calculation processing apparatus 100 which concerns on this Embodiment in block diagram format. 本実施の形態に係る計算処理装置100の機能的構成をブロック図形式で示す図である。It is a figure which shows the functional structure of the calculation processing apparatus 100 which concerns on this Embodiment in block diagram format. KTNと類似の前向き推論型ネットワークにおける推論と学習の手続きを示す概念図である。It is a conceptual diagram which shows the procedure of inference and learning in a forward inference type network similar to KTN. 述語論理を高レベルペトリネットでのグラフ表現に変換した例を示す図である。It is a figure which shows the example which converted predicate logic into the graph expression in a high level Petri net. 述語論理をKTNでのネットワーク表現に変換した例を示す図である。It is a figure which shows the example which converted predicate logic into the network expression in KTN. KTNにおいて、図5で説明した「後向きデータフローグラフ」をさらに、展開・数量化して演繹推論する処理を示す概念図である。In KTN, it is a conceptual diagram which shows the process which expands and quantifies the "backward data flow graph" demonstrated in FIG. シンボル/シンボル列を数値化する手続きを示す概念図である。It is a conceptual diagram which shows the procedure which digitizes a symbol / symbol column. ノードに対応付けられる演算(オペレーション)を示す図である。It is a figure which shows the calculation (operation) matched with a node. 論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第1の図である。It is a 1st figure which shows what kind of graph the predicate logic of a logic program is converted in KTN. 論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第2の図である。It is a 2nd figure which shows what kind of graph the predicate logic of a logic program is converted in KTN. KTNを構築した例を示す図である。It is a figure which shows the example which constructed | assembled KTN. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. KTN中での、シンボル・トークンの流れを順次示す図である。It is a figure which shows the flow of the symbol token in KTN sequentially. このような図12〜図24で説明したデータフローグラフを展開して、AND/ORグラフに変換した結果の図である。FIG. 25 is a diagram illustrating a result of expanding the data flow graph described in FIGS. 12 to 24 and converting the data flow graph into an AND / OR graph. 図25に示したAND/ORグラフを、各節の内部構造を省略しAND/OR木として示す図である。FIG. 26 is a diagram showing the AND / OR graph shown in FIG. 25 as an AND / OR tree with the internal structure of each section omitted. 木探索と単一化について、ブランチBR1−1に相当する葉から探索と単一化が可能であるかを判断した結果を示す図である。It is a figure which shows the result of having judged whether search and unification are possible from the leaf corresponding to branch BR1-1 about tree search and unification. 木探索と単一化について、ブランチBR3−1に相当する葉とブランチBR1−2に相当する葉から探索と単一化が可能であるかを判断した結果を示す図である。It is a figure which shows the result of having judged whether search and unification are possible for the tree search and unification from the leaf corresponding to branch BR3-1 and the leaf corresponding to branch BR1-2. 木探索と単一化について、ブランチBR3−2に相当する葉とブランチBR1−2に相当する葉から探索と単一化が可能であるかを判断した結果を示す図である。It is a figure which shows the result of having judged whether search and unification are possible for the tree search and unification from the leaf corresponding to branch BR3-2 and the leaf corresponding to branch BR1-2. 確率近接法の概念を説明するための概念図である。It is a conceptual diagram for demonstrating the concept of a stochastic proximity method. 確率近接法により、定数学習をする場合を示す概念図である。It is a conceptual diagram which shows the case where constant learning is performed by the probabilistic proximity method. 上述した式(1)を表すデータフローグラフでの確率近接法の処理を示す図である。It is a figure which shows the process of the stochastic proximity method in the data flow graph showing Formula (1) mentioned above. このような連立方程式をデータフローグラフ(AND/OR木に展開したデータフローグラフ)を用いて、解く場合の手続きを説明するための図である。It is a figure for demonstrating the procedure in the case of solving such simultaneous equations using a data flow graph (data flow graph expanded to AND / OR tree). このように、同値ノード300または302で生成されたトークンを逆伝播させた場合の処理を説明する図である。Thus, it is a figure explaining the process at the time of carrying out the back propagation of the token produced | generated by the equivalence node 300 or 302. FIG. 図12等のデータフローグラフを展開して、AND/OR木で示したグラフについて、qの初期値を0.5、z0の初期値も0.5として順伝播させた場合のトークンのシンボル(x、r)を示す図である。The data flow graph of FIG. 12 and the like is expanded, and in the graph shown by the AND / OR tree, the token symbol (when the initial value of q is 0.5 and the initial value of z0 is also 0.5 is forwardly propagated) It is a figure which shows x, r). 図35の状態から逆伝播を行なった状態を示す図である。It is a figure which shows the state which performed back propagation from the state of FIG. 図36において「拡大図1」で示した部分の拡大した図である。It is the figure which expanded the part shown by "enlarged drawing 1" in FIG. 図36において「拡大図2」で示した部分の拡大した図である。It is the figure which expanded the part shown by "enlarged figure 2" in FIG. 図36の逆伝播の状態から、初期値を更新した上で、再度、順伝播を行った状態を示す図である。FIG. 37 is a diagram showing a state in which forward propagation is performed again after updating the initial value from the back propagation state of FIG. 36. 図39の状態から、さらに、逆伝播を行なった状態を示す図である。It is a figure which shows the state which performed the back propagation further from the state of FIG. 教師あり学習について説明するための図である。It is a figure for demonstrating supervised learning. トポロジーを改変処理する場合の概念を説明する図である。It is a figure explaining the concept in the case of modifying a topology. 演算部220が実行する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process which the calculating part 220 performs. 述語論理と導出についての別の例を示す概念図である。It is a conceptual diagram which shows another example about predicate logic and derivation. 述語論理を扱う論理型プログラミング言語であるPrologにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。It is a conceptual diagram which shows the content which performs derivation | leading-out about the fact clause, rule clause, and goal clause similar to FIG. 44 by Prolog which is a logic type programming language which handles predicate logic. 述語論理を扱うプロダクション・システムにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。It is a conceptual diagram which shows the content which performs derivation | leading-out about the fact clause, rule clause, and goal clause similar to FIG. 44 by the production system which handles predicate logic. 述語論理を扱う高レベルペトリネットにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。It is a conceptual diagram which shows the content which performs derivation | leading-out about the fact clause, rule clause, and goal clause similar to FIG. 44 by the high level Petri net which handles predicate logic. 述語論理を扱う意味ネットワークにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。It is a conceptual diagram which shows the content which performs derivation | leading-out about the fact clause, rule clause, and goal clause similar to FIG. 44 by the semantic network which handles predicate logic. 述語論理を扱う確率論理プログラミング、特に、ベイジアンネットワークにより、図44と同様の事実節、規則節、ゴール節についての導出を実行する内容を示す概念図である。It is a conceptual diagram which shows the content which performs derivation | leading-out about the fact clause, rule clause, and goal clause similar to FIG. 44 by the stochastic logic programming which handles predicate logic, especially a Bayesian network. これまで記号処理AIの分野で提案されてきた代表的なモデルを示す図である。It is a figure which shows the typical model which has been proposed until now in the field of symbol processing AI. 微係数を計算する場合の手続きを示す概念図である。It is a conceptual diagram which shows the procedure in the case of calculating a derivative.

以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部分には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated.

(1.概要)
本実施の形態に係る計算処理装置100は、外部から与えられたプログラム(以下、初期プログラムともよぶ)、特に、「述語論理」に基づく論理プログラムについての導出処理を実行する。
(1. Overview)
The calculation processing apparatus 100 according to the present embodiment executes a derivation process for a program given from outside (hereinafter also referred to as an initial program), in particular, a logic program based on “predicate logic”.

なお、プログラムとしては、このような「述語論理」に基づく論理プログラムだけではなく、上述した特許文献1(国際公開2010/047388号公報)に開示されるような算術演算および論理演算等からなるプログラムでもよい。ただし、以下では、「述語論理」に基づく論理プログラムについての導出処理を中心として説明する。   The program is not limited to such a logical program based on “predicate logic”, but is also a program composed of arithmetic operations and logical operations as disclosed in the above-mentioned Patent Document 1 (International Publication No. 2010/047388). But you can. In the following, however, the derivation process for a logic program based on “predicate logic” will be mainly described.

さらに、本実施の形態に係る計算処理装置100は、後に説明するように、学習により、初期プログラムを修正し、より適切な演算結果を出力するプログラムを作成する処理を行なうことも可能である。   Further, as will be described later, calculation processing apparatus 100 according to the present embodiment can also perform processing for correcting an initial program by learning and creating a program that outputs a more appropriate calculation result.

計算処理装置は、大まかに分けて、次の3つの処理を行なう。
(1)論理プログラムのネットワーク(データフローグラフ)への変換
(2)ネットワークを用いた計算の実行
(3)ネットワークの修正
以下、各処理の概要を説明する。
The calculation processor roughly performs the following three processes.
(1) Conversion of logic program into network (data flow graph) (2) Execution of calculation using network (3) Correction of network The outline of each process will be described below.

[(1)プログラムのネットワークへの変換]
計算処理装置100は、与えられた初期プログラムに基づいて、ネットワーク型のプログラムのグラフ表現、より具体的には、データフローグラフを作成する。すなわち、計算処理装置100は、論理プログラムである初期プログラムの述語論理の構造を表現するネットワークを作成する。
[(1) Conversion of program to network]
The calculation processing device 100 creates a graph representation of a network type program, more specifically, a data flow graph based on the given initial program. That is, the computer 100 creates a network that expresses the structure of the predicate logic of the initial program that is a logic program.

本実施の形態では、計算処理装置100が初期プログラムから作成したプログラムのグラフ表現のことを、KTN(Knowledge Transitive Network;知識推移ネットワーク)形式のネットワークと呼ぶ。KTN形式のネットワークは、各々が演算処理を表わす複数の演算ノードと、複数の演算ノードのうちいずれか2つの演算ノードを各々つなぐ複数のエッジとにより、述語論理の構造を表わす。エッジは、演算順序を表わす方向を持つ。   In the present embodiment, the graph representation of the program created from the initial program by the computer 100 is referred to as a KTN (Knowledge Transitive Network) type network. The network in the KTN format represents a predicate logic structure by a plurality of operation nodes each representing an operation process and a plurality of edges connecting any two operation nodes among the plurality of operation nodes. The edge has a direction representing the operation order.

[(2)ネットワークを用いた計算の実行]
計算処理装置100は、作成したネットワークを用いて計算を実行する。すなわち、計算処理装置100は、入力値に対し、エッジで表わされる順序に従って、演算ノードによる演算を施す。
[(2) Execution of calculation using network]
The calculation processing apparatus 100 executes calculation using the created network. That is, the calculation processing device 100 performs an operation by the operation node on the input value according to the order represented by the edge.

本実施の形態では、計算処理装置100は、演算に必要な情報を持つシャトルエージェント(以下、単にエージェントとよぶ)に対して、各演算ノードにより演算を施す。演算ノードは、1つまたは複数のエージェントの入力を受け付け、所定の規則に基づいて、エッジから入力されたエージェントに対し演算を行ない、演算後のエージェントをエッジに出力する。演算ノードから出力されたエージェントは、エッジの行き先の演算ノードに入力される。エージェントの詳細、および、エージェントに対する処理規則の詳細については後述する。   In the present embodiment, calculation processing apparatus 100 performs an operation on each shuttle node with respect to a shuttle agent (hereinafter simply referred to as an agent) having information necessary for the operation. The calculation node receives input of one or a plurality of agents, performs calculation on the agent input from the edge based on a predetermined rule, and outputs the calculated agent to the edge. The agent output from the calculation node is input to the calculation node at the destination of the edge. Details of the agent and details of processing rules for the agent will be described later.

[(3)ネットワークの修正]
計算処理装置100は、学習アルゴリズムを用いて、ネットワークを用いた計算結果に基づいてネットワークを修正する。ネットワークの修正方法については、後述する。
[(3) Network correction]
The calculation processing apparatus 100 corrects the network based on the calculation result using the network using a learning algorithm. A network correction method will be described later.

計算処理装置100は、(2)ネットワークを用いた計算の実行により、述語論理に対する推論(導出)を実行することができる。   The calculation processing apparatus 100 can execute (2) inference (derivation) for predicate logic by executing a calculation using a network.

さらに、計算処理装置100は、必要に応じて、(3)ネットワークの修正とを繰り返すことにより、ユーザが所望する値を出力するネットワーク(したがって、論理プログラム)を作成することができる。   Furthermore, the calculation processing apparatus 100 can create a network (and therefore a logical program) that outputs a value desired by the user by repeating (3) network correction as necessary.

(2.ハードウェア構成)
本実施の形態に係る計算処理装置100のハードウェア構成について、図1を参照して説明する。図1は、本実施の形態に係る計算処理装置100の構成をブロック図形式で表す図である。
(2. Hardware configuration)
A hardware configuration of the calculation processing apparatus 100 according to the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram showing the configuration of a calculation processing apparatus 100 according to the present embodiment.

計算処理装置100は、コンピュータ本体102と、表示装置としてのモニタ104と、入力装置としてのキーボード110およびマウス112とを備える。モニタ104、キーボード110、およびマウス112は、コンピュータ本体102とバス105を介して接続される。   The calculation processing device 100 includes a computer main body 102, a monitor 104 as a display device, and a keyboard 110 and a mouse 112 as input devices. The monitor 104, keyboard 110, and mouse 112 are connected to the computer main body 102 via the bus 105.

コンピュータ本体102は、フレキシブルディスク(Flexible Disc、以下「FD」と呼ぶ)ドライブ106と、光ディスクドライブ108と、CPU(Central Processing Unit)120と、メモリ122と、直接アクセスメモリ装置、たとえば、ハードディスク124と、通信インターフェイス128とを含む。これらの部品は、互いにバス105で接続されている。   The computer main body 102 includes a flexible disk (hereinafter referred to as “FD”) drive 106, an optical disk drive 108, a CPU (Central Processing Unit) 120, a memory 122, a direct access memory device such as a hard disk 124, and the like. Communication interface 128. These components are connected to each other by a bus 105.

FDドライブ106は、FD116に情報を読み書きする。光ディスクドライブ108は、CD−ROM(Compact Disc Read−Only Memory)118等の光ディスク上の情報を読み込む。通信インターフェイス128は、外部とデータの授受を行なう。   The FD drive 106 reads and writes information from and to the FD 116. The optical disc drive 108 reads information on an optical disc such as a CD-ROM (Compact Disc Read-Only Memory) 118. The communication interface 128 exchanges data with the outside.

なお、CD−ROM118は、コンピュータ本体に対してインストールされるプログラム等の情報を記録可能な媒体であれば、他の媒体、たとえば、DVD−ROM(Digital Versatile Disc)やメモリーカードなどでもよく、その場合は、コンピュータ本体102には、これらの媒体を読み取ることが可能なドライブ装置が設けられる。また、バス105には、カセット形式の磁気テープを着脱自在に装着してアクセ
スする磁気テープ装置が接続されていてもよい。
The CD-ROM 118 may be another medium, such as a DVD-ROM (Digital Versatile Disc) or a memory card, as long as it can record information such as a program installed in the computer main body. In this case, the computer main body 102 is provided with a drive device that can read these media. The bus 105 may be connected to a magnetic tape device that is detachably loaded with a cassette type magnetic tape.

メモリ122は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む。   The memory 122 includes a ROM (Read Only Memory) and a RAM (Random Access Memory).

ハードディスク124は、初期プログラム131と、ネットワーク作成プログラム132と、ネットワーク修正プログラム133と、ネットワーク情報134と、ノード演算定義135と、学習情報136とを格納する。   The hard disk 124 stores an initial program 131, a network creation program 132, a network modification program 133, network information 134, a node calculation definition 135, and learning information 136.

初期プログラム131は、論理プログラムにおける導出(または論理プログラムの初期プログラムからの改変による作成)の基礎となる論理プログラムである。ハードディスク124は、ユーザが作成した論理プログラムを初期プログラム131として格納することができる。初期プログラム131は、FD116またはCD−ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。   The initial program 131 is a logical program that is a basis for derivation in the logical program (or creation by modification of the logical program from the initial program). The hard disk 124 can store a logical program created by the user as the initial program 131. The initial program 131 may be supplied by a storage medium such as the FD 116 or the CD-ROM 118, or may be supplied by another computer via the communication interface 128.

ネットワーク作成プログラム132は、初期プログラム131に基づいて、初期プログラム131に対応するネットワーク(データフローグラフ、展開データフローグラフ)を作成する。また、ネットワーク作成プログラム132は、作成したネットワークに関するネットワーク情報134をハードディスク124に格納する。   The network creation program 132 creates a network (data flow graph, expanded data flow graph) corresponding to the initial program 131 based on the initial program 131. The network creation program 132 also stores network information 134 relating to the created network in the hard disk 124.

ネットワーク修正プログラム133は、ネットワーク作成プログラム132が作成したネットワークを修正する。   The network correction program 133 corrects the network created by the network creation program 132.

ネットワーク情報134は、ネットワーク作成プログラム132が作成したネットワークに関する情報、および、ネットワーク修正プログラム133がネットワークによる演算あるいはネットワークの修正の際に作成する情報を含む。   The network information 134 includes information about the network created by the network creation program 132 and information created by the network modification program 133 when performing computations or network modifications by the network.

ノード演算定義135は、ネットワークに含まれる演算ノードによる演算の規則を表わす。ノード演算定義135は、演算ノードを特定する情報(演算コード)、演算ノードへ入力されるエッジの数(入力数)などを含む。ノード演算定義135の詳細については、後述する。   The node operation definition 135 represents a rule for operations performed by operation nodes included in the network. The node operation definition 135 includes information (operation code) for specifying an operation node, the number of edges input to the operation node (number of inputs), and the like. Details of the node operation definition 135 will be described later.

学習情報136は、ネットワークにおける導出処理やネットワークの修正に必要な情報である。学習情報136は、例えば、ユーザが計算結果として所望する教師値や、学習途中において更新される定数値、数値トークンの値、トークンに対する補正値、データフローグラフ上での発火と転送の履歴の情報(「トークンファイヤ系図」と呼ぶ)などを含む。   The learning information 136 is information necessary for derivation processing in the network and network correction. The learning information 136 includes, for example, a teacher value desired as a calculation result by the user, a constant value updated during learning, a value of a numerical token, a correction value for the token, and information on the history of firing and transfer on the data flow graph. (Referred to as “tokenfire genealogy”).

ここで、ノード演算定義135については、ユーザが入力装置を利用して作成したものを用いることができる。ただし、これらは、FD116またはCD−ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。   Here, as the node calculation definition 135, a user created using an input device can be used. However, these may be supplied by a storage medium such as the FD 116 or the CD-ROM 118, or may be supplied via the communication interface 128 by another computer.

また、ネットワーク作成プログラム132およびネットワーク修正プログラム133は、FD116、またはCD−ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。   The network creation program 132 and the network correction program 133 may be supplied by a storage medium such as the FD 116 or the CD-ROM 118, or may be supplied by another computer via the communication interface 128.

演算処理装置として機能するCPU120は、メモリ122をワーキングメモリとして、上述した各プログラムに対応した処理を実行する。   The CPU 120 functioning as an arithmetic processing unit executes processing corresponding to each program described above using the memory 122 as a working memory.

ネットワーク作成プログラム132およびネットワーク修正プログラム133は、上述の通り、CPU120により実行されるソフトウェアである。一般的に、こうしたソフトウェアは、CD−ROM118、FD116等の記憶媒体に格納されて流通し、光ディスクドライブ108またはFDドライブ106等により記憶媒体から読み取られてハードディスク124に一旦格納される。または、計算処理装置100がネットワークに接続されている場合には、ネットワーク上のサーバから一旦ハードディスク124にコピーされる。そうしてさらにハードディスク124からメモリ122中のRAMに読み出されてCPU120により実行される。なお、ネットワーク接続されている場合には、ハードディスク124に格納することなくRAMに直接ロードして実行するようにしてもよい。   The network creation program 132 and the network correction program 133 are software executed by the CPU 120 as described above. Generally, such software is stored and distributed in a storage medium such as the CD-ROM 118 and the FD 116, read from the storage medium by the optical disk drive 108 or the FD drive 106, and temporarily stored in the hard disk 124. Alternatively, when the computing device 100 is connected to the network, it is temporarily copied from the server on the network to the hard disk 124. Then, the data is further read from the hard disk 124 to the RAM in the memory 122 and executed by the CPU 120. In the case of network connection, the program may be directly loaded into the RAM and executed without being stored in the hard disk 124.

図1に示したコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の機能を実現するに当り本質的な部分は、FD116、CD−ROM118、ハードディスク124等の記憶媒体に記憶されたソフトウェアである。   The computer hardware itself shown in FIG. 1 and its operating principle are general. Therefore, an essential part for realizing the functions of the present invention is software stored in a storage medium such as the FD 116, the CD-ROM 118, and the hard disk 124.

(3.機能的構成)
図2を参照して、本実施の形態に係る計算処理装置100の機能的構成について説明する。図2は、本実施の形態に係る計算処理装置100の機能的構成をブロック図形式で示す図である。
(3. Functional configuration)
With reference to FIG. 2, a functional configuration of calculation processing apparatus 100 according to the present embodiment will be described. FIG. 2 is a block diagram showing the functional configuration of the calculation processing apparatus 100 according to the present embodiment.

計算処理装置100は、外部からデータを受け付ける入力部210と、演算部220と、演算部220の演算結果を外部に出力する出力部230と、記憶部240とを備える。   The calculation processing apparatus 100 includes an input unit 210 that receives data from the outside, a calculation unit 220, an output unit 230 that outputs the calculation result of the calculation unit 220 to the outside, and a storage unit 240.

演算部220は、記憶部240に格納されたデータに対して演算を実行する。演算部220は、ネットワーク作成部222と、計算実行部226と、ネットワーク更新部228とを含む。   The calculation unit 220 performs a calculation on the data stored in the storage unit 240. The calculation unit 220 includes a network creation unit 222, a calculation execution unit 226, and a network update unit 228.

ネットワーク作成部222は、記憶部240に格納されている初期プログラム131に基づいて、ネットワーク情報134を作成する。ネットワーク作成部222は、形式変換部224を含む。形式変換部224は、後に説明するように、論理プログラムを、後向き演繹を幅優先探索で実行するための展開データフローグラフに変換する。   The network creation unit 222 creates network information 134 based on the initial program 131 stored in the storage unit 240. The network creation unit 222 includes a format conversion unit 224. As will be described later, the format conversion unit 224 converts the logic program into an expanded data flow graph for executing backward deduction with a breadth-first search.

計算実行部226は、ネットワーク情報134と、ノード演算定義135とに基づいて、ネットワークを用いた計算を実行する。計算実行部226が行なう処理の詳細については、後述する。   The calculation execution unit 226 executes calculation using the network based on the network information 134 and the node calculation definition 135. Details of the processing performed by the calculation execution unit 226 will be described later.

ネットワーク更新部228は、学習アルゴリズムを用いて、ネットワーク情報134を修正する。より詳しくは、ネットワーク更新部228は、トポロジー学習部228aを含む。このほかに、ネットワーク更新部228は、学習情報136に含まれる誤差に基づいて、ネットワークに含まれる演算ノードの定数値を修正する定数学習部を含んでもよい。トポロジー学習部228は、所定の規則に基づいて、随時、演算ノードの生成や削除、エッジの生成や削除などのネットワークの更新処理を実行する。ネットワーク更新部228が行なう処理の詳細については後述する。   The network update unit 228 corrects the network information 134 using a learning algorithm. More specifically, the network update unit 228 includes a topology learning unit 228a. In addition, the network update unit 228 may include a constant learning unit that corrects the constant value of the operation node included in the network based on the error included in the learning information 136. The topology learning unit 228 executes network update processing such as generation / deletion of operation nodes and generation / deletion of edges as needed based on a predetermined rule. Details of processing performed by the network update unit 228 will be described later.

なお、以上の説明では、計算処理装置100は、単一のコンピュータ装置であるものとして説明したが、エージェントを用いて演算処理が実行されることから、計算処理装置100は、複数のコンピュータにより、分散処理を実行するシステムにより構成されていてもよい。   In the above description, the calculation processing device 100 has been described as a single computer device. However, since the arithmetic processing is executed using an agent, the calculation processing device 100 is executed by a plurality of computers. You may be comprised by the system which performs a distributed process.

本実施の形態の計算処理装置100では、以下の説明で明らかとなるように、上述した
2つの技術、記号処理AIとニューラルネットのギャップを埋める新しいAIのモデルを用いて論理プログラムに対する導出処理またはネットワークの修正(すなわち、ネットワークのトポロジ変更による論理プログラムの作成)を実行するものである。
In the calculation processing apparatus 100 according to the present embodiment, as will be apparent from the following description, a derivation process for a logic program using the above-described two techniques, a new AI model that fills the gap between the symbol processing AI and the neural network, or Network modification (that is, creation of a logical program by changing the topology of the network) is executed.

ネットワークをベースとしたこのモデルは、記号/シンボルを明示的に信頼度とともに扱いながら、ニューラルネットの分野で開発されてきた学習則を動かせるようにしたもので、前述の(a)知識表現、(b)演繹、(c)学習の3つの機種を併せ持つ新たな推論・
学習システムを構築できる。このモデルを実行するためのネットワークを、上述のとおり、知識推移ネットワーク(Knowledge Transitive Network; KTN)と呼ぶ。このモデルは、以下の説明で明らかとなるように、先に出願済みですでに公開された特許文献1の国際公開2010/047388号公報に開示されたモデルであって、算術演算および論理演算を実行するプログラムのためのアルゴリズム推移ネットワーク(Algorithmically Transtcive Network; ATN)を基礎としつつも、以下に説明するように、述語論理における
シンボルを扱うための改良を行なうとともに、学習方法についても、「確率近接法」と呼ばれる新しいアルゴリズムを適用するものである。
This network-based model is designed to be able to move learning rules developed in the field of neural networks while explicitly handling symbols / symbols with reliability. b) New reasoning that combines the three models of deduction and (c) learning
A learning system can be constructed. As described above, the network for executing this model is called a knowledge transition network (KTN). As will be apparent from the following description, this model is a model disclosed in International Publication No. 2010/047388 of Patent Document 1 that has been filed earlier and has already been published, and performs arithmetic and logical operations. Although it is based on the Algorithmic Transtcive Network (ATN) for the program to be executed, as described below, improvements to handle symbols in predicate logic are made, and the learning method is also “probabilistic proximity”. It applies a new algorithm called "Law".

図3は、KTNそのものではないが、KTNと類似の前向き推論型ネットワークにおける推論と学習の手続きを示す概念図である。   FIG. 3 is a conceptual diagram showing inference and learning procedures in a forward inference network similar to KTN, but not KTN itself.

図3は、一例として、”If x=A then y=B”という論理に対する推論と学習を行なう場
合を示す。ここでは、あくまで、推論型ネットワークについての処理の概念を大枠を説明するので、個々の処理についての言及は省略する。
FIG. 3 shows, as an example, a case where inference and learning are performed on the logic “If x = A then y = B”. Here, the concept of processing for an inference network will be described only briefly, and thus the description of individual processing will be omitted.

まず、3つの定数項のノード(図中、c)が同時に発火して、トークンがこれらのノードから出力される。ここで、トークンは、シンボルとそのシンボルの信頼度を示す値との組として表現される。   First, three constant term nodes (c in the figure) are fired simultaneously, and a token is output from these nodes. Here, the token is expressed as a set of a symbol and a value indicating the reliability of the symbol.

各ノードからの複数のトークンが最終ノードに到達した段階で、教師データtと比較され、信頼度が所定値以上であるトークン、すなわち正解であるトークンについて、このトークンの発火履歴を逆にたどって、補正情報が逆伝播する。   When a plurality of tokens from each node reach the final node, they are compared with the teacher data t, and the tokens whose reliability is equal to or higher than a predetermined value, that is, tokens that are correct, are traced back to the firing history of this token. , The correction information propagates back.

このような前向き推論型ネットワークでは、矛盾を含む複数の答えが信頼度とともに、順方向に伝播するので、推論の曖昧さを取り込むことが可能であると共に、学習では、信頼度の高いトークンを選択して逆伝播させるので、学習の際に、処理しなければならないトークンの数が爆発的に増加する事態をある程度防ぐことができる。   In such a forward inference network, multiple answers including contradiction propagate forward along with reliability, so it is possible to capture the ambiguity of inference, and in learning, select a highly reliable token Therefore, the situation in which the number of tokens that must be processed explosively increases during learning can be prevented to some extent.

(述語論理とネットワークへの変換)
図4は、述語論理を高レベルペトリネットでのグラフ表現に変換した例を示す図である。
(Predicate logic and network conversion)
FIG. 4 is a diagram illustrating an example in which predicate logic is converted into a graph representation in a high-level Petri net.

図4においては、以下の述語論理を扱っている。
事実節 :太郎は男である(Taro is a man.) Man(Taro)と表現。
In FIG. 4, the following predicate logic is handled.
Factual paragraph: Taro is a man. Expressed as Man (Taro).

ルール節:男は人間である(A man is a human.) Human(x)←Man(x)と表現。
ゴール節:人間は誰か?(Who is a human?) ←Human(q)と表現。
Rule section: A man is a human. Expressed as Human (x) ← Man (x).
Goal Section: Who is a human being? (Who is a human?) ← Expressed as Human (q).

高レベルペトリネットでは、アークにラベル付の項が付された前向きの有向グラフとして、述語論理が表現される。   In a high-level Petri net, predicate logic is expressed as a forward directed graph with a labeled term attached to an arc.

図5は、述語論理をKTNでのネットワーク表現に変換した例を示す図である。
述語論理としては、図4と同様のものを例にとることにする。
FIG. 5 is a diagram illustrating an example in which predicate logic is converted into a network representation in KTN.
As the predicate logic, the same one as in FIG. 4 is taken as an example.

まず、述語論理を前向きデータフローグラフで表す場合を考える。発火を開始する開始ノード(Begin)から、Taroとのシンボルの付された定数ノードに有向エッジが向かう。次に、定数ノード(Taro)から、Manに相当するマージノードへ有向エッジが向かい、さらに、マージノード(Man)から、Humanに相当するマージノードへ有向エッジが向かう。マージノード(Human)から、クエリ変数qに対応するマージノードへ有向エッジが向かい、マージノード(q)から、探索の停止を意味する終端ノードに有向エッジが向かうグラフとなる。   First, consider the case where the predicate logic is represented by a forward-looking data flow graph. A directed edge goes from a start node (Begin) that starts firing to a constant node with a symbol of Taro. Next, the directed edge is directed from the constant node (Taro) to the merge node corresponding to Man, and further, the directed edge is directed from the merge node (Man) to the merge node corresponding to Human. From the merge node (Human), the directed edge is directed to the merge node corresponding to the query variable q, and from the merge node (q), the directed edge is directed to the terminal node indicating stop of the search.

一方、KTNでは、ネットワーク作成部222の処理により、上述した前向きデータフローグラフを反転した、後向きデータフローグラフとして表現する。まず、発火を開始する開始ノード(Begin)から、qとのシンボルの付された定数ノードに有向エッジが向かう。次に、定数ノード(q)から、Humanに相当するマージノードへ有向エッジが向かい、さらに、マージノード(Human)から、Manに相当するマージノードへ有向エッジが向かう。マージノード(Man)からは、1つはTaroに相当する定数ノードに有向エッジが向かうとともに、2入力が等しいときに真を生成する同値ノードの一方入力へ有向エッジが向かう。一方、定数ノード(Taro)からは、同値ノードの他方入力へ有向エッジが向かう。同値ノードの結果が、終端ノードに渡される。   On the other hand, in KTN, it is expressed as a backward data flow graph obtained by inverting the forward data flow graph described above by the processing of the network creation unit 222. First, a directed edge is directed from a start node (Begin) that starts firing to a constant node with a symbol q. Next, the directed edge is directed from the constant node (q) to the merge node corresponding to Human, and further, the directed edge is directed from the merge node (Human) to the merge node corresponding to Man. From the merge node (Man), one is directed to a constant node corresponding to Taro, and the directed edge is directed to one input of an equivalence node that generates true when two inputs are equal. On the other hand, the directed edge goes from the constant node (Taro) to the other input of the equivalence node. The result of the equivalence node is passed to the end node.

以上のように、KTNでは、グラフトポロジーで知識(述語論理)が表現されるとともに、高レベルペトリネットとは異なり、定数と未定変数についてのラベルのみがノードに付与される。   As described above, in KTN, knowledge (predicate logic) is expressed by a graph topology and, unlike a high-level Petri net, only labels for constants and undetermined variables are given to nodes.

図6は、KTNにおいて、図5で説明した「後向きデータフローグラフ」をさらに、展開・数量化して演繹推論する処理を示す概念図である。   FIG. 6 is a conceptual diagram showing a process for further deducing and dequantizing the “backward data flow graph” described in FIG. 5 in KTN.

図6に示されるように、「後向きデータフローグラフ」は、ネットワーク作成部222により、展開され、AND/ORグラフとして表現されるとともに、シンボルトークンを数値トークンとして表現される。   As shown in FIG. 6, the “backward data flow graph” is expanded by the network creation unit 222 and expressed as an AND / OR graph, and symbol tokens are expressed as numerical tokens.

ここで、Taroが、たとえば、数値”1”で表現されるなら、トークンの逆伝播で、クエリ変数qの値が、1となっていることが、最終的に、答えが得られることに相当する。   Here, if Taro is expressed by the numerical value “1”, for example, the value of the query variable q being 1 in the back propagation of the token is equivalent to finally obtaining an answer. To do.

トークンの数値化に伴い、Manに対応するマージノードの2つの出力は、ANDで結ばれ、同値ノードは、論理真を与えるための束縛として機能することになる。   As tokens are digitized, the two outputs of the merge node corresponding to Man are connected by AND, and the equivalence node functions as a binding to give a logical truth.

以上のような構成により、KTNでは、ノードの並列発火により、後向き演繹を幅優先探索で行なう。   With the above configuration, KTN performs backward deduction by breadth-first search by parallel firing of nodes.

図7は、シンボル/シンボル列を数値化する手続きを示す概念図である。
図7に示すとおり、シンボル/シンボル列は数で表現される。このような数値化は、図7に示されるように、述語論理中の項(個体定数、個体変数、関数)を自然数と予め対応付けておき、これを大域テーブル(グローバルに参照できるテーブル)として予め定義しておく。
FIG. 7 is a conceptual diagram showing a procedure for digitizing a symbol / symbol string.
As shown in FIG. 7, the symbol / symbol column is represented by a number. As shown in FIG. 7, such quantification is performed by previously associating terms (individual constants, individual variables, functions) in the predicate logic with natural numbers and using them as global tables (tables that can be referenced globally). Define in advance.

図7に示されるように、Taroが自然数であれば、数値に変換するとテーブルを参照して、1となる。また、関数wifeが7に対応づいていれば、関数wife(Taro)(Taroの妻)は、71とコードされる。   As shown in FIG. 7, if Taro is a natural number, it is 1 when converted to a numerical value with reference to the table. If the function wife corresponds to 7, the function wife (Taro) (Taro's wife) is coded as 71.

同様に、関数childに8が対応付けられていれば、child(wife(Taro))は、871とコードされる。   Similarly, if 8 is associated with the function child, child (wife (Taro)) is coded as 871.

一般に、項がN個存在するのであれば、たとえば、N進数で、項に対応するシンボルをコードできる。   In general, if there are N terms, a symbol corresponding to the term can be coded in N-ary, for example.

このようなシンボルから数値への変換において、N進数グレー・コードを用いることにすれば、グレー・コードは高い対称性を持つから、演繹・学習による数値の微小な変化で、どの桁も均等に入れ替わりうるという特徴を持たせることができる。   In such conversion from symbol to numerical value, if an N-ary gray code is used, the gray code has high symmetry. It can have the feature of being interchangeable.

図8は、ノードに対応付けられる演算(オペレーション)を示す図である。
図8において、「同期/非同期」とあるのは、2つ以上の入力があるときに、同期では全ての入力エッジ上にオペランドとなるトークンが揃うのを待ってからノードが発火し、処理が実行されることを意味する。
FIG. 8 is a diagram illustrating an operation associated with a node.
In FIG. 8, “synchronous / asynchronous” means that when there are two or more inputs, in synchronization, the nodes are fired after waiting for the tokens to become operands on all input edges. Means to be executed.

(論理プログラムからKTNへの変換)
図9は、論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第1の図である。
(Conversion from logic program to KTN)
FIG. 9 is a first diagram showing what kind of graph the predicate logic of the logic program is converted into in KTN.

図10は、論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第2の図である。   FIG. 10 is a second diagram showing what graph the predicate logic of the logic program is converted into in KTN.

図9、図10に示されるように、述語の引数が、クエリ変数、個体変数、個体定数のいずれであるか、また、論理の関係、関数に応じて、述語論理がKTNに変換される。   As shown in FIGS. 9 and 10, the predicate logic is converted to KTN depending on whether the argument of the predicate is a query variable, an individual variable, or an individual constant, and the logical relationship or function.

図11は、KTNを構築した例を示す図である。
図11の例では、以下のような論理プログラムを対象としている。
FIG. 11 is a diagram illustrating an example in which a KTN is constructed.
In the example of FIG. 11, the following logic program is targeted.

J(x,0).
J(x,x).
K(x,x,x).
K(s(x),x,y)←J(z,y),K(x,z,y).
←K(2,1,q).
図12〜図24は、図11に示したKTN中での、シンボル・トークンの流れを順次示す図である。
J (x, 0).
J (x, x).
K (x, x, x).
K (s (x), x, y) ← J (z, y), K (x, z, y).
← K (2,1, q).
12 to 24 are diagrams sequentially showing the flow of symbol tokens in the KTN shown in FIG.

KTNに対するトークン伝播処理の実行は、ATNと同様に、Beginノードの発火から始まる。その後各ノードは、通常のデータフロー計算機と同じように、入力エッジに到着したトークンの持つデータをオペランドとしてコードされた演算を実行し、結果のトークンを出力エッジ上に流すという処理を並列独立に行ない、それにより、ノード発火(ファイヤー)とトークン伝搬がカスケード的にネットワーク中に起こる。   The execution of the token propagation process for KTN starts from the firing of the Begin node, similar to ATN. After that, each node executes the operation coded using the data of the token arriving at the input edge as an operand and flows the resulting token on the output edge in parallel and independently, just like a normal data flow calculator Yes, so that node firing (fire) and token propagation occur in a cascade in the network.

まず、図12を参照して、開始ノードが発火して、トークンが定数ノード(シンボルは、それぞれ、2,1,q)に伝播する。   First, referring to FIG. 12, the start node fires and the token propagates to the constant nodes (symbols are 2, 1, and q, respectively).

次に、図13に示すように、定数ノードを通過したトークンは、それぞれ、シンボル(2),シンボル(1),シンボル(q)が付随する。   Next, as shown in FIG. 13, the tokens that have passed through the constant node are accompanied by symbols (2), (1), and (q), respectively.

図14に示すように、引数合成ノードをトークンが通過すると、トークンは1つにまと
められ、これに、シンボル(2,1、q)が付随して、マージノードに伝播する。
As shown in FIG. 14, when the token passes through the argument synthesis node, the tokens are combined into one, and this is accompanied by the symbol (2, 1, q) and propagates to the merge node.

次に、図15に示すように、マージノードからは、2つの出力として、シンボル(2,1、q)が付随するトークンが出力される。   Next, as shown in FIG. 15, the merge node outputs a token accompanied by the symbol (2, 1, q) as two outputs.

さらに、図16に示すように、マージノードから、第1のブランチBR1の引数分解ノードに伝播したシンボル(2,1、q)は、それぞれ、シンボル(2),シンボル(1),シンボル(q)が付随するトークンに分割されて、出力される。   Further, as shown in FIG. 16, symbols (2, 1, q) propagated from the merge node to the argument decomposition node of the first branch BR1 are symbol (2), symbol (1), symbol (q ) Is divided into accompanying tokens and output.

一方、第2のブランチBR2の引数分解ノードに伝播したシンボル(2,1、q)も、それぞれ、シンボル(2),シンボル(1),シンボル(q)が付随するトークンに分割されて、出力される。   On the other hand, the symbols (2, 1, q) propagated to the argument decomposition node of the second branch BR2 are also divided into tokens accompanied by the symbols (2), (1), and (q), respectively, and output. Is done.

図17に示されるように、第1のブランチBR1では、上側の同値ノードでは、1つの入力が一致しないため、出力は偽(F:Faulse)が生成され、下側の同値ノードでは、、q=1であれば、出力は真(T:True)との出力が生成される。   As shown in FIG. 17, in the first branch BR1, since one input does not match in the upper equivalence node, the output is false (F: False), and in the lower equivalence node, q If = 1, the output is true (T: True).

第2のブランチでは、関数fのノードで、トークン2のシンボルはsに変わり、これが逆関数ノードに伝播する。   In the second branch, at the function f node, the token 2 symbol changes to s, which propagates to the inverse function node.

一方、定数ノードをトークン(q)が通過することにより、このトークンのシンボルは、z0となる。そこで、逆関数ノードからのトークンと、トークン(1)とが同値ノードに伝播する。上側の引数合成ノードには、トークン(1)、トークン(z0)、トークン(q)が伝播し、下側の引数合成ノードには、トークン(z0)、トークン(q)が伝播する。   On the other hand, when the token (q) passes through the constant node, the symbol of this token becomes z0. Therefore, the token from the inverse function node and the token (1) are propagated to the equivalent node. Token (1), token (z0), and token (q) are propagated to the upper argument synthesis node, and token (z0) and token (q) are propagated to the lower argument synthesis node.

次に、図18に示すように、第1のブランチBR1では、論理積ノードの一方入力に偽(F)が伝播するため、論理積ノードの出力は、偽(F)となる。   Next, as shown in FIG. 18, in the first branch BR1, since false (F) is propagated to one input of the logical product node, the output of the logical product node becomes false (F).

一方、第2のブランチBR2では、同値ノードへの入力がともに”1”となり、上側引数合成ノードからは、トークン(1、z0、q)が、下側引数合成ノードからは、トークン(z0、q)が、それぞれ伝播する。   On the other hand, in the second branch BR2, the inputs to the equivalence node are both “1”, the token (1, z0, q) from the upper argument synthesis node, and the token (z0, q) from the lower argument synthesis node. q) propagates respectively.

さらに、図19に示すように、第2のブランチBR2では、同値ノードから上側ゲートノードおよび下側ゲートノードへの出力が真(T)となる。したがって、上側引数合成ノードからのトークン(1、z0、q)と、下側引数合成ノードからのトークン(z0、q)は、それぞれ上側ゲートノードおよび下側ゲートノードを通過して伝播する。   Further, as shown in FIG. 19, in the second branch BR2, the output from the equivalence node to the upper gate node and the lower gate node becomes true (T). Therefore, the token (1, z0, q) from the upper argument synthesis node and the token (z0, q) from the lower argument synthesis node propagate through the upper gate node and the lower gate node, respectively.

図20に示すように、上側ゲートノードを通過したトークンは、第1および第2ブランチの入力側のマージノードに伝播する。また、下側ゲートノードを通過したトークンは、第3ブランチの入力側のマージノードに伝播する。   As shown in FIG. 20, the token that has passed through the upper gate node propagates to the merge node on the input side of the first and second branches. The token that has passed through the lower gate node is propagated to the merge node on the input side of the third branch.

図21に示すように、第1および第2ブランチの入力側のマージノードからは、2つのトークン(1、z0、q)が出力される。第3ブランチの入力側のマージノードからは、2つのトークン(z0、q)が出力される。   As shown in FIG. 21, two tokens (1, z0, q) are output from the merge nodes on the input side of the first and second branches. Two tokens (z0, q) are output from the merge node on the input side of the third branch.

図22に示すように、第3ブランチでは、上側の引数分解ノードからは、トークン(z0)、トークン(q)が伝播し、下側の引数分解ノードからも、トークン(z0)、トークン(q)が伝播する。   As shown in FIG. 22, in the third branch, the token (z0) and token (q) are propagated from the upper argument decomposition node, and the token (z0) and token (q) are also transmitted from the lower argument decomposition node. ) Propagates.

一方、第1ブランチBR1では、上側の引数分解ノードからは、トークン(1)、トークン(z0)、トークン(q)が伝播し、下側の引数分解ノードからも、トークン(1)、トークン(z0)、トークン(q)が伝播する。   On the other hand, in the first branch BR1, the token (1), token (z0), and token (q) are propagated from the upper argument decomposition node, and the token (1) and token (1) are also transmitted from the lower argument decomposition node. z0) and the token (q) are propagated.

図23に示すように、第1ブランチBR1では、上側の同値ノードからは、”T if z0=1”が出力され、下側の同値ノードからは、”T if q=z0”が出力される。   As shown in FIG. 23, in the first branch BR1, “T if z0 = 1” is output from the upper equivalence node, and “T if q = z0” is output from the lower equivalence node. .

第2ブランチBR2では、関数fのノードで、トークン1のシンボルはsに変わり、これが逆関数ノードに伝播する。   In the second branch BR2, at the node of the function f, the symbol of token 1 is changed to s, which is propagated to the inverse function node.

一方、定数ノードをトークン(q)が通過することにより、このトークンのシンボルは、z1となる。そこで、逆関数ノードからのトークンと、トークン(z0)とが同値ノードに伝播する。上側の引数合成ノードには、トークン(z0)、トークン(z1)、トークン(q)が伝播し、下側の引数合成ノードには、トークン(z1)、トークン(q)が伝播する。   On the other hand, when the token (q) passes through the constant node, the symbol of this token becomes z1. Therefore, the token from the inverse function node and the token (z0) propagate to the equivalent node. Token (z0), token (z1), and token (q) are propagated to the upper argument synthesis node, and token (z1) and token (q) are propagated to the lower argument synthesis node.

第3ブランチBR3では、上側の同値ノードには、トークン(0)とトークン(q)とが入力し、下側の同値ノードからは、”T if q=0”が出力される。   In the third branch BR3, token (0) and token (q) are input to the upper equivalence node, and “T if q = 0” is output from the lower equivalence node.

図24に示すように、第1ブランチBR1では、論理積ノードから、”T if z0=1,q=z0”が出力される。さらに、第2ブランチBR2では、上側引数合成ノードからは、トークン(z0、z1、q)が、下側引数合成ノードからは、トークン(z1、q)が、それぞれ上側ゲートノードと下側ゲートノードに伝播する。ゲートノードからは、同値ノードにおいて、”T if z0=0”が成り立ては、トークンが通過することになる。   As shown in FIG. 24, in the first branch BR1, “T if z0 = 1, q = z0” is output from the AND node. Further, in the second branch BR2, a token (z0, z1, q) is received from the upper argument synthesis node, and a token (z1, q) is received from the lower argument synthesis node, respectively, as an upper gate node and a lower gate node. Propagate to. From the gate node, if “T if z0 = 0” is established in the equivalent node, the token passes.

図25は、このような図12〜図24で説明したデータフローグラフを展開して、AND/ORグラフで示したグラフである。   FIG. 25 is a graph showing the AND / OR graph obtained by developing the data flow graph described with reference to FIGS.

図25において、節は、点線で囲んであり、引数は、一点鎖線で囲んである。各節では、AND/ORグラフに展開するに当たり、変数/定数ANDノードを挿入してある。   In FIG. 25, nodes are surrounded by dotted lines, and arguments are surrounded by alternate long and short dash lines. In each section, a variable / constant AND node is inserted for expansion into an AND / OR graph.

図26は、図25に示したAND/ORグラフを、各節の内部構造を省略しAND/OR木として示す図である。   FIG. 26 is a diagram showing the AND / OR graph shown in FIG. 25 as an AND / OR tree with the internal structure of each section omitted.

ルート節では、クエリ変数qが生成され、引数となるマージノードは、ORノードとして機能する。ブランチBR1−1に相当する節は、葉として表現される。ブランチBR2−1に相当するノードは、変数z0を生成するANDノードとして機能する。   In the root clause, a query variable q is generated, and the merge node as an argument functions as an OR node. A node corresponding to the branch BR1-1 is expressed as a leaf. The node corresponding to the branch BR2-1 functions as an AND node that generates the variable z0.

(z0、q)を引数とする、ブランチBR3−1、ブランチBR3−2に相当する葉では、束縛条件が最終的に存在する(”T if q=0”と、”T if q=z0”)。   In the leaves corresponding to the branch BR3-1 and the branch BR3-2 having (z0, q) as arguments, there are finally binding conditions (“T if q = 0” and “T if q = z0”). ).

一方、(1、z0、q)を引数とする、ブランチBR1−2に相当する葉では、束縛条件が最終的に存在する(”T if z0=1,q=z0”)。一方、ブランチBR2−2に相当する葉では、葉の上にはない(それ以前の葉において確定している)束縛(”T if z0=0”)が
存在する。また、ブランチBR1−2に相当する葉では、変数z1が生成される。
On the other hand, in the leaf corresponding to the branch BR1-2 having (1, z0, q) as an argument, a binding condition finally exists (“T if z0 = 1, q = z0”). On the other hand, in the leaf corresponding to the branch BR2-2, there is a constraint ("T if z0 = 0") that is not on the leaf (determined in the previous leaf). Further, the variable z1 is generated in the leaf corresponding to the branch BR1-2.

ここで、以上のような論理プログラム(すなわちKTN)の目的は、ゴール節が成り立つかどうか、もしくはゴール節の中のクエリ変数(q)が何であるかを決めることにある
。このような述語論理が恒真式であるか否かを判断したり、クエリ変数を求める処理は、上述のとおり「導出」と呼ばれる。
Here, the purpose of the above logic program (that is, KTN) is to determine whether the goal clause holds or what the query variable (q) in the goal clause is. The process of determining whether or not such predicate logic is a true expression or obtaining a query variable is called “derivation” as described above.

KTNの場合、この答えの抽出問題は、作られたAND/ORグラフから、条件1)変数の束縛条件が無矛盾な解を持ち(つまり単一化可能で)、条件2)木の根を真とするような部分木を求める問題に帰着される。   In the case of KTN, the problem of extracting this answer is that, from the generated AND / OR graph, Condition 1) Variable binding conditions have consistent solutions (ie can be unified), Condition 2) The root of the tree is true This results in the problem of finding a partial tree.

図27は、木探索と単一化について、ブランチBR1−1に相当する葉から探索と単一化が可能であるかを判断した結果を示す。   FIG. 27 shows the result of determining whether the search and unification of the tree search and unification are possible from the leaves corresponding to the branch BR1-1.

図27に示すように、ブランチBR1−1に相当する葉が、偽(F)であることから、根も、偽(F)となり、条件2が満たされないため、この部分木は、解とはなりえない。   As shown in FIG. 27, since the leaf corresponding to the branch BR1-1 is false (F), the root is also false (F), and the condition 2 is not satisfied. I can't.

図28は、木探索と単一化について、ブランチBR3−1に相当する葉とブランチBR1−2に相当する葉から探索と単一化が可能であるかを判断した結果を示す。   FIG. 28 shows a result of determining whether the search and unification can be performed from the leaf corresponding to the branch BR3-1 and the leaf corresponding to the branch BR1-2 for the tree search and unification.

図28に示すように、ブランチBR3−1に相当する葉の束縛条件とブランチBR1−2に相当する葉の束縛条件を同時に満たすqが存在しない、すなわち、これらの2つの葉の束縛(制約式)を連立方程式としたときの解がない(単一化不能である)ことから、条件1が満たされないため、この部分木は、解とはなりえない。   As shown in FIG. 28, there is no q that simultaneously satisfies the leaf constraint condition corresponding to the branch BR3-1 and the leaf constraint condition corresponding to the branch BR1-2, that is, the constraint (constraint expression) of these two leaves. ) Is a simultaneous equation, and there is no solution (cannot be unified), so condition 1 is not satisfied, so this subtree cannot be a solution.

図29は、木探索と単一化について、ブランチBR3−2に相当する葉とブランチBR1−2に相当する葉から探索と単一化が可能であるかを判断した結果を示す。   FIG. 29 shows a result of determining whether a search and unification can be performed from a leaf corresponding to the branch BR3-2 and a leaf corresponding to the branch BR1-2 for tree search and unification.

図29に示すように、ブランチBR3−2に相当する葉の束縛条件とブランチBR1−2に相当する葉の束縛条件を同時に満たすqが存在する、すなわち、これらの2つの葉の束縛(制約式)を連立方程式としたときの解が存在する(q=1)ことから、条件1および条件2が満たされないため、この部分木は、解となる。   As shown in FIG. 29, there exists q that simultaneously satisfies the leaf constraint condition corresponding to the branch BR3-2 and the leaf constraint condition corresponding to the branch BR1-2, that is, the constraint (constraint expression) of these two leaves. ) Is a simultaneous equation (q = 1), so condition 1 and condition 2 are not satisfied, so this subtree is a solution.

言い換えると、トークンの伝播後に、変数間の連立方程式を解くことにより演繹推論の答えが求まることになる。   In other words, after token propagation, the answer of deductive reasoning is obtained by solving simultaneous equations between variables.

このような問題に対して、本実施の形態の計算処理装置100では、「確率近接法(Probabilistic Approach 法:PA法)」という、連立方程式をネットワークを用いて、数
値的・分散的に解く方法を適用する。
In order to solve such a problem, the calculation processing apparatus 100 according to the present embodiment solves the simultaneous equations numerically and distributedly using a network, called “probabilistic approach method (PA method)”. Apply.

確率近接法は求解の途中で、系図内の部分木の論理的な無矛盾性も調べていくので、これに基づき有望な枝の先を成長させるといった処理を行なっていくことにより、系図成長・真偽チェック・変数単一化を有機的に結び付けながら解の探索を行なうことができる。   The probabilistic proximity method examines the logical consistency of the subtrees in the genealogy during the solution, and based on this, the process of growing the tip of promising branches can be used to grow the It is possible to search for solutions while organically connecting fake checks and variable unification.

図30は、このような確率近接法の概念を説明するための概念図である。
つまり、確率近接法は、連立方程式を逐次的に解く数値解法であって、「制約式を満たすためのパラメータ補正値を逆算または微分を用いて計算する」との補正値算出と、「パラメータを補正値に、近さに応じて確率的にジャンプさせる」との確率的近接とを繰り返して、逐次的に解を求める。
FIG. 30 is a conceptual diagram for explaining the concept of such a probabilistic proximity method.
In other words, the probabilistic proximity method is a numerical solution that solves simultaneous equations sequentially, and calculates a correction value such as “calculate a parameter correction value to satisfy the constraint equation using back calculation or differentiation” and “ The solution is sequentially obtained by repeating the probabilistic proximity of “probably jump to the correction value according to the proximity”.

確率近接法では、近接性を基準により制約間矛盾が小さい解候補が生き残ることで、パラメータ矛盾が次第にゼロに収束し、解が求まることになる。   In the probabilistic proximity method, solution candidates with small contradiction between constraints on the basis of proximity survive, so that parameter contradiction gradually converges to zero and a solution is obtained.

また、以下に説明するように、確率近接法は、逆伝播における学習(定数学習)を実行する際にも使用することができる。   As will be described below, the probabilistic proximity method can also be used when performing learning in back propagation (constant learning).

以下、より簡単化した例で、確率近接法の処理について説明する。
(定数学習を行なう処理)
まず、確率近接法により、定数学習をする場合を例にとって説明する。
Hereinafter, the process of the probabilistic proximity method will be described with a more simplified example.
(Constant learning process)
First, the case where constant learning is performed by the probabilistic proximity method will be described as an example.

図31は、確率近接法により、定数学習をする場合を示す概念図である。   FIG. 31 is a conceptual diagram showing a case where constant learning is performed by the probabilistic proximity method.

Figure 0006044691
Figure 0006044691

aが答えであり、sは、解を求める過程で試行的に代入されるセンサである。
したがって、ここでは、aとsとの関係が、最終的な解の関数形となるように、定数ν0およびν1の値を定める手続きを行なう必要がある。
a is an answer, and s is a sensor that is substituted on a trial basis in the process of finding a solution.
Therefore, here, it is necessary to perform a procedure for determining the values of the constants ν0 and ν1 so that the relationship between a and s becomes the function form of the final solution.

ここで、教師値セットは定数を未知数とする一群の連立方程式を与えることになる。
図32は、上述した式(1)を表すデータフローグラフでの確率近接法の処理を示す図である。
Here, the teacher value set gives a group of simultaneous equations whose constants are unknown.
FIG. 32 is a diagram illustrating processing of the probabilistic proximity method in the data flow graph representing the above-described formula (1).

まず、定数ν0およびν1の初期値が、それぞれ、1.5および1.0であるものとする。センサとして、値1.0を用い、教師値が1.0であるものとする。データフローグラフに従って、トークンが伝播すると、解として、2.0が得られることになる。   First, it is assumed that the initial values of the constants ν0 and ν1 are 1.5 and 1.0, respectively. It is assumed that the value 1.0 is used as the sensor and the teacher value is 1.0. If the token propagates according to the data flow graph, 2.0 is obtained as a solution.

しかし、教師値が1.0であるため、まず、プラスノードから逆方向への伝播学習において、プラスがノードの上側の入力のみで、教師値となるように、この入力を調整したとしたときの値を求める。プラスがノードの下側の入力は、1.5であるから、上側の入力は、−0.5となっていれば、教師値と一致することになる。したがって、この−0.5に対して、積ノードの入力がどのようになっていればよいかを計算すると、センサが1.0であるから、定数ν1の値は、−0.5であればよいことになる。   However, since the teacher value is 1.0, first, in propagation learning from the plus node in the reverse direction, when the input is adjusted so that the plus becomes the teacher value only with the input above the node, Find the value of. Since the input on the lower side of the node is 1.5, if the input on the upper side is −0.5, it matches the teacher value. Therefore, when calculating what the input of the product node should be with respect to -0.5, since the sensor is 1.0, the value of the constant ν1 should be -0.5. It will be good.

一方、教師値が1.0であるため、プラスノードから逆方向への伝播学習において、プラスがノードの下側の入力のみで、教師値となるように、この入力を調整したとしたときの値も求める。プラスがノードの上側の入力は、0.5であるから、下側の入力は、0.5となっていれば、教師値と一致することになる。したがって、この0.5に対して、定数ν0の値は、ν0´:0.5であればよいことになる。   On the other hand, since the teacher value is 1.0, in the propagation learning from the plus node in the reverse direction, when the input is adjusted so that the plus is only the input below the node and becomes the teacher value. Also find the value. Since the upper input of the node is 0.5, if the lower input is 0.5, the input value matches the teacher value. Therefore, for this 0.5, the value of the constant ν0 may be ν0 ′: 0.5.

この処理の後、各定数ノードでは、逆算により戻ってきた値Vと元の値νから近接性因
子r=exp(-κ/4・(v-V)2)を計算しておく。
After this process, each constant node calculates a proximity factor r = exp (−κ / 4 · (vV) 2 ) from the value V returned by the back calculation and the original value ν.

以上のようにした後、たとえば定数v0を更新するためには、v0の近接性因子r0を全定数ノードの近接性因子の総和Σjrjで割った商を確率としてv0からV0への変更を行なう。 After updating as described above, for example, to update the constant v 0 , the quotient obtained by dividing the proximity factor r 0 of v 0 by the sum Σ j r j of the proximity factors of all constant nodes is used as a probability from v 0. Change to V 0 .

定数ν1についても同様である。全ての定数でこのような確率的更新をすることにより、1度の逆伝搬で計算される補正値セットの中で、実際に定数値に反映されるのがネットワーク全体で平均1個となることが保証される。   The same applies to the constant ν1. By performing such a probabilistic update for all constants, the average value of the correction value set calculated by one back propagation is actually reflected in the constant value for the entire network. Is guaranteed.

更新された定数を用いて、式(1)を書き直し、センサと教師値を用いて、さらに、順伝播と逆伝播とを繰り返す。このような繰り返しにより、最終的には、最終解となるように、定数が更新されていくことになる。   Expression (1) is rewritten using the updated constant, and forward propagation and back propagation are further repeated using the sensor and the teacher value. As a result of such repetition, the constant is updated so that the final solution is finally obtained.

(連立方程式の解を求める処理)
次に、確率近接法により、連立方程式の解を求める場合を例にとって説明する。
(Process to find solutions to simultaneous equations)
Next, the case where the solution of simultaneous equations is obtained by the probabilistic proximity method will be described as an example.

すなわち、複数の制約を満足するように変数の値を決める問題を、確率近接法により解くことになる。   That is, the problem of determining the value of a variable so as to satisfy a plurality of constraints is solved by the probabilistic proximity method.

例として、以下の連立方程式を解く場合を考える。
x1=x0+1 …(2)
x1=2x0−1 …(3)
図33は、このような連立方程式をデータフローグラフ(AND/ORグラフ)を用いて、解く場合の手続きを説明するための図である。
As an example, consider the case of solving the following simultaneous equations.
x1 = x0 + 1 (2)
x1 = 2x0-1 (3)
FIG. 33 is a diagram for explaining a procedure for solving such simultaneous equations using a data flow graph (AND / OR graph).

上記のような式(1)と式(2)の連立方程式を解くにあたり、初期値として(x0、x1)=(0,0)とする。   In solving the simultaneous equations of the above equations (1) and (2), the initial value is (x0, x1) = (0, 0).

まず、データフローグラフで、ノードx0の側を通って、上側の同値ノード300には、”1”と”0”とが入力する。無矛盾とするためには、先ほどの定数学習の場合と同様に、上側の入力の変更だけで無矛盾とするためには、値は”0”に変更する必要があり、下側の入力の変更だけで、無矛盾とするためには、値は”1”としなければならない。そこで、上側の同値ノード300については、2つの無矛盾なトークンペア(0,1)aと、(1,1)bとが生成される。ここで、トークンについての(x、r)yとは、xがトークンの値であり、rは、この値xの信頼度であり、yは、このトークンについての識別子である。この場合、識別子は、グラフ中の点a,b,c,dのいずれの点であるかに相当しているが、実際には、トークンを識別可能な識別子であれば、何でもよい。   First, “1” and “0” are input to the upper equivalence node 300 through the node x0 side in the data flow graph. As in the case of constant learning, the value must be changed to “0” in order to make it consistent only by changing the upper input, just to change the lower input. In order to make it consistent, the value must be “1”. Therefore, two consistent token pairs (0, 1) a and (1, 1) b are generated for the upper equivalence node 300. Here, (x, r) y for a token is that x is the value of the token, r is the reliability of this value x, and y is an identifier for this token. In this case, the identifier corresponds to any of the points a, b, c, and d in the graph, but actually, any identifier can be used as long as it is an identifier that can identify the token.

また、同値ノードにおいては、無矛盾なのであるから、信頼度は、1としている。
下側の同値ノード302についても、同様である。
In addition, since equivalence nodes are consistent, the reliability is set to 1.
The same applies to the lower equivalence node 302.

図34は、このように、同値ノード300または302で生成されたトークンを逆伝播させた場合の処理を説明する図である。   FIG. 34 is a diagram for explaining processing when the token generated in the equivalence node 300 or 302 is back-propagated in this way.

まず、x0ノードは、ANDノードであり、このノードに入力する逆伝播したトークンは、それぞれ、(−1,1)a,(0,1)b,(0.5,1)c,(0,1)dとなる。そこで、このANDノードまで逆伝播したトークンのANDノードからの出力数についての組み合わせをすべて考える。つまり、トークンの識別子の組み合わせでは、ac,ad,bc,bdとなる。このような組合せによって生じるトークンの個数は、規模の大きな連立方程式の場合、変数の個数、制約式の個数とともに発散的に増加することが予想されるが、そのような場合、確率近接法では、後に述べる確率的選択を、組合せを行なう前のトークンに施すことにより、適宜トークン数を抑える処理が行なわれる。   First, the x0 node is an AND node, and the back-propagated tokens input to this node are (−1, 1) a, (0, 1) b, (0.5, 1) c, (0, respectively. 1) d. Accordingly, all combinations of the number of outputs from the AND node of the token back-propagated to the AND node are considered. That is, ac, ad, bc, and bd are used in the combination of token identifiers. The number of tokens generated by such a combination is expected to divergently increase with the number of variables and the number of constraint equations in the case of a large-scale simultaneous equation. By applying a probabilistic selection described later to the tokens before the combination is performed, processing for appropriately reducing the number of tokens is performed.

以上のようにして組み合わせたトークンについて、数値と信頼度は、以下の式にしたがって、計算する。   For the tokens combined as described above, the numerical value and reliability are calculated according to the following formula.

Figure 0006044691
Figure 0006044691

(Randomly chosen xi)は、組み合わせるxからランダムに取られた1個を意味する。
Varは、組み合わせるxについての分散を意味し、κは所定の定数である。これによって計算される信頼度(近接性因子)は、組み合わせる変数の値が一致していれば、分
散は0であって、信頼度は1となる。標準偏差が大きくなるほど、信頼度は小さくなる。
(Randomly chosen x i ) means one randomly taken from the combined x.
Vari i means the variance for x to be combined, and κ is a predetermined constant. As for the reliability (proximity factor) calculated by this, if the values of the variables to be combined match, the variance is 0 and the reliability is 1. The greater the standard deviation, the less reliable.

たとえば、組み合わせacについては、(x、r)は、(0.5,0.55)acとなる。他の組み合わせについても、同様である。   For example, for the combination ac, (x, r) becomes (0.5, 0.55) ac. The same applies to other combinations.

また、ノードx1についても同様に逆伝播したトークンのすべての組み合わせについて、(x、r)を算出できる。   Similarly, for the node x1, (x, r) can be calculated for all combinations of back-propagated tokens.

さらに、ノード(x0,x1)では、ノードx0とノードx1からの逆伝播として、トークンの各識別子について、最終的な逆伝播した結果のトークンのシンボル(x0,x1,r)を計算できる。ここで、この場合の信頼度rは、組み合わせる2つのトークンの信頼度の最小値である。   Further, at the node (x0, x1), as the back propagation from the node x0 and the node x1, the token symbol (x0, x1, r) as a result of the final back propagation can be calculated for each identifier of the token. Here, the reliability r in this case is the minimum value of the reliability of the two tokens to be combined.

結果として、図34に示すように、4つのトークンが最終的に得られるので、各信頼度を信頼度の総和Σrで割った商r/Σrを確率として選択を行なう。図の例では最も信頼度の高いものの一つである(0,0,0.77)bcが選択されている。   As a result, as shown in FIG. 34, four tokens are finally obtained. Therefore, a quotient r / Σr obtained by dividing each reliability by the total reliability Σr is selected as a probability. In the illustrated example, (0, 0, 0.77) bc, which is one of the highest reliability, is selected.

次には、このトークン(0,0,0.77)bcを初期値として、順伝播と逆伝播とを繰り返す。   Next, forward propagation and reverse propagation are repeated with this token (0, 0, 0.77) bc as an initial value.

このような手続きを繰り返すことで、最終的には、式(2)と式(3)の解が得られる。   By repeating such a procedure, the solutions of Equation (2) and Equation (3) are finally obtained.

図29で説明したとおり、KTNにおいて、葉の束縛条件において、連立方程式の解が存在するような部分木が、KTNの推論の解なのであるから、より複雑なトポロジーのネットワークであっても、本質的には、同様の手続きにより、解となる部分木を探索することができる。   As described with reference to FIG. 29, in KTN, a subtree in which a solution of simultaneous equations exists in the leaf constraint condition is a solution of KTN inference. Specifically, a subtree as a solution can be searched by the same procedure.

図35は、図12等のデータフローグラフを展開したAND/ORグラフについて、qの初期値を0.5、z0の初期値も0.5として順伝播させた場合のトークンのシンボル(x、r)を示す図である。   FIG. 35 shows an AND / OR graph obtained by expanding the data flow graph of FIG. 12 and the like. The token symbols (x, It is a figure which shows r).

図36は、図35の状態から逆伝播を行なった状態を示す図である。
z0の値が更新されていることがわかる。
FIG. 36 is a diagram showing a state in which back propagation is performed from the state of FIG.
It can be seen that the value of z0 has been updated.

一方、節が未確定のため正r 値のトークンが来ない枝である「未定枝」が存在することもわかる。   On the other hand, it can also be seen that there is an “undetermined branch”, which is a branch from which a positive r-value token does not come because the clause is undefined.

図37は、図36において「拡大図1」で示した部分の拡大した図である。
逆伝播では、以下のことがいえる。
FIG. 37 is an enlarged view of a portion indicated by “enlarged view 1” in FIG.
In back propagation, the following can be said.

i)信頼度は、同値ノードを介して継承される。
ii)同値ノードでは、固有のIDを持つ「無矛盾な」トークンペアが生成される。
i) The reliability is inherited via the equivalency node.
ii) At the equivalency node, a “consistent” token pair with a unique ID is generated.

iii)論理積ノードでは、図34で説明したとおり、トークンの組み合わせについての演算を行なう(「トークンを反応させる」という)。   iii) In the AND node, as described with reference to FIG. 34, an operation is performed on a combination of tokens (referred to as “token react”).

iv)定数ノードでは、x値が定数ノードと符合するトークンだけを通過させる。
v)引数分解ノードでは、IDを共有するトークンを組み合わせる。このとき、信頼度は、組み合わせるトークンの信頼度の最小値とする。
iv) In the constant node, only tokens whose x value matches the constant node are passed.
v) The argument decomposition node combines tokens that share an ID. At this time, the reliability is the minimum value of the reliability of the tokens to be combined.

図38は、図36において「拡大図2」で示した部分の拡大した図である。
逆伝播では、以下のことがいえる。
FIG. 38 is an enlarged view of a portion indicated by “enlarged view 2” in FIG.
In back propagation, the following can be said.

vi)ORノードはトークンをカンマ記号(ORを意味する)で繋ぎ、通過させる。
vii)ORで繋がれたトークンが多くなり過ぎる場合は、信頼度rを用いた確率的選択を行なって、rが小さいトークンを間引く。
vi) The OR node connects tokens with a comma symbol (meaning OR) and passes them.
vii) When there are too many tokens connected by OR, probabilistic selection using reliability r is performed, and tokens with small r are thinned out.

図39は、図36の逆伝播の状態から、初期値を更新した上で、再度、順伝播を行った状態を示す図である。   FIG. 39 is a diagram illustrating a state in which forward propagation is performed again after updating the initial value from the back propagation state of FIG.

図40は、図39の状態から、さらに、逆伝播を行なった状態を示す図である。
qおよびz0は、さらに更新されて、ともに1となっている。
FIG. 40 is a diagram showing a state in which reverse propagation is further performed from the state of FIG.
q and z0 are further updated to both 1.

このような処理を繰り返すことにより未定変数に到着するトークンの値は次第にq=z0=1、r=1に収束し、単一化が近似的に解けることになる。   By repeating such processing, the value of the token arriving at the undetermined variable gradually converges to q = z0 = 1 and r = 1, and unification can be solved approximately.

図41は、教師ありで定数を学習させる方法について説明するための図である。
以上の説明からも明らかなように、確率近接法は、変数決定(演繹)をしながらの定数補正(学習)を可能にする方法である。したがってKTNにおいても、教師値を用いて確率
近接し、その途上で算出される補正値を用いて、定数値を改めることにより、根ができるだけ真になるような補正を行なうことができる。この学習処理により、データフローグラフの中に埋め込まれたいくつかの定数についても、問題としてそれが変化することが許されるようなものについては、より最適な値へと近づけることが可能である。
FIG. 41 is a diagram for explaining a method of learning a constant with supervision.
As is clear from the above description, the probabilistic proximity method is a method that enables constant correction (learning) while performing variable determination (deduction). Therefore, also in KTN, it is possible to perform correction so that the root becomes as true as possible by using probabilistic proximity using the teacher value and modifying the constant value using the correction value calculated in the course. With this learning process, it is possible to bring some constants embedded in the data flow graph closer to optimal values for those that are allowed to change as a problem.

図42は、トポロジーを改変処理する場合の概念を説明する図である。
たとえば、順伝播と逆伝播の所定の回数ごとに、または、乱数が所定の値を超える場合など、特定の頻度で、ランダム生成された節をデータフローグラフに加える改変を行なうことができる。
FIG. 42 is a diagram for explaining the concept when the topology is modified.
For example, it is possible to make modifications to add randomly generated clauses to the data flow graph at a predetermined frequency, for example, every predetermined number of forward and reverse propagations, or when the random number exceeds a predetermined value.

また、展開されたデータフローグラフ上で、確率近接法の複数の試行において、所定回数以上、偽枝を生成する節については、削除することも可能である。   Moreover, it is also possible to delete a clause that generates a false branch more than a predetermined number of times in a plurality of trials of the probabilistic proximity method on the developed data flow graph.

このような処理により、初期的な論理プログラムに対して、対応するデータフローグラフのトポロジーを変化させながら、より教師値に近い結果を生成する論理プログラムを生成することができる。   By such processing, it is possible to generate a logic program that generates a result closer to the teacher value while changing the topology of the corresponding data flow graph with respect to the initial logic program.

あるいは、論理推論に必ずしも意義を有さない枝を削除することで、教師値の結果を維持しつつ、より簡単なトポロジーを有するデータフローグラフで表現される論理プログラムを生成することができる。   Alternatively, by deleting branches that are not necessarily meaningful for logical reasoning, it is possible to generate a logical program represented by a data flow graph having a simpler topology while maintaining the result of the teacher value.

図43は、演算部220が実行する処理を説明するためのフローチャートである。
図43を参照して、演算部220の処理がスタートすると、述語論理で表現された初期知識に相当するデータフローグラフ(DFG)を、ネットワーク作成部222が用意する(
ステップS102)。
FIG. 43 is a flowchart for explaining processing executed by the calculation unit 220.
Referring to FIG. 43, when processing of operation unit 220 starts, network creation unit 222 prepares a data flow graph (DFG) corresponding to the initial knowledge expressed in predicate logic (
Step S102).

続いて、ネットワーク作成部222が、与えられたクエリ/教師値に相当する部分グラフをDFGに追加する(S104)。   Subsequently, the network creation unit 222 adds a subgraph corresponding to the given query / teacher value to the DFG (S104).

さらに、計算実行部226が、DFG上でシンボル・トークンを順伝搬し、 展開DFGを未
定枝の先で1段成長させる(S106)。図12〜24に示されたように、シンボル・トークンはたいていの場合DFG上を循環的に回ることになるが、このS106の処理が最初
呼ばれた場合は、Beginの発火から始まるシンボル・トークンの伝搬を循環1回まで実行
することに、またそれ以後に呼び出された場合は、未定枝の先で止まっているシンボル・トークンの伝搬をさらに循環1回分進めることになる。
Further, the calculation execution unit 226 forwardly propagates the symbol token on the DFG, and grows the expanded DFG one stage ahead of the undetermined branch (S106). As shown in FIGS. 12 to 24, the symbol tokens usually circulate on the DFG in a cyclic manner, but when the processing of S106 is first called, the symbol tokens starting from the firing of Begin If it is called after that, and if it is called after that, the propagation of the symbol token stopped at the end of the undecided branch is further advanced by one cycle.

次に、計算実行部226が、変数地を初期化して(S108)、数値トークンを順伝播させる(S110)。   Next, the calculation execution unit 226 initializes the variable location (S108) and forwards the numerical tokens in order (S110).

次に、計算実行部226が、数値トークンを逆伝搬させる(S112)。
根にトークンが逆伝播により戻っている場合、続いて、変数の辻褄があっているか、言い換えると、戻ったトークンの信頼度rが、信頼度1に対して所定の範囲で一致しているかが計算実行部226により判断される(S122)。
Next, the calculation execution unit 226 reversely propagates the numerical token (S112).
If the token is returned to the root by back propagation, then there is a variable trap, in other words, whether the reliability r of the returned token matches the reliability 1 within a predetermined range. Determination is made by the calculation execution unit 226 (S122).

変数の辻褄が合わない場合、計算実行部226により、ループ回数が所定の回数をオーバーしたかが判断され、オーバーしていなければ、処理はステップS110に戻る。   If the variables do not match, the calculation execution unit 226 determines whether the number of loops exceeds a predetermined number. If not, the process returns to step S110.

一方、ループ数が所定回数をオーバーしている場合(S116)、未定枝があるかを計算実行部226が、判断し、未定枝があれば、ネットワーク更新部228が偽枝を刈り取り(S120)、処理はステップS106に復帰する。   On the other hand, if the number of loops exceeds the predetermined number (S116), the calculation execution unit 226 determines whether there is an undetermined branch, and if there is an undetermined branch, the network update unit 228 cuts the false branch (S120). The processing returns to step S106.

一方、S118で見え家だがなければ、演算の答え(偽)を出力し(S130)、ネットワーク更新部228がデータフローグラフのトポロジーを、節の生成または削除により改変する(S126)。   On the other hand, if it is not a visible house in S118, an operation answer (false) is output (S130), and the network update unit 228 modifies the topology of the data flow graph by generating or deleting a clause (S126).

S122で変数の辻褄があっていれば、演算の答え(qまたは真)を出力し、処理はステップS126へ移行する。   If there is a trap of the variable in S122, the operation answer (q or true) is output, and the process proceeds to step S126.

ステップS126の処理が終了すると、新しいクエリまたは教師値があるかを計算実行部226が判断し、存在すれば処理は、処理はステップS104に復帰し、存在しなければ、処理は終了する(S132)。   When the process of step S126 is completed, the calculation execution unit 226 determines whether there is a new query or a teacher value. If there is, the process returns to step S104, and if not, the process ends (S132). ).

以上のような処理により、KTNによる論理推論・学習には、以下のような効果がある。   With the above processing, the logical inference / learning by KTN has the following effects.

(i)知識が脳やニューラルネットワークと同じ静的なグラフによって表現される。こ
のこと自体に計算上の優位性が必ずしも存在するとはいえない。しかし、AIの究極的な目標が人間に匹敵するような知能を作ろうとするものであること、また最近進歩が著しい人間の脳の非侵襲計測技術から得られる生理学的なデータとの将来における比較の可能性等を考えた時、脳と数学的に同じアーキテクチャで知識を表現することには大きな意味がある。
(I) Knowledge is represented by the same static graph as the brain or neural network. This in itself does not necessarily have a computational advantage. However, AI's ultimate goal is to create intelligence that is comparable to humans, and future comparison with physiological data obtained from non-invasive measurement techniques of the human brain that have made significant progress recently. When thinking about the possibilities, it is very meaningful to express knowledge with the same mathematical architecture as the brain.

(ii)系図作成、単一化といった一連の演繹・学習処理の素過程が、グラフ上のトークン伝搬によって実現される。従ってこれらを実装するKTNの実行プログラムは、並列/分
散マシン上へ移植することにより大きな効率アップが期待できる。
(Ii) A series of deductive and learning processes such as genealogy creation and unification are realized by token propagation on the graph. Therefore, KTN execution programs that implement them can be expected to increase efficiency by porting them to parallel / distributed machines.

(iii)演繹では、ゴール節を元に探索を行なう後向き推論を行なう。従って深い推論
の場合でも探索の範囲を絞り込むことが可能で、事実を無闇に生成する前向き推諭よりも効率がいい。
(Iii) In deduction, backward inference is performed based on the goal clause. Therefore, it is possible to narrow the search range even in the case of deep reasoning, and it is more efficient than forward reasoning that generates facts without darkness.

(iv)知識を表わすネットワーク上で、各シンボルは連続実数で表わされ、またそれに加え、最終解が信頼度rとともに提示されることにより、知識のあいまい性が表現されて
いる。これは、確率論理プログラミングで行なわれるルールの重み付けとは異なる方法による知識のあいまい性表現である。
(Iv) On the network representing knowledge, each symbol is represented by a continuous real number, and in addition, the final solution is presented together with the reliability r, thereby expressing the ambiguity of knowledge. This is an ambiguity representation of knowledge by a method different from the rule weighting performed in probabilistic logic programming.

(v)述語論理中の変数がネットワーク上で識別子を用いて明示的に扱われており、こ
れにより、述語論理を命題論理化してグラフ化する他のアプローチに較べて、コンパクトな規模のグラフによる汎用の知識表現を実現している。またグラフに対するトポロジー変更(知識改変学習)では、新しいノード(述語)の生成や論理構造の変更も行なえる枠組みを提供している。
(V) Variables in the predicate logic are explicitly handled using identifiers on the network, which makes it possible to use a graph with a compact scale compared to other approaches that graph the predicate logic by propositional logic. Realizes general knowledge expression. In addition, topology change (knowledge modification learning) for graphs provides a framework for generating new nodes (predicates) and changing logical structures.

なお、以上の説明では、確率近接法のための補正値の算出には、すべて逆算を用いることとした。しかしながら、特許文献1の国際公開2010/047388号公報にも開示されているように、ネットワーク上の逆伝搬を用いると、演算結果<x>、正しい結果(教師値)と演算結果との差に基づいて定まるエネルギー誤差E、エネルギー誤差Eの微係数D、Dを計算することができ、それを用いると、補正値は、テイラー展開の1次の範囲で近似計算することも可能である。 In the above description, the calculation of the correction value for the stochastic proximity method is all performed using back calculation. However, as disclosed in International Publication No. 2010/047388 of Patent Document 1, if back propagation on the network is used, the difference between the calculation result <x>, the correct result (teacher value), and the calculation result The energy error E determined based on this and the differential coefficients D x and D r of the energy error E can be calculated, and by using them, the correction value can be approximately calculated in the first order range of the Taylor expansion. .

図51は、このような微係数を計算する場合の手続きを示す概念図である。
図中のxはある任意のノードの現在の値を示し、ネットワークから出力される答えaはこの関数としてa=G(x)と書かれるものとする。今このxが仮にxTに補正されることでネットワークの答えが教師値tになって欲しいとすると、その要請はt=G(xT)のように書ける。
この2つの式を辺々引いて、エネルギー誤差の定義式E=1/2(t-a)2を用いて変形すると、最終的にxTは、現在のノード値x、エネルギー誤差E、微係数Dxを使って、xT=x-2E/Dx
ように書かれる。確率近接法のための補正値は、この式を用いて計算することも可能である。
FIG. 51 is a conceptual diagram showing a procedure for calculating such a differential coefficient.
In the figure, x represents the current value of an arbitrary node, and the answer a output from the network is written as a = G (x) as this function. Now, if this x is corrected to x T and the network answer becomes a teacher value t, the request can be written as t = G (x T ).
If these two formulas are drawn side by side and transformed using the energy error definition formula E = 1/2 (ta) 2 , finally x T is the current node value x, energy error E, and differential coefficient D. use the x, written as x T = x-2E / D x. The correction value for the probabilistic proximity method can also be calculated using this equation.

また、対象となるプログラムは論理プログラムであるとしたが、特許文献1の国際公開2010/047388号公報にも開示されているように、算術演算および論理演算を行なうプログラムのソースコードをGIMPLE形式の中間コードへ変換し、中間コードをネットワークに変換することにより得られるATNに対して、確率近接法による逆伝播学習を行なうことも可能である。   Further, although the target program is a logic program, as disclosed in International Publication No. 2010/047388 of Patent Document 1, the source code of a program for performing arithmetic operations and logical operations is in GIMPLE format. It is also possible to perform back-propagation learning by the probabilistic proximity method on ATN obtained by converting into an intermediate code and converting the intermediate code into a network.

以上の説明では、概念的な処理を中心として説明したが、本実施の形態の効果が最も発揮される利用例としては、たとえば、受注仕様からの製造条件決定問題などが想定される。   In the above description, conceptual processing has been mainly described. However, as a use example in which the effect of the present embodiment is most exerted, for example, a manufacturing condition determination problem from an order specification is assumed.

鉄鋼鋼板の製造の現場では、JTS規格、用途、板厚等の受注仕様データから、適切な製
造条件を決めるという問題がある。受注仕様は離散的な記号、もしくは連続的な数値が並んだ数百項目にのぼるリストであり、これをもとに製造条件として、あらかじめ用意された数百の条件(数百個の異なるシンボル)の中から適切なものがただ一つ選ばれる必要がある。現在現場でこの問題は、熟練した作業員が手作業で行なっているが、判定結果が人によって異なる、ルールが精密に明文化できないといった理由のため大雑把なマニュアル(作業書)しか作れず、スキルの伝承が難しく、マニュアル自体の改善も行なえない等の問題を抱えている。
In the field of manufacturing steel and steel sheets, there is a problem that appropriate manufacturing conditions are determined from order specification data such as JTS standards, applications, and sheet thicknesses. The order specification is a list of hundreds of items with discrete symbols or continuous numerical values. Based on this, hundreds of conditions prepared in advance (hundreds of different symbols) Only one appropriate item needs to be selected. At present, this problem is performed manually by skilled workers, but only a rough manual (workbook) can be created because the judgment results differ from person to person and the rules cannot be written precisely. Are difficult to pass on, and the manual itself cannot be improved.

過去この問題に対しての研究として、 ID3(Iterative Dichotomiser 3)という、仮説に基づき分類決定木を生成する方法が適用された例がある。しかしながら、蓄積された約29,000件の判定データから合成された約3千リーフの分類木による判定結果は、
熟練者の結果の約80%を再現するに留まった。これはID3が、前述した機械学習の問題
点−記号の持つ離散性と事例情報の持つあいまい性やノイズとの間のギャップの問題−を抱えていることに起因している。別に試した直近のデータに割り当てる方法の方がむしろ正答率は高かったが、この方法ではもちろんマニュアル化には繋げられない。
In the past, there has been an example in which ID3 (Iterative Dichotomiser 3), a method for generating a classification decision tree based on a hypothesis, has been applied as a research on this problem. However, the judgment result by the classification tree of about 3,000 leaves synthesized from the accumulated judgment data of about 29,000 cases is
Only about 80% of expert results were reproduced. This is due to the fact that ID3 has the above-mentioned problem of machine learning--the problem of gaps between the discreteness of symbols and the ambiguity and noise of case information. The correct answer rate was rather higher in the method of assigning to the latest data tried separately, but of course this method can not lead to manualization.

この間題は、陰のルールを“if(受注仕様) then (製造条件)”、もしくは(製造条件)←(受注仕様)として書くことができるもので、論理プログラムで知識を表現するのに好適な問題である。論理プログラムで表現された知識を あいまい性を考慮しながら演繹・学習を行なう方法には、本発明(KTN)とペイジアンネットワークが考えられるが、
変数を明示的に扱うKTNで記述する方が出来上がった知識に汎用性があり、マニュアル化
も容易である。またグラフの規模自体も、受注仕様の各項目で定数化されたノードを用意しなければならないペイジアンネットワークより小さくできる可能性がある。
The problem is that the implicit rule can be written as “if (order specification) then (manufacturing conditions)” or (manufacturing conditions) ← (order specifications), which is suitable for expressing knowledge in a logical program. It is a problem. The present invention (KTN) and the Paysian network can be considered as a method for deducting and learning knowledge expressed in a logical program while taking into account ambiguity.
Writing knowledge in KTN that explicitly handles variables is more versatile and easier to manual. There is also a possibility that the scale of the graph itself can be made smaller than that of the Paysian network in which nodes that are made constant for each item of the order specification are prepared.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

100 計算処理装置、102 コンピュータ本体、104 モニタ、105 バス、106 ドライブ、108 光ディスクドライブ、110 キーボード、112 マウス、118 ROM、122 メモリ、124 ハードディスク、128 通信インターフェイス、131 初期プログラム、132 ネットワーク作成プログラム、133 ネットワーク修正プログラム、134 ネットワーク情報、135 ノード演算定義、136
学習情報、210 入力部、220 演算部、222 ネットワーク作成部、224 形式変換部、226 計算実行部、228 ネットワーク更新部、228a トポロジー学習部、230 出力部、240 記憶部、300,302 同値ノード、BR1 第1ブランチ、BR2 第2ブランチ、BR3 第3ブランチ。
DESCRIPTION OF SYMBOLS 100 Computation processing apparatus, 102 Computer main body, 104 Monitor, 105 Bus, 106 drive, 108 Optical disk drive, 110 Keyboard, 112 Mouse, 118 ROM, 122 Memory, 124 Hard disk, 128 Communication interface, 131 Initial program, 132 Network creation program, 133 Network modification program, 134 network information, 135 node calculation definition, 136
Learning information, 210 input unit, 220 arithmetic unit, 222 network creation unit, 224 format conversion unit, 226 calculation execution unit, 228 network update unit, 228a topology learning unit, 230 output unit, 240 storage unit, 300, 302 equivalence node, BR1 first branch, BR2 second branch, BR3 third branch.

Claims (2)

計算学習装置であって、
複数の演算ノードおよび前記演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行する計算実行部を備え、
前記複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、
前記計算実行部の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出する補正情報算出部と、
前記補正情報に基づき前記データフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なう処理部とをさらに備える、計算学習装置。
A computational learning device,
A calculation execution unit for executing forward propagation calculation using a data flow graph representing a calculation procedure by a plurality of operation nodes and a plurality of edges respectively connecting between the operation nodes;
The plurality of operation nodes include operation nodes corresponding to various operations of the program,
A correction information calculation unit for calculating correction information for satisfying a teacher value and constraints given from the outside based on a calculation result of the calculation execution unit;
Based on the correction information, tokens representing local correction information in the data flow graph are propagated in the reverse direction, and by making a stochastic selection to the tokens, learning of constants and calculation of variable values based on constraints are performed. A calculation learning device, further comprising: a processing unit to perform.
前記計算学習装置において、前記トークンが持つ前記局所的な補正情報を、各ノードにおける逆算によって求める、請求項1に記載の計算学習装置。   The calculation learning apparatus according to claim 1, wherein in the calculation learning apparatus, the local correction information of the token is obtained by back calculation at each node.
JP2015196047A 2015-10-01 2015-10-01 Logic inference system, calculation learning device, and logic inference method Expired - Fee Related JP6044691B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015196047A JP6044691B2 (en) 2015-10-01 2015-10-01 Logic inference system, calculation learning device, and logic inference method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015196047A JP6044691B2 (en) 2015-10-01 2015-10-01 Logic inference system, calculation learning device, and logic inference method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011140720A Division JP5904525B2 (en) 2011-06-24 2011-06-24 Logical reasoning system and logic reasoning method

Publications (2)

Publication Number Publication Date
JP2016021262A JP2016021262A (en) 2016-02-04
JP6044691B2 true JP6044691B2 (en) 2016-12-14

Family

ID=55266025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015196047A Expired - Fee Related JP6044691B2 (en) 2015-10-01 2015-10-01 Logic inference system, calculation learning device, and logic inference method

Country Status (1)

Country Link
JP (1) JP6044691B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017036026A (en) 2015-08-07 2017-02-16 株式会社デンソー Driving apparatus of vehicle
CN110825514B (en) 2018-08-10 2023-05-23 昆仑芯(北京)科技有限公司 Artificial intelligence chip and instruction execution method for same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010047388A1 (en) * 2008-10-24 2010-04-29 独立行政法人情報通信研究機構 Calculation processing system, program creation method, and program creation program

Also Published As

Publication number Publication date
JP2016021262A (en) 2016-02-04

Similar Documents

Publication Publication Date Title
JP5904525B2 (en) Logical reasoning system and logic reasoning method
McCallum et al. Factorie: Probabilistic programming via imperatively defined factor graphs
Meichanetzidis et al. Grammar-aware question-answering on quantum computers
Qian et al. Fusing monotonic decision trees
Wu et al. Int: An inequality benchmark for evaluating generalization in theorem proving
Zhang et al. Improved heuristic equivalent search algorithm based on maximal information coefficient for Bayesian network structure learning
Patel et al. Modeling and implementation of Z-number
Lopez et al. NNV 2.0: the neural network verification tool
Phillips-Wren Intelligent systems to support human decision making
Liu et al. Interpretability of computational models for sentiment analysis
JP6044691B2 (en) Logic inference system, calculation learning device, and logic inference method
Popescu et al. Knowledge representation and reasoning using interconnected uncertain rules for describing workflows in complex systems
Pickering et al. Explainable AI Insights for Symbolic Computation: A case study on selecting the variable ordering for cylindrical algebraic decomposition
Fadja et al. Deep Probabilistic Logic Programming.
Czaja et al. Computing in Cause-Effect Structures
Thavasimani et al. Deep learning techniques: A case study on comparative analysis of various optimizers to detect bots from CRESCI-2017 dataset
Ligęza et al. In Search for Model-Driven eXplainable Artificial Intelligence
Dudek-Dyduch et al. The concept of the almm solver knowledge base retrieval using protégé environment
Kharitonov et al. The PC-Algorithm of the Algebraic Bayesian Network Secondary Structure Training
Kutschenreiter-Praszkiewicz Decision Rule Induction Based on the Graph Theory
Krishnamurthy et al. Rule-based programming paradigm: a formal basis for biological, chemical and physical computation
Yadav et al. Frontiers in Artificial Intelligence and Applications
Pekel Özmen et al. Diagnosis of breast cancer using novel hybrid approaches with genetic algorithm
Mutovkina et al. A neuro-fuzzy pricing model in conditions of market uncertainty
Suzuki et al. A Network Representation of First-Order Logic That Uses Token Evolution for Inference.

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161031

R150 Certificate of patent or registration of utility model

Ref document number: 6044691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees