强化学习(Reinforcement Learning)

https://www.zhihu.com/topic/20039099/intro

强化学习

强化学习主体主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。

智能体执行某个动作后,环境将会转换到一个新的状态,对于该新的状态环境给出奖励信号,随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作
(智能体通过状态、动作、奖励与环境进行交互)
强化学习(Reinforcement Learning)_第1张图片
智能体通过强化学习,可以知道自己在什么状态下,应该采取什么样的动作使得自身获得最大奖励。
策略:强化学习是从环境状态到动作的映射学习,该映射关系称为策略,即智能体如何选择动作的思考过程;
目标:智能体自动寻找在连续时间序列里的最优策略,而最优策略通常是指最大化长期累积奖励。
机器学习可主要分为:监督学习,无监督学习和强化学习

强化学习是一种通过交互的目标导向学习方法,旨在找到连续时间序列的最优策略,不断的根据换将的反馈信息进行试错学习,进而调整优化自身的状态信息,其目的是为了找到最优策略、或者找到最大奖励的过程。(基本思想是通过Agent与环境不断交互,通过一些奖赏机制来使Agent逐渐学习出一条最优的决策)

https://www.zhihu.com/question/41775291/answer/602826860

强化学习的三种方法:

基于价值(Valued-based),基于策略(policy-based),基于模型(model-based)
1.基于价值(目标是优化价值函数),预测未来的奖励值;
2.基于策略(直接优化策略函数),直接输出下一步要采取的各种动作的概率,根据概率采取行动;
3.基于模型(每个环境都需要一个不同的模型).

https://www.zhihu.com/question/49230922/answer/605669317
https://zhuanlan.zhihu.com/p/57099428
exploration:利用经验做出最优选择;
exploitation:有选择的放弃一些奖励,战略性地放弃当前的最优选择(为了更多地得到关于环境的信息)

https://spinningup.openai.com/en/latest/spinningup/rl_intro.html

关于强化学习的一些术语

1.States and Observations

状态s表示对于整个状态的完整描述
观测o表示状态的部分描述,可能省略一些信息
在深度强化学习中,通常使用实值向量,矩阵以及高阶张量来表示状态和观测
当智能体能够观测环境的全部状态时,我们称环境是可以全观测的,否则环境是部分可观测的。
一般可表示为(动作|状态),基于某个状态下做出动作

2.Action Spaces

不同的环境可能有不同的动作集合,给定环境下的有效动作被称为动作空间,对于某些环境而言,动作空间是离散的(如Go 和 Atari),智能体的移动动作也是有限的;对于某些环境,其动作空间可能是连续的,如智能体控制现实世界中的一个机器人,在连续的动作空间中,动作都是实值向量。

3.Policies

策略指的是智能体决定做出何种动作时使用的规则,如果其是固定的,则通常使用 a t = μ ( s t ) a_t=\mu(s_t) at=μ(st)来表示,如果是随机的,则使用 a t ∼ π ( ⋅ ∣ s t ) a_t \sim \pi(\cdot|s_t) atπ(st)来表示.

4.Trajectories

轨迹指的是在现实世界中的状态和动作:
τ = ( s 0 , a 0 , s 1 , a 1 , . . . ) \tau = (s_0,a_0,s_1,a_1,...) τ=(s0,a0,s1,a1,...)
第一个状态\(s_0\)是通过开始状态分布随机采样得到的,可表示为:
s 0 ∼ ρ 0 ( ⋅ ) s_0 \sim \rho_0(\cdot) s0ρ0()
状态转移:t时刻状态为\(s_t\),在t+1时刻状态变为\(s_{t+1}\)
状态转移由外部环境管理,仅仅依赖于当前的动作\(a_t\),若其是固定的时候则有:
s t + 1 = f ( s t , a t ) s_{t+1}=f(s_t, a_t) st+1=f(st,at)
如果是随机的,则有:
s t + 1 ∼ P ( ⋅ ∣ s t , a t ) s_{t+1} \sim P(\cdot|s_t, a_t) st+1P(st,at)
动作是智能体根据其策略所得到的。

5.Reward and Return

奖励函数在强化学习中是尤为重要的,依赖于当前的状态,和刚刚执行的动作,以及下一个状态
r t = R ( s t , a t , s t + 1 ) r_t = R(s_t,a_t,s_{t+1}) rt=R(st,at,st+1)
有时候可以简化为仅仅依赖于当前状态,\(r_t = R(s_t)\),或者值依赖于状态和动作组\(r_t = R(s_t,a_t)\)
智能体的目标是最大化轨迹所产生的累积奖励值,可表示为\( R(\tau)\)
回报包括两种:
一种回报是有限时间无折扣汇报(finite-horizon undiscounted return),只计算固定窗口步长的回报和:
R ( τ ) = ∑ t − 0 T r t R(\tau)=\sum_{t-0}^{T}r_t R(τ)=t0Trt
另外一种回报是无限时间有折扣的汇报,计算智能体获取所有的奖励值,但是奖励值随着时间的推移是有进行折扣的,因此引入折扣因子\(\gamma\)
R ( τ ) = ∑ t = 0 ∞ γ t r t R(\tau)=\sum_{t=0}^{\infty}\gamma^tr_t R(τ)=t=0γtrt

为什么需要折扣因子?而不是直接使用全部的奖励值?

折扣因子在直观上是可解释的,并且在对于数学计算也是便利的。
直观上:当前时刻最在意的奖励值肯定是当前时刻做出的action得到的奖励值,其次才是前期奖励或者后续奖励值。于数学上而言,无限的奖励值相加不一定能够收敛到一个有限值,而且在方程上也是很难处理的,引入折扣因子和合理的条件,这个无限求和是收敛的。

RL Problem

无论是有限时间轴上无折扣的奖励,还是无限时间轴上有折扣的奖励方法,也不管究竟选择何种策略,强化学习的目标就是为了找到一个策略能够最大化智能体根据该策略获得的期望回报(expected reward)
首先了解一下关于轨迹的概率分布:
第T步轨迹的概率为:
P ( τ ∣ π ) = ρ 0 ( s 0 ) ∏ t = 0 T − 1 P ( s t + 1 ∣ s t , a t ) π ( a t ∣ s t ) P(\tau|\pi) =\rho _0(s_0)\prod_{t=0}^{T-1}P(s_{t+1}|s_t,a_t)\pi(a_t|s_t) P(τπ)=ρ0(s0)t=0T1P(st+1st,at)π(atst)

对于任意一种策略,得到的回报值为:
J ( π ) = ∫ τ P ( τ ∣ π ) R ( τ ) = E τ ∼ π [ R ( τ ) ] J(\pi)=\int_\tau P(\tau|\pi)R(\tau)=E_{\tau \sim \pi}[R(\tau)] J(π)=τP(τπ)R(τ)=Eτπ[R(τ)]

关于强化学习的优化问题可以表示为如下所述:
π ∗ = a r g max ⁡ π J ( π ) \pi^{*}=arg\max_{\pi}J(\pi) π=argπmaxJ(π)
\(\pi^{*}\)即就是所求的最优策略

价值函数

知道一个状态或者状态动作组通常是非常有用的,所谓价值函数,我们指的是期望回报(从一个开始状态到后续沿着某个特定的策略进行act)
主要包括四种主要的函数:
1.The On-Policy Value Function
根据初始状态s沿着policy \(\pi\)进行act
V π ( s ) = E τ ∼ π [ R ( τ ) ∣ s 0 = s ] V^{\pi}(s)=E_{\tau \sim \pi}[R(\tau)|s_0=s] Vπ(s)=Eτπ[R(τ)s0=s]
2.The On-Policy Action-Value Function
根据初始状态s,任意的动作a,沿着policy \(\pi\)进行act
Q π ( s , a ) = E τ ∼ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^{\pi}(s,a)=E_{\tau \sim \pi}[R(\tau)|s_0=s,a_0=a] Qπ(s,a)=Eτπ[R(τ)s0=s,a0=a]
3.The Optimal Value Function(优化函数)
V ∗ ( s ) = max ⁡ π E τ ∼ π [ R ( τ ) ∣ s 0 = s ] V^{*}(s)=\max _{\pi}E_{\tau \sim \pi}[R(\tau)|s_0=s] V(s)=πmaxEτπ[R(τ)s0=s]
4.The Optimal Action-Value Function(优化函数)
Q ∗ ( s , a ) = max ⁡ π E τ ∼ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^{*}(s,a)=\max _{\pi}E_{\tau \sim \pi}[R(\tau)|s_0=s,a_0=a] Q(s,a)=πmaxEτπ[R(τ)s0=s,a0=a]

在价值函数和动作-价值函数之间,有两个重要的关系:
V π ( s ) = E a ∼ π [ Q π ( s , a ) ] V^{\pi}(s)=E_{a\sim\pi}[Q^{\pi}(s,a)] Vπ(s)=Eaπ[Qπ(s,a)]
以及
V ∗ ( s ) = max ⁡ a Q ∗ ( s , a ) V^*(s)=\max_aQ^*(s,a) V(s)=amaxQ(s,a)
这两个关系可以通过定义直接证明。

The Optimal Q-Function and the Optimal Action

根据最优Q函数的定义,表示获取在初始状态s,以及任意的初始动作a,能够获取最大奖励值的最优策略\(\pi\)
如果我们有了最优策略\(\pi\),那么可以直接获取最优动作序列,\(a^*(s)\)
a ∗ ( s ) = a r g max ⁡ a Q ∗ ( s , a ) a^*(s)=arg \max_a{Q^*(s,a)} a(s)=argamaxQ(s,a)
可能会有多个最优动作序列,最优策略只不过是随机选择了其中一个。

Advantage Functions

在强化学习中,有时候我们并不需要绝对的知道一个动作有多好,只要相对知道比其他的要好多少就好了,即就是我们想要获取该动作的相对优势值。
相对优势函数:
A π ( s , a ) = Q π ( s , a ) − V π ( s , a ) A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s,a) Aπ(s,a)=Qπ(s,a)Vπ(s,a)
相对优势函数对于计算策略梯度是至关重要的。

你可能感兴趣的:(强化学习)