强化学习——强化学习概述(上)

简介: 强化学习——强化学习概述

文章目录


1.强化学习 Reinforcement Learning

1.1. 强化学习的目的

1.2. 强化学习的过程

1.3. 强化学习的特点

2. 序列决策过程 Sequential Decision Making

2.1. 智能体(Agent)与动作空间(Action Spaces)

2.1.1. 智能体 Agent

2.1.1.1. 策略函数

2.1.1.2. 价值函数

2.1.1.3. 模型

2.1.1.4. 智能体的分类

2.1.2. 动作空间 Action Spaces

2.2. 部分可观测马尔科夫决策过程 POMDP

2.2.1. 马尔科夫过程 MDP

2.2.2. 部分可观测马尔科夫决策过程 POMDP

3. 学习与规划 Learning and Planning

4. 探索与利用 Exploration and Exploitation

4.1. 权衡 Trade-Off

4.2. 多臂赌博机 Multi-armed Bandit


正文


1.强化学习 Reinforcement Learning


强化学习是机器学习的一个子类别,它模拟了人类进行学习的过程,即从一开始完全随机的进行行动,通过不断地尝试,从错误中学习,最后找到规律,找到了达到目的的方法。


1.1. 强化学习的目的


强化学习中包含了两个实体,智能体(Agent)和环境(environment),如下图所示:

22.png

名词解释

智能体(Agent):强化学习算法

环境(Environment):Agent的作用空间,可以认为除Agent外的一切皆为环境。

行为(Action):也称动作、策略、决策。指的是Agent的输出,作用于环境

环境的状态(State/Observation):Observation指的是被Agent观测到的部分环境的状态,State指的是整个环境的状态。在本文中,未特定说明的“状态”、“State”均指“Observation”,也就是被Agent观测到的部分环境的状态。

反馈(Reward):量化后的反馈也称奖励。反馈指的是Agent的行为作用于Environment后,环境中的某一个特定的变量产生的影响。


如果我们用学术化一点的语言来描述强化学习,可以表达为:强化学习的目的就是让一个智能体(Agent) 在一个复杂不确定的环境(Environment)里面去极大化它能获得的反馈(Reward)。


举个例子,在现实世界中,我们可以将人看做Agent,整个世界看做Environment,人不断地在世界中进行各种行为(Action),生存情况(Reward)也在不断变化,人的最终目的就是学会通过自己的行为,使自己在世界中的生存情况变得更好。


1.2. 强化学习的过程


在强化学习过程中,智能体(Agent) 跟 环境(Environment) 一直在交互。智能体(Agent) 在 环境(Environment) 中获取到 环境的状态(State),并根据它做出一个 行为(Action),这个 行为(Action) 会导致 环境的状态(State) 发生变化,并且 智能体(Agent) 会从 环境(Environment) 的变化中得到一定的 反馈(Reward),该 反馈(Reward) 用于 智能体(Agent) 判断自己刚才的 行为(Action) 是否合理。


根据强化学习的目的,我们可以知道,Agent采取的Action能获得越好的Reward,说明Agent越成功。


强化学习的一次训练可以称为一个回合(episode)或试验(trial),当前的 Agent 去跟环境交互,会得到一堆观测。每一个观测都可视为一个轨迹(trajectory)。轨迹就是当前的Observation以及它采取的Action,即状态和动作的一个序列:

23.png

在τ中,每一对( s i , a i ) 都有一个r i ,最后一对状态-动作( s n , a n )结束后,Agent就会知道到底自己的最终反馈R = ∑ r i  是多少。我们可以通过观测序列以及 Eventual Reward 来训练这个 Agent ,使它尽可能地采取可以获得这个 Eventual Reward 的动作。


1.3. 强化学习的特点


首先我们对比一下监督学习和强化学习:


监督学习(Supervised Learning)需要有一大堆带有标注的独立数据,这些数据可以用散点图表示。监督学习分类器为了分辨出这些不同的数据,训练过程中就需要将预测结果与标注(label)进行比对,比对结果通常用损失函数(loss function)表示,监督学习分类器就是根据损失函数来修正自己的预测过程。

强化学习(Reinforcement Learning)通常需要前后关联的数据输入,数据的连续性很强。另一方面,强化学习的反馈通常来的很慢,即 延迟反馈(Delayed Reward) 现象,一个很棒的策略也许并不会立刻带来高反馈,一个错误的策略也不一定会立刻导致低反馈。就类似我们今天看了书并不会立刻带来成绩的提升,今天没看书也并不会立刻让自己不及格。所以强化学习这么困难的原因是没有得到很好的反馈,一个很好的反馈通常需要一段时间内的策略积累。

24.png


从上面的比较中我们可以看出强化学习大致有以下四个特点:


时间相关(Time matters)

强化学习的输入有很强的时间连续性,并不是像监督学习的样本都是独立分散的;

依赖反馈

强化学习Agent并没有被告诉什么是正确的策略。Agent需要自己去发现哪些策略可以使得它最后得到Reward尽可能高,这只能在不停地尝试中通过Reward来调整策略;

试错探索(Trial-and-Error Exploration)

Agent 是通过不断地试错探索(Trial-and-Error Exploration)来提高自己的能力的。Exploration(探索) 和 Exploitation(利用) 是强化学习里面非常核心的一个问题,通常,强化学习需要在 Exploration 和 Exploitation 之间取得一个权衡(Trade-Off),这点在2.4. 探索与利用 Exploration and Exploitation中还会有解释。

延迟反馈(Delayed Reward)

强化学习有很严重的延迟反馈(Delayed Reward)现象,会在策略完成一段时间之后再通过反馈信号(Reward Signal)来对策略的合理性作出判断。由于没有得到即时反馈,Agent 的学习显得非常困难。当你采取一个行为过后,如果是监督学习,你就立刻可以获得一个指引,就说你现在做出了一个错误的决定,那么正确的决定应该是谁。而在强化学习里面,环境可能会告诉你这个行为是错误的,但是它并没有告诉你正确的行为是什么。而且更困难的是,它可能是在一两分钟过后告诉你错误,它再告诉你之前的行为到底行不行。

强化学习的特点决定了它具有很强的自我探索能力,通常不需要像监督学习那要依靠人类,所以它具有超越人类的潜力,因为从强化学习的角度讲,人类处理问题的过程也是一个强化学习的过程,因此高速运行的计算机可以有更多的试错机会去尝试那些人类未曾尝试过的方法,其中就可能包含了比人类更好的方法。

25.jpg


2. 序列决策过程 Sequential Decision Making


2.1. 智能体(Agent)与动作空间(Action Spaces)


2.1.1. 智能体 Agent


对于一个强化学习 Agent,它有如下组成成分:


Agent 有一个策略函数(Policy Function)。Agent会用这个策略函数来选取下一步的策略;

Agent 有一个价值函数(Value Function)。价值函数用来对当前Observation进行评估,也就是评估当前进入的这个Observation,可以对后面的Reward带来多大的影响。当价值函数大的时候,说明当前的Observation越有利;

Agent 有一个模型(Model)。模型表示了 Agent 在这个Observation学习到的Actions。


2.1.1.1. 策略函数


策略(Policy)决定了Agent 的Action,它是一个函数,把输入的Observation变成Action。


通常有两种 Policy:


随机性策略 Stochastic Policy

随机性策略会得到多个Action以及它们的概率,对所有Action根据概率抽选,最终确定一个输出Action。表示为:

13.png

确定性策略 Deterministic Policy

确定性策略也会得到多个Action以及它们的概率,但永远只输出概率最高的那个Action,而不是进行抽选。表示为:

14.png

通常情况下,强化学习一般使用随机性策略。随机性策略有很多优点:


在学习时可以通过引入一定随机性来更好地探索环境,使Agent发现更好的策略的成为可能;

随机性策略的动作具有多样性,这一点在多个Agent博弈时也非常重要。采用确定性策略的Agent总是对同样的环境做出相同的动作,会导致它的策略很容易被预测。


2.1.1.2. 价值函数


价值函数的定义其实是一个期望,一般是指策略函数的期望。可以表达为:期望 E π ,其中π是指 π 函数, π 函数代表了已知某一个策略函数(Policy Function)可以得到的反馈。

价值函数可以表示为:


33.png

通常在价值函数里需要设置一个折扣因子(Discount Factor),用来避免在循环或者无限马尔科夫决策过程中产生无限回报。在循环或者无限的马尔科夫过程中,会一次又一次不断地的得到Reward,因此需要加入折扣因子来避免无穷大或者无穷小的值函数,无穷大或者无穷小的值函数通常是无意义的,在2.2.1. 马尔科夫过程 MDP中有取值范围的定义。


价值函数的另一种表达是Q函数,Q函数里面包含两个变量:状态和动作。当有了一个Q函数后,在Agent观察到某一种Observation时,能得到最优Reward的Action就可以通过这个Q函数求出。


Q函数可以表示为:


34.png


2.1.1.3. 模型


模型预测了下一个状态会是什么样的,就是说下一步的环境状态和Reward取决于你当前的状态以及你当前采取的行为。它由两个部分组成:


Probability,用于表示环境的转移状态;

反馈函数,用于表示当Agent在当前Observation采取了某一个行为时,可以得到多大的反馈。

可以表示为:


32.png

模型对下一状态的预测:模型对下一Reward的预测:

36.png

2.1.1.4. 智能体的分类


根据强化学习 Agent 的不同特点,可以把 Agent 进行归类:


Value-based Agent,基于价值的 Agent。

Agent通过价值函数来决定价值最大的动作。基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于行为集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。代表算法有 Q-learning、Sarsa 等;

Policy-based Agent,基于策略的 Agent。

Agent会制定一套动作策略(确定在给定Observation下采取何种动作),并根据这一套策略选择Action。强化学习算法直接对策略进行优化,使制定的策略能够获得最高的反馈。代表算法有Policy Gradient算法等

Actor-Critic Agent,它是Value-based 和Policy-based 的结合。

Actor-Critic 算法同时使用策略和价值评估来做出决策,其中,Agent会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。

此外,还可以通过 Agent 有没有学习环境模型来分类:


Model-based RL Agent,基于模型的强化学习Agent,根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;

Model-free RL Agent,免模型的强化学习Agent,不对环境进行建模,直接与真实环境进行交互来学习到最优策略。它通过学习 Value Function 和 Policy Function 进行决策,通常需要大量的采样来估计状态、动作及反馈函数,从而优化动作策略。

总的来说,有模型学习相比于免模型学习仅仅多出一个步骤,即对真实环境进行建模。因此,一些有模型的强化学习方法,也可以在免模型的强化学习方法中使用。在实际应用中,如果不清楚该用有模型强化学习还是免模型强化学习,可以先思考一下,在Agent执行动作前,是否能对下一步的状态和反馈进行预测,如果可以,就能够对环境进行建模,从而采用有模型学习。


目前,大部分深度强化学习方法都采用了免模型学习,这是因为:


免模型学习更为简单直观且有丰富的开源资料,像 DQN、AlphaGo 系列等都采用免模型学习;

在目前的强化学习研究中,大部分情况下环境都是静态的、可描述的,Agent的状态是离散的、可观察的(如 Atari 游戏平台),这种相对简单确定的问题并不需要评估状态转移函数和反馈函数,直接采用免模型学习,使用大量的样本进行训练就能获得较好的效果。

以上所有的分类,均可用一张饼图表示:

41.png


2.1.2. 动作空间 Action Spaces


不同的环境允许不同种类的动作。在给定的环境中,有效动作的集合经常被称为动作空间(Action Space)。

42.jpg

例如围棋这样的环境有离散动作空间(Discrete Action Spaces),在这个动作空间里,Agent的动作数量是有限的。在其他环境,比如在工厂里的机械臂就有连续动作空间(Continuous Action Spaces) ,在连续空间中,动作是实值向量。


Reward 是从环境中选取的一个反馈信号,这个信号记录了这个 Agent 在某一步采取了某个策略是否得到 Reward 以及它的大小。

相关文章
|
9月前
|
机器学习/深度学习 算法 前端开发
经典机器学习系列(六)【集成学习】
经典机器学习系列(六)【集成学习】
154 2
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
强化学习第1天:强化学习概述
强化学习第1天:强化学习概述
28 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
|
1月前
|
机器学习/深度学习 人工智能 运维
|
9月前
|
机器学习/深度学习 算法 自动驾驶
【强化学习】什么是“强化学习”
强化学习是机器学习领域的一种重要方法,主要通过使用环境的反馈信息来指导智能体的行为,并且通过智能体收集的经验数据对自身策略进行优化。在强化学习中,我们通常用“智能体”来表示学习机器或者一个决策实体。这个智能体在某个环境中采取行动,然后收到环境的反馈信号(奖励或者惩罚),从而逐渐学习到一个最优的行动策略。在强化学习中,主要涉及到一些概念,如状态、行动、奖励、策略等等。状态指的是输入进入智能体算法的集合,行动指的是智能体做出的反应,奖励通常是指环境给予智能体的反馈信息,策略指的是智能体在某种状态下选择的行为。
135 0
【强化学习】什么是“强化学习”
|
9月前
|
机器学习/深度学习 决策智能
初探强化学习
初探强化学习
96 0
|
9月前
|
机器学习/深度学习 人工智能 算法
手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?
手把手教你强化学习 (一) 什么是强化学习?与机器学习有什么区别?
245 3
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习、深度学习和强化学习的关系和区别是什么?
众所周知,人工智能领域知识庞大且复杂,各种专业名词层出不穷,常常让初学者看得摸不着头脑。比如“机器学习”、“深度学习”、“强化学习”就属于这类名词。那么,针对这三者各自具体有哪些内容?三者是否有相关性?不同核心及侧重点是什么?以及各自的应用领域有哪些?应用的前景如何?等问题,本文根据百度百科等相关资料里的内容进行整理,形成了以下详细的阐述。
494 0
|
7月前
|
机器学习/深度学习 算法 自动驾驶
强化学习模型
强化学习模型
128 0
|
9月前
|
机器学习/深度学习 算法 自动驾驶
手把手教你强化学习 (七) 强化学习中的无模型控制
手把手教你强化学习 (七) 强化学习中的无模型控制
170 0