This is a post taken out of context I made to a discussion group in my AI subject. (Which another Matt and I have decided they falsely advertised, and should have called “Expert Systems”). It’s a bit vague in a couple of places, and I will probably come back to this topic at some stage and write a clearer explanation of what I mean. But this is here for now.
I did some thinking about the thought experiment where a guy sits in a room translating English into Chinese, and how “He will probably learn some characters over time.”, and how this is not the same as a machine.
I think it is the same. If a machine is able to recognise a word/character, that is still the same as the man learning it, rather than just memorising it. (I’d actually counter that memorising meanings and symbols is still a type of learning, and I come from an educational background, so I do know a little about learning).
But I want to push even further. A human isn’t the same as a translating program because it can learn new information that wasn’t there when the program was written. If a program is able to incorporate new facts, develop new pathways, and perhaps even rewrite it’s own program, then this is a much closer analogy to what we define is learning.
There are system out there that allow for dynamic reprogramming (I think some derivatives of Smalltalk are pretty good at this), and many systems that allow for dynamic alteration of code (perhaps by an outside source). Even the OLPC project is based on a system which can be changed while it is running.
Our brains are a machine that can alter it’s physical structure in response to the environment - indeed that is how we learn - and the pathways that are used often eventually end up working better than those that are used infrequently. A program could work the same way. Evolutionary programming is another example - an algorithm can be seeded, and then a variety of mutations are generated, and an “overseer” selects the mutations which result in a better algorithm.
I can’t provide any hard quotes, but I know this has been used to some extent to develop novel programs.
I know this is verging on Strong AI, which Darius says is a no-no, but consider this post as having taken place in a pub or cafe. In fact, I’m off to the pub now.
I’ll be taking an AI course in the spring, and I’m really looking forward to it. The prof was my supervisor during this summer while I did undergraduate research(which by the way was insanely fun.)
Genetic Algorithms work pretty well for extremely large-space problems, like any NP-Complete problem. One thing I found in my research was that a single population of genetic entities can result in stagnation, so, use multiple populations, each seeded differently, and have a small rate of migration.
As well, take a look at data-mining systems. They are in effect an expert system, that add new rules or knowledge. Pretty interesting stuff there.
3 weeks, 2 days after the fact.
Yeah, using large data sets in conjunction with something like Prolog to infer new relationships is über-cool.
3 weeks, 3 days after the fact.