强化学习RL学习笔记1-概述(1)

强化学习笔记专栏传送

上一篇:这是第一篇
下一篇:强化学习RL学习笔记2-概述(2)

前言

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。

本文是笔者对强化学习的一点学习记录,成文于笔者刚开始接触强化学习期间,主要内容参考LeeDeepRL-Notes,学习期间很多概念和理论框架还很不成熟,若文中存在错误欢迎批评指正,也欢迎广大学习者沟通交流、共同进步。


Reinforcement Learning(强化学习)

1.强化学习讨论的问题

强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励

下方示意图由两部分组成:agent 和 environment。

在这里插入图片描述

在强化学习过程中,agent 跟 environment 一直在交互

Agent 在环境里面获取到状态,agent 会利用这个状态输出一个 action,一个决策。然后这个决策会放到环境之中去,环境会通过这个 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。

2.强化学习和监督学习对比

监督学习过程中,有两个假设:

  • 输入的数据(标注的数据)**都是没有关联(独立同分布)**的,尽可能没有关联。因为如果有关联的话,这个网络是不好学习的。
  • 我们告诉 learner 正确的标签是什么,这样它可以通过正确的标签来修正自己的这个预测。

在强化学习过程中,这两点其实都不满足。

  • agent 得到的观测不是个 i.i.d (独立同分布)的分布,输入的前后数据有非常强烈的相关性。
  • learner并没有立刻获得反馈。所以强化学习这么困难的原因是没有得到很好的反馈,然后你依然希望这个 agent 在这个环境里面学习。

强化学习的训练数据就是一个类似玩游戏的过程。从第一步开始,并不知道给定的当前决策会导致游戏胜利还是失败,只有等到有限步决策之后才能得到最终游戏结果。即强化学习训练数据面临延迟奖励(Delayed Reward),所以就使得训练这个网络非常困难。

强化学习的一些特征:

  • 强化学习有 trial-and-error exploration(试错),需要通过探索环境来获取对这个环境的理解
  • 强化学习 agent 会从环境里面获得延迟的奖励(delayed reward)
  • 在强化学习的训练过程中,时间非常重要。因为得到的数据都是有时间关联的,而不是这个 i.i.d 分布的。在机器学习中,如果观测数据有非常强的关联,其实会使得这个训练非常不稳定。这也是为什么在监督学习中,我们希望 data 尽量是 i.i.d 了,这样就可以消除数据之间的相关性。
  • Agent 的行为会影响它随后得到的数据,这一点是非常重要的。在我们训练 agent 的过程中,很多时候我们也是通过正在学习的这个 agent 去跟环境交互来得到数据。所以如果在训练过程中,这个 agent 的模型很快死掉了,那会使得我们采集到的数据是非常糟糕的,这样整个训练过程就失败了。所以在强化学习里面一个非常重要的问题就是怎么让这个 agent 的行为一直稳定地提升。

3.一些概念

下图是强化学习的一个经典例子,就是雅达利的一个叫 Pong 的游戏。这个游戏就是把这个球拍到左边,然后左边这个选手需要把这个球拍到右边。
在这里插入图片描述
在这个 pong 的游戏里面,决策其实就是两个动作:往上或者往下。如果强化学习是通过学习一个 policy network 来分类的话,其实就是输入当前帧的图片,然后 policy network 就会输出所有决策的可能性

在强化学习里面,是通过让它尝试去玩这个游戏,然后直到游戏结束过后,再去说你前面的一系列动作到底是正确还是错误。

在这里插入图片描述
上图的过程是 rollout 的一个过程。Rollout 的意思是从当前帧去生成很多局的游戏。

当前的 agent 去跟环境交互,你就会得到一堆观测。你可以把每一个观测看成一个轨迹(trajectory)。轨迹就是当前帧以及它采取的策略,即状态和动作的一个序列:

在这里插入图片描述

最后结束过后,会知道到底有没有把这个球击到对方区域,对方没有接住,赢了还是输了。可以通过观测序列以及 eventual reward 来训练这个 agent ,使它尽可能地采取可以获得这个 eventual reward 的动作。

一场游戏叫做一个 episode(回合) 或者 trial(试验)


可以把神经网络放到强化学习里面:

  • 之前的强化学习,比如 TD-Gammon 玩 backgammon 游戏,其实是设计特征,然后通过训练价值函数的一个过程,先设计了很多手工的特征,这个手工特征可以描述现在整个状态。得到这些特征过后,就可以通过训练一个分类网络或者分别训练一个价值估计函数来做出决策。
  • 现在有了深度学习、神经网络,可以把这个过程改进成一个 end-to-end training 的过程。直接输入这个状态,不需要去手工设计特征,就可以直接输出 action。那么就可以用一个神经网络来拟合value function 或 policy network,省去 了 feature engineering 的过程。

Introduction to Sequential Decision Making(序列决策)

1.Agent and Environment

在这里插入图片描述
强化学习研究的问题是 agent 跟environment交互,上图左边画的是一个 agent,agent 一直在跟environment进行交互。这个 agent 把它输出的动作给environment,environment取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。通过这样的交互过程会产生很多观测,agent 的目的是从这些观测之中学到能极大化奖励的策略。

2.Reward

奖励是由environment给的一个反馈信号,这个信号指定了这个 agent 在某一步采取了某个策略是否得到奖励。强化学习的目的就是为了极大化 agent 可以获得的奖励,agent 在这个环境里面存在的目的就是为了极大它的期望积累的奖励

3.Sequential Decision Making

因为存在上文提到的延迟奖励,强化学习过程中需要权衡(trade-off)即时奖励(immediate reward)和长期奖励(long-term reward)。

在跟环境的交互过程中,agent 会获得很多观测。在每一个观测会采取一个动作,它也会得到一个奖励。所以历史是观测、行为、奖励的序列

H t = O 1 , R 1 , A 1 , . . . , A t − 1 , O t , R t H_t=O_1,R_1,A_1,...,A_t-1,O_t,R_t Ht=O1,R1,A1,...,At1,Ot,Rt

Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数:
S t = f ( H t ) S_t=f(H_t) St=f(Ht)

Q: 状态和观测有什么关系?
A: 状态(state) S 是对世界的完整描述,不会隐藏世界的信息。观测(observation) O 是对状态的部分描述,可能会遗漏一些信息。

在 deep RL 中,我们几乎总是用一个实值的向量、矩阵或者更高阶的张量来表示状态和观测。举个例子,我们可以用 RGB 像素值的矩阵来表示一个视觉的观测,我们可以用机器人关节的角度和速度来表示一个机器人的状态。

  • 当 agent 能够观察到环境的所有状态时,我们称这个环境是完全可观测的(fully observed)
  • 另一种情况是 agent 得到的观测并不能包含所有环境运作的状态,就称这个环境是部分可观测的(partially observed)。在这种情况下面,强化学习通常被建模成一个 POMDP 的问题。

部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes, POMDP)是一个马尔可夫决策过程的泛化。POMDP 依然具有马尔可夫性质,但是假设智能体无法感知环境的状态 S,只能知道部分观测值 O。比如在自动驾驶中,智能体只能感知传感器采集的有限的环境信息。

POMDP 可以用一个 7 元组描述:(S,A,T,R,Ω,O,γ),其中 S 表示状态空间,为隐变量,A 为动作空间,T(s’|s,a)为状态转移概率,R 为奖励函数,Ω(o∣s,a) 为观测概率,O 为观测空间,γ 为折扣系数。


Action Spaces(动作空间)

不同的环境允许不同种类的动作。在给定的环境中,有效动作的集合经常被称为动作空间(action space)。像 Atari 和 Go 这样的环境有离散动作空间(discrete action spaces),在这个动作空间里,agent 的动作数量是有限的。在其他环境,比如在物理世界中控制一个 agent,在这个环境中就有连续动作空间(continuous action spaces) 。在连续空间中,动作是实值的向量。


上一篇:这是第一篇
下一篇:强化学习RL学习笔记2-概述(2)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值