Basically, it is a very quick ramp up on all the major concepts in computer science. Runs you through recursion and iteration, Procedural programming, y combinators, then through OO concepts, lazy evaluation, memoization etc, then uses those basic concepts to illustrate universal computing by implementing an interpreter, then running the interpreter on itself, then writing a von-neuman register machine emulator, then writing the above interpreter in the emulator complete with garbage collection and such.
It's a classic because it very clearly and briefly gives a very good introduction to every single important aspect of computer science, keeping it simple, yet has enough depth that every one of the concepts it describes can be implemented by the reader after completing the book.
Yes. As a former smoker, I will hang out with the smokers anyday,
I have seen company's fold in the parking lot over cigarettes and seen people get rich on IPO's during the same. The big decisions are often made in the smoking room rather than the board room. It's a weird little club.
Well yes, *IF* you plan on doing 4 times as much with the quad core than with a single core, then you should have 4 times the ram. However, most people are looking to do what they are already doing, just faster, in which case adding more proc power to their existing ram footprint will speed them up.
The resources required to predict a hurricane may be impractical, or even impossible due to nondeterminism. However, the resources to model a believable hurricane are trivial in comparison and we already have those. The difference being, that if I want to predict a highly parallel system, due to the butterfly effect, I must know the exact state of every particle to an infintessimal scale. If that scale is too small, then Heisenburg sticks his ugly nose in and the task becomes impossible. If all I want to do is model a believable system, I simply need to make a statistical determination of the expected range of error, and then choose a state within that probable range. The model then only requires resources capable of calculating the statistical ranges to the resolution we are interested in.
An example in the intelligence area: Do we really need to model the state of every molecule in every neuron in a brain? What if we just model the ionic charges in the neurons... we will get approximately the same outcome. What if we don't model the ionic states of the neurons at all, but simply model the incoming and outgoing synapses as Sigma functions against a threshold (the current state of the art does just this). At some point of resolution, we lose what we would consider intelligence, but at the low circuit level implementation of the brain, we can vastly reduce out processing requirements without changing the behaviour of the circuit to any menaingful degree, just as we do electronic circuit design using Voltage, Current and Resistance and not flow of individual electrons; at it's core, we don't care what individual electrons do, we only care about their operations en masse on average... same with neuron behavior.
As for a measure of real, cognitive AI; Human level AI that can contemplate it's own existance in the universe? Personally, I think we will recognize it when it manifests itself. But honestly, I don't think the distinction is that important. We start hitting ethical issues long before that. I still stand by my interpretation of the Chinese room however, that the system it describes is fundamentally different than real AI and does NOT constitute intelligence.
;; Since you used a convienience function, I will define the same function (define xrange
(lambda (min max f)
(cond ((min >= max) '())
(else (f min)
(xrange (+ 1 min) max f)))));; Now I will use it just like you did: (xrange 1 10 display)
GA/GP searches a problem space for answers using a distributed hill climbing algorithm. It isn't a magic bullet for all problems, but performs well when the fitness of the solution set is a contiguous function and the slopes of the fitness hyperplane are not too extreme. If the fitness landscape is not contiguous, then GA/GP is unlikely to outperform random search by very much.
For instance: If your problem is "Devise a key that will open this lock", then GA/GP is not a very good way to go about searching because the feedback for whether the solution is good or not is purely binary... it either works, or it doesn't. In a failed attempt there is no "hints" as to whether this failure was closer of further away from any solution. If, however, we can gague how good the solution is in comparison with other attempts, we can hill-climb the fitness landscape and home in on good solutions.
Traditionally, however, GA/GP has been limited by the fact that it tends to home in on 1 good solution, to the exclusion of all others, even if it's not the "best" solution. The algorithms tend to refine a good solution forever, never escaping their local maxima in the fitness landscape. The only way to get them to find another solution is to restart the evolution from the beginning. HFC allows the run to continuously probe the entire solution set and converge on all maxima.
Your question about optimal subsolutions is debated actually. Koza's original premise was that GP works by combining good subtrees in a solution. More recent research has brought this into question, and often random mutation will outperform crossover, or at least come close. There is work being done to see if we can increase the role of solution "building blocks" but there is no concensus. Your NP problem does not need to be highly decomposeable for most GA/GP systems to work, but it does need to have a smooth fitness landscape.
2 salient points you bring up that I need to comment on.
1) In the thought experiment, all possible answers to all possible conversations have been pre-programmed by the English rule-book the non-Chinese speaker inside is consulting and following.
I would argue this is not only impractical, but impossible in the same vein as the halting problem. Introducing a paradoxical supposition into the thought experiment is bound to give paradoxical results, like multiplying by infinity or dividing by zero. It might make the thought experiment interesting, but conclusions gleaned are invalid without non-paradoxical suppositions. The point is, that without an omnicient-yet-stupid system, this experiment is impossible.
2) it's a big assumption to say that the cosmos is just one big universal computer.
It's not that the universe is a universal computer, but rather, all processes that operate in the universe operate on a finite set of laws (or 1 law maybe if we ever get a GUT) that can be calculated by a universal computer (except perhapse randomness, if it exists, which keeps us from making a mind-predictor, thank goodness:) See below). In fact, all of math, for which the laws of the universe is but a small subset can be calculated on a universal computer. Hence, the entire universe can be calculated on a universal computer (albeit a very large one, likely larger than the universe itself unless we can really make good use of quantum entanglement.) However, it is my educated guess that a human mind probably does not require the resources of the entire universe in order to function, hence a much smaller computer can emulate it. Chaos can be achieved either through pseudorandom means (who's randomness can be scaled to any desired level, depending on how much processing and memory you want to throw at the problem) or, we can cheat and use a source from the real universe, since we happen to have one at our disposal, because we aren't trying to predict human minds with our model... we are just trying to make it work at all.
The crux of the argument, IMO is that symbolic data manipulation is not intelligence. I couldn't agree more. In the same vein, pulsing ionic discharges that cause the release of neurochemicals is not intelligence. Your pulsing neurons are NOT what causes you to comprehend this sentence... those neurons are simply the man in the box. Similarly, the CPU of a computer or the symbolic evaluation function in an interpreter are just the man in the box. These are just small components of the system, and as I said above, a major flaw in the chinese room thought experiment is that simple symbolic manipulation of chinese is sufficient to satisfy the outcome parameters, but it isn't without introducing a paradoxically omnicient set of rules. No set of symbolic tranformation rules is sufficient to have a chinese room that can emulate intelligence with learning and creativity.
However, a set of logical building blocks, such as neurons or simple primitive functions joined, that can self organize at run time to "learn" behaviors and come up with solutions to problems, would meet such a criteria without any, or with very little symbolic scripting. The system, rather than given a rulebook for chinese text transforms, must learn to pattern match text and map text to concepts, learning new concepts when faced with unmatchable text, and so on, and then, after it's proper education, could operate inside that box and speak chinese. I propose that such a system is not only finite (unlike the infite set of rules of the experiment), but feasible. In fact, I submit that this is equivelent to feeding the box snippets of chinese, along with conceptual drawings until the man in the box can carry on a conversation, not because he is manipulating symbols, but rather because he has successfully learned to speak chinese.
Artificial Neural Networks operate on this very principle (as do other methods, but ANN are the most widely known amongst people not in the field).
FYI, if you want to stay on top of the state of the art, MIT Press has a "Evolutionary Computation" Journal bi-monthly which has the current state of the art papers, and is only around $70 a year subscription.
First, as to the argument that it always takes a more advanced mind to understand a lesser one, that is the very (non-intuitive) thing that the law of universal computation disproves. Given a Turing complete set of primitives, anything operation possible can be performed. A trivial example is simply that since all basic x86 primitives can be decomposed into sequences of the "nand" operation, a simple nand gate can be used to build a C++ compiler, and hence the browser you are reading can be not just decomposed into a series of assembly instructions, but indeed into nand itself. The book, Structure and Interpretation of Computer Programs has the introductory student write a full Scheme language interpreter in the Scheme language, then an assembly language register machine in the scheme language, and finally a scheme Interpreter in assembly language, then has the language run itself several layers of abstraction deep just to drill this point in... any universal computer can emulate any other universal computer. Since every law of physics is inately calculatable (even if nondeterministic) then the entire universe can be simulated by a universal computer.
The Chinese room thought experiment only addresses weak AI, hence the distinction. First of all, it assumes that symbolic manipulation without understanding of context is even possible. It has now been quite some time since Turing formulated his famous test and no one has come anywhere close to passing it through context free symbolic manipulation. Personally, I think that such a system is either impossible, or more difficult to construct than a truely intelligent system. If such a thing is possible, then I would not consider it intelligent (and many refute the validitiy of the Turing test on this point). He goes on to refute the "brain simulator" saying that the simulator itself does not "understand" the information flowing through it's synapses. I would also say that the brain doesn't understand it's synapses either. A big assumption in this thought experiment is that the thought experimenter himself is somehow more capable than the experiments he his thinking about, where in reality there is scant evidence that the biological system meets the stringent requirements he is demanding of the artificial system.
The symbolic transform mimicing intelligence view of AI is a very naive view, and one rejected by strong AI researchers. Strong AI does not "act intelligent" via a laundry list of scripted rules. Strong AI has to be taught about the problem through experience and devise a solution to it. In the Chinese room experiment, the system cannot learn based on its experience, therefore it is weak AI, not truely intelligent, and the system, if it one the Turing test tomorrow, would be deemed clever, but inferior to most good AI systems already out there. We have reliable systems today that learn basic language and can function on par with lower mammals. We have not yet created intelligence at the levels that we as humans are at, as they do not ponder their own existence, and we are a long way from doing so. We are not, however, very far from the levels of intelligence we observe in cats and dogs.
To revisit the Chinese room. If the Chinese speaker outside the room described, in chinese, a sequence of rules for performing a novel action (a new dance step for the sake of argument) and the room, after replying with questions to clarify finer points about the process, responded with it's ideas on new flourishes to the steps, then THAT would be indicative of intelligence in the system. I do not think the Chinese room addresses this possibility at all as it assumes a much simpler interaction, perhaps preconcieved bias about the possibility of such interaction interfering with the introduction of such a possibility into the experiment. I do not believe this level of interaction is possible with the describes symbolic manipulation, but I do, strongly believe that such an interaction is possible in true AI, and in fact, recent experiments get these
logical does not imply deterministic. A chaotic process can still be modeled, and a universal computer can model it. We may have trouble getting true randomness, if that is what is required, but we can pseudify randomness to any degree we like until it is sufficient or the problem at hand. Take the weather, for instance. We cannot predict the weather reliably because it is too nondeterministic. We can, however make a very believable simulation of weather using our current models. Since, in the AI realm, we are not attempting to predict what a single intelligent agent is going to do, but rather, we simply wish to model ANY believable intelligent agent, I am sure that once we have a decent model of what constitutes an intelligent agent we can use that model to produce one. Right now we don't have any model that comes close.
Anything that cannot be modeled on a universal computer is provably magic and outside the realm of science (see Turing). Personally, I don't believe such things exist, but like I said, that's a religious debate, not a rational one:)
The complexity of the research is due to the fact that it is so very, very refined. There isn't much out there that's revolutionary, so instead of "Look at this great concept... a wheel" we are getting "The benefits of XYZ fractal tread on a vulcanized rubber tire under wide tempurature variations spanning water phase changes." The second paper is much more educated on the subject, but much drier and not at all revolutionary;)
In Genetic programming, we had heirarchial GP a couple years ago, breaking through the long-running GA problem we have suffered from for 20 years which renders GA useless for anything but trivial search spaces. This was a brain-dead, forehead slapping stupid solution that had just been missed by everyone. MIT press broke the paper, the widespread implications are not yet being felt. This is just a simple example, but hopefully this unlocks some bigger solutions.
Type-calculus is still a very hard unsolved problem, even though the concepts of data types have been around longer than computers. A refined calculus here will open up alot of doors. There are alot of people working on it.
But yeah, we haven't had a Turing come through in quite a while, and it's about time. I just don't think you can "buy" genius. Throwing a bunch of money at the problem may just be throwing it to the wind, or it may indeed foster an environment that this generation's Church comes from... there is no way to know.
Oh, and I can't comment on MS's research... they'd be mad:) But there is some Blue Sky research going on.
If it cannot be modeled logically, than it is indeed magic. Even if it is non-deterministic, it can be modeled.
Moving it out of the realm of logic and into the spiritual really makes it incapable of being discussed rationally, as it simply becomes a religious disagreement.
I'll point one out for fun;) I was at the Guggenheim a couple months ago and they had a peice that was some broken-down cardboard boxes pasted to gether with elmers glue. It was entitled "birds". I LOL'd.
We knew how to get to the moon roughly. We know how to buld Quantum computers roughly. We haven't the foggiest idea of how to make a strong AI. No amount of money in the world will make that strok of genius happen... it just will.
To answer your questions though, the reasearch is being done in the universities mostly, supplimented by the big corps. Microsoft has some excellent reasearch going on in this field that I have seen first hand, as does IBM and Google to name a few. The missing peice is still that Einstein/Turing like figure that will come up with the revolutionary spark of an idea that will get the ball rolling. Without that seed, we are just refining the old ideas.
We can't model the chemical soup that makes us think, true, but we may not have to. We aren't interested in chemical soups, we are interested in the outcome of that soup, which is the intelligence. What we need is an arbitrarily aproximate model of the logical process of what that soup is calculating.
For instance, a mechanical engineer, when building a skyscraper, does not bother modeling the molecular bonds between steel atoms that must hold the superstructure together... he models abstract lines of force on a macro scale that are a hugely inaccurate approximation of reality. Strong AI, IMHO, has a similar abstraction that can be modeled mathematically given a universal computer. The problem being, we have absolutely no clue what it is about the equation that we are missing. It may be horribly complex, or extremely simple and right under our nose; we just don't know (how long did it take civilization to figure out fractions? DUH! We were bulding empires and still couldn't express simple ratios that we teach our young children)
Agreed though that GA is a LONG way from strong AI. On the other hand, a lucky GA might actually be the one to discover the trick that makes strong AI possible.
Neither the futurist, nor the shrink, nor anyone for that matter can tell us when it will happen, because none of us understand what peice of the puzzle we are missing, where this peice goes, what it might look like, or even what field it might come from. We might have a human level AI next week or in 500 years... we are waiting for a genius to give us that calculus. On the other hand, the theorem of universal computing means that once that peice is understood, it will be capable of being modeled in any logical environment, meaning that indeed, all you need is the right program and "poof", as there is a proof to this effect.
Efficiency of the final model, however, might be unreasonable on the Von Neuman platform, but I'm pretty confident, given that we have a working example (you and I), we can emulate whatever style of processing is required once we understand what's missing from the model.
Take computer languages, for example. In general society, it's all rubbish. Amongst Computer Scientists and Logicians, they can be beautiful. Even among such a crowd, you have certain mainstream languages, and others that most computer scientists call "impractical" or "too dificult to understand", but some elite claim are the most beautiful and simple from their perspective.
Not being a true movie intellectual, I can see that I might prefer to watch "hollywood drivel" because I don't appreciate or even understand the finer points of the art that the snobs do. They probably don't appreciate my efficient GA algorithm for the same reasons, while praising MS Word. Different audiences require different art.
Yes, but in the background, CS will continue to move foward, in fits and false starts as it always has of course, but forward, by the real researchers working in the background and totally ignored by the mainstream. The maths will be better and better understood over time and significant proof are completed. Once in a while one of the enterprisey languages will pick up one of their ideas, call it the holy grail, and introduce it to the ass up programmers forcefully, which they will find uncomfortable for a while, but will eventually grok and get used to. In the mean time, the Mutex based C# VM that needs to copy significant portions of itself into core specific RAM to be able to handle such concurrency, causing artificial inflation of requirements for harware will fund the continuing exponentially growing hardware pissing contest with capital it wouldn't otherwise have if the pointy-haired bosses ever realized they could do what they're attempting on a palm pilot if they understood computing logic in the slightest. This pissing contest gives resources to the the CS people by commoditizing hardware that would otherwise cost them millions. Occassional, a couple CS guys looking to get laid will their "new technology algorithm", lambda-foldr or somesuch other 1st year CS concept that's actually designed to run in parallel, and will get rich.
Look at the bright-side. The more wasteful of proc cycles "industry" is, the more horsepower we get subsidized. The fact that industry is being dumb has nothing to due with acedemic stagnation... acedemia stagnates because it occassionally crashes headlong into hard problems and needs a bonifide genius to break through with a new, revolutionary idea, along with a gob of low hanging fruit to be grabbed along with it. Industry isn't going to come up with this breakthrough, IMO, it's too abstract and seemingly impossible. The breakthrough will come from a single zit-faced kid on his laptop with too much time on his hands to think with, we will all call him a moron for his stupid ideas, and then we will shut up to a deafening silence when we realize what he did; just like always. The market will catch on to the idea 20 years later, in an impure form that management can stomach.
Photonic, quantum supposition, etc... There are plenty of other computing devices on the horizon that can keep up the pace. In addition, massive parallelization is a technique that can be taken on the software end.
The only peice of software I've ever needed to get manually to plug into portage was the Sun JDK, as I've never used Maya. This is a very uncommon scenario.
MS may have a website similar to gentoo-portage, but once the software is found, for every case in the MS instance, I must then go manually either download the software from the vendor or have a CD snail-mailed to me (how quaint) and this is the epitomy of the MS distribution chain. On Gentoo, for nearly every case, I simply:
MS would *LOVE* to have a distribution system like this. Unfortunately, as another poster said, they can't, as they would be stepping on their customer's toes who's bread and butter is software distribution.
Linux (and BSD) are winning hands down in the install and distribution arena.
This just reiterates what a classic SICP is, as the book (and MIT's 6.001 for which it is a text) has the beginning programmer first learn the higher order concepts, then use them to implement a register machine emulator, then write an interpreter for scheme in the simplified ASM including 2 choices of garbage collectors, and finally has the student write a simple compiler for scheme to his register machine implementation. From this one course they not only gain the higher level understanding of CS concepts, but understand the underlying performance issues AND have first hand experience with (and hopefuly now inuitive understanding of) universal computation and Lambda calculus.
I can't see this kind of introduction being done with any other language. Scheme is perfect because of it's regular syntax and extremely simple core implementation. Maybe you could do it with purer Lambda calculus, but I think you'd spend too much time on scaffolding up anything useful, whereas scheme starts you off with just enough to be productive.
It's available in whole online.
Basically, it is a very quick ramp up on all the major concepts in computer science. Runs you through recursion and iteration, Procedural programming, y combinators, then through OO concepts, lazy evaluation, memoization etc, then uses those basic concepts to illustrate universal computing by implementing an interpreter, then running the interpreter on itself, then writing a von-neuman register machine emulator, then writing the above interpreter in the emulator complete with garbage collection and such.
It's a classic because it very clearly and briefly gives a very good introduction to every single important aspect of computer science, keeping it simple, yet has enough depth that every one of the concepts it describes can be implemented by the reader after completing the book.
I've only heard of banana boat in reference to a brand of sunscreen. I had no idea that sunscreen was offensive to people.
Yes. As a former smoker, I will hang out with the smokers anyday,
I have seen company's fold in the parking lot over cigarettes and seen people get rich on IPO's during the same. The big decisions are often made in the smoking room rather than the board room. It's a weird little club.
That cooperated with Sony to install spyware on my machine from audio CD's? Cry me a river.
I wouldn't. You will likely run into issues getting it to work, as I doubt Intel has prepared their chip for such a scenario.
Well yes, *IF* you plan on doing 4 times as much with the quad core than with a single core, then you should have 4 times the ram. However, most people are looking to do what they are already doing, just faster, in which case adding more proc power to their existing ram footprint will speed them up.
The resources required to predict a hurricane may be impractical, or even impossible due to nondeterminism. However, the resources to model a believable hurricane are trivial in comparison and we already have those. The difference being, that if I want to predict a highly parallel system, due to the butterfly effect, I must know the exact state of every particle to an infintessimal scale. If that scale is too small, then Heisenburg sticks his ugly nose in and the task becomes impossible. If all I want to do is model a believable system, I simply need to make a statistical determination of the expected range of error, and then choose a state within that probable range. The model then only requires resources capable of calculating the statistical ranges to the resolution we are interested in.
An example in the intelligence area: Do we really need to model the state of every molecule in every neuron in a brain? What if we just model the ionic charges in the neurons... we will get approximately the same outcome. What if we don't model the ionic states of the neurons at all, but simply model the incoming and outgoing synapses as Sigma functions against a threshold (the current state of the art does just this). At some point of resolution, we lose what we would consider intelligence, but at the low circuit level implementation of the brain, we can vastly reduce out processing requirements without changing the behaviour of the circuit to any menaingful degree, just as we do electronic circuit design using Voltage, Current and Resistance and not flow of individual electrons; at it's core, we don't care what individual electrons do, we only care about their operations en masse on average... same with neuron behavior.
As for a measure of real, cognitive AI; Human level AI that can contemplate it's own existance in the universe? Personally, I think we will recognize it when it manifests itself. But honestly, I don't think the distinction is that important. We start hitting ethical issues long before that. I still stand by my interpretation of the Chinese room however, that the system it describes is fundamentally different than real AI and does NOT constitute intelligence.
;; Since you used a convienience function, I will define the same function ;; Now I will use it just like you did:
(define xrange
(lambda (min max f)
(cond ((min >= max) '())
(else (f min)
(xrange (+ 1 min) max f)))))
(xrange 1 10 display)
I've run Windows and SQL Server on a 64 proc intel box. It was a monster machine used internally for testing.
It kicked the monkey's buttocks too, btw.
To clarify, by heirarchial I was refering to HFC.
GA/GP searches a problem space for answers using a distributed hill climbing algorithm. It isn't a magic bullet for all problems, but performs well when the fitness of the solution set is a contiguous function and the slopes of the fitness hyperplane are not too extreme. If the fitness landscape is not contiguous, then GA/GP is unlikely to outperform random search by very much.
For instance: If your problem is "Devise a key that will open this lock", then GA/GP is not a very good way to go about searching because the feedback for whether the solution is good or not is purely binary... it either works, or it doesn't. In a failed attempt there is no "hints" as to whether this failure was closer of further away from any solution. If, however, we can gague how good the solution is in comparison with other attempts, we can hill-climb the fitness landscape and home in on good solutions.
Traditionally, however, GA/GP has been limited by the fact that it tends to home in on 1 good solution, to the exclusion of all others, even if it's not the "best" solution. The algorithms tend to refine a good solution forever, never escaping their local maxima in the fitness landscape. The only way to get them to find another solution is to restart the evolution from the beginning. HFC allows the run to continuously probe the entire solution set and converge on all maxima.
Your question about optimal subsolutions is debated actually. Koza's original premise was that GP works by combining good subtrees in a solution. More recent research has brought this into question, and often random mutation will outperform crossover, or at least come close. There is work being done to see if we can increase the role of solution "building blocks" but there is no concensus. Your NP problem does not need to be highly decomposeable for most GA/GP systems to work, but it does need to have a smooth fitness landscape.
2 salient points you bring up that I need to comment on.
:) See below). In fact, all of math, for which the laws of the universe is but a small subset can be calculated on a universal computer. Hence, the entire universe can be calculated on a universal computer (albeit a very large one, likely larger than the universe itself unless we can really make good use of quantum entanglement.) However, it is my educated guess that a human mind probably does not require the resources of the entire universe in order to function, hence a much smaller computer can emulate it. Chaos can be achieved either through pseudorandom means (who's randomness can be scaled to any desired level, depending on how much processing and memory you want to throw at the problem) or, we can cheat and use a source from the real universe, since we happen to have one at our disposal, because we aren't trying to predict human minds with our model... we are just trying to make it work at all.
1) In the thought experiment, all possible answers to all possible conversations have been pre-programmed by the English rule-book the non-Chinese speaker inside is consulting and following.
I would argue this is not only impractical, but impossible in the same vein as the halting problem. Introducing a paradoxical supposition into the thought experiment is bound to give paradoxical results, like multiplying by infinity or dividing by zero. It might make the thought experiment interesting, but conclusions gleaned are invalid without non-paradoxical suppositions. The point is, that without an omnicient-yet-stupid system, this experiment is impossible.
2) it's a big assumption to say that the cosmos is just one big universal computer.
It's not that the universe is a universal computer, but rather, all processes that operate in the universe operate on a finite set of laws (or 1 law maybe if we ever get a GUT) that can be calculated by a universal computer (except perhapse randomness, if it exists, which keeps us from making a mind-predictor, thank goodness
The crux of the argument, IMO is that symbolic data manipulation is not intelligence. I couldn't agree more. In the same vein, pulsing ionic discharges that cause the release of neurochemicals is not intelligence. Your pulsing neurons are NOT what causes you to comprehend this sentence... those neurons are simply the man in the box. Similarly, the CPU of a computer or the symbolic evaluation function in an interpreter are just the man in the box. These are just small components of the system, and as I said above, a major flaw in the chinese room thought experiment is that simple symbolic manipulation of chinese is sufficient to satisfy the outcome parameters, but it isn't without introducing a paradoxically omnicient set of rules. No set of symbolic tranformation rules is sufficient to have a chinese room that can emulate intelligence with learning and creativity.
However, a set of logical building blocks, such as neurons or simple primitive functions joined, that can self organize at run time to "learn" behaviors and come up with solutions to problems, would meet such a criteria without any, or with very little symbolic scripting. The system, rather than given a rulebook for chinese text transforms, must learn to pattern match text and map text to concepts, learning new concepts when faced with unmatchable text, and so on, and then, after it's proper education, could operate inside that box and speak chinese. I propose that such a system is not only finite (unlike the infite set of rules of the experiment), but feasible. In fact, I submit that this is equivelent to feeding the box snippets of chinese, along with conceptual drawings until the man in the box can carry on a conversation, not because he is manipulating symbols, but rather because he has successfully learned to speak chinese.
Artificial Neural Networks operate on this very principle (as do other methods, but ANN are the most widely known amongst people not in the field).
FYI, if you want to stay on top of the state of the art, MIT Press has a "Evolutionary Computation" Journal bi-monthly which has the current state of the art papers, and is only around $70 a year subscription.
First, as to the argument that it always takes a more advanced mind to understand a lesser one, that is the very (non-intuitive) thing that the law of universal computation disproves. Given a Turing complete set of primitives, anything operation possible can be performed. A trivial example is simply that since all basic x86 primitives can be decomposed into sequences of the "nand" operation, a simple nand gate can be used to build a C++ compiler, and hence the browser you are reading can be not just decomposed into a series of assembly instructions, but indeed into nand itself. The book, Structure and Interpretation of Computer Programs has the introductory student write a full Scheme language interpreter in the Scheme language, then an assembly language register machine in the scheme language, and finally a scheme Interpreter in assembly language, then has the language run itself several layers of abstraction deep just to drill this point in... any universal computer can emulate any other universal computer. Since every law of physics is inately calculatable (even if nondeterministic) then the entire universe can be simulated by a universal computer.
The Chinese room thought experiment only addresses weak AI, hence the distinction. First of all, it assumes that symbolic manipulation without understanding of context is even possible. It has now been quite some time since Turing formulated his famous test and no one has come anywhere close to passing it through context free symbolic manipulation. Personally, I think that such a system is either impossible, or more difficult to construct than a truely intelligent system. If such a thing is possible, then I would not consider it intelligent (and many refute the validitiy of the Turing test on this point). He goes on to refute the "brain simulator" saying that the simulator itself does not "understand" the information flowing through it's synapses. I would also say that the brain doesn't understand it's synapses either. A big assumption in this thought experiment is that the thought experimenter himself is somehow more capable than the experiments he his thinking about, where in reality there is scant evidence that the biological system meets the stringent requirements he is demanding of the artificial system.
The symbolic transform mimicing intelligence view of AI is a very naive view, and one rejected by strong AI researchers. Strong AI does not "act intelligent" via a laundry list of scripted rules. Strong AI has to be taught about the problem through experience and devise a solution to it. In the Chinese room experiment, the system cannot learn based on its experience, therefore it is weak AI, not truely intelligent, and the system, if it one the Turing test tomorrow, would be deemed clever, but inferior to most good AI systems already out there. We have reliable systems today that learn basic language and can function on par with lower mammals. We have not yet created intelligence at the levels that we as humans are at, as they do not ponder their own existence, and we are a long way from doing so. We are not, however, very far from the levels of intelligence we observe in cats and dogs.
To revisit the Chinese room. If the Chinese speaker outside the room described, in chinese, a sequence of rules for performing a novel action (a new dance step for the sake of argument) and the room, after replying with questions to clarify finer points about the process, responded with it's ideas on new flourishes to the steps, then THAT would be indicative of intelligence in the system. I do not think the Chinese room addresses this possibility at all as it assumes a much simpler interaction, perhaps preconcieved bias about the possibility of such interaction interfering with the introduction of such a possibility into the experiment. I do not believe this level of interaction is possible with the describes symbolic manipulation, but I do, strongly believe that such an interaction is possible in true AI, and in fact, recent experiments get these
logical does not imply deterministic. A chaotic process can still be modeled, and a universal computer can model it. We may have trouble getting true randomness, if that is what is required, but we can pseudify randomness to any degree we like until it is sufficient or the problem at hand. Take the weather, for instance. We cannot predict the weather reliably because it is too nondeterministic. We can, however make a very believable simulation of weather using our current models. Since, in the AI realm, we are not attempting to predict what a single intelligent agent is going to do, but rather, we simply wish to model ANY believable intelligent agent, I am sure that once we have a decent model of what constitutes an intelligent agent we can use that model to produce one. Right now we don't have any model that comes close.
:)
Anything that cannot be modeled on a universal computer is provably magic and outside the realm of science (see Turing). Personally, I don't believe such things exist, but like I said, that's a religious debate, not a rational one
The complexity of the research is due to the fact that it is so very, very refined. There isn't much out there that's revolutionary, so instead of "Look at this great concept... a wheel" we are getting "The benefits of XYZ fractal tread on a vulcanized rubber tire under wide tempurature variations spanning water phase changes." The second paper is much more educated on the subject, but much drier and not at all revolutionary ;)
:) But there is some Blue Sky research going on.
In Genetic programming, we had heirarchial GP a couple years ago, breaking through the long-running GA problem we have suffered from for 20 years which renders GA useless for anything but trivial search spaces. This was a brain-dead, forehead slapping stupid solution that had just been missed by everyone. MIT press broke the paper, the widespread implications are not yet being felt. This is just a simple example, but hopefully this unlocks some bigger solutions.
Type-calculus is still a very hard unsolved problem, even though the concepts of data types have been around longer than computers. A refined calculus here will open up alot of doors. There are alot of people working on it.
But yeah, we haven't had a Turing come through in quite a while, and it's about time. I just don't think you can "buy" genius. Throwing a bunch of money at the problem may just be throwing it to the wind, or it may indeed foster an environment that this generation's Church comes from... there is no way to know.
Oh, and I can't comment on MS's research... they'd be mad
If it cannot be modeled logically, than it is indeed magic. Even if it is non-deterministic, it can be modeled.
Moving it out of the realm of logic and into the spiritual really makes it incapable of being discussed rationally, as it simply becomes a religious disagreement.
I'll point one out for fun ;) I was at the Guggenheim a couple months ago and they had a peice that was some broken-down cardboard boxes pasted to gether with elmers glue. It was entitled "birds". I LOL'd.
We knew how to get to the moon roughly. We know how to buld Quantum computers roughly. We haven't the foggiest idea of how to make a strong AI. No amount of money in the world will make that strok of genius happen... it just will.
To answer your questions though, the reasearch is being done in the universities mostly, supplimented by the big corps. Microsoft has some excellent reasearch going on in this field that I have seen first hand, as does IBM and Google to name a few. The missing peice is still that Einstein/Turing like figure that will come up with the revolutionary spark of an idea that will get the ball rolling. Without that seed, we are just refining the old ideas.
We can't model the chemical soup that makes us think, true, but we may not have to. We aren't interested in chemical soups, we are interested in the outcome of that soup, which is the intelligence. What we need is an arbitrarily aproximate model of the logical process of what that soup is calculating.
For instance, a mechanical engineer, when building a skyscraper, does not bother modeling the molecular bonds between steel atoms that must hold the superstructure together... he models abstract lines of force on a macro scale that are a hugely inaccurate approximation of reality. Strong AI, IMHO, has a similar abstraction that can be modeled mathematically given a universal computer. The problem being, we have absolutely no clue what it is about the equation that we are missing. It may be horribly complex, or extremely simple and right under our nose; we just don't know (how long did it take civilization to figure out fractions? DUH! We were bulding empires and still couldn't express simple ratios that we teach our young children)
Agreed though that GA is a LONG way from strong AI. On the other hand, a lucky GA might actually be the one to discover the trick that makes strong AI possible.
Neither the futurist, nor the shrink, nor anyone for that matter can tell us when it will happen, because none of us understand what peice of the puzzle we are missing, where this peice goes, what it might look like, or even what field it might come from. We might have a human level AI next week or in 500 years... we are waiting for a genius to give us that calculus. On the other hand, the theorem of universal computing means that once that peice is understood, it will be capable of being modeled in any logical environment, meaning that indeed, all you need is the right program and "poof", as there is a proof to this effect.
Efficiency of the final model, however, might be unreasonable on the Von Neuman platform, but I'm pretty confident, given that we have a working example (you and I), we can emulate whatever style of processing is required once we understand what's missing from the model.
Or perhaps your definition needs refinement ;)
Take computer languages, for example. In general society, it's all rubbish. Amongst Computer Scientists and Logicians, they can be beautiful. Even among such a crowd, you have certain mainstream languages, and others that most computer scientists call "impractical" or "too dificult to understand", but some elite claim are the most beautiful and simple from their perspective.
Not being a true movie intellectual, I can see that I might prefer to watch "hollywood drivel" because I don't appreciate or even understand the finer points of the art that the snobs do. They probably don't appreciate my efficient GA algorithm for the same reasons, while praising MS Word. Different audiences require different art.
Yes, but in the background, CS will continue to move foward, in fits and false starts as it always has of course, but forward, by the real researchers working in the background and totally ignored by the mainstream. The maths will be better and better understood over time and significant proof are completed. Once in a while one of the enterprisey languages will pick up one of their ideas, call it the holy grail, and introduce it to the ass up programmers forcefully, which they will find uncomfortable for a while, but will eventually grok and get used to. In the mean time, the Mutex based C# VM that needs to copy significant portions of itself into core specific RAM to be able to handle such concurrency, causing artificial inflation of requirements for harware will fund the continuing exponentially growing hardware pissing contest with capital it wouldn't otherwise have if the pointy-haired bosses ever realized they could do what they're attempting on a palm pilot if they understood computing logic in the slightest. This pissing contest gives resources to the the CS people by commoditizing hardware that would otherwise cost them millions. Occassional, a couple CS guys looking to get laid will their "new technology algorithm", lambda-foldr or somesuch other 1st year CS concept that's actually designed to run in parallel, and will get rich.
Look at the bright-side. The more wasteful of proc cycles "industry" is, the more horsepower we get subsidized. The fact that industry is being dumb has nothing to due with acedemic stagnation... acedemia stagnates because it occassionally crashes headlong into hard problems and needs a bonifide genius to break through with a new, revolutionary idea, along with a gob of low hanging fruit to be grabbed along with it. Industry isn't going to come up with this breakthrough, IMO, it's too abstract and seemingly impossible. The breakthrough will come from a single zit-faced kid on his laptop with too much time on his hands to think with, we will all call him a moron for his stupid ideas, and then we will shut up to a deafening silence when we realize what he did; just like always. The market will catch on to the idea 20 years later, in an impure form that management can stomach.
Photonic, quantum supposition, etc... There are plenty of other computing devices on the horizon that can keep up the pace. In addition, massive parallelization is a technique that can be taken on the software end.
The only peice of software I've ever needed to get manually to plug into portage was the Sun JDK, as I've never used Maya. This is a very uncommon scenario.
MS may have a website similar to gentoo-portage, but once the software is found, for every case in the MS instance, I must then go manually either download the software from the vendor or have a CD snail-mailed to me (how quaint) and this is the epitomy of the MS distribution chain. On Gentoo, for nearly every case, I simply:
emerge --searchdesc what-am-i-trying-to-do
emerge program-i-found
run-program
MS would *LOVE* to have a distribution system like this. Unfortunately, as another poster said, they can't, as they would be stepping on their customer's toes who's bread and butter is software distribution.
Linux (and BSD) are winning hands down in the install and distribution arena.
This just reiterates what a classic SICP is, as the book (and MIT's 6.001 for which it is a text) has the beginning programmer first learn the higher order concepts, then use them to implement a register machine emulator, then write an interpreter for scheme in the simplified ASM including 2 choices of garbage collectors, and finally has the student write a simple compiler for scheme to his register machine implementation. From this one course they not only gain the higher level understanding of CS concepts, but understand the underlying performance issues AND have first hand experience with (and hopefuly now inuitive understanding of) universal computation and Lambda calculus.
I can't see this kind of introduction being done with any other language. Scheme is perfect because of it's regular syntax and extremely simple core implementation. Maybe you could do it with purer Lambda calculus, but I think you'd spend too much time on scaffolding up anything useful, whereas scheme starts you off with just enough to be productive.