自定义贪吃蛇环境进行PPO模型训练

接之前的内容通过TensorBoard进行PPO参数优化
已经基本跑通强化学习的流程后,开始尝试自定义一个环境进行训练。

项目地址 learn2

自定义环境

通过简单的环境进行尝试。
考虑过:

  • 五子棋:需要写一个五子棋的算法和ai下棋,🤔,先缓缓
  • 贪吃蛇:ai写一个贪吃蛇好像很快
  • 俄罗斯方块:会不会太复杂,考虑的内容有点多,一个M4的机器扛得住吗?不确定
  • FlappyBird:🤔,应该是一个不错的选项,但是没写过类似的游戏,没啥经验,后续可以研究研究
  • ...

综上所属:找ai写一个贪吃蛇。✌️
然后找ai写了一个CustomEnv.py

开始训练

根据之前的经验,训练了6次。
怎么说呢,感觉不是很理想。整体的训练虽然向着好的方向前进,但是有点,呃,🤔,波动感觉有点大。
如下图:

点击查看图片

40c53a41-5114-4123-8056-f3a83352cd72

虽然成功的让ep_rew_mean变成了正数,但是出现了一些问题。
测试的时候发现:

  • 一直原地转圈。最小的4个格子,疯狂的转圈圈,不去找食物。
  • 没有积极的去吃食物,会出现乱跑散步的情况。

😐,总计起来就是:训练的毫无意义。

通过检查,可以发现,最开始为了省事,使用ai生成的贪吃蛇代码,其中是有些问题的:

  • 每执行一步-0.01,吃到食物+1,这样就会出现一种情况:不停的绕圈活着比找食物冒险,获得的收益要高(这里需要注意,这个收益是指在训练过程中,随机的情况下,一只绕圈所获得的奖励会高于或等于平均每局的奖励)。所以,就会出现转圈圈苟活的情况。
  • 死亡-1,吃到食物+1,正向收益不够的时候,就会出现在初期就减少探险的行为,导致不愿意探索。(个人感觉,这个虽然可以通过加长训练时间来进行弥补,但是会让模型偏保守)。
  • 填满地图通关没有额外奖励,导致模型没有动力去追求最高分。

所以,总结一下,个人认为,进行PPO模型训练的时候,不应只是一味的调整模型参数进行训练,也要同步进行思考模型的训练环境所给的奖励反馈是否合理。

posted @ 2026-08-06 15:37  孤独的猫咪神  阅读(3)  评论(0)    收藏  举报