yaaf:又一个代理框架
yaaf的Python项目详细描述
yaaf:又一个代理框架
一个极简强化学习框架。
安装
$ pip install yaaf # Install YAAF
$ pip install gym[atari] # Install OpenAI Gym's Atari environments
$ git clone https://github.com/jmribeiro/yaaf # Clone the repo for the examples and tutorials
$ cd yaaf/examples
$ python 0_space_invaders_random_agent.py # Run example
快速原型设计:只需几行代码就可以轻松地在环境中设置代理:
# Setup the Environment environment = OpenAIGymEnvironment(name="SpaceInvaders-v0", render=True) # Setup the Agent agent = RandomAgent(environment.action_space) # Run the agent on the environment for 5 episodes runner = EpisodeRunners(agent, environment, episodes=5) runner.run() environment.close()
简单性
状态:具有给定形状的张量/numpy数组;
actions:如果是离散动作空间,则为整数;如果是连续动作空间,则为浮点数;
timesteps:以(state,action,reward,next,is_terminal,info)形式命名的元组
agents:给定状态时能够执行操作的对象。如果可以训练,在给定时间段时能够学习
environments:随时间演变的对象,在这些对象中,代理可以执行操作;
runners:在环境中与参与者(代理或策略)交互的对象,在每个时间步通知观察者列表;
metrics:在给定运行中评估代理或策略性能的对象。作为观察物传给赛跑者。
presenters(todo):在给定运行中显示代理性能的对象。用于绘图和比较代理。
结果再现性:
在给定的环境中创建和评估代理之后,可以将代理持久保存到磁盘上,这样程序员就可以加载经过预训练的代理,并在不同的场景中对它们进行比较。
实现的代理:
- dqn(https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf)
- q网络(http://ml.informatik.uni-freiburg.de/former/_media/publications/rieecml05.pdf)
- qlearning(https://link.springer.com/content/pdf/10.1007%2FBF00992698.pdf)
- 萨尔萨
计划的代理:
- [待办事项]ddqn(https://arxiv.org/abs/1509.06461)
- [待办事项]a3c(https://arxiv.org/pdf/1602.01783.pdf)
- [待办事项]GA3C(https://arxiv.org/pdf/1611.06256.pdf)
- [待办事项]DDPG(https://arxiv.org/pdf/1509.02971.pdf)
- [待办事项]PPO(https://arxiv.org/abs/1707.06347)