AI in the 80s? How a Simple Animal Guessing Game Pioneered Machine Learning
39 comments
·January 8, 2025maginx
CamperBob2
True. For example, the Apple ][+ came with a demo disk full of programs for the then-new Applesoft BASIC language, and this was one of them. The questions were saved by POKEing them into arrays hard-coded into the program, allowing you to SAVE the modified program after running it.
It seemed like a neat trick at the time. There was also a crude CRUD database that worked the same way, retaining up to 50 names and phone numbers.
Actually that disk had a lot of really cool programs, now that I think about it. A biorhythm plotter, Woz's "Little Brick Out" Breakout clone, and a few other demos by luminaries like Bruce Tognazzini and Bob Bishop. And of course, ELIZA, the mother of all LLMs... only it was called FREUD for some reason.
no_news_is
I believe that the intention was to say "No ability to save progress _between sessions_" in the original program, whereas the C++ implementation saves to text files.
Another portion of the article says more explicitly:
Limitations:
Maximum number of nodes: 200.
The structure is stored only in memory (no disk saving).
maginx
I don't think so. Consider "It didn’t just attempt to guess the chosen animal but also learned from its mistakes, adding new questions and answers to its knowledge base. What’s more, it had the ability to save progress and load it during the next run.". Data persistence across trials is already implied by the first sentence, so what would the next "What's more, ..." part refer to - it mentions "saving" and "loading"? Even if we grant "saving" to mean updating the in-memory data structure, what would "loading" refer to? Also note the later "No ability to save progress" which directly contradicts "It had the ability to save progress". These sentences, both clearly referring to the original, are in direct contraction with each other and use the exact same terms. Inspection of the code shows that it clearly only saves the memory and not to disk.
JKCalhoun
This looks like "Pervading Animal" (or just "Animal") from the 1970's [1]. Said to be the first computer worm.
082349872349872
let's not forget the 60s: https://en.wikipedia.org/wiki/Matchbox_Educable_Noughts_and_...
tdeck
I read about this idea and actually built a variant in college for the Washington University ACM (our CS student club). We ran a demonstration at one of the engineering school events and ended up refilling the matchboxes multiple times that day - it was a hit!
If I recall, there is a way to significantly reduce the number of matchboxes needed by taking advantage of mirrored board conditions. Somewhere I have a Perl script that generated HTML for all the matchbox covers and possible next states.
CamperBob2
That's immensely more interesting than a program that plays 20 Questions. I'm amazed I've never heard of it!
mysterydip
chapter 8 of this book goes into detail and how to run your own. fascinating stuff! https://ia904503.us.archive.org/13/items/gardner006/gardner0...
YeGoblynQueenne
And a good writeup by Rodney Brooks:
http://rodneybrooks.com/forai-machine-learning-explained/
(Full disclosure: Donald Michie, inventor of MENACE and RL was my grand-advisor :beams with pride:).
PeterStuer
Bit misleading title as in the 80'd descision trees were concidered part of the discipline of AI, and you today might be surprised that machine learning was considered a diffetent discipline. This was the result of scientific kerfuffls about funding.
In practice many of us in the 'Nouvelle AI" movement that countered the ruling Symbolic AI paradigm (GOFAI was the commonn slur) had at least one foot in the ML, EA. And alife spaces as once you abandon symbolics straight programming becomes awkward fast.
YeGoblynQueenne
True. The program in the article is an expert system, not a decision tree learner. The confusion probably stems from the fact that decision tree learners are (still?) a very popular machine learning algorithm; and because most people who are into AI and ML today don't know anything about its past.
And what happens to those who don't remember the past? Ask George Santayana.
frabcus
I remember the version of this called Pangolins on the ZX Spectrum. Because pangolins were an unusual case (scaly mammals).
Looking it up, apparently it was a type-in in the programmling book that came with the computer.
https://spectrumcomputing.co.uk/entry/15157/ZX-Spectrum/Pang...
That's the book my (blind) dad got me to read to him which taught me to program!
onionisafruit
This program was one of my first interactions with a pc. This was a wonderful shot of nostalgia.
kazinator
Guilty. I worked with a version of this program.
teeray
Is this the same basic idea as those 20 Questions toys? Except, I imagine, that they pre-train the “model” and load it with the 2^20 leaf nodes?
richardw
Nice memories. I had a version on the Amstrad called Animal Vegetable Mineral. It definitely kicked off a few neurons for me.
egypturnash
Opening image: AI-generated picture of a slightly melting computer, with keys that can only type words like "kgonfutz" or "oøoøøo".
I can only assume the rest of the article is also AI-generated, with a similar attention to detail. Tab closed without reading.
rhet0rica
Well, dear Peggy, the program in question is, in fact, known to have existed in 1974 on Multics (https://multicians.org/terminals.html), so you're not half wrong.
The other major issue is that it isn't machine learning—it's a classic example of an expert system, even if there is a bit of a gray area around whether a binary decision tree qualifies as ML.
The worst part, of course, is that it takes less time to slap "GUESS THE ANIMAL" on a stock image of a glass terminal than it does to prompt a diffusion model to generate the same thing with passable fidelity... and it still wouldn't be an accurate depiction of what the program actually did.
YeGoblynQueenne
It's not a grey area! A decision tree does what we call today "inference". A decision tree learner is the one that does the learning and that hasn't changed since the '80s.
Er. To my understanding of course.
null
FarmerPotato
I cried "LLM garbage" too. Catchy title, article full of bizarre errors and repetition.
It would be a prank--LLM writing about AI, badly.
But the Medium account behind it has only articles like this.
blahyawnblah
It can be difficult to find hero images for articles like this, so people generate them. Why is that bad to you?
YeGoblynQueenne
Not everything that is AI is machine learning. The program in the article may be using decision trees but the program is not a learning algorithm but an expert system. The difference is that machine learning is inductive, while expert systems are deductive [1].
Here's another example of doing the same thing in Prolog from Markus Triska's website, that also identifies animals by asking the user. Title "Expert Systems in Prolog":
https://www.metalevel.at/prolog/expertsystems
And here's another one that identifies birds, on the Amzi Prolog website:
https://amzi.com/ExpertSystemsInProlog/02usingprolog.php
_____________
[1] Reasoning. Induction and deduction are forms of reasoning. You know, the thing all the LLM folks don't know how to define? We've been able to do that since before the '80s and decision trees are just one way to do it. Learning a decision tree, e.g. with a decision tree learner like ID3 or C4.5 is an inductive task. Using a (learned or hand-coded) decision tree to make a decision is a deductive one.
But hey, we don't have a definition of reasoning. Oooh nooo.
YeGoblynQueenne
There is a very important reason why "decision tree" is both a deductive inference procedure and the "model" (really, a propositional logic theory) learned by decision tree learners.
The reason is that the way decision trees, well, make decisions, is the way that expert systems of the '80s made decisions. The first expert system was called DENDRAL (capitals mandatory), derived from the Greek word for "tree", "dendron" (also see: "dendrite"; little tree). DENDRAL and similar systems implement deductive inference procedures that traverse a tree (either bottom-up or top-down, with backward or forward chaining). In traditional expert systems the edges in the tree are production rules of the form IF-THEN-ELSE and the nodes are intermediary goals of what is essentially a proof of a propositional logic formula (the decision tree; it's a boolean formula).
Expert systems' Achilles heel was the so-called "knowledge acquisition bottleneck" which refers, in short, to the difficulty of constructing and maintaining a huge rule-base as needed for an expert system that can do something more interesting than play 20 questions like the animal identification system above. Because of this difficulty, expert systems never quite fulfilled their promises and they suffered from the brittleness that is one of the first thing anyone hears about expert systems today.
And what did people come up with in order to overcome the knowledge acquisition bottleneck? Why, machine learning, of course. The early days of machine learning as a field --remember, we're back in the '80s, a bit before the AI winter hits-- were exactly systems that tried to learn the IF-THEN-ELSE rules for expert systems' rule bases.
Decision tree learners, like ID3 and C4.5 by J. Ross Quinlan, and similar algorithms, that were wildly popular even well after the ImageNet moment of deep neural nets come from that era. Instead of learning only the rules though, decision tree learners, learn an entire decision tree; in short, an entire expert system, from top to bottom.
tzs
I've occasionally thought about trying to organize a filesystem that way.
In two places the article states that the original game had the ability to save the updated tree ("it had the ability to save progress and load it during the next run" and "It is an amazing example... of how, even with such a simple language, ... and the ability to save new questions").
The later part says the opposite - that the original implementation had "No ability to save progress" and that this is new in the C++ implementation.
I can't help but wonder (also due to other language features) if the author ran the article through an AI to 'tidy up' before posting... because I've often found ChatGPT etc. to introduce changes in meaning like this, rather than just rewriting. This is not to dismiss either the article or the power of LLM's, just a curious observation :)