Friday, January 23, 2009

An Empirically-Derived Conceptual Architecture for Artificially Intelligent Systems of Arbitrary Complexity

Exploration of the common attributes of any software deserving of the moniker "artificially intelligent"

Since I get lost in terms like "conscious", "super-intelligence", etc, and I struggle when people say they're building systems that have these characteristics, I've been thinking a lot about how to describe and model an AI system in simpler terms. Here is an early iteration of my attempts on this front.

1. Input mechanism(s)- This is simply the way(s) to get raw data into the AI system in the first place. The number and sophistication of these depends greatly on the nature and objective of the application, of course. For a chatbot , it could simply be lines of text; for a an advanced droid, the full complement of human senses will probably eventually all have a place, because each has a potential value-add for its human interactant(s), as I've already described in my blog.

2. Awareness - The ability to filter the raw data gathered by the sensory mechanisms to fulfill the design objective(s) of the system. For a chatbot, this might include colloquialisms and specific nouns used by the user that can be used to determine more customized, relevant responses to that user, while perhaps filtering out common articles such as "the", "a", "an", not dissimilar to what search engines do now.

3. Curiosity/Experimentation - the continuous "motivation" to refine or optimize the performance of an AI system "thinking" algorithms, usually through varying the input parameters that feed that algorithm in some way. Obviously, the degree of freedom with which this can be done depends on the maturity of the algorithm and the safe range of variability of the input parameters. The way that these input parameters are varied would probably be controlled another algorithm of some kind. A far more sophisticated type of machine experimentation might be the development of entirely new algorithms, though if this in time becomes possible it would seem that these might not be "closed form" algorithms, but numerical approximations developed as a result of the optimization parameters over time. An analogue of this might be how a computer determines the strength of an electric field in a certain charge geography via finite-element analysis, as opposed to solutions of Maxwell's equations in closed form. If such an approach proves viable, the advantage would be the automated or semi-automated development of algorithms for a much wider variety of optimization problems than are currently available; the disadvantage might be, these algorithms would not necessarily be describable in "closed form", and hence might defy easy human understanding of these algorithms.

4. Thinking - This is the computation of the output that a given AI system will produce, based on both its inputs, and thereby an assessment of how successful its previous output(s) were based on those inputs. This will often be algorithm-based. For an AI traffic light, this might be as simple as a minimization of cars waiting and pollution emitted, both of which are simple metrics that can be quickly gathered by sensors; for a hyper-intelligent droid, this would likely expand into hundreds or thousands of algorithms, that over time may mirror in some ways the thinking sub-systems in the human brain.

4. Output - the behavior(s) that represent the fulfillment of the AI system's design objectives. For a chatbot, this would be a line of "conversation". For an AI traffic light, the timing of its green-yellow-red pattern. For a droid, the particular service it renders, or response it makes to a query.

5. Understanding - This is the ability of the AI system to evaluate its inputs in such a way as to consistently discern the effects of its outputs on meeting the overall objectives that the AI system is designed to fulfill. This may or may not be a separate subsystem; in many or perhaps most cases, the algorithm(s) that comprise it's "thinking" module would ideally perform this function. However, it is useful to consider "Understanding" as at least a separate logical subsystem.

6. Memory - the retention of all the past interactions for the above 5 characteristics already mentioned. It amazes me how often this is forgotten; I have yet to see a chatbot, for example, that remembers any of its past conversations, or at least that gives any indication of such memory.

This model accommodates the evolution of systems that seem intelligent (or at least, less stupid) from developer skill-sets and programming languages that are functionally oriented. This is critical because functional software represents by far the biggest portion of both in the current software environment.

Despite the use of anthropomorphic terms for certain model elements, such as "Thinking", "Curiosity", and "Understanding", hopefully from their corresponding definitions it is clear that these are not necessarily equivalent to their human-brain analogues in terms of objective or complexity. As with each of the model elements that have a sophistication and complexity that spans a very wide range, and is determined primarily by the objectives that the AI system is designed for. In other words, the result of a successfully executed AI system incorporating all of these elements should be not necessarily be considered "conscious".

Considering this model in terms of more abstract terminology such as "machine consciousness" brings up some ideas. Obviously, a conscious machine that does not include all of the items above would not be valuable for most conceivable applications that deliver real value as consumer or business product. On the other hand, a machine that is conscious that includes all of the above, whatever goes beyond that I am still attempting to understand how that would be described and value-delivering in the context of a real AI system. To be clear, I am absolutely not criticizing anyone who is approaching the problem of advanced AI from a "consciousness" point of view; this could very well be a function of my own limited understanding in terms of what consciousness actually means. On this front, I am not the only one who is perhaps confused; what "consciousness" actually represents is still a hot topic of debate.

Therefore, the main way I can imagine a "conscious machine" being valuable is, if what is meant by that is a generalized "kernel", if you will, that allows the relatively rapid customization and linking together of the above AI system components for a wide variety of AI application types., of varying sophistication, from chatbots to AI traffic lights to advanced multimedia engines to advanced droids, which is my quick and dirty (though certainly not comprehensive) continuum of distinct AI types that I can quickly imagine.

Like all of the ideas in this blog, this model is empirically-based, not declarative or theoretical. In other words, it describes in a consistent way all of the various flavors of AI that I have described, and that I have seen elsewhere. Those informed the development of the model elements, not vice versa . However, it would seem that these model elements are a very useful to envision or describe new or existing types of AI systems that have not yet been considered or vetted against these components.