> 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.