Once the horse starts tapping its foot to accurately detect cancer better than humans, then, parlor trick or not, you've got a fine horse there.
I don't mean to diminish the power and value provided by deep learning, but it doesn't change the fact that pattern recognition is not equivalent to intelligence.
I don't disagree that pattern recognition and intelligence are (probably?) different things.
But if they're functionality equivalent, I'm cool with that.
Heck, it might turn out that humans are already just pattern recognition machines and nothing but. I'm cool with that too.
>> Generally speaking, logical modelling is too limited for good concept representations In principle, First Order Logic and equivalent languages can represent anything that can be represented in natural language. The problem is that in practice it is very hard to transfer into a logic language all the knowledge you might need for a useful system. In fact, this was one motivation for at least one branch of machine le…
One problem with first order logic is that it is too powerful. There is a direct trade-off between the expressiveness of your representation and your ability to reason about it.
I'm going to assume you mean the computational complexity of working with such an expressive representation. If so, then that is correct. historically, working such an expressive representation blows out computationally. But, we've resolved that issue with our graph engine. that is, its been shown that algorithms take time proportional to N-cubed where N is the number of graphs in the knowledge base. with our graph engine, we encode graph structures and ontology in a Cognitive Signature, and we can find closely matching signatures in log(N) time. the log-time algorithms scale to the size of the web.
Maybe good AI requires a combination of symbolic approaches for the knowledge representation, deep parsing for NLP and semantics/discourse models, and machine learning for pattern recognition tasks of any kind. The currently trendy "AI" looks more like massive data mining with powerful ML to me, that's very good for certain tasks but brings us nowhere near real AI. The knowledge representation problem has not yet bee…
I think this is the perspective the "Society of the Mind" book by Marvin Minsky took at their time. When a software like Mathematica makes symbolic operations it is doing AI, the same for things like the Z3 solver.
Very astute. Some folks here at Kyndi used to work with Minsky. One of our favorite quotes is: "what magical trick makes us intelligence? The trick is that there is no trick. The power of intelligence stems form our vast diversity, not from any single, perfect principle." What we see now in AI/ML is not diversity, but rather attempts at the single perfect principle. We don't believe that is the path forward. Rather, you need to figure out how to tightly couple different approaches (e.g., symbolic and statistical learning approaches) to form a more powerful, flexible, and explainable model of AI.
Maybe good AI requires a combination of symbolic approaches for the knowledge representation, deep parsing for NLP and semantics/discourse models, and machine learning for pattern recognition tasks of any kind. The currently trendy "AI" looks more like massive data mining with powerful ML to me, that's very good for certain tasks but brings us nowhere near real AI. The knowledge representation problem has not yet bee…
> Maybe good AI requires a combination of symbolic approaches for the knowledge representation, deep parsing for NLP and semantics/discourse models, and machine learning for pattern recognition tasks of any kind. I totally agree.
that's what we (Kyndi) think. Good AI requires ML, NLP, and KRR. ML to acquire the knowledge on which to reason, KRR to represent and reason, and NLP as the glue that holds everything together.
This is a valid question, I don't know why you (originally) got downvoted. The answer I think, for the applications in industry at least, is that PRISM and other probabilistic programming langauges are not as developed as Prolog, a language that has been around for a good four decades now. Swi-Prolog in particular, is a free and open-source Prolog interpreter with an IDE, a graphical package and a veritable somrgasbo…
I wouldn't say that backtracking and depth first search (not resolution) are undesirable. Far as I'm concerned they're pragmatic choices that minimise the amount of resources necessary to perform resolution theorem-proving.
I would hate for my logic engine to be required to backtrack every time a candidate interpretation was evaluated. AFAIK, prolog allows no alternative. Nor can it support the many powerful probabilistic extensions for rule-based reasoning that arose 25(?) years ago, nor the many improvements and variations on impasse resolution. IMHO, the choice of prolog unnecessarily straitjackets a modern production system, making…
These days Prolog is general purpose, powerful, pattern driven programming language that (once properly learned!) can put together database, persistence, networking, NLP crunching in one modular program unit. Associating it with expert-system or rule-based programming is a typical AI-winter misconception. Well, a similar one was also floating about deep-learning during the same frosty season :-)
But its not clear to me that encoding productions in source code adds any value over encoding them in the various other forms used by expert systems of old. Prolog also compels binary constraint satisfaction, recursive descent parsing, backtracking, and depth-first resolution — all undesirable constraints that are easily avoided using other fact representations or resolution engines. Until the startup in question can…
I wouldn't say that backtracking and depth first search (not resolution) are undesirable. Far as I'm concerned they're pragmatic choices that minimise the amount of resources necessary to perform resolution theorem-proving.
One can encapsulate backtracking simply as an iterator over a stream of answers to a query. The SWI_prolog ecosystem provides a nice "logic engine" abstraction for that, see http://www.swi-prolog.org/pldoc/man?section=engines . That gives something similar to Python's yield operation. Backtracking inside an engine allows one to implement some neat algorithms in space proportional to your data, without invoking garbage collection.
I wouldn't say that backtracking and depth first search (not resolution) are undesirable. Far as I'm concerned they're pragmatic choices that minimise the amount of resources necessary to perform resolution theorem-proving.
I would hate for my logic engine to be required to backtrack every time a candidate interpretation was evaluated. AFAIK, prolog allows no alternative. Nor can it support the many powerful probabilistic extensions for rule-based reasoning that arose 25(?) years ago, nor the many improvements and variations on impasse resolution. IMHO, the choice of prolog unnecessarily straitjackets a modern production system, making…
Also, the (!/0) operator allows you to prune choice-points and control backtracking so that it is not unconditional. Many Prolog implementations support (->/2) operator, as well as ((*->)/2) -- the soft cut, for more fine-grained control. SWI has a nice library for even further control over backtracking as well: http://www.swi-prolog.org/pldoc/man?section=solutionsequence....
Also good Prolog programmers usually are not overly concerned with backtracking, as they usually have strong knowledge of modes and determinism. See: http://www.swi-prolog.org/pldoc/man?section=modes. This is mostly second-nature to a skilled Prolog developer.