1. 13
  1.  

  2. 3

    Thanks for sharing! I personally find this stuff quite interesting.

    I worked through the first several sections of Udacity’s Knowledge-Based AI course around this time last year. Then a lot of life happened, so I can’t say I finished, but I really enjoyed the overview.

    In particular, I still want to do a deep dive on planning. There was some discussion of Patrick Winston’s work I still want to go back and take a closer look at.

    1. 1

      For planning, the older ones that were really cool were Procedural, Reasoning System and Firby’s Reactive Action Packages. You can also DuckDuckGo conferences on planning to find state of the art research. Many forms just use constraint solvers, genetic algorithms, stochastic optimization, etc.

    2. 2

      People have been talking about inference engines, classical AI, etc recently. I struggled to find a free resource that gives an overview of how such approaches were described and marketed before AI Winter. This is a good one.

      1. 1

        Would an application like TurboTax qualify as an expert system? It’s designed with the input of tax experts. Logic that determines which tax breaks you should take might be an example of forward chaining.

        If not, what are contemporary examples of expert systems? Is it just the knowledge base that separates them from standard applications?


        Wikipedia says expert systems are:

        “An expert system is divided into two subsystems: the inference engine and the knowledge base. The knowledge base represents facts and rules. The inference engine applies the rules to the known facts to deduce new facts.”

        Based on that it seems like the inference engine is like a query optimizer in a database operating on a set of facts in the knowledge base. Still a bit abstract for me.

        1. 2

          “Would an application like TurboTax qualify as an expert system?”

          That’s a great example! Yeah, I think so. I doubt it uses the tech of expert systems from back in the day. It does perform their function as you illustrated. It encodes the tax experts’ knowledge and heuristics.

          “If not, what are contemporary examples of expert systems? Is it just the knowledge base that separates them from standard applications?”

          The key attributes were the knowledge base, asking users questions to get the facts they need, producing an answer, and (very important) being able to explain that answer. The expert systems could tell you the facts and rules that went into making a decision. It could still be an expert system without that. Computer configurators were a good example where user might not need to know why specific hardware was chosen. Many of the techs could do that. Today, I think it would be just any system with a knowledge base, getting info from people, and giving them expert-grade answers.

          The LISP companies are still active in areas like that. You might find nice examples in success stories of Franz or LispWorks.

          1. 2

            You can think of an expert system of the most basic kind a set of rules and a inference engine. Take this set of rules, for example:

            1. If cold ⇒ wear jacket
            2. if warm ⇒ wear t-shirt
            3. it outside there are less than 22°C ⇒ it is cold
            4. the average temperature in Siberia in December is -20°C

            The inference engine will analyze all the rules and pieces of information in its knowledge base and put together all that make sense. In our case

            • 4 + 3 + 1 ⇒ wear jacket
            • 4 + 3 + 2 ⇒ do NOT wear a t-shirt

            Then, when I will ask the expert system “I am going to Siberia in December, what should I wear there?” it will go through the results generated from the inference engine and tell you “wear a jacket”.

            In an pure expert system the knowledge is supposed to be stored only in the knowledge base, for example as a rule or as a fact. Nowhere in the code there should be an hint at the knowledge itself.

            Would an application like TurboTax qualify as an expert system? It’s designed with the input of tax experts. Logic that determines which tax breaks you should take might be an example of forward chaining.

            Some small part of TurboTax may qualify as an expert system, but overall one expects the code of TurboTax to have a lot of domain knowledge, there are going to be classes for Currency, Fee, as well as hard-coded functions that calculate the VAT or find the minimum among many calculated possible outcomes. So, in general, TurboTax would not be qualified as an expert system.

            Well, if the current trendy buzzword were “expert system”, then it would absolutely be advertised as an expert system. But for 2019 TurboTax is still a “machine-learning” app with “artificial intelligence” ;)

            1. 1

              In an pure expert system the knowledge is supposed to be stored only in the knowledge base, for example as a rule or as a fact. Nowhere in the code there should be an hint at the knowledge itself.

              I think this is the key bit of information for me. It seems like many (most?) applications have hard coded conditional logic informed by subject matter experts. However, the logic living inside of an expert system can be changed at runtime or at least without recompilation or a new deployment differentiates it. Through the use of a generic (?) inference engine you can apply the raw knowledge base to the problem.

              I can see both how this sort of system is enticing and how it would be difficult to maintain. It seems like these systems would suffer from incomplete knowledge and odd corner cases.

              I wonder if it is possible to merge expert systems with deep learning. Expert systems seem like they can make discrete decisions quickly based on expensive expert information. Deep learning seems to do better with fuzzy, more approximate knowledge from lots of cheaper information sources.


              Interesting example: You want to create an application to identify birds. You know that there aren’t enough pictures of rare birds to build a deep learning model to correctly identify very similar species. (Darwin’s finches, perhaps?) Instead you train a model to annotate a picture with the bird features and pass those as a query to an expert system. The expert system contains descriptions of the birds. (If beak thick then x. If beak curved then y.)

              Darwin’s Finches

              1. 2

                Interesting example: You want to create an application to identify birds. You know that there aren’t enough pictures of rare birds to build a deep learning model to correctly identify very similar species. (Darwin’s finches, perhaps?) Instead you train a model to annotate a picture with the bird features and pass those as a query to an expert system. The expert system contains descriptions of the birds. (If beak thick then x. If beak curved then y.)

                Your example still fits the classical expert systems. Your deep learning classifier would produce a certain piece of information (the “birdness” feature-set) that would be entered as a fact in the knowledge base. The expert system would then proceed as normal. The system does not care where the knowledge comes from.

                I wonder if it is possible to merge expert systems with deep learning. Expert systems seem like they can make discrete decisions quickly based on expensive expert information. Deep learning seems to do better with fuzzy, more approximate knowledge from lots of cheaper information sources.

                Expert systems have been extended to use fuzzy values (“between 30 and 45”), fuzzy logic (“if young then give proportionally less then medicine”) and uncertainties (“this person is 85, according to this source that we do not trust much, or 78, according to this much trusted record”). There is a plethora of literature on this subject and a couple of big systems in active use. However the (first) AI winter took its toll on the reputation of everything that has to do with expert systems. I expect a resurgence as soon as people will become disillusioned with the current ML-based AI claim (the second AI winter) and want to “look inside the black box”.

                1. 1

                  Your deep learning classifier would produce a certain piece of information (the “birdness” feature-set) that would be entered as a fact in the knowledge base.

                  Instead of using the deep learning to create facts, I was thinking that it could be used for queries. In this example, the user would send in a photo of a bird. The deep learning model would examine the photo to extract bird features from the picture (color, beak shape, size, etc.) and these features would form the basis of the query to the expert system.

                  Your example still fits the classical expert systems.

                  I didn’t mean to imply that this was not an expert system. Rather I was thinking about how the two systems might interact.