I spent 2 weeks playing god. My learnings from 597 genetic algorithm lineages
3 months ago
- #genetic-algorithms
- #evolution-simulation
- #machine-learning
- 作者构建了一个进化模拟器,经过数百万代迭代让生物学会走向食物
- 生物体由节点(球体)通过肌肉(弹簧)连接构成,受摩擦力、刚度等物理约束
- 适应度函数的设计至关重要且难以完善,涉及进度累积、基准位置和边界计算等问题
- 初始生物是无脑振荡器,后期版本加入了能响应环境的神经网络
- 测试了多种繁殖和变异策略,包括均匀交叉、插值法和单点交叉
- 采用NEAT(增强拓扑神经进化)算法使网络拓扑可进化,显著改善了生物行为
- 使用神经架构搜索(NAS)优化超参数,纯神经网络在某些场景下表现优于NEAT
- 选择遗传算法而非梯度下降,因为适应度函数不可微分且需要大规模并行计算
- 关键经验包括:实现前吃透理论很重要,约束条件能有效引导进化方向
- 未来计划研究能量系统、循环连接、HyperNEAT算法和新颖性搜索