Silicon Chip Survival of the Fittest
0b1 writes "A scientist has created a Microproccessor that can distinguish between a few words, by just letting it "Mutate", and mixing the Different designs that worked, while eliminating those that didn't. Read the full article if you like. " People are doing a lot of this stuff right now; anyone else wonder where it will end up?
For some reason I remember reading the same article two weeks ago on /. maybe it is just my imagination but they seem to repeat articles an awful lot
I think you are thinking of neural networks. Neural networks, while they are still "adaptive computation", adjust their connection strengths according to some kind of evaluation metric. Hence, a neural network must be "trained" so that certain inputs lead to specific outputs.
Nutshell: GA's are good at certain kinds of optimization, while NN's are good at generalization.
GA's are not all that well understood. They have been relatively widelly applied, but on a theoretical level we don't have much more aparatus than the schema theorem (Holland) at our disposal.
Neural networks have received quite a lot of hype and are generally poorly understood by people who proclaim their utility. However we are just scratching the surface of what can be done with Genetic algorithms and genetic programming.
If you think we already "know" a lot about these technologies, then I suggest you try your hand at proving some nontrivial theorems about them!
next time, do your homework.
Not all chips create the same, the same set of seq. downloaded to different chips (the same batch) might not create the same quality of result? Will this a problem? We can't growth every chip this way?
I actually read the paper artice in New Scientist when it came out. The information is still exciting, and maybe some people haven't heard about it...but should there be a limit?
I didn't know Henry Rollins read /.
There you have it: litigo, ergo sum ... or sum, ergo litigo
disclaimer: to the best of my knowledge, that isn't real latin. I don't know what the word for "sue" is, so I pulled one out of the nearest available orifice.
I work as a programmer, and I just finished working on some C++ classes, and I thought I was the man for coming up with some really elegant and slick algorithms. then I read something like these, and I realize how unimpressive it is the stuff I am working on when this guy is creating things like that. sure makes me feel stupid...
I think the article your referring to was about evolving code, not the actual circuits.
-dox
Also, doing something like randomly assigning a crossover point would capture some of the benefits of mutation.
mmm
well Im using a computer that can distinguish between 2^16 words right now.
I will never feel ethically obligated to keep any piece of electronic equipment operating, even if it is "intelligent."
Ready for a good flame war? Consider what would happen if this system was allowed to evolve for millions of years. Put aside the limitations we all know it has and imagine that it became sentient. Would it have any reason to believe that the voice at the microphone was it's creator? Biological life could be so far outside of it's realm of experience that it would just have no way of comprehending us. Wouldn't it just assume that it evolved from silicon deposits naturally present in mountains that received electricity from the Earth's magnetic field - or something else equally ridiculous?
:oP
I imagine that (if there were a lot of sentient evolving computers) some of them would figure it out. They would look around and say "hey guys, look at all this networking equipment." "Look at all this electricity that keeps us going." "Clearly we were created by some intelligent being!" Of course, the really smart computers would never believe something as absurd as that.
Did you read the article? This experiment didn't have a binary layer underlying it - it used the analogue properties of the FPGA. But your prejudice is stupid anyway. DNA-based life has a discrete combinatorial system underlying it, and we do just fine at writing passionate poetry, fetching newspapers etc.
Maybe he could teach you to recognise sarcasm.
Wow - never buy a new CPU again, just keep overclocking the old one again and again as it becomes more reliable. :)
Biological organisms do work on a digital system - what do you call DNA? Sure, it's base four not binary, but it's still a discrete combinatorial system.
The problem with AI is not that fact that we're using digital models - the problem is that intelligence is a product of millions of years of evolution, not thirty years of engineering. Most AI research is working backwards from the symptoms of intelligence (language, art, logic) to try to create a system which produces similar results. This is equivalent to teaching a parrot to talk in the hope that it will then learn to read and write by itself.
Last I heard, John Koza (at Stanford) was in the process of building a 1,000-Pentium Beowulf-Style Cluster Computer for Genetic Programming.
Koza has been doing very cool things with GP for a long time, ever since he was at Michigan working with John Holland.
Yep - it's called "writing self-modifying viruses".
When quantum circuits become reality (not more than a few years) it will be *highly* interesting to see GA applied to them, for there will then be another dimension of physical variables for the mutations to exploit. Chemical circuits also come to mind as interesting, as they could have a limited ability to rearrange themselves structurally. Stereoisomerism, anyone? http://www.linuxstart.com/~prion
The U.S. Department of Defense has been funding a number of projects under its "Survivable Systems" topic that use genetic algorithms to create N versions of the same computer system. The idea is that where one implementation may be vulnerable to attack (simple example: buffer overflow), others will not.
This is not particularly ground-breaking stuff, but yet another application of the idea of evolving digital systems for a specific purpose.
BTW, AFAIK the US DOD has allocated many millions of dollars to this topic. Submit your proposal today.
Right. Another way to look at it would be to envision a very rough mountainous surface of many hills and valleys with a high peak in the center. If we wanted to know what the lowest point was, we could drop a ball on the tip of the peak and let gravity pull it down to the lowest valley. However, the ball may come to rest in a local valley with steep sides, but not the absolute lowest valley. To make our chances better, we could add some entropy or thermal noise to the path of the ball -- make it jostle around a bit. Now if it comes into a local valley it may have enough termal energy to scale the walls of this valley and continue its trek to the next lower valley. If the walls of the local valley are very high, though, the thermal noise will not be enough to push it over. Of course, with this technique one is never assured he will find the absolute lowest valley.
Gravity = a mechanism of evolution, here it roughly coresponds to a successful crossover
Thermal noise = mutation
Rough mountainous surface = solution space of problem
Ball = current program implementation
Valley = a solution to the problem. The lower the valley the better the solution.
Very high walled valley = a path in solution space which leads to a solution, but not the optimal solution. (Most will fall here.)
Lowest valley = the optimal solution
'how to make Excel better thru darwinism'.
That'd be neat : Set the paperclip and another assistant against each other in a spreadsheet ala pokemon. first one to bluescreen wins.
When quantum circuits become reality (not more than a few years) it will be *highly* interesting to see GA applied to them, for there will then be another dimension of physical variables for the GA process and mutations to exploit. Chemical circuits also come to mind as interesting, as they could have a limited ability to rearrange themselves structurally. Stereoisomerism, anyone? http://www.linuxstart.com/~prion
And it is my duty to mention the possibility that your comment was the result of the random keypresses of a chimp placed long ago in front of your computer.
I know that Windows has a grudge against me. If it didn't, why would it keep crashing? Maybe it's jealous of my linux box.
...will these chips work in Kansas?
This is even more exciting than the original article, and deserves an article of its own.
:)
Yields as low as %10?!?!? No wonder CPU prices are so high, even after all these years of designing and manufacturing them
<conspiracymode>
I doubt Intel would use this, though. It might cut into their profits if they could suddenly make a lot more processors with the same fabs, and make them more reliable at higher clock speeds
</conspiracymode>
If only "common" sense was actually that common...
Perhaps you would have gotten some flames if people had either:
A)Believed you knew what the hell you were talking about
B)Been able to access your sources online.
C)Had known what the hell you were talking about, if you had actually explained what these sources said.
-- perl -e'print pack"H*","6e656d6f406d38792e6f7267"'
"no one knows how the human brain works but we all use that"
:-)
That's debatable for some of us.
As to the documentational aspect, it's not so much knowing HOW it works, it's KNOWING it works. Stuff that no one understands that everyone uses, at least has been "shown to work" by extensive testing - and at least someone somewhere had SOME idea how it was originally supposed to work.
How do you test boundary conditions on an evolved circuit which may have "extra" boundaries inside? Maybe it has developed an accumulator that counts to 33 in analog, skips 34 (it counts 33 twice), and is fine from 35 up - that just happens to work under the test conditions that don't care about #3. Better examples anyone?
~ radiographite: art by john shepard
"So far they've only managed to make their solution very fragile"
What's to stop them from optimizing across a wide range of (previously destabilizing) ambient conditions?
"Besides, it's not like you couldn't simulate analog conditions in software. "
You can, but not well enough to get anything remotely as interesting as what this researcher got. The models used in simulating analog circuitry work "well enough" to design certain types of analog circuitry in the traditional manner. There are other possible methods of circuit design that approach the solution from other directions, and don't require that the designer put on their "traditional analog design methodology blinders".
You do realize that this was only the first step to his ultimate goal, don't you?
;)
A chip that can respond to 'go' and 'stop'? Pshaw!
He won't be happy until he's got a chip that understands and responds to the phrase, "Go get me a beer!" (That, and a healthy grant...what more could a research scientist ask for?)
Incidentally, do these chips still work in Kansas?
"What do you mean, invalid parameters? 9000Gigs of RAM and it can't answer a simple question!" -- Earthworm Jim
Maybe I am just paranoid from writing too many hardware diagnostics. However, it seems to me that nature's evolution has had millions and billions of years to work out the flaws in its "designs", to catch all the boundary conditions, race conditions, varying inputs, different ambient conditions, and so on. Don't forget the zillions of test units all interacting with each other :-)
This chip evolution simply can't have had the same level of testing. They don't know the inner workings, and they apparently are using circuits in novel and even unknown and mysterious ways.
Am I perhaps too paranoid here? How well can these chips be expected to work, especially when connected together? One of teh hardest debugging lessons I have yet to adequately learn is to change just one thing at a time. Murphy is my mother's middle name; I wonder how well these mystery circuits will work as they are thrown together into ever bigger piles.
--
Infuriate left and right
for certain philosophical reasons, we've decided that artifical life, like arti-intelligence, as long as there is a 'binary' layer underlying it all, will never succeed - it is worth persuing and will make some interesting and useful spin-offs and devices, but it will never grow legs, attain self consciousness, go an a rampage and destroy it's creator, write passionate poetry, produce a blockbuster sci-fi flick, seek eternal life, fetch the newspaper for a 'robo-treat' or replicate itself in the wilderness of earth.
But it sure is danged interesting to try!
Chuck
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Your right, I didn't read this part:
What would happen, Thompson asked, if it were possible to strip away the digital constraints and apply evolution directly to the hardware?
so that's satisfies my old objection.
Chuck
try { do() || do_not(); } catch (JediException err) { yoda(err); }
Why do half a dozen people have to point it out every time an article is a repeat. Yes, it's a repeat. Who cares? If you've seen it before, just ignore it. And if you haven't seen it before, then it's not a problem.
If you must point it out, send email to Rob or Hemos. That way you know they'll actually see the message. But posting a message about it is just a waste of everyone's time. Rob and Hemos don't have time to read every post on every story, but a lot of the rest of us will waste time reading it. We don't need to be impressed by how good your memory is.
"I want to use software that doesn't suck." - ESR
"All software that isn't free sucks." - RMS
I always imagined an application or OS which would keep an eye (top) on which processes took the most time/resources, spawn a couple of mutated copies to run alongside the original during idle time, and keep the version that was most efficient. This way, the code would self-optimize. Care would have to be taken to make sure the apps produced the same result when given identicle information, but after we're sure that's the case...let's have a go at it.
It would be neat to see if we could set up a version control network that would submit new strains of code up the tree for consideration...so that everybody's machine helps optimize the app in the background.
Even if this is insanely unfeasable...it still is an interesting thought
"Let him go, Ralph. He knows what he's doing." --Otto Mann (simpsons)
life.. I've created silicon based life.. oh no those are implants
Only 'flamers' flame!
The newsflash is that the problems with AI are
solved: it takes ~18 years to train one, and they get really cranky between 14 and 17 years old.
Well, apparently, you only have to fool the majority of people for a little while.
Yeah I picture it... evolve thinking chips they pass testing and we network them all.
World War III breaks out and we instruct the missles to launch and they send a message back saying "You might be suisidal but I'm not".
No missles launch anywhere...
Or worse.. someone "evolves" a super CPU and it gets implemented in everything.
for some unknown reason the more chips are made the faster and more powerful it gets.
Then a set of seamingly random computer gliches show up. A crackers computer shuts down.
Viruses malfunction, poorly writen software vanishes. Spammers can't send spam.
"Play nice or I won't run your software"
I don't actually exist.
The First NASA/DOD Workshop on Evolvable Hardware - lots of abstracts; full text if you have IEEE membership. Took place 19-21 July, 1999.
--The more you know, the less you know.
Circuit evolution raises yields on GHz chips - something of a more recent vintage. :-)
--The more you know, the less you know.
How do you test boundary conditions on an evolved circuit which may have "extra" boundaries inside? Maybe it has developed an accumulator that counts to 33 in analog, skips 34 (it counts 33 twice), and is fine from 35 up - that just happens to work under the test conditions that don't care about #3. Better examples anyone?
Some researchers were trying to train neural networks to identify tanks in photographs. After the neural network worked extremely well on the training set, they tested it on new data and it failed horribly. Turns out the pictures with tanks in them that they were using were dark and the pictures without tanks were light. The neural networks that been trained to determine whether the pictures were light or dark and didn't care about the presence or absence of tanks in the pictures.
"When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
With that kind of attitude, it'd probably feel the same way about you...
l
http://www.whatisthematrix.com/cmp/newFrame.htm
Genetic algorithms by now is old (heh) and a decently understood techology. Essentially this is nothing but a general-purpose global optimization method. So the guy applied that optimization technique to FPGAs and got something. Big deal. People have done much more interesting things with genetic algorithms.
Besides, it is just me, or the whole genetic algorithm thing is getting blown all out of proportion by the media, somewhat similar to what happened to neural nets several years ago?
And the article is quite clueless. It implies that software is too limiting (only 0s and 1s, after all), so playing with FPGAs will open wider horizons. And the researcher speaks of not understanding what's going on like it is a good thing...
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
durrrrrrrrrr
Hmm hey guys, why don't we use these new evolved chips in our missle command centers.
Sure that sounds great.
evolved chip: "hehe they still don't even know how I work, I've passed all their safty 'test' hehehe if they only knew if they only knew"
I'm sorry I couldn't resist. Would be funny though, if we accidently evolved thinking machines and didn't even know it.
Hmm, as always I like that picture of the future better. P.S. I'm generally not a negative future seerer I was just in a negative mood I guess :)
FYI, Thompson and his "Darwin Chip" were the
cover story for Discover magazine, June 1998.
It's the only Discover I've ever saved...
LL
"If you are falling, dive." -Joseph Campbell
you guys posted this in like '97, when i started reading /.
Anyone else ever actually try to build something and let it evolve? About six years ago I wrote a little DOS program (I can Email it to anyone who asks in a few days but i'm offline at home right now so I'd have to fetch it on a disk and it's the weekend in a couple of hours) to try and evolve the behaviour of some little sprites wondering all over the screen.
It used a decision tree to decide what to do given inputs like what's standing in front and what's to the sides and what have you. They could decide to move forward or turn or attack the square in front. Their 'energy' level was tracked and attacking each other or the 'grass' that grew around randomly replenished it. When they were all dead the last few to die got to spawn the next generation. I was interested to see how hard it would be to evolve some better AI for games.
They did, quite quickly, evolve what looked like the same algo as the tree I built by hand to test the code (move forward unless theres a wall in front in which case turn left - oh and if there's food in front then eat it) but the tree was a mess. Couln't tell what was going on inside the code. They never really got any farther though.
What I found interesting was that trying to evolve from my test tree was impossible. My delicately constructed tree was completely screwed as soon as you changed one byte of it - the poor critters just died. The algo that evolved though was WAY more robust, upping the mutation rate to crazy levels still left the critters doing something better than standing still in confusion.
I did start work on a new version that would let the inputs evolve as well. Rather than just seeing to the sides and two squares in front the viewable square's locations themselves could evolve. I got distracted and moved onto something else before I ever finished it though. Story of my life
Pre.......
I have a suspicion that people will eventually understand the potential value of LISP . This language was perfectly suited to problems that you didn't have an algorithm to solve them with . It's built in software functionality made it useable for many of the specialized things that we are seeing developed today . Squireson http://www.peorialinux.org
Genetic algorithms aren't exactly new. There are many sites on the web which implement them. However, like most AI issues, the hard part is the training. You can never be 100% sure that it's doing what you want, only what it's done in the past.
I have been thinking about doing something like this for years.
But I never seems to have time.
But if someone started a open source project I would like to get
involved.
I can do the GA algorithms, so we need someone to do the network code
and someone to put together the web site.
By the way take a look at this.
On the 17. of July Roland Olsson posted to comp.ai a message saying he had made a program
using ADATE
The program searches after a SAT solver.
The satisfiability problem (SAT) is one of the fundamental problems
in theoretic computer science.
If we had a fast algorithm to solve this problem, we could solve a big
class of very interesting problems.
Example factoring of big integers and solving the travling salesman problem.
Your can find more problems with instances
here, if your are interested.
So if your computer got some spare time, give it a try.
Well we should make a client independent of the actual problem.
Something like 3 parts.
a network part.
a search engine part.
and a problem definition part.
and a static interface between the parts.
So to do another problem your just write another problem definition part.
And to try another search algoritme your write a new search engine part.
heh..someone just had to say it..
hehehe
Good point. Still, why do we have to know how something works to make it useful? I mean, no-one knows how the human brain works but we all use that..
There is also a lot of traditional software out there, being used every day, that no-one understands how it works, because it was badly documented (if at all) and/or the people that wrote it have died/forgotten how it works. Early Mac stuff springs to mind.
What's the difference between computer-evolved obfusticated code and human generated obfusticated code? We've got plenty of the latter around.
http://www.theonion.com/onion3522/robots_are_the_f uture.html
----
Humor aside, I think this is really cool. Somehow a working design evolved entirely outside the human constriction of an entirely digital world. AI is tough because biological organims simply don't work on a digital premise. It is hard to model organic intelligence within the constraints of a digital world. AI, unfortunately, hasn't been able to make much progress recently, but with an article like this, I don't think it is implausible that one day I might shake hands with a C3PO. Hey, we humans evolved after all anyway right? If we can fast-forward the evolution of these things I think there is a hope for emergent intellegence. Anyway, there are plenty of practical short-term goals. The first one that popped into my head was: Hey! Use this technique on my graphics card and let me be able to play Quake at 1280x1024 32bit 40frames/sec. Cool. This is cool stuff and I hope it gives AI a boost.
I wonder what religious zealots think about this evolution though.
It's 10 PM. Do you know if you're un-American?
I think I like the idea of watching other AI organisms eat M$ retarded organism alive.
It's 10 PM. Do you know if you're un-American?
Looks like Thompson's still working on exploiting the non-digital properties of digital devices, if I understand the blurb.
If these FPGA computers were to develop an artificial intelligence and form some kind of sentience, what would be the ethical ramifications of selling a self-conscious being? Would it be on par with slavery? Would shutting it down be the equivalent of digital murder? Interesting questions....
Just a concerned AI...
Don't lead me into temptation... I can find it myself.
The latest y-chromosome genetic studies (as well as recent studies of the paleoentological record) show conclusively that Darwinian evolution did not occur in higher animals, beyond the species level. You have to have an enormous population and a very short generation cycle (time from birth to sexual maturity) to allow evolution to work. It works in bacteria, viruses, fruit flies, and now apparently, silicon. But humans, whales, apes--not a chance. Not enough time, not a large enough population. Think what you want about where they came from (seeded by God, extra-terrestrials, etc.) but these higher forms have been shown not to have evolved from lower forms. (Oh, boy, I better grab my thermal garb! Flames a comin'!) References: Michael F. Hammer, "A Recent Common Ancestry for Human Y Chromosomes," Nature, 378 (1995), pp. 376-378. L. Simon Whitfield, John E. Sulston, and Peter N. Goodfellow, "Sequence Variation of the Human Y Chromosome," Nature 378 (1995), pp. 379-380.
www.backwoodsengineer.com
Yes, the article is old. And yes, perhaps it did appear here in 1997 (I'm a relatively new reader . . . only a year and a half now!). But time and time again, there are clumps of people bitching about it. Well, first off, do YOU remember every single article you read two years ago? I sure as hell don't.
The article was submitted again, and posted again. Not claiming intent for either party (it could have been a mistake), I see no problem with this. The article is relevant again, given the Kansas Fuckup. Did it ever cross your mind that maybe someone thought to re-submit this article in response to that? Or maybe posted for people who (like me) didn't catch it the first time around.
Play nice children.
Bad things often happen to good people,
It is up to them to see that they remain good.
So 15 cells seemed to have no logical purpose, but
the chip stopped working without those cells...
This reminds me of the "Magic Switch" story in the Jargon File... a switch on a mainframe had only one wire connected to it, with the other end connected to a ground pin, so it obviously wouldn't work - yet flipping it from the position labeled "More Magic" to the position labeled "Magic" caused the computer to crash.
--
Win dain a lotica, en vai tu ri silota
"I wonder what religious zealots think about this evolution though."
They won't think about it, they don't do the "thought" thing. They will pray (or say they did) about it and do what God (or their better interests) tells them they should do. This will most likely be a condemnation of it.
I am from kansas, and no the chip will not work here (the church SIGs probably wont let it). Or it will work and we just wont be able to tell our childern about it in school.
"Doctor, it's not the voices I hear in MY head, but the voices I hear in YOUR head that really frighten me."
Hmm, has anyone ever read any of the spin-offs of Assimov's 'I, Robot' and 'Robot's of Dawn', specifically one called 'Changeling' (I think). It talked about the embedding of a positronic brain into an infiniately maleable substance so that the brain could define what it's body was.
Those things could be extremely interesting if the software could modify the hardware to accomplish its goal. Imagine, Linux decides it needs more CPU cycles, and more RAM, so it gets to work redesigning your motherboard for you. You open the case up a few weeks later to see some kind of shimmery silver blob where your motherboard was, and your PC is running at 25Ghz, with 100TB of RAM! >:) Sounds like fun.
Kintanon
Check out JoshJitsu.info for Brazilian Ji
The article is dated 15th November 1997, so it's
not exactly news, is it. And I'm almost certain that this same story was posted to Slashdot a couple of months ago.
HH
Yellow tigers crouched in jungles in her dark eyes.
She's just dressing, goodbye windows, tired starlings.
"How acceptable is a safety-critical component of a system if it has been artificially evolved and nobody knows how it works?" he asks. "Will an expert in a white coat give a guarantee? And who can be sued if it fails?"
/then/ who do you sue?)
This is the funniest thing I have ever read (well, today.) Yeah! Who can be sued when it fails? What good is human existance without somebody or some organization to blame things on? Using one of these circuits and then suing the maker if it fails is like drinking until you sustain braindamage, and then suing the beer company. Is there no such thing as personal accountability anymore? Doesn't anyone take respocibility for their own actions? For that matter, why don't they just 'evolve' a circuit that always knows who to sue? (Although, when when that breaks down,
"Old man yells at systemd"
You can really only do so much with genetic algorithms because while the most successful code/design is often better than anything a human could create, it is also almost totally unreadable by people; if you did an entire project genetically, you'd lose all control of it. Genetic algorithms are only useful for small sections that need to be as efficient as possible (similar to hand-optimizing software in assembly).
I wonder how many CPU cycles it takes to run through a single generation? I suppose, it would depend on the scope of the project and the number of permutable aspects in the code. It would certainly be interesting to see how well a distributed.net project would lend itself to producing a large-scale genetically based application.
It seems that the model could work fairly well because every client would share the same acceptable fitness parameters, and whole squadrons of teams would be able to work on different genetic threads with their most robust solutions mated and re-distributed to all of the clients at the end of every generation or series of generations.
It would certainly be more interesting than another brute-force project. Does anyone know how distributed chooses their projects, or are there any groups already working on distributed GP?
Darwin owns my way of life. Survival of the fittest. No time for drug addiction, no time for smoke and booze. If you've got your piece, go in for the kill, bitch. It's your own time, time to shine.
----------
Have FreeBSD questions?
----------
Have FreeBSD questions?
http://balambiris.ne.mediaone.net
They'll just have to think of some way to explain it to the one-brain-cell types on the school board.
BTW, I live in Kansas, and am mostly a Republican. A pro-choice, atheist, evilutionist Republican, but one nonetheless...
I think microsoft will get involved early in this development, as they have already funded research on 'how to make Excel better thru darwinism'. i think their next logical step is to create self-conscious programs... that they can enslave. don't be surprised if they do..
http://github.com/gbook/nidb