ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-01-12 12:03:48  阅读:617  来源: 互联网

标签:github gym PARL 学习 https 强化 com


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

背景介绍

第一章节属于基础内容,第二课的数学知识总结的很好
在这里插入图片描述

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等)
  • 交通(拥堵管理等)
  • 资源调度(物流、带宽、功率等)
  • 金融(投资组合、股票买卖等)
  • 其他
  • 在这里插入图片描述

1.4 强化学习核心知识

在这里插入图片描述
deep reinforcement learning an overview,论文地址:https://arxiv.org/pdf/1701.07274.pdf
在这里插入图片描述
在这里插入图片描述
算法框架库
在这里插入图片描述
环境库
在这里插入图片描述

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

在这里插入图片描述

1.5 gym,PARL(PaddlePaddle Reinforcement Learning)

1.5.1 环境安装

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

windows上只支持python3.7的环境

安装依赖

在这里插入图片描述
报了一个问题,OpenCV不兼容,parl安装的时候也报了。。。后续如果出问题就重新安装一下好了

1.5.2 gym简单使用

跟着老师的步骤敲就可以,使用ipython编辑环境会报错,就使用原生的python编辑就好,暂时没有遇到OpenCV版本导致的错误,哈哈哈。
在这里插入图片描述

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

大致说明一下这个程序里用到的一些东西
env.reset()复位,让这个小乌龟回到初始位置,初始位置是36号格子
在这里插入图片描述
env.step()让小乌龟进行一个动作,

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

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

  • 24 当前乌龟的位置,
  • -1是reward,
  • False,游戏是否结束,是否到达黄色终点位置
  • 概率 1.0 暂时这个程序用不到转移函数概率
    在这里插入图片描述

1.5.3 PARL

在这里插入图片描述
在这里插入图片描述

1.6 总结

在这里插入图片描述

1.7 课后作业

在这里插入图片描述

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

在这里插入图片描述
可以看到目录里有一个这个程序运行后的效果gif图。此外,程序输出信息类似:
在这里插入图片描述
最后目录中会产生一个新的model_dir文件夹,但是里卖的内容打不开
在这里插入图片描述

标签:github,gym,PARL,学习,https,强化,com
来源: https://blog.csdn.net/Castlehe/article/details/112471308

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有