Saturday, April 25, 2020

A Layperson's Brief Review of AI In My Lifetime

I was born in the 1958. My high school graduating class was 1976 and I attended college from 1979 though 1985, so this sets the foundation for my educational experience. 

My first job in the computer industry was as a software developer for a company named Computers 101 in Hollywood Florida where we sold micro computers and I wrote software applications for various customers. I eventually worked for IBM in the early 1980s in an Industrial Automation group, Amazon from 1999-2004 and many smaller companies in between. At one point while at IBM I worked on a robotic arm to paint a car fender coming down a conveyor belt. This could be considered the extent of my professional experience with AI. Not really AI at all. 

I have been interested in AI since my college days. My major was in Information Processing with a minor in computer systems. I did a directed independent study program with one of my professors, Marty Solomon in my last year. This was a probability first search algorithm written in LISP. Very simply put, this program would search for a result, once discovered it would go back to each node in the tree and update its probability for success searching for a particular category of goal. So the next search, rather than traversing the tree in a depth first or breath first manner would use this probability first approach. This may be considered the extent of my academic knowledge of AI. Again, not much at all.

As you might expect, I have been interested in AI since these days. My interests stemmed from the desire to model human thought and behavior more than the ability to have a machine learn for the sake of learning. They are actually two very different things. 

Training a machine to be more performant than a human or not attempting to solve a problem as a human does was never an interest. In the current time (around 2020) the concept of machine learning has become more of an attribute weighting approach, while writing code which writes code (what I tend to consider true AI) has not gotten much traction. It is the latter which I was always more interested in. It is the former which tends to be more productive and profitable. 

Now my first exposure to what was considered AI was a program called Eliza. This program was developed by a psychologist so obviously it held some interest to me. It was developed in the 1960s and was a somewhat simplistic program not much different than the old game program where you would ask a program a question and if it didn't know the answer it would ask you to tell it the answer and then it would store the answer and now it knew the answer. The next time it was asked the same question it would simply repeat the answer. 

So for example, you might ask the program what is a kangaroo. It would answer "I don't know" and then it would turn around and ask you the question, "what is a Kangaroo?" and you might answer "a kangaroo is a mammal" and the next time you ask the program what is a kangaroo it would respond with "a kangaroo is a mammal". This is a form of knowledge retention, but hardly artificial intelligence. It actually demonstrates the difference between knowledge and intelligence. 

The Eliza program was not much different. It tried to do some basic reasoning but its famous out when it didn't know something would be to ask "well how does that make you feel?". Pretty much what a psychologist would charge you for, so if nothing else, it was economical. 

Actually, in the 1950s Alan Turing proposed the Turing Test which is basically the belief that we have achieved artificial intelligence when, given the conversation between two entities (one a human, the other a computer), neither of which may be seen by a human evaluator, the evaluator can not tell the difference between the human and the computer. The Loebner Prize actually pays out a monetary award for the winner of an annual contest along these lines (https://en.wikipedia.org/wiki/Loebner_Prize) and reading through some of these transcripts is often entertaining as well as educational. For example, it has taught me this is no longer a valid test for artificial intelligence as I believe the goal of a Turing Test these days is to actually dumb down the computer participant. 

I'll give you a concrete example of what I mean. In one exchange (in a transcript from one Loebner contest) the human tells the computer "Oh, you are located in New York. I am located in Australia". The human then asks the computer "Are you East or West of me" to which the computer responds "both". A dead give away as computers are more logical than humans. Most humans would not answer in this manner, even though it is technically the correct answer.

Back in the 1980s, the programming language Prolog was a popular approach to creating what were known at the time as Expert Systems. This used something called "Horn Clause Logic" and was a grammar for expressing logic in this format. This is not much further advanced than Aristotelian Syllogisms except I believe it supported first order predicate calculus (the universal and existential operators) but was also a somewhat mechanical deduction approach. Possibly how humans think; probably not.  

Which brings me to my summary of what I believe is considered artificial intelligence these days. Keep in mind I have not been involved in AI in any capacity since my college days (about 40 years ago) or have I done any AI type coding nor any deep dives into any literature on the subject for many years, so at best this may be considered a layman's perspective. 

These days, it seems there are three basic approaches to AI though it is probable all use some methods of each. 

I will use (1) attribute weighting, (2) the popular Amazon product 'Alexa" and (3) the IBM product 'Watson' to discuss their basic differences as I have come to believe them to be. There are obviously other variants and different products I am not aware of, and I am sure some cross-pollination has occurred, however, these will suffice to demonstrate the fundamental differences as I see them. Again, keep in mind I have no in-depth knowledge of any of these examples and what I am about to explain is simply what I have come to believe from discussions with friends in the field. I have never interfaced with any of these three nor have I any internal insight into how they go about their business. Again, simply a layperson's perspective. 

Attribute weighting is much like my directed independent study approach mentioned above. A goal is provided and the code goes through the various attributes it uses to arrive at the correct answer and attempts to adjust the weight of the various attributes until it arrives at the correct conclusion using an adjusted set of attribute values (or weights). 

Alexa, is what I like to think of as a crowd sourced version of the game program described above (using the kangaroo example) so you ask Alexa a question, if it does not have the answer in its data store it will go out to a crowd of mechanical turks (see the Amazon Mechanical Turk program https://www.mturk.com/ for more information) and take the responses and figure out the most popular and add that to its data store. The next time the question is asked it will come from this data store.

Watson, tends to take a more syllogistic approach where it tries to use deductive reasoning to derive new facts from its data store of known facts. Much like the canonical example ...

All men are mortal.
Socrates is a man.
Therefore, Socrates is mortal.

Watson will search through its data store of known facts and attempt to derive new facts using the existing set of facts. If these new facts are indeed shown to be true, they get added back into the data store of known facts. 







No comments: