这里看到知乎上面一个博主做了整理,这里我就引用其内容作为视频的学习笔记,然后补充一些书本上的知识:
王树森老师 DRL 课程笔记 P1-强化学习 (Reinforcement Learning) 基本概念 - 知乎
DRL资料:wangshusen/DRL: Deep Reinforcement Learning

基本概念:

状态(state)/观测(observation) :可以理解为对当前时刻环境的概括 比如屏幕当前的几帧图像 但是由于不一定能够拿到整个环境所有的环境变量,所以也称为观测
状态空间(state space) :所有可能存在状态的集合
动作(action) :智能体基于当前状态所做出的决策
动作空间(action space)
智能体(agent) :强化学习的主题 做决策的单位
环境(environment) :所有可能动作的集合
策略(policy) :根据观测到的状态,如何做出决策,即如何从动作空间中选取一个动作,其一般是一个概率密度函数 π ( a ∣ s ) \pi(a|s) π(as)
奖励(reward) : agent采取action后从环境获得的奖励值 人为设定 也是获得策略的关键
轨迹(trajectory):是指一回合(episode)游戏中,智能体观测到的所有的状态、动 作、奖励:
状态转移(state transition) :指智能体从当前 t 时刻的状态 s 转移到下一个时刻状态为 s′ 的过程:我们用状态转移概率函数来描述 状态转移:
p t ( s ′ ∣ s , a ) = P ( S t + 1 ′ = s ′ ∣ S t = s , A t = a ) pt (s′|s, a) = P(S'_{t+1} = s′|S_t = s, A_t = a) pt(s′∣s,a)=P(St+1=s′∣St=s,At=a)

蒙特卡洛估计:通过随机采样来作为真实值的估计
回合(episodes): 指智能体从游戏开始到通关或者结束的过程 和epoch有点相似但是又不相同
马尔可夫性质(Markov property):下一时刻状态 St+1 仅依赖于当前状态 St 和动作 At,而不依赖于过去的状态和动作
期望: E X ∼ p ( ⋅ ) [ h ( X ) ] = ∑ x ∈ X p ( x ) ⋅ h ( x ) . E_{X ∼p(·)} [h(X)] = ∑_{x∈X} p(x) · h(x). EXp()[h(X)]=xXp(x)h(x).

完整的一个强化学习交互流程:
![[完整的一个强化学习交互流程.png]]
在这里插入图片描述

![[RL基本框架图.png]]
在这里插入图片描述
![[agent的轨迹.png]]
在这里插入图片描述

随机性的来源:

动作的随机性来自于随机决策。 π ( a ∣ s ) \pi(a|s) π(as) 虽然给出action的概率分布,但是并不代表确定选择最大概率的action,当然在求期望时会在这里取最大值

状态的随机性来自于状态转移函数,当状态 s 和动作 a 都被确定下来,下一个状态仍然有随机性。计算所有可能的状态的概率,然后做随机抽样,得到新的状态s‘
p t ( s ′ ∣ s , a ) = P ( S t + 1 ′ = s ′ ∣ S t = s , A t = a ) pt (s′|s, a) = P(S'_{t+1} = s′|S_t = s, A_t = a) pt(s′∣s,a)=P(St+1=s′∣St=s,At=a)

回报和价值函数

回报(return) 是从当前时刻开始到本回合结束的所有奖励的总和,也叫做累计奖励
U t = R t + R t + 1 + R t + 2 + R t + 3 + ⋅ ⋅ ⋅ + R n . Ut = Rt + Rt+1 + Rt+2 + Rt+3 + · · · + Rn. Ut=Rt+Rt+1+Rt+2+Rt+3+⋅⋅⋅+Rn.
我们训练 agent的目标是为了最大化回报,而不是当前奖励

折扣回报:给未来的奖励做折扣
U t = R t + γ ⋅ R t + 1 + γ 2 ⋅ R t + 2 + γ 3 ⋅ R t + 3 + ⋅ ⋅ ⋅ Ut = Rt + γ · Rt+1 + γ^2 · Rt+2 + γ^3 · Rt+3 + · · · Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+⋅⋅⋅
回报的随机性来自于未来未知的状态、动作

动作价值函数(action-value function):对 Ut 关于变量 St+1, At+1, · · · , Sn, An 求条件期望,得到:所以 Q π ( s t , a t ) Q_π(st, at) Qπ(st,at)是一个值,一个通过期望运算,我们对所有可能的未来轨迹进行了加权平均
Q π ( s t , a t ) = E S t + 1 , A t + 1 , ⋅ ⋅ ⋅ , S n , A n [ U t ∣ S t = s t , A t = a t ] . Q_π(st, at) = E_{St+1,At+1,··· ,Sn,An} [ Ut | St = st, At = at ] . Qπ(st,at)=ESt+1,At+1,⋅⋅⋅,Sn,An[UtSt=st,At=at].
动作价值函数 Qπ(st, at) 依赖于 st 与 at,而不依赖于 t + 1 时刻及其之后的状态和动作,因为随机变量 St+1, At+1, · · · , Sn, An 都被期望消除了
举个例子:
假设在状态s采取动作a后:
- 30%概率转移到s₁,获得奖励r₁
- 70%概率转移到s₂,获得奖励r₂
Q ( s , a ) = 0.3 × ( r 1 + γ V ( s 1 ) ) + 0.7 × ( r 2 + γ V ( s 2 ) ) Q(s,a) = 0.3 × (r₁ + γV(s₁)) + 0.7 × (r₂ + γV(s₂)) Q(s,a)=0.3×(r1+γV(s1))+0.7×(r2+γV(s2))
Q π ( s t ​ , a t ​ ) = ∑ p ( s ′ ∣ s t ​ , a t ​ ) [ r ( s t ​ , a t ​ , s ′ ) + γ V π ( s ′ ) ] Qπ(st​,at​)=∑ p(s′∣st​,at​)[r(st​,at​,s′)+γVπ(s′)] Qπ(st,at)=p(sst,at)[r(st,at,s)+γVπ(s)]

最优动作价值函数 :排除掉策略 π 的影响,只评价当前状态和动作的好坏
Q ⋆ ( s t , a t ) = m a x Q π ( s t , a t ) , ∀ s t ∈ S , a t ∈ A . Q⋆(st, at) = max Qπ(st, at), ∀ st ∈ S, at ∈ A. Q(st,at)=maxQπ(st,at),stS,atA.
(虽然我们不知道智能体未来会选择什么具体动作,但我们假设它会选择最优动作(max操作)期望运算考虑了状态转移的概率)
比如: Q ⋆ ( s t , 左 ) = 130 , Q ⋆ ( s t , 右 ) = − 50 , Q ⋆ ( s t , 上 ) = 296. Q⋆ (st, 左) = 130, Q⋆ (st, 右) = −50, Q⋆ (st, 上) = 296. Q(st,)=130,Q(st,)=50,Q(st,)=296.
这三个值是什么意思呢? Q ⋆ ( s t , 左 ) = 130 Q⋆(st, 左) = 130 Q(st,)=130 的意思是:如果现在智能体选择向左走,不管以后智能体用什么策略函数 π,回报 Ut 的期望最多不会超过 130。

状态价值函数:把动作价值函数中的动作 At 作为随机变量,然后关于 At 求期望,把 At 消掉
V π ( s t ) = E A t , S t + 1 , A t + 1 , ⋅ ⋅ ⋅ , S n , A n [ U t ∣ S t = s t ] . Vπ(st) = E_{At,St+1,At+1,··· ,Sn,An} [ Ut | St = st ] . (st)=EAt,St+1,At+1,⋅⋅⋅,Sn,An[UtSt=st].
用状态价值可以衡量策略 π 与状态 st 的好坏。

举个例子
动作价值: Q π ( ( 2 , 2 ) , 上 ) = 85 Qπ((2,2), 上) = 85 Qπ((2,2),)=85 Q π ( ( 2 , 2 ) , 下 ) = 45 Qπ((2,2), 下) = 45 Qπ((2,2),)=45 Q π ( ( 2 , 2 ) , 左 ) = 60 Qπ((2,2), 左) = 60 Qπ((2,2),)=60 Q π ( ( 2 , 2 ) , 右 ) = 70 Qπ((2,2), 右) = 70 Qπ((2,2),)=70
策略概率: π ( 上 ∣ ( 2 , 2 ) ) = 0.4 π(上|(2,2)) = 0.4 π((2,2))=0.4 π ( 下 ∣ ( 2 , 2 ) ) = 0.1 π(下|(2,2)) = 0.1 π((2,2))=0.1 π ( 左 ∣ ( 2 , 2 ) ) = 0.2 π(左|(2,2)) = 0.2 π((2,2))=0.2 π ( 右 ∣ ( 2 , 2 ) ) = 0.3 π(右|(2,2)) = 0.3 π((2,2))=0.3

V^π((2,2)) = 0.4 × 85 + 0.1 × 45 + 0.2 × 60 + 0.3 × 70
= 34 + 4.5 + 12 + 21
= 71.5

如何理解动作价值函数和状态价值函数?

怎么理解强化学习中状态价值和动作价值? - 知乎
所以状态价值函数和动作价值函数之间有类似包含的关系,对于状态价值函数而言,在s状态下,我可以采取若干种a是随机的,而动作价值函数是我已经把当前的a确定下来了
![[agent的轨迹.png]]

状态价值函数: 从状态s出发,遵循策略π能够获得的期望回报: U t = R t + γ R t + 1 + . . . U_t = R_t + \gamma R_{t+1}+... Ut=Rt+γRt+1+...
V π ( s ) = E π [ U t ∣ S t = s ] V^{\pi}(s) = E_{\pi}[U_t|S_t = s] Vπ(s)=Eπ[UtSt=s]
实际在强化学习当中,agent从s1开始会采样非常多次,产生不同的(s,a)轨迹,举个例子:假设产生了下面两个序列:
序列1:状态0 -> 右移 ->状态1->左移 -> 状态2->挥拍 ->状态3 赢球!
序列2:状态0 -> 右移 ->状态1->挥拍->状态2 输球!
那么, V π ( s ) = 0.5 ∗ ( R 1 + 0.9 ∗ R 2 + 0. 9 2 R 3 ) + 0.5 ∗ ( 0 + 0.9 ∗ 0 ) V^{\pi}(s) = 0.5*(R1+0.9*R2+0.9^2R3)+0.5*(0+0.9*0) Vπ(s)=0.5(R1+0.9R2+0.92R3)+0.5(0+0.90) ,有一种常用的状态价值估计方法就是蒙特卡洛算法。此外,上述的例子是随机性策略,与之相对应的还有一类更常见的策略叫做确定性策略。

动作价值函数: 动作价值,顾名思义就是在当前状态s,执行动作a之后,遵循策略π能够获得的期望回报:
Q π ( s , a ) = E π [ U t ∣ S t = s , A t = a ] . Q^π(s, a) = E_\pi [ Ut | St = s, At = a ] . Qπ(s,a)=Eπ[UtSt=s,At=a].
通俗的解释一下,状态价值是指到达当前这个状态以后,接下来的潜在收益
Q π ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) . Q^π(s, a) = r(s,a) + \gamma \sum_{s'\in S}P(s'|s,a)V^\pi(s') . Qπ(s,a)=r(s,a)+γsSP(ss,a)Vπ(s).

强化学习这类算法的优化目标一般就是逼近这两个函数,进而得到一个最优动作序列使得累积奖励最大化。

Alpha Go:
Behaviour Cloning -> Policy network -> value network -> Monte Carlo Tree search

更多推荐