阿里云天池发布 一、安装Python包安装超级玛丽软件包, pip install gym gym_super_mario_bros 用python代码控制马里奥执行随机动作
然后查看 https://colab.research.google.com/drive/1ULu0t__0LPl5oI528oNvoOhs50XTZ2Nf?usp=sharing 二、加载训练好的模型可视化ppo算法在游戏中的表现
「tips:」 使用docker 直接运行: docker run --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix registry.cn-shanghai.aliyuncs.com/tcc-public/super-mario-ppo:localdisplay 如果不会使用docker的话,也可以下载项目源码,自己动手运行。
2 强化学习初体验强化学习的思想在生活中很常见,核心思想就是通过不断的尝试来让自己学会某件事情,因此强化学习的方法大致分为两类( value-base顾名思义, policy-base同样的字面意思, ppo
ppo全名Proximal Policy Optimization,翻译过来“近端策略优化”,策略优化的思想就是上面policy-base方法,而“近端”,也就是“限制新旧策略更新幅度,保证新旧策略要在相近状态”,这样可以保障模型策略更新稳定收敛,否则可能会出现严重抖动难以收敛等问题。 ppo的工程实现目前网上常见的主要有baselines版、spiningup、莫烦版本、rllib、天授等,每个在实现方式上都不太一样,导致初学者往往会对工程实现上有很多迷惑,比如有的版本Actor和Critic是分离的而有的是共用的,loss计算有的是分开单独做梯度优化的也有的是加在一起做梯度优化,还有“近端约束”有的计算kl散度约束有的直接clip到固定范围,但其实这些不同的实现方式也都在常规的gym环境下达到了很好的效果,所以很长一段时间并没有论文证明ac共享权重好还是分开优化更好,直到今年procgen的发布(procgen旨在解决以往强化学习对环境的记忆>泛化能力而开发的动态环境benchmark),openai对比了不同的工程实现方式,并提出了ppg算法方法,其实就是ac分开优化的同时,增加辅助阶段,用于ac之间共享权重,所以整体来说ac分离与否各有优缺点。所以本文的代码实现为了顺应ppg的发展,将ac分开设计独立优化,构建简化版本方便初学者理解,这样到学习ppg时则仅需在此基础上添加辅助阶段即可。 3 加入强化学习训练营钉钉扫下方二维码进入训练营学习交流群和小伙伴们交流学习今天只是借助超级玛丽做简单的入门初体验,如果你觉得这样的形式对你有用,可以查看完整版强化学习训练营(https://tianchi.aliyun.com/specials/promotion/aicamprl),也欢迎入群(添加wx:pythonbrief)和其他同样的小伙伴交流学习,后续会有更多项目实践文章或视频。 4 超神进阶如果你并不满足现状,想做一些超神操作通关所有关卡(目前ppo通关超级玛丽最高记录是29/32,剩余未通关的是4-4、7-4和8-4,因为这几关不仅考验类似走迷宫的能力还要有严谨的进退策略,所以单靠ppo是非常难的),这里给你提供一些参考路径。 增加辅助信息在某些特别难的关卡现有gym_super_mario_bros抽取出来的游戏环境(状态、action等)不能满足你的需求,这个时候你可以自己添加,其实类似gym_super_mario_bros这样的包或者openai的retro把游戏转化为代码可操作的rl-env都是通过py虚拟机加载游戏RAM,然后针对这个游戏解析RAM的按键(寄存器)地址、状态地址等,比如retro已经解析支持常见的千种游戏解析(但是需要自己添加游戏ram,这里分享一个童年游戏ram集散地:http://www./) 那么我们想要获得更多的信息,就可以通过查询寄存器地址,自己添加字段来获取信息或执行特殊技能,如超级玛丽部分寄存器地址: 算法升级经过上面的探索,你会发现ppo的不同实现方式会有不同的表现,且各有优缺点,比如ac加在一起做loss优化时两者的权重很难定义有可能训练过程中会相互干扰,带来负面的影响,而不共享权重则在复杂的环境下很难训练导致难以收敛,所以在尝试不同的工程效果之后,可以升级ppo算法为ppg(Phasic Policy Gradient),兼顾独立优化的好处外增加一个阶段用于ac间共享权重。官方源码(https://github.com/openai/phasic-policy-gradient)对初学者可读性较差,添加(wx:pythonbrief)后续为大家分享ppg简化版本代码。 零基础入门强化学习零基础入门强化学习-超级玛丽挑战赛已上线,快来参与,让我们一起来从0开始,试着用AI技术征服超级玛丽吧! https://tianchi.aliyun.com/competition/entrance/531854/introduction |
|