# Has machine learning been combined with logical reasoning (for example, PROLOG)?

There are mainly two different areas of AI at the moment. There is the "learning from experience" based approach of neural networks. And there is the "higher logical reasoning" approach, with languages like LISP and PROLOG.

Has there been much overlap between these? I can't find much!

As a simple example, one could express some games in PROLOG and then use neural networks to try to play the game.

As a more complicated example, one would perhaps have a set of PROLOG rules which could be combined in various ways, and a neural network to evaluate the usefulness of the rules (by simulation). Or even create new PROLOG rules. (Neural networks have been used for language generation of a sort, so why not the generation of PROLOG rules, which could then be evaluated for usefulness by another neural network?)

As another example, a machine with PROLOG rules might be able to use a neural network to be able to encode these rules into some language that could be in turn decoded by another machine. And so express instructions to another machine.

I think, such a combined system that could use PROLOG rules, combine them, generate new ones, and evaluate them, could be highly intelligent. As it would have access to higher-order logic. And have some similarity to "thinking".

• This seems to be a duplicate of this, although you focus on logical reasoning (which is only one method of GOFAI: there's also rule-based and maybe other subdivisions).
– nbro
Dec 15, 2021 at 13:28

In reference to your exact question, there is published research that attempts to bring these two areas together.

For example, HolStep: A Machine Learning Dataset for Higher-order Logic Theorem Proving (2017) by Cezary Kaliszyk, François Chollet, Christian Szegedy. This group also has other published work related to the subject.

Regardless of their results, they list several areas of logical systems that are highly suited to machine learning methods (section 3.1, p. 4):

• Predicting whether a statement is useful in the proof of a given conjecture

• Predicting the dependencies of a proof statement (premise selection)

• Predicting whether a statement is an important one (human named)

• Predicting which conjecture a particular intermediate statement originates from

• Predicting the name given to a statement

• Generating intermediate statements useful in the proof of a given conjecture

• Generating the conjecture the current proof will lead to

It's tough to know whether or not you can combine Higher Order Logic and Machine Learning in an effective way without needing to create a general AI. This is equivalent to wondering if an effective merging of the two areas is an AI-complete / AI-hard problem.

There are active attempts at general AI by researchers such as Ben Goertzel (many others as well but just to give a popular name for googling). Research into general AI would give you an idea of whether or not other pieces of the puzzle are needed in order to create something "highly intelligent".

Another example where machine learning has been combined with symbolic AI is in the context of knowledge graphs (which can be viewed as a graphical/visual representation of a knowledge base), where people have been proposing ways to learn embeddings of the entities and relations of the graphs (known as knowledge graph embeddings), in order to be able to perform tasks like triple classification (i.e. given a triple $$\langle s, r, o\rangle$$ with a subject $$s$$, relation $$r$$ and object $$o$$, is this a real fact?).