飞机大战告尾

参考

PPO算法逐行代码详解

链接

通过网盘分享的文件:PlaneWar

链接: https://pan.baidu.com/s/1cbLKTcBxL6Aem3WkyDtPzg?pwd=1234 提取码: 1234

10.17关于博客发了又改这件事

悲催的事

今天训练了一早上ppo模型,满怀期待的检测成果时发现一点长进都没有。结果查出来一件悲催的事,模型一直都在输出静止指令!昨晚只训练了一会,刚好看到有个得了200分的模型,还以为ok了的。

现在想想,不知道我是运气好还是不好,那个飞机就靠着随机数(dqn遗留下来的,我没删)拿了个200分,还把我骗过去了...只能说游戏特性造就了它,静止时没子弹打他,随机数又帮它躲子弹和拿buff,要是在贪吃蛇,活不过一秒

修改

连续换了几个关键词,总算在github上找到了使用ppo的游戏ai。

这次就快很多了,一顿cv,甚至都不用怎么改(开源万岁!),因为它是用pygame实现游戏的。

这次不敢怎么改了,太多坑了。但是不改的话,ai只能决定移动方向,过于死板。人类玩的时候可以通过按钮的点击时长来控制飞机速度,而ai只能一点点挪动。因此,我将输出值由之前的4变成了13(不够还可以再加),即4*3+1。

0 -> 静止

1 5 9 上 2 6 10 右 速度依次增大

        direction = action
        if direction == 0:
            distance = 0
        else:
            #1 2 3 4 上 右 左 下 好别扭呀
            distance=5*int(direction/4+1)
            direction=direction%4+1

10.16

静默

昨晚问了一下gpt,将昨天的静默模式完善了一下(之前的贪吃蛇在训练时就是静默的,同时32个一起训,可惜这个项目不太好实现,报"无法序列化"类似的错)。

dqn改成了ppo

效果拔群!!!

平均分明显挺高了好多。

就是改的过程有点折磨人了。一开始想找博客,没见有直接用游戏做示例的,直接看又没心思。想着去问ai简单点,

给的很痛快,bug一堆...改了一小时后,它成功帮我克服了数学恐惧症,找博客看了。

将博客代码cv进去后,由于本项目传进net中的是一整张图,我在网上找不到啥相关了,只好又跟ai斗智斗勇了一番。早上九点研究到下午五点,一直在找bug。

结果吃了顿饭回来,才发现可以参考dqn的代码(有时候脑袋不灵光,很简单的事就是想不通)。工作量一下就缩小了好几倍!后面就是将dqn中的update函数魔改成ppo的(个人感觉dqn改成ppo主要改这里就行)

有些问题实在难以解决,那就只能灵活一下,绕过去了。

ppo的强大

换成了ppo,画面不卡顿了,模型文件变小了(dqn 600MB,现在ppo 3MB),平均分也变高了。

起始分

每次都要重新开始会导致缺少对抗boss的经验。通过设置初始分,起到类似选择关卡的作用,开局对战boss(200分第一个boss出现)。

10.15

奖励分

昨晚看到别的强化学习视频,发现之前设计的奖惩机制太简陋了。有些奖励分重复,例如角色受到的伤害与敌人造成的伤害都会给予惩罚(不知道当初咋想的),有些需要奖励的没给到位,例如没有存活分。

研究了一早上关于奖励的机制后,总体表现好了点,却出现了新问题,现在经常突然就冲进敌群里自杀。刚开始我以为是击杀分过高了,导致ai过于勇猛。结果几度大砍击杀分和增强存活分(有可能造就一个怂货),反而更猛了,还学会了冲到最上面去吃伤害...

不信邪的我打了几个log,看了一下奖励分到底怎么变化的。无效,跟我想的差不多,但效果却大相径庭。

pygame卡顿

敌人过多时,会导致卡住。通过装饰器测了一下时间,发现游戏刷新耗废了大部分时间。

期间又是修修改改,缝缝补补。又是暂停计时器,又是进程中夹带线程,还不小心搞成了静默模式。

相关推荐
昨日之日200631 分钟前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_33 分钟前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover34 分钟前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
dayouziei2 小时前
java的类加载机制的学习
java·学习
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
API快乐传递者2 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
阡之尘埃4 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
孙同学要努力6 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
Eric.Lee20216 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉