Neurosymbolic AI – Combining neural nets and symbolic AI
knowablemagazine.org
knowablemagazine.org
It reminds me of Sherlock Holmes, where he makes these completely unjustified guesses and then calls them "induction". Yes, there was orange peel in the bin outside and Mr Jenndar likes oranges but so does 32% of the population.
Combining neural and symbolic AI is exciting, I just don't get the example.
The important point is that a newly-born duckling can pick up the notion of "similar shapes" vs "different shapes" and show a measurable preference for one or the other, after seeing 1 example (of course, that must somehow be hard-coded in its brain, so it has probably been learned through evolution).
In contrast, a neural net is very hard to train to achieve a similar feat. Whether the feat itself is desirable or not is not relevant. It's just a measure of how different our current training methods are from the ones employed in animal brains - even relatively dumb ones like newly-born ducklings.
If we find that existing techniques can't easily do this, it implies a gap in our capabilities.
This type of learning based on inductive bias without a huge pretrained network could be huge for required training times and data.
(As an amusing aside, a similar imprinting is used in some security mechanisms, where the device allows the first use without authentication, but then trusts the first user to be the privileged user).
The important bit is that this is not "training", but a single stimulus that they need to figure out who mom is. But it turns out that mom can be also abstract things, like "similarity".
Now if you compare this to a neural net, you can't get it to recognise anything after showing just 1 image, let alone the notion of similarity.
While this is an important result it's important to understant why humans don't do great on CLEVR. In my experience maximum human performance is much better, but we get bored with the task really quickly and it's hard to sustain concentration on it.
(Of course this makes the AI useful in some circumstances. But it isn't always the same as reasoning better than humans)
[1] https://arxiv.org/abs/1907.08194
[2] https://bitbucket.org/problog/deepproblog/src
This is probably fine with a low number of symbols and relations, but once you get to the level of a neural theorem prover you need to properly handle symbol binding.
If I'm working with integers and integer-valued variables, how do I represent the variables? How do I represent the operations? This gets more complex once you leave a closed domain, where all the operations and variables are defined up front, and you enter an open domain like theorem proving.
There are definitely good applications for small-scale symbolic work; you could possibly improve efficiency of warehouse robots, for example.
Highly (pro/ef)ficient neural theorem provers would be amazingly useful, though. Not to mention reasoning over medical knowledge given only the source documents (journal articles).
In either of the two domains above you need to extract symbols and relations directly from text. I think symbol-identification and relation-identification, for unstructured documents, can likely be done with some of the state-of-the-art models (particularly thinking of Diffbot[0] here).
So use something like Diffbot to identify symbols+relations, then... how do you represent them? Once you have the symbols you can use traditional reasoning tech on them, but it's going to be extremely slow for any reasonable unit of work. Which is exactly why you'd want to piggyback off of neural work.
---
Some work has been done on neural theorem proving (NTP). See [1][2]. There are justifications for replacing the existing graph search vs. providing better search heuristics, but I'm fuzzy on the details. Either approach should be eligible for reinforcement learning.
[0]: https://www.diffbot.com/products/natural-language/ [1]: https://arxiv.org/abs/1705.11040 [2]: https://arxiv.org/abs/1606.04442 (This is just for premise selection; it doesn't replace the prover machinery) [3]: https://arxiv.org/abs/1701.06972 (More guided search)
I've done some work around the edges of this space (not solving, more making sure predictions were explainable by combining deep nets and Bayesian models).
The deep nets handle the object (and language) recognition, and build the vector representation (so comparisons are possible; ie, your lossy continuous space).
But then you - somehow - build a mapping to symbolic space. Then when confronted with unmapped data the net can measure similarities to previously known examples, and use them to translate via similarity measures.
I'm not entirely sure if this is the approach taken (I haven't read their paper) but my impression is that the "turn it into a symbolic program" means that the symbolic program itself is a traditional solver (whether it be a theorem solver or something like Prolog/Datalog is unclear)
As an example from work I'm doing now, you might have a sample that the neural model recognizes as A, and causally-connected sample that it recognizes as B, and a symbolic model that says that a change from A to B implies C.
While unsupervised learning can pick out a bunch of ways of distinguishing groups of data points, mapping between those and the representations required by a symbolic system still seems like a step no one has figured out.
Hybrid AI has been a keen interest after I retired from almost 5 years of work with deep learning. I just took a job on a knowledge graph team and it feels great to be working on a different approach to knowledge representation and reasoning. My personal opinion is that Hybrid AI is the future and I wouldn’t be surprised to see an exponential growth of practical results, similar to what happened with deep learning around 2013.
But it turns out, that interesting problems have existing refined algorithms that are difficult to beat
I agree that (DL + something) is the next step
Do you lean more towards symbolic search + neural heuristic or neural representation of symbolic domain ?