用Dota2“最强”算法PPO完成CarPole和四轴飞行器悬浮任务

 

【飞桨开发者说】吉祥:黑龙江哈尔滨人,毕业于桂林理工大学,检测技术与自动化装置专业,百度深度学习工程师集训营最佳学员,百度强化学习7日学员

2019年Dota 2比赛中,OpenAI Five完胜世界冠队伍OG。

Bill Gates在Twitter中提到:“AI机器人在Dota 2中战胜人类,是AI发展的一个里程碑事件”。

无论AlphaGo击败围棋世界冠军还是OpenAI Five完胜世界冠队伍OG,都让大众感受到了AI的魅力,促进了AI蓬勃发展。

那么OpenAI Five应用了什么技术,实现在Dota中完胜世界冠军的呢?那就是Proximal Policy Optimization(PPO)算法,本文重点介绍基于飞桨PARL,完成PPO算法实践的过程。

飞桨PARL开源项目地址:

https://github.com/PaddlePaddle/PARL

PPO算法将游戏中所有的状态作为数据输入,通过数据分析计算,由PPO优化的智能体Agent做出相应的动作,智能体Agent的思考过程如下图所示。

在介绍PPO算法之前,我们先了解深度强化学习中基于策略梯度的Policy Gradient算法(以下简称PG)。

PG算法介绍

 

PG算法的基本组成如下图所示:

  • Actor:由智能体Agent产生的执行动作;

  • Env:智能体Agent的执行环境;

  • Reward Function:奖励计算方式,执行动作的评价指标。

智能体Agent在Env中不断学习,根据环境的状态State(也可以为观察到的observation,下文统一用State)来执行动作Action,过程中会根据反馈的Reward来选择效果更好的动作,实现逻辑如下图所示:

  • 采用神经网络拟合策略函数,通过计算策略梯度来优化策略网络;

  • 通过环境产生的状态State矩阵或者向量Vector作为神经网络的输入,通过神经网络得到每个执行动作的概率,选择概率最大的执行动作。

计算原理如下图所示:

  • 在环境Env中得到状态State,Agent通过State得出使得Reward最大的执行动作Actor;

  • Actor在环境中又得到新的State(next state) ;

  • 重复以上动作,直到Reward Fuction不成立或者达到这次循环终止条件。此时可以计算出一个轨迹的发生概率(一个episode的发生概率)。

在优化神经网络时,除了需要向网络输入数据外,还要给网络一个期望的输出(label)。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值