Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.ai.philosophy > #4271
| From | seeWebInstead@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) |
|---|---|
| Newsgroups | comp.ai.philosophy, comp.programming |
| Subject | Re: Towards true A.I. |
| References | (1 earlier) <1d202j8607dz7.dgimh8xoxlwo$.dlg@40tude.net> <REM-2012mar27-003@Yahoo.Com> <1jwvj1x0ayc05.ytcz87k1p1x4.dlg@40tude.net> <REM-2012apr17-001@Yahoo.Com> <1qwcrz02cn5hx.1sj169ai6zp0r$.dlg@40tude.net> |
| Message-ID | <REM-2012may30-001@Yahoo.Com> (permalink) |
| Date | 2012-05-30 00:38 -0700 |
Cross-posted to 2 groups.
> From: "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de> > So far "intelligence" resisted all decomposition attempts. Yes, the job is nowhere near done, but neurobiologists *have* made some progress in that direction, using NMR imaging to watch which parts of the brain are active when performing which kinds of cognitive tasks. I we can identify which cognitive tasks are performed by each part of the brain, then we can lump those same-part skills into a better research program where each group of researchers concentrates on trying to understand just that small group of skills instead of trying to do everything at one time. Thus both the decomposition per se and the detailed studying of each component looks feasible as this kind of research progresses. > > Most likely a set of low-level skills plus a set of skills that > > coordinate the low-level skills. Perhaps a heirarchy that has more > > than of two bottom-up levels. > and a huge gap somewhere between these levels, which we have not > been able to bridge. Not yet, but someday. In 1800 we did not yet understand how earthquakes are caused, but now we basically have it figured out (tektonic plates grinding against each other in various configurations, and magma pressing+melting+flowing upward toward the surface). We might likewise make similar progress in understanding natural intelligence over the next 200 years, and thus be better able to emulate it in A.I.. > The task AI1 is to build an intelligent system. The task AI2 is > to build a system capable to determine if AI1 is intelligent. > My bet is that the task AI2 is likely far more complex than AI1. > We know this from software engineering, proving correctness, > testing, debugging, maintenance tasks are more difficult than > mere solving the end problem. I side with extreme TDD (Test-Driven Development), whereby you write one requirement the software must satisfy, then write the simplest software capable of satisfying, then add another requirement, then modify the software to satisfy both, then add a third requirement, then modify the software to satisfy all three, etc. AI2 (both the specification and the test/validation rig) are easier than AI1 at each step of adding requirements. If the requirements include solving "trap door" problems, then it's *much* easier to write the specification and test rig than to design the algorithm to solve the problem. Although it's possible to manually calculate the result from each input, and simply write a program that compares each input for exact match against a known input and simply writes out the corresponding canned answer, a better approach would be to write an algorithm that really does compute the answers, thus given several test examples is able to satisfy not just those cases but several additional cases of the same type not yet presented to it. Or a specification for a class of input could be given, and a specification for a way to test whether the algorithm under construction produces a correct answer, and then it's the job of the software team to write a minimal program that works with *any* input within that class to produce output that always passes the specified test. That would make it impossible for a simple lookup table to pass validation. Here's an example of a task and validator, not closely related to A.I., but something like what I worked on for a while in 1992: Given a bit-raster, which contains mostly off bits, but some sequences of on bits that form (curved/bet) lines, what are called lineaments, parameterize each such linement, i.e. put all the on-bits within each lineament into a sequence from one end to the other end. The test rig takes the output from the program under development, verifies that each list of points is indeed locally connected, then turns on all the bits in a raster per the lineaments, and does a bitwize compare between the original and reconstructed rasters to see whether the lineaments were indeed the correct ones from the original image. To generate a set of test data, all we need is a random-walk program that avoids turning too tightly and avoids closing back to itself. (A more advanced task would involve multiple lineaments that are allowed to cross each other and also allowed to form closed loops, whereby the graph must be cut anywhere two lieaments cross, and closed loops that don't include any crossing or branching points may be "started" at any arbitrary point around the loop. An even more advanced task would also allow lineaments that were more than one pixel wide, varying in width along the path, which is actually what I worked on in 1992. However I didn't know about TDD back then, so we checked the results manually/visually rather than writing an automatic test rig.) Back to AI: I think we might easily devise test rigs to produce test data and verify correct output from the AI program under development. For example, we can specify that there's a table with an object on it, and the AI program is supposed to use its "eyes" to locate the object and then use its "arm" to reach out and grab the object and lift it up and drop it into a hopper. It should be easy to devise an automated test rig that tosses any of several objects onto the table, bouncing off walls, ending an a sort of random final position, and then to verify by pressure sensor when the object hits the bottom of the hopper. To make the test rig easiest of all, the bottom of the hopper could be attached to a high-pressure air hose and explosive-style pump, so that a single object could be repeatedly tossed onto the table (by the test rig) and then "fetched" (by the program under development) without human intervention. Every so often, the test rig could empty the current obeject from the hopper and replace it with a different object. Maybe a device similar to a music-CD "carousel" would suffice for that task. In summary, there are a whole bunch of AI tasks that are easy to set up the test conditions and test whether the program does the task correctly, but not so easy to devise an algorithm to actually do the task under test. Thus AI2 is much easier than AI1. > If we cannot solve AI1, we will not do AI2. I disagree, see previous paragraphs. > > If that's your claim, then I disagree. As we study various animals, > > we will discover types of intelligence some of them have which we > > do not ourselves have. > Intelligence /= ability. We might be nitpicking as to the difference between "intelligent" (ability to solve new kinds of problems) and "smart" (ability to solve a specific class of problems). In fact most humans aren't intelligent in the general sense. They can't even solve mathematics problems except if they are almost exactly of a type they've been taught how to solve in a class. Very few humans can solve the kinds of mathematics problems typical of the University of Santa Clara high-school math contest, or "Elementary Problems" in the American Mathematical Monthly, or problems typical of the William Lowell Putnam mathematics competition. At best, most humans are "smart" in that they can solve algebraic problems and a few limiited kinds of "word problems" treduce to algebraic problems, and at worst most humans can't even do elementary algebra to save their lives. Most humans at best can solve the kinds of problems (math, or social situations, or economic situations, or political situations, or housekeeping situations) where they've already been taught the basics of that kind of situation and at most have to stretch a teensy bit from what they taught to solve a slightly novel problem, such as how to prepare a recipe if you're missing one of the ingrediants, or how to clean a stain on the rug if simple detergent and scrub-brush isn't sufficient, or how to vote if the polling place moved, etc. Even learning how to use the next version of MicroSoft Office can be a daunting task, even a stumper, for many workers in offices. For the most part, in both humans and other animals, the limit of intelligence is being "smart" at what one has already learned by explicit classroom instruction and/or on-the-job training, plus being able to self-extend that smartness just a teensy bit further. If we can build smart computer systems that are able to self-extend to solve slightly novel problems, I think that will be entirely sufficient to achieve Artificial run-of-the-mill Intelligence. If we could make an A.I. device that demonstrated greater intelligence than 90% of humans, that would be "good enough" for this century. No need to set our sights too high, to Artificial Genius. > >> Presumably there may exist things which cannot be understood > >> directly or indirectly in any way in any time. Is this what you > >> meant? > > No, just that present we aren't thinking outside the > > human-intelligence "box" so we are blind (at present) to other > > forms of intelligence. > Other forms in the sense that they don't imply human > intelligence? In that case they are irrelevant to the task of > building human AI. It wasn't until we studied other planets, that we finally had the ability to truly appreciate how Earth works. Likewise, until we study other animals, we won't truly appreciate how Human intelligence works. In A.I. as well as in mathematics and Earth science, doing the general is more productive than doing the specific. Understanding the specific comes from understanding some of the general first. We need to study the specific in more cases than our target, then generalize, then finally finish our specific target. I believe we'll build (non-human) animal models first, then have enough examples to understand the general pattern across all animals including human, before we can finally actually get to work on Artifical true human run-of-the-mill Intelligence. > > A few years ago I posted an alternate idea, that birds can be > > trained to collect litter and separate the various materials, which > > might be faster to develop than an A.I. system. > Huh. The uncomfortable fact is, that not only birds, just ants > are far more intelligent than anything we were able to build so > far. This might be a perception problem or a real one. I hope > that studies simulating nervous system of insects and whole > insects (brain + sensors + actuators) will shed some light. I agree, we're nowhere close to emulating even a single ant, although specific aspects of an ant such as locomotion are close to practical use, such as a 6-legged rover for Luna or Mars. > >> An intelligent system is able to maintain a model of the world in > >> which things like relevance (as well as many other things) get > >> defined. Unintelligent systems are bound to a method to measure > >> relevance. An intelligent system does not need that, it already > >> knows what is relevant, it is itself a measurement instrument. > > That remark smells like a circular definition. > Yes, as well as the Turing test itself, it is not a definition. The Turing test itself is not a precise specification that could be implemented in an automated test rig, but it *could* be implemented by "crowdsourcing", whereby lots of random people on the Internet are asked to judge whether they are talking with a human or a computer program, and various humans and computer programs are thus rated per the score they get. There are some Web sites such as "Bing" which make pretense that they answer user's questions, but my experience is that every last one of them is complete crap, worse than a regular search engine such as Google because of the pretense that builds up false hope only to be dashed by the fact that they aren't even as good as Google. I have long proposed a simple FAQ-lookup-engine, which would be much better than anything Bing has offered. It would match user-submitted questions against the questions listed in FAQs, and upon confirmation (by the user) of a correct match, will then tell the answer to the user. I have developed some technology, such as SegMat, which ought to be useful for such a question-matcher, and have several times asked if anyone would like me to go ahead and write the application, but nobody has offered to pay me for my time, and nobody has even offered emotional support, such as being willing to try whatever I build and give me feedback as to how well it performs, so I've had better things to do with my time. But if and when anyone contracts for me to write the FAQ-answering application, that can be the first benchmark towards an AI question-answering service. My first benchmark would define the Q&A interface, and then anyone claiming to have an AI question-answering system could ask me to link theirs with mine, whereby if the AI system thinks it understands the question well enough to construct an appropriate answer based on information it finds via traditional or Watson-style searching on the Internet, then the AI system submits the Q&A pair to my system as if it were from an existing FAQ list, and my system then treats it as such, and if the AI-constructed Q is one of the closest five or ten matches to the user's question, then the user has a chance to select it, and if selected it's then evaluated by the user for correctness, and thus the AI program is rated as to whether it's just bluffing or really is answering questions appropriately. Any number of competing AI question-answering programs can thus be included within this basic framework. If the AI programs are "honest", they will decline to answer (in the Watson/Jeopardy model, they will decline to "buzz in") if they don't have confidence in any answer. With tens of AI programs all playing the game, only a few honest programs will "buzz in" for any partiular question. Something like TinyURL.Com/TruFut can be used to evaluate the appropriateness and correctness of each individual AI answer, and also to "predict" whether a particular AI system is bluffing or actually answering. A combination of the TruFut value of a given AI program and the nearness-of-match of Q from a regular FAQ, can be used to rate answers as to likelihood of correctly answering the user's question. > It is how intelligence is perceived when not properly defined. Agreed. We are nowhere near having a mathematically precise definition of intelligence that can be implemented as a test rig. Crowdsourced Turing-style testing is still our best way to generally judge intelligence, although specific "smart" tasks can be test-rigged already. The sorta-vague definition of intelligence (more like genius actually), which I gave above (ability to solve new kinds of problems somewhat unlike any seen before), is sorta well defined, but nowhere near mathematically precise, because we at present have no measure of how different various problems are, hence no way to set a threshold whereby solving problems more than a threshold away from any previous problems would count as intelligence while solving problems within threshold of old problems would only count as "run of the mill" self-extending a smart system. We have an intuitive "feeling" how to measure how novel a problem is, hence whether intelligence is needed to solve it, but at best we can engage in political debate whether a particular problem is sufficiently novel to be used as an intelligence test. In addition to the question-answering service, another obvious way to test intelligence (or at least evolved smarts) is a test of survival. Set up a physical or mathematical arena where a "robot" is supposed to try to survive against either randomly-generated environmental challenges or a "live" enemy (another AI robot). Unlike the "Robot Wars" TV series, where the "robots" are merely tele-operated devices, controlled in real-time by humans, but in a similar physical arena, the robots would be totally self-AI-controlled, with no input from humans allowed once the bout has started. If a given robot pushes its "enemy" off the edge of the platform first, it wins. If after ten minutes neither robot has been pushed off-platform, then BOTH robots lose the bout. > Note also that if incomputable, then there cannot be a definition > without some incomputable reference system. Computability of > intelligence and its constructive definition are close issues. Agree, it's currently an open question whether we can define a class of problems (mathematical, or physical) to solve, and define a distance function (a "metric") between any two problems, such that we can then define a measure (not an absolute yes/no decision) of intelligence as to how wide a metric/distance gap the AI program can bridge without further human input. Well, yeah, it's trivial to define a class and metric that is totolly worthless for our actual purpose, but what I mean is defining a class of problems where human intelligence can bridge a distance somewhat proportional to I.Q. of that person with a specified time (3 hours, i.e. one session of a Putnam math contest, seems reasoanble). So we need to define a class of mathematical problems that covers virtually every Elementary Problem or Putnam problem to date, or a class of physical problems that covers all the ordinary life tasks that we witness various animals performing (finding food or mate or place to sleep, etc.), and captures the difficulty of the problems as well as the distance between any two of the problems, and correlates the distance with how high the IQ is needed to cross that distance in a single 3-hour contemplative+scientificExperiment step without any outside coaching, such that the distance is highly coreated with the IQ needed to cross that distance (i.e. most of the variance of the IQ needed is captured by the distance between known and new problem). Has anybody ever even begun to tackle that problem-of-definition?? Virtually every Elementary Problem and Putnam problem is quite strongly a Word Problem, seldom anything that can be directly translated to an algebraic equation as with "word problems" typical of high-school algebra classes. Whereas those simple algebraic "word problems" might be automatically translated to algebraic equations without too much trouble, the kinds of strong Word Problems I'm talking about would require somewhat true AI just to understand the question, nevermind solving it. Most of these problems are of a general nature, so evidence of understanding the problem could consist of nothing more than generating a few examples of what the question is talking about. Perhaps we could use such evidence of understanding the question as a good test of true AI? If so, again we must define the class of problems, and a way to test whether the AI program has generated sufficient examples to show understanding of the problem (nevermind solving the problem), then define a metric (distance) between different problems, etc. as in previous paragraph. For the physical (robot-wars combat arena) test of AI, the question is very simple, can you push the other robot off the platform or not, so we'll stick to the actual task of doing that, and not bother testing whether the robot understands the task or not. Slight variation on the robot-wars test of survival: Multi-robot contest, where the task is to join forces with other robots to gang up against one of the other robots and push it off the edge of the platform. Thus social smartness is as important as brute combat ability. The bout ends as soon as one robots goes off-edge, with all the remaining robots scoring a "win". Of course any one robot that's very much stronger than any other robot can ignore the cooperation theme and just immediately push one of the other robots off the edge to share in a win. With randomized combinations of robots in each bout, the super-strong robot will accumulate more wins than any other robot. But as more and more of the weaker robots are eliminated from the contest, only the strongest robots will remain, and none of them will be able to push any of the others off-platform so easily, and even attempting such a push may make the pushing robot vulnerable to a rear/side attack by a third robot, so then ganging up will be the only way to win on a regular basis. Google-groups-search-key: imtrgfdi
Back to comp.ai.philosophy | Previous | Next — Next in thread | Find similar
Re: Towards true A.I. seeWebInstead@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) - 2012-05-30 00:38 -0700
Re: Towards true A.I. Walter Banks <walter@bytecraft.com> - 2012-05-30 09:43 -0400
Re: Towards true A.I. seeWebInstead@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) - 2012-06-18 11:08 -0700
Re: Towards true A.I. casey <jgkjcasey@yahoo.com.au> - 2012-06-18 13:19 -0700
Re: Towards true A.I. Walter Banks <walter@bytecraft.com> - 2012-06-18 20:51 -0400
Re: Towards true A.I. seeWebInstead@rem.intarweb.org (Robert Maas, http://tinyurl.com/uh3t) - 2012-06-21 01:48 -0700
Re: Towards true A.I. Walter Banks <walter@bytecraft.com> - 2012-06-21 11:40 -0400
Re: Towards true A.I. curt@kcwc.com (Curt Welch) - 2012-05-30 14:59 +0000
Re: Towards true A.I. "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-05-30 19:25 +0200
csiph-web