开源项目推荐:基于遗传算法训练蛇类游戏的神经网络
项目基础介绍
该项目名为SnakeAI,是一个开源项目,旨在通过使用遗传算法训练一个神经网络来玩经典的蛇类游戏。项目主要使用Processing编程语言开发,Processing是一种灵活的软件草图本和语言,用于学习如何编码在视觉艺术环境中。
核心功能
- 神经网络构建:每个蛇实例都包含一个神经网络,该网络具有一个24个神经元的输入层,两个各有16个神经元的隐藏层,以及一个4个神经元的输出层。网络结构可自定义,包括隐藏层的数量和每个隐藏层中的神经元数量。
- 蛇的视野:蛇能向8个方向观察,每个方向寻找食物、自身身体和墙壁的距离,总共24个输入。
- 自然选择和遗传算法:每一代创建2000条蛇,第一代所有蛇的神经网络随机初始化。全部蛇死亡后,根据生存时间和得分计算每条蛇的适应度,选择最佳蛇进行繁殖,通过交叉和突变产生新的一代。
- 适应度计算:蛇的适应度取决于生存时间和得分,但得分权重更高。为了避免蛇通过无限循环生存来提高适应度,项目设定了初始移动次数和通过吃食物增加移动次数的机制。
最近更新的功能
- 网络结构自定义:最近更新允许用户更灵活地自定义神经网络的结构,包括隐藏层的数量和每个隐藏层中的神经元数量。
- 适应度函数优化:为了更准确地评估蛇的表现,适应度函数进行了优化,确保既能鼓励蛇吃食物提高得分,又能避免无限循环生存的策略。
- 模型保存和加载:增加了模型的保存和加载功能,用户可以将训练好的模型保存为CSV文件,并在新的情境下加载测试。
- 进化图表可视化:更新了进化图表的可视化效果,用户可以更直观地查看模型在不同代数中的表现和进化过程。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考