强化学习PARL——1. 简单认识

这个教程参考的是百度PaddlePaddle的RL系列教程:https://aistudio.baidu.com/aistudio/projectdetail/1445501

背景介绍

第一章节属于基础内容,第二课的数学知识总结的很好
强化学习PARL——1. 简单认识

1. 开始

1.1 概念认识

1.1.1 强化学习 vs 其他

强化学习与监督学习的区别

  • 强化学习、监督学习、非监督学习是机器学习里的三个不同的领域,都跟深度学习有交集。
  • 监督学习寻找输入到输出之间的映射,比如分类和回归问题。
  • 非监督学习主要寻找数据之间的隐藏关系,比如聚类问题。
  • 强化学习则需要在与环境的交互中学习和寻找最佳决策方案。
  • 监督学习处理认知问题,强化学习处理决策问题
  • 监督学习的样本一般是独立同分布的,而强化学习的序列决策数据,当前的决策会受到上一个决策的影响

1.1.2 强化学习的如何解决问题

  • 强化学习通过不断的试错探索,吸取经验和教训,持续不断的优化策略,从环境中拿到更好的反馈。
  • 强化学习有两种学习方案:基于价值(value-based)、基于策略(policy-based)

1.1.3 强化学习的算法和环境

  • 经典算法:Q-learning、Sarsa、DQN、Policy Gradient、A3C、DDPG、PPO
  • 环境分类:离散控制场景(输出动作可数)、连续控制场景(输出动作值不可数)
  • 强化学习经典环境库GYM将环境交互接口规范化为:重置环境reset()、交互step()、渲染render()
    • gym是环境 environment
  • 强化学习框架库PARL将强化学习框架抽象为Model、Algorithm、Agent三层,使得强化学习算法的实现和调试更方便和灵活。
    • parl是智能体/agent/算法部分

1.2 代码实践

1.2.1 环境配置


参考内容
这部分网上已经有很多其他博主也已经学习过了,可以参考:

1.3 强化学习初印象

1.3.1 资料推荐

课程ppt小红小蓝捉迷藏的链接:

红球绿球链接:

书籍

论文

前沿研究方向

  • Model-base RL,Hierarchical RL,Multi Agent RL,Meta Learning

视频推荐

b站(视频下方评论区有很多自发总结的笔记,博客等,可以借鉴)

应用方向

  • 游戏(马里奥、Atari、Alpha Go、星际争霸等)
  • 机器人控制(机械臂、机器人、自动驾驶、四轴飞行器等)
  • 用户交互(推荐、广告、NLP等)
  • 交通(拥堵管理等)
  • 资源调度(物流、带宽、功率等)
  • 金融(投资组合、股票买卖等)
  • 其他
  • 强化学习PARL——1. 简单认识

1.4 强化学习核心知识

强化学习PARL——1. 简单认识
deep reinforcement learning an overview,论文地址:https://arxiv.org/pdf/1701.07274.pdf
强化学习PARL——1. 简单认识
强化学习PARL——1. 简单认识
算法框架库
强化学习PARL——1. 简单认识
环境库
强化学习PARL——1. 简单认识

  • 离散:输出的动作是可数的(动作空间是个数字)
  • 连续:输出的动作是不可数的(比如机器人关节移动的角度)
  • 控制机器人移动,旋转角度是连续,开关是离散
  • DQN是一个面向离散控制的算法,即输出的动作是离散的。
    • 对应到Atari 游戏中,只需要几个离散的键盘或手柄按键进行控制。
    • 然而在实际中,控制问题则是连续的,高维的,比如一个具有6个关节的机械臂,每个关节的角度输出是连续值,假设范围是0°~360°,归一化后为(-1,1)。若把每个关节角取值范围离散化,比如精度到0.01,则一个关节有200个取值,那么6个关节共有2006
    • 参考:https://www.cnblogs.com/alan-blog-TsingHua/p/9727175.html

强化学习PARL——1. 简单认识

1.5 gym,PARL(PaddlePaddle Reinforcement Learning)

1.5.1 环境安装

安装参考github说明:https://github.com/PaddlePaddle/PARL/tree/develop/examples/tutorials

windows上只支持python3.7的环境

安装依赖

强化学习PARL——1. 简单认识
报了一个问题,OpenCV不兼容,parl安装的时候也报了。。。后续如果出问题就重新安装一下好了

1.5.2 gym简单使用

跟着老师的步骤敲就可以,使用ipython编辑环境会报错,就使用原生的python编辑就好,暂时没有遇到OpenCV版本导致的错误,哈哈哈。
强化学习PARL——1. 简单认识

程序介绍
将gridworld.py程序和gym中的cliffwalkingwapper.py一起看,

大致说明一下这个程序里用到的一些东西
env.reset()复位,让这个小乌龟回到初始位置,初始位置是36号格子
强化学习PARL——1. 简单认识
env.step()让小乌龟进行一个动作,

  • UP = 0
  • RIGHT = 1
  • DOWN = 2
  • LEFT = 3

env.render()每次环境状态(小乌龟走了一步之后,图会改变)发生改变,要重新渲染这个图才能看到新的环境状态。
下面是先0,上一步,再1,右一步之后小乌龟的位置(环境的状态)
每次step返回的四个值分别表示:

  • 24 当前乌龟的位置,
  • -1是reward,
  • False,游戏是否结束,是否到达黄色终点位置
  • 概率 1.0 暂时这个程序用不到转移函数概率
    强化学习PARL——1. 简单认识

1.5.3 PARL

强化学习PARL——1. 简单认识
强化学习PARL——1. 简单认识

1.6 总结

强化学习PARL——1. 简单认识

1.7 课后作业

强化学习PARL——1. 简单认识

pip install paddlepaddle==1.6.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install parl==1.3.1
pip install gym

git clone --depth=1 https://github.com/PaddlePaddle/PARL.git
cd PARL/examples/QuickStart
python train.py

强化学习PARL——1. 简单认识
可以看到目录里有一个这个程序运行后的效果gif图。此外,程序输出信息类似:
强化学习PARL——1. 简单认识
最后目录中会产生一个新的model_dir文件夹,但是里卖的内容打不开
强化学习PARL——1. 简单认识

上一篇:2020 BIT冬训-图&&DFS&&BFS M - 【浅紫】特殊生成树 Gym - 102072C(矩阵快速幂)


下一篇:Gym 102861E E. Party Company