强化学习7日打卡营-世界冠军带你从零实践学习心得-alading

本文是作者参加强化学习集训营的学习总结,包括强化学习的概念、应用、与监督学习的区别、解决问题的方法及常见算法,如Q-learning、Sarsa、DQN和Policy Gradient。在学习过程中,作者通过直接看课件和完成作业,了解了强化学习的基本理论和在游戏、机器人、用户交互等领域的应用。

强化学习整体难于深度学习,需要在深度学习的基础上进行学习。这次参加强化学习的集训营,有点力不从心。
主要在于:学校期末考试月,各科大作业贼多,基本上每周要交2个大作业,不是实验报告就是论文,所有的科目都以这两种形式中的一种为考试形式…真的要把我整神。

这次学习的主要方法是,直接看课件然后就完成作业。对于老师的直播课程,我都是结课了以后才补上的,事实证明把需要做的事情,延后完成,真的是一件很累的事情。

写作业主要参考:

微信群的聊天记录,每日作业讨论区的技术分享,以及老师每天发的课件。

作业完成情况:

根据班班节课以后发的总成绩排名,大概就是中间的位置,因为我基本没听课,直接写作业的,能到中间的位置,实际上有点没想到。

下面就概括的总结一下这次主要学习到的强化学习算法和强化学习基本理论思想。

Part1 什么是强化学习

强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。
核心思想: 智能体agent在环境environment中学习,根据环境的状态state(或观测到的observation),执行动作action,并根据环境的反馈 reward(奖励)来指导更好的动作。
注意: 从环境中获取的状态,有时候叫state,有时候叫observation,这两个其实一个代表全局状态,一个代表局部观测值,在多智能体环境里会有差别,但我们刚开始学习遇到的环境还没有那么复杂,可以先把这两个概念划上等号。

有人说,强化学习的难点就是写环境。

Part2 强化学习能做什么

实际上不同于深度学习,强化学习处理的是新的领域,如果你在深度中研究的是图像领域,那强化学习中可能没有很成熟的模型去做相同的事情。

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

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

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

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

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

Part5 强化学习的算法和环境

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

Part6 实践 熟悉强化学习环境

PARL开源库地址:https://github.com/PaddlePaddle/PARL

强化学习常用算法

1. 表格型方法——Sarsa
Sarsa 简介:Sarsa全称是state-action-reward-state’-action’,目的是学习特定的state下,特定action的价值Q,最终建立和优化一个Q表格,以state为行,action为列,根据与环境交互得到的reward来更新Q表格,更新公式为:
在这里插入图片描述Sarsa在训练中为了更好的探索环境,采用ε-greedy方式来训练,有一定概率随机选择动作输出。

2. 表格型方法—— Q-learning
Q-learning简介:Q-learning也是采用Q表格的方式存储Q值(状态动作价值),决策部分与Sarsa是一样的,采用ε-greedy方式增加探索。
Q-learning跟Sarsa不一样的地方是更新Q表格的方式

Sarsa是on-policy的更新方式,先做出动作再更新。
Q-learning是off-policy的更新方式,更新learn()时无需获取下一步实际做出的动作next_action,并假设下一步动作是取最大Q值的动作。

Q-learning的更新公式为:
在这里插入图片描述
3. Lesson 3 神经网络方法求解RL——DQN
**DQN简介:**上节课介绍的表格型方法存储的状态数量有限,当面对围棋或机器人控制这类有数不清的状态的环境时,表格型方法在存储和查找效率上都受局限,DQN的提出解决了这一局限,使用神经网络来近似替代Q表格。
本质上DQN还是一个Q-learning算法,更新方式一致。为了更好的探索环境,同样的也采用ε-greedy方法训练。
在Q-learning的基础上,DQN提出了两个技巧使得Q网络的更新迭代更稳定。
经验回放 Experience Replay:主要解决样本关联性和利用效率的问题。使用一个经验池存储多条经验s,a,r,s’,再从中随机抽取一批数据送去训练。
固定Q目标 Fixed-Q-Target:主要解决算法训练不稳定的问题。复制一个和原来Q网络结构一样的Target Q网络,用于计算Q目标值。

4. Lesson 4 策略梯度方法求解RL——Policy Gradient
Policy Gradient简介:在强化学习中,有两大类方法,一种基于值(Value-based),一种基于策略(Policy-based)

Value-based的算法的典型代表为Q-learningSARSA,将Q函数优化到最优,再根据Q函数取最优策略。
Policy-based的算法的典型代表为Policy Gradient,直接优化策略函数。
采用神经网络拟合策略函数,需计算策略梯度用于优化策略网络。

优化的目标是在策略π(s,a)的期望回报:所有的轨迹获得的回报R与对应的轨迹发生概率p的加权和,当N足够大时,可通过采样N个Episode求平均的方式近似表达。
在这里插入图片描述
优化目标对参数θ求导后得到策略梯度
在这里插入图片描述
5. Lesson 5 连续动作空间上求解RL——DDPG
DDPG简介:DDPG的提出动机其实是为了让DQN可以扩展到连续的动作空间。DDPG借鉴了DQN的两个技巧:经验回放固定Q网络。DDPG使用策略网络直接输出确定性动作。DDPG使用了Actor-Critic的架构

作业参考代码:https://github.com/PaddlePaddle/PARL/tree/develop/examples/tutorials

一、强化学习(RL)初印象
    RL概述、入门路线
    实践:环境搭建(lesson1 的代码提供了格子环境世界的渲染封装)
二、基于表格型方法求解RL
    MDP、状态价值、Q表格
    实践: Sarsa、Q-learning
三、基于神经网络方法求解RL
    函数逼近方法
    实践:DQN
四、基于策略梯度求解RL
    策略近似、策略梯度
    实践:Policy Gradient
五、连续动作空间上求解RL
    实战:DDPG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值