Hacker News new | ask | show | jobs
by osmarks 694 days ago
I don't think this is true as stated. Evolutionary algorithms are not the most efficient way to do most things because they, handwavily, search randomly in all directions. Gradient descent and other gradient-based optimizers are way way faster where we can apply them: the brain probably can't do proper backprop for architectural reasons but I am confident it uses something much smarter than blind evolutionary search.
2 comments

The OP is not about evolutionary algorithms in the usual sense (random mutation and selection over many generations).

It's about mechanisms in the brain that plausibly evolved over time.

> A Darwin Machine uses evolution to produce intelligence. It relies on the same insight that produced biology: That evolution is the best algorithm for predicting valid "solutions" within a near infinite problem space.

It seems to be suggesting that neuron firing patterns (or something like that?) are selected by internal evolutionary processes.

> Evolutionary algorithms are not the most efficient way to do most things because they, handwavily, search randomly in all directions.

I think we agree and would love to dive a bit deeper with you here. My background is in biology and I'm very much an enthusiastic amateur when it comes to CS.

When I first read about Darwin Machines, I looked up "evolutionary algorithms in AI", thought to myself "Oh hell ya, these CS folks are on it" and then was shocked to learn that "evolutionary algorithms" seemed to be based on an old school conception of evolution.

First, evolution is on your team, it hates random search. In biology point mutations are the equivalent of random search, and organisms do everything in their power to minimize them.

As I said in the article, If we were building a skyscraper and someone told us they wanted to place some bricks at random angles "so that we might accidentally stumble upon a better design" we would call them crazy. And rightfully so.

Evolution still needs variation though, and it gets it through recombination. Recombination is when we take traits that we know work, and shuffle them to get something new. It provides much more variation with a much smaller chance of producing something that decreases fitness.

It took me a while to grok how recombination produces anything novel, if we're shuffling existing traits how do we get a new trait? I still don't have a "silver-bullet" answer for this but I find that I usually visualize these concepts too far up the hierarchy. When I think of traits I think of eye color or hair color (and I suspect you do to). A trait is really just a protein (sometimes not even that) and those examples are the outliers where a single protein is responsible.

It might be better to think of cancer suppression systems, which can be made up of thousands of proteins and pathways. They're like a large code base that proofreads. Imagine this code base has tons of different functions for different scenarios.

Point mutations, what evolution hates, is like going into that code base and randomizing some individual characters. You're probably going to break the relevant function.

Recombination, what evolution loves, is like going in and swapping two functions that take the same input, produce the same output, but are implemented differently. You can see how this blind shuffling might lead to improvements.

How evolution creates new functions is a much more difficult topic. If you're interested, I recommend "The Selfish Gene". It's the best book I've ever read.

>Gradient descent and other gradient-based optimizers are way way faster where we can apply them

The second point is based on my (limited) understanding of non-biology things. Please point me in the right direction if you see me making a mistake.

Gradient descent etc. are way faster when we can apply them. But I don't think we can apply them to these problems.

My understanding of modern machine learning is that it can be creative in constrained environments. I hear move 37 is a great example but I don't know enough about go to feel any sort of way about it. My sense is: if you limit the problem space gradient decent can find creative solutions.

But intelligence like you or I's operates in an unconstrained problem space. I don't think you can apply gradient descent because, how the heck could you possibly score a behavior?

This is where evolution excels as an algorithm. It can take an infinite problem space and consistently come up with "valid" solutions to it.

>the brain probably can't do proper backprop for architectural reasons but I am confident it uses something much smarter than blind evolutionary search.

I think Darwin Machines might be able to explain "animal intelligence". But human intelligence is a whole other deal. There's some incredible research on it that is (as far as I can tell) largely undiscovered by AI engineers that I can share if you're interested.

> When I first read about Darwin Machines, I looked up "evolutionary algorithms in AI", thought to myself "Oh hell ya, these CS folks are on it" and then was shocked to learn that "evolutionary algorithms" seemed to be based on an old school conception of evolution.

I think a lot of the genetic algorithms people do implement recombination-like things. Most of the things operated on aren't really structured like genomes so it makes less sense there.

> But intelligence like you or I's operates in an unconstrained problem space. I don't think you can apply gradient descent because, how the heck could you possibly score a behavior?

> This is where evolution excels as an algorithm. It can take an infinite problem space and consistently come up with "valid" solutions to it.

Evolutionary search also relies on scoring. Genetic algorithms on computers hardcode a "fitness function" to determine what solutions are good and should be propagated and biological evolutionary processes are implicitly selecting on "inclusive genetic fitness" or something. You can't apply gradient-based optimizers directly to all of these, though, because they are not (guaranteed to be) differentiable. There are lots of ways to optimize against nondifferentiable functions in smarter ways than evolutionary search, and these come under "reinforcement learning", which does work but is generally more annoying than (self-)supervised algorithms.

> I think Darwin Machines might be able to explain "animal intelligence". But human intelligence is a whole other deal. There's some incredible research on it that is (as far as I can tell) largely undiscovered by AI engineers that I can share if you're interested.

As far as I know human brains are more or less a straight scaleup of smaller primate brains.