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