Hacker News new | ask | show | jobs
by jrowen 8 days ago
Yes, that's the other thing -- starting from a soup, it takes a very long time to know if the parameters that have been chosen are conducive to evolving something we would consider intelligent. The gif in vicgalle's github is largely inscrutable (even if you understand what it represents in aggregate), and I imagine one would be staring at something like that for quite some time.

Obviously, you have to "cheat" biology somewhere, we don't have hundreds of millions of years. Neural networks cheat by essentially throwing out the whole evolutionary process and environment that led to the brain, attempting to make a model that works like the brain. IMO that is too much cheating.

Starting with a substrate of random bits of assembly code strikes me as a little too low-level (which is not to dismiss this research at all, I think it's valuable, I'm just spitballing big-picture ideas). Have you considered starting with something like the Unreal or Unity engine, or even Minecraft?

You would lose the elegant and unopinionated search space of all programs, and you would have to engineer a more structured system (kind of like Spore but more simulation than game), but I feel like you might be able to get some more readily relatable behaviors sooner?

2 comments

And maybe that just isn't really your area of work, I get that it would be a totally different project (like saying to a C++ guy "have you tried JavaScript?"), but that's why I think it's interesting to ask, because it really is a question of understanding this entire integrated "stack" of biology and what parts of it are vital.
the unity/minecraft level of abstraction is a common one in AFIFE, and too often ends up being Spore - looking and behaving in very interesting ways, but remaining just that. those approaches are on the wrong side of the performance vs evolvability curve - scale is a necessary ingredient and running things at a physics sim level is just too taxing.

it is of course entirely possible we are on the flip side and too low-level - this is something we're trying to find out.

> scale is a necessary ingredient and running things at a physics sim level is just too taxing.

I once had an idea for a system that basically took in multiple video inputs and produced video output. Individuals would then run instances (that they could tweak) that were connected to a larger network. Somewhere between an MMO and Folding@home. Not only would it distribute the compute load but it would simulate the chaos of large numbers of individuals trying out different things.

Again I think it comes back to the fitness function and how things get nudged "upward." In any case it seems all you need to do is get fitness right and then let it rip...

Have you explored any distributed concepts like that?

Makes sense, thanks. Even attempting to go for something that could span all those layers of complexity would be such an ambitious project. I doubt any projects in this field have access to MMO-level resources but I feel like it would take a WoW-size dev team and timeline with PhDs across multiple disciplines, crucially with virtually no expectation of financial return. All the money is chasing immediate business value...

Maybe there is the possibility of some kind of stack? Something that starts low level and somehow can be composed or integrated into higher levels of abstraction?