深度强化学习笔记(一)强化学习概述
地址:https://datawhalechina.github.io/easy-rl/1.强化学习概述强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。示意图由两部分组成:agent 和 environment。在强化学习过程中,agent 跟 environment 一直在交互。Agent 在环境里面获取到状态,age
地址:https://datawhalechina.github.io/easy-rl/
1.强化学习概述

- 强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。
- 示意图由两部分组成:agent 和 environment。
- 在强化学习过程中,agent 跟 environment 一直在交互。Agent 在环境里面获取到状态,agent
会利用这个状态输出一个动作(action),一个决策。然后这个决策会放到环境之中去,环境会根据 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。
我们可以把强化学习跟监督学习做一个对比。
- 举个图片分类的例子,监督学习(supervised learning)就是说我们有一大堆标注的数据,比如车、飞机、凳子这些标注的图片,这些图片都要满足独立同分布(i.i.d.),就是它们之间是没有关联的。
- 然后我们训练一个分类器,比如说右边这个神经网络。为了分辨出这个图片是车辆还是飞机,训练过程中,我们把真实的标签给了这个网络。当这个网络做出一个错误的预测,比如现在输入了汽车的图片,它预测出来是飞机。我们就会直接告诉它,你这个预测是错误的,正确的标签应该是车。然后我们把这个错误写成一个损失函数(loss function),通过反向传播(Backpropagation)来训练这个网络。
所以在监督学习过程中,有两个假设:
- 输入的数据(标注的数据)都是没有关联的,尽可能没有关联。因为如果有关联的话,这个网络是不好学习的。
- 我们告诉学习器(learner)正确的标签是什么,这样它可以通过正确的标签来修正自己的预测。
在强化学习里面,这两点其实都不满足。举一个 Atari Breakout 游戏的例子,这是一个打砖块的游戏,控制木板,然后把这个球反弹到上面来消除这些砖块。
- 在游戏过程中,大家可以发现这个 agent 得到的观测不是个独立同分布的分布,上一帧下一帧其实有非常强的连续性。这就是说,得到的数据是相关的时间序列数据,不满足独立同分布。
- 另外一点,在玩游戏的过程中,你并没有立刻获得反馈,没有告诉你哪个动作是正确动作。比如你现在把这个木板往右移,那么只会使得这个球往上或者往左上去一点,你并不会得到立刻的反馈。所以强化学习这么困难的原因是没有得到很好的反馈,然后你依然希望 agent 在这个环境里面学习。
强化学习的训练数据就是这样一个玩游戏的过程。你从第一步开始,采取一个决策,比如说你把这个往右移,接到这个球了。第二步你又做出决策,得到的训练数据是一个玩游戏的序列。
比如现在是在第三步,你把这个序列放进去,你希望这个网络可以输出一个决策,在当前的这个状态应该输出往右移或者往左移。这里有个问题:我们没有标签来说明你现在这个动作是正确还是错误,必须等到游戏结束才可能说明,这个游戏可能十秒过后才结束。现在这个动作到底对最后游戏结束能赢是否有帮助,其实是不清楚的。这里就面临延迟奖励(Delayed Reward),所以就使得训练这个网络非常困难。
强化学习输入的是序列数据,而不是像监督学习里面这些样本都是独立的。
- 学习器并没有被告诉你每一步正确的行为应该是什么。学习器需要自己去发现哪些行为可以得到最多的奖励,只能通过不停地尝试来发现最有利的动作。
- Agent 获得自己能力的过程中,其实是通过不断地试错探索(trial-and-error exploration)。
探索(exploration)和利用(exploitation)是强化学习里面非常核心的一个问题。探索:你会去尝试一些新的行为,这些新的行为有可能会使你得到更高的奖励,也有可能使你一无所有。利用:采取你已知的可以获得最大奖励的行为,你就重复执行这个动作就可以了,因为你已经知道可以获得一定的奖励。 - 因此,我们需要在探索和利用之间取得一个权衡,这也是在监督学习里面没有的情况。
- 在强化学习过程中,没有非常强的监督者(supervisor),只有一个奖励信号(reward signal),并且这个奖励信号是延迟的,就是环境会在很久以后告诉你之前你采取的行为到底是不是有效的。Agent 在这个强化学习里面学习的话就非常困难,因为你没有得到即时反馈。当你采取一个行为过后,如果是监督学习,你就立刻可以获得一个指引,就说你现在做出了一个错误的决定,那么正确的决定应该是谁。而在强化学习里面,环境可能会告诉你这个行为是错误的,但是它并没有告诉你正确的行为是什么。而且更困难的是,它可能是在一两分钟过后告诉你错误,它再告诉你之前的行为到底行不行。所以这也是强化学习和监督学习不同的地方。
2.序列决策(Sequential Decision Making)过程
(1)Introduction to Sequential Decision Making
Agent and Environment
强化学习研究的问题是 agent 跟环境交互,上图左边画的是一个 agent,agent 一直在跟环境进行交互。这个 agent 把它输出的动作给环境,环境取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。
通过这样的交互过程会产生很多观测,agent 的目的是从这些观测之中学到能极大化奖励的策略。
Reward
奖励是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了 agent 在某一步采取了某个策略的表现如何。
强化学习的目的就是为了最大化 agent 可以获得的奖励,agent 在这个环境里面存在的目的就是为了极大化它的期望的累积奖励(expected cumulative reward)。
不同的环境,奖励也是不同的。这里给大家举一些奖励的例子。
- 比如说一个下象棋的选手,他的目的其实就为了赢棋。奖励是说在最后棋局结束的时候,他知道会得到一个正奖励或者负奖励。
- 羚羊站立也是一个强化学习过程,它得到的奖励就是它是否可以最后跟它妈妈一块离开或者它被吃掉。
- 在股票管理里面,奖励定义由你的股票获取的收益跟损失决定。
sequential Decision Making
在一个强化学习环境里面,agent 的目的就是选取一系列的动作来极大化它的奖励,所以这些采取的动作必须有长期的影响。但在这个过程里面,它的奖励其实是被延迟了,就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。
也就是说当 agent 只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed)。在这种情况下面,强化学习通常被建模成一个 POMDP 的问题。
部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes, POMDP)是一个马尔可夫决策过程的泛化。
(2)Major Components of an RL Agent
对于一个强化学习 agent,它可能有一个或多个如下的组成成分:
- 首先 agent 有一个 策略函数(policy function),agent 会用这个函数来选取下一步的动作。
一种是 stochastic policy(随机性策略);一种是 deterministic policy(确定性策略) - 然后它也可能生成一个价值函数(value function)。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。
- 另外一个组成成分是模型(model)。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。
当我们有了这三个组成部分过后,就形成了一个 马尔可夫决策过程(Markov Decision Process)。这个决策过程可视化了状态之间的转移以及采取的行为。
(3)Types of RL Agents
根据 agent 学习的东西不同,我们可以把 agent 进行归类。
- 基于价值的 agent(value-based agent)。
这一类 agent 显式地学习的是价值函数,
隐式地学习了它的策略。策略是从我们学到的价值函数里面推算出来的。 - 基于策略的 agent(policy-based agent)。
这一类 agent 直接去学习 policy,就是说你直接给它一个状态,它就会输出这个动作的概率。
在基于策略的 agent 里面并没有去学习它的价值函数。 - 把 value-based 和 policy-based 结合起来就有了 Actor-Critic agent。这一类 agent 把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。
在基于策略迭代的强化学习方法中,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。
而在基于价值迭代的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。
基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于行为集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。
基于价值迭代的强化学习算法有 Q-learning、 Sarsa 等,而基于策略迭代的强化学习算法有策略梯度算法等。此外, Actor-Critic 算法同时使用策略和价值评估来做出决策,其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。
习题
Chapter1 强化学习概述
1 Keywords
- 强化学习(Reinforcement Learning):Agent可以在与复杂且不确定的Environment进行交互时,尝试使所获得的Reward最大化的计算算法。
- Action: Environment接收到的Agent当前状态的输出。
- State:Agent从Environment中获取到的状态。
- Reward:Agent从Environment中获取的反馈信号,这个信号指定了Agent在某一步采取了某个策略以后是否得到奖励。
- Exploration:在当前的情况下,继续尝试新的Action,其有可能会使你得到更高的这个奖励,也有可能使你一无所有。
- Exploitation:在当前的情况下,继续尝试已知的可以获得最大Reward的过程,即重复执行这个 Action 就可以了。
- 深度强化学习(Deep Reinforcement Learning):不需要手工设计特征,仅需要输入State让系统直接输出Action的一个end-to-end training的强化学习方法。通常使用神经网络来拟合 value function 或者 policy network。
- Full observability、fully observed和partially observed:当Agent的状态跟Environment的状态等价的时候,我们就说现在Environment是full observability(全部可观测),当Agent能够观察到Environment的所有状态时,我们称这个环境是fully observed(完全可观测)。一般我们的Agent不能观察到Environment的所有状态时,我们称这个环境是partially observed(部分可观测)。
- POMDP(Partially Observable Markov Decision Processes):部分可观测马尔可夫决策过程,即马尔可夫决策过程的泛化。POMDP 依然具有马尔可夫性质,但是假设智能体无法感知环境的状态 s,只能知道部分观测值 o。
- Action space(discrete action spaces and continuous action spaces):在给定的Environment中,有效动作的集合经常被称为动作空间(Action space),Agent的动作数量是有限的动作空间为离散动作空间(discrete action spaces),反之,称为连续动作空间(continuous action spaces)。
- policy-based(基于策略的):Agent会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。
- valued-based(基于价值的):Agent不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。
- model-based(有模型结构):Agent通过学习状态的转移来采取措施。
- model-free(无模型结构):Agent没有去直接估计状态的转移,也没有得到Environment的具体转移变量。它通过学习 value function 和 policy function 进行决策。
2 Questions
强化学习的基本结构是什么?
答:本质上是Agent和Environment间的交互。具体地,当Agent在Environment中得到当前时刻的State,Agent会基于此状态输出一个Action。然后这个Action会加入到Environment中去并输出下一个State和当前的这个Action得到的Reward。Agent在Environment里面存在的目的就是为了极大它的期望积累的Reward。
强化学习相对于监督学习为什么训练会更加困难?(强化学习的特征)
答:
强化学习处理的多是序列数据,其很难像监督学习的样本一样满足IID(独立同分布)条件。
强化学习有奖励的延迟(Delay Reward),即在Agent的action作用在Environment中时,Environment对于Agent的State的奖励的延迟(Delayed Reward),使得反馈不及时。
相比于监督学习有正确的label,可以通过其修正自己的预测,强化学习相当于一个“试错”的过程,其完全根据Environment的“反馈”更新对自己最有利的Action。
强化学习的基本特征有哪些?
答:
- 有trial-and-error exploration的过程,即需要通过探索Environment来获取对这个Environment的理解。
- 强化学习的Agent会从Environment里面获得延迟的Reward。
- 强化学习的训练过程中时间非常重要,因为数据都是有时间关联的,而不是像监督学习一样是IID分布的。
- 强化学习中Agent的Action会影响它随后得到的反馈。
更多推荐
所有评论(0)