Datawhale深度强化学习task1学习笔记

绪论

试错学习:

  • 尝试:采取一系列动作或行为来尝试解决问题或实现目标。
  • 错误:在尝试的过程中可能会出现错误,这些错误可能是环境的不确定性导致的,也可能是自身的不当行为导致的。
  • 结果:每次尝试的后果,无论是积极的还是消极的,都会对下一次尝试产生影响。
  • 学习:通过不断地尝试并出现错误,自身会逐渐积累经验,了解哪些动作或行为会产生有利的结果,从而在下一次尝试中做出更加明智的选择。

一次次的决策来实现目标,这个目标通常是以最大化累积的奖励来呈现的,这个过程就是序列决策过程,而强化学习就是解决序列决策问题的有效方法之一。

分类:基于价值的和基于策略梯度的算法

方向:

  • 多智能体强化学习(MARL):非静态问题,信号问题,信誉分配问题,博弈场景
  • 从数据中学习(从演示中学习):以模仿学习为代表的从专家数据中学习策略、以逆强化学习( inverse reinforcement learning,IRL )为代表的从人类数据中学习奖励函数和以及从人类反馈中学习(reinforcement learning from huamn feedback,RLHF)为代表的从人类标注的数据中学习奖励模型来进行微调(fine-tune)。此外,还包括离线强化学习(offline reinforce learning)、世界模型(world model)等等。

探索策略( exploration strategy ):常用的方法有 ϵ \epsilon ϵ−greedy和置信上界( upper confidence bound,UCB )等等

实时环境( real-time environment ):离线强化学习( offline reinforcement learning ),世界模型( world model )

多任务强化学习( multi-task reinforcement learning ):联合训练( joint training )和分层强化学习( hierarchical reinforcement learning )、

马尔可夫决策过程

最大化累积的奖励:目标是使得在交互过程中得到的奖励之和 r 1 + r 2 + ⋯ + r T r_1+r_2+⋯+r_T r1+r2++rT尽可能最大,其中T表示当前交互过程中的最后一个时步,也就是最大步数,从 t=0 和 t+T 这一段时步我们称为一个回合( episode )。t=0 和 t+1之间和现实时间无关,取决于反馈所需时间。

马尔可夫性质

在给定历史状态 s 0 , s 1 , ⋯   , s t s_0,s_1,\cdots,s_t s0,s1,,st 的情况下,某个状态的未来只与当前状态 s t s_t st有关,与历史的状态无关。
P ( s t + 1 ∣ s t ) = P ( s t + 1 ∣ s 0 , s 1 , ⋯   , s t ) P(s_{t+1}|s_t)=P(s_{t+1}|s_0,s_1,\cdots,s_t) P(st+1st)=P(st+1s0,s1,,st)

回报

有限步数:
G t = r t + r t + 1 + ⋯ + r T G_t=r_t+r_{t+1}+⋯+r_T Gt=rt+rt+1++rT
持续性任务( T = ∞ T=\infty T=):引入折扣因子 γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdots=\sum_{k=0}^\infty\gamma^kR_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1
γ \gamma γ考虑未来奖励的重要程度, γ = 0 \gamma=0 γ=0只会关心当前的奖励, γ \gamma γ接近 1 时,我们会对所有未来奖励都给予较高的关注度.
G t ≐ R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 R t + 4 + ⋯ = R t + 1 + γ ( R t + 2 + γ R t + 3 + γ 2 R t + 4 + ⋯   ) = R t + 1 + γ G t + 1 \begin{aligned} G_{t}& \doteq R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\gamma^3R_{t+4}+\cdots \\ &=R_{t+1}+\gamma\left(R_{t+2}+\gamma R_{t+3}+\gamma^2R_{t+4}+\cdots\right) \\ &=R_{t+1}+\gamma G_{t+1} \end{aligned} GtRt+1+γRt+2+γ2Rt+3+γ3Rt+4+=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+)=Rt+1+γGt+1

状态转移矩阵

大多数强化学习场景用的是有限状态马尔可夫决策过程

马尔可夫链(Markov Chain) 用图表示马尔可夫决策过程中的状态流向而不包括动作、奖励等元素(离散时间的马尔可夫过程(Markov Process))

状态转移矩阵(同一个状态所有状态转移概率加起来是等于 1 的)
P s s ′ = ( p 11 p 12 ⋯ p 1 n p 21 p 22 ⋯ p 2 n ⋮ ⋮ ⋱ ⋮ p n 1 p n 2 ⋯ p n n ) P_{ss^{\prime}}=\begin{pmatrix}p_{11}&p_{12}&\cdots&p_{1n}\\p_{21}&p_{22}&\cdots&p_{2n}\\\vdots&\vdots&\ddots&\vdots\\p_{n1}&p_{n2}&\cdots&p_{nn}\end{pmatrix} Pss= p11p21pn1p12p22pn2p1np2npnn
状态转移矩阵是环境的一部分
马尔可夫链 → 奖励 马尔可夫奖励过程 → 动作 马尔可夫决策过程 马尔可夫链\xrightarrow{奖励}马尔可夫奖励过程\xrightarrow{动作}马尔可夫决策过程 马尔可夫链奖励 马尔可夫奖励过程动作 马尔可夫决策过程
五元组 < S , A , R , P , γ > <S,A,R,P,\gamma> <S,A,R,P,γ> 来表示马尔可夫决策过程:其中S表示状态空间,即所有状态的集合,A表示动作空间,R 表示奖励函数,P 表示状态转移矩阵, γ \gamma γ 表示折扣因子

习题2

1.强化学习所解决的问题一定要严格满足马尔可夫性质吗?请举例说明。

强化学习所解决的问题不一定要严格满足马尔可夫性质。例如一个强化学习的问题是在一个扑克牌游戏中赢得对手,那么这个问题就不满足马尔可夫性质,因为机器人在每一轮只能观察到自己的牌和公共的牌,而不能观察到对手的牌和之前的出牌顺序,而这些信息都会影响未来的状态和奖励。

2.马尔可夫决策过程主要包含哪些要素?

S状态空间,A动作空间,R 奖励函数,P 状态转移矩阵, γ \gamma γ 折扣因子

3.马尔可夫决策过程与金融科学中的马尔可夫链有什么区别与联系?
马尔可夫链 ( 状态及其转移 ) → 奖励,动作 马尔可夫决策过程 < S , A , R , P , γ > 马尔可夫链(状态及其转移)\xrightarrow{奖励,动作}马尔可夫决策过程<S,A,R,P,\gamma> 马尔可夫链(状态及其转移)奖励,动作 马尔可夫决策过程<S,A,R,P,γ>
马尔可夫链是一种随机过程,它具有马尔可夫性质,即未来的状态只依赖于当前的状态,而与过去的状态和动作无关。马尔可夫链可以用一个状态空间S和一个状态转移概率矩阵P来描述,其中S是所有可能的状态的集合,P是一个S×S的矩阵,P[i,j]表示从状态i转移到状态j的概率。

马尔可夫决策过程是马尔可夫链的推广,它不仅考虑了状态的转移,还考虑了动作的选择和奖励的激励。在每个时间步,决策者可以在当前状态下选择一个动作,然后根据状态转移概率函数进入下一个状态,并获得一个即时奖励。马尔可夫决策过程的目标是找到一个最优策略,即在每个状态下选择一个最优动作,使得长期累积的奖励最大化。

动态规划

在强化学习中,动态规划被用于求解值函数和最优策略。常见的动态规划算法包括值迭代(Value Iteration)、策略迭代(Policy Iteration)和 Q-learning 算法等。

动态规划问题有三个性质,最优化原理、无后效性和有重叠子问题

最优化原理:
G t = R t + 1 + γ G t + 1 G_{t} = R_{t+1}+\gamma G_{t+1} Gt=Rt+1+γGt+1

我们要解决 G t + 1 G_{t+1} Gt+1的问题,可以一次拆分成解决 G t , G t − 1 , ⋯   , G 1 G_{t}, G_{t-1},\cdots,G_{1} Gt,Gt1,,G1的问题

编程思想

m×n 网格到达终点的路径数目问题:确定状态,写出状态转移方程和寻找边界条件

机器人处于(i,j)的位置时,它的前一个坐标只能是上边一格(i,j-1)或者左边一格(i-1,j)
f ( i , j ) = f ( i − 1 , j ) + f ( i , j − 1 ) f(i,j) = f(i-1,j) + f(i,j-1) f(i,j)=f(i1,j)+f(i,j1)
考虑边界条件后:起始点 ( 0 , 0 ) (0,0) (0,0) 为0,第一行/列上的点为1

f ( i , j ) = { 0 , i = 0 , j = 0 1 , i = 0 , j ≠ 0 1 , i ≠ 0 , i = 0 f ( i − 1 , j ) + f ( i , j − 1 ) f(i,j)=\left\{\begin{array}{c} 0, i=0, j=0 \\ 1, i=0, j \neq 0 \\ 1, i \neq 0, i=0 \\ f(i-1,j) + f(i,j-1) \end{array}\right. f(i,j)= 0,i=0,j=01,i=0,j=01,i=0,i=0f(i1,j)+f(i,j1)

 def solve(m,n):
    # 初始化边界条件
    f = [[1] * n] + [[1] + [0] * (n - 1) for _ in range(m - 1)] 
    # 状态转移
    for i in range(1, m):
        for j in range(1, n):
            f[i][j] = f[i - 1][j] + f[i][j - 1]
    return f[m - 1][n - 1]

解释

 f = [[1] * n] + [[1] + [0] * (n - 1) for _ in range(m - 1)] 
  • 列表推导式,语法是 [表达式 for 变量 in 可迭代对象 if 条件],它可以根据一个已有的列表或其他可迭代对象来生成一个新的列表。
  • [[1] * n] 表示一个只有一个元素的列表,这个元素是一个包含 n 个 1 的列表,例如 [[1] * 3] 就是 [[1, 1, 1]]
  • [[1] + [0] * (n - 1) for _ in range(m - 1)] 表示一个包含 m - 1 个元素的列表,每个元素都是一个包含 n 个元素的列表,其中第一个元素是 1,其余元素都是 0,例如 [[1] + [0] * (3 - 1) for _ in range(3 - 1)] 就是 [[1, 0, 0],[1, 0, 0]]
  • + 把两个列表合并成一个更长的列表。因此,这行代码的结果mxn矩阵,其中第一行和第一列都是 1,其余元素都是 0,例如 f = [[1] * 3] + [[1] + [0] * (3 - 1) for _ in range(2 - 1)] 就是 [[1, 1, 1], [1, 0, 0],[1, 0, 0]]

状态价值函数和动作价值函数

奖励函数是下一次的奖励,价值函数是累计的奖励,都是预测一个期望

状态价值函数用于评估智能体进 入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。

状态价值函数(state-value function),从特定状态出发,按照某种策略 π \pi π进行决策所能得到的回报 G t G_t Gt期望值,注意这里的回报是带有折扣因子 γ \gamma γ的,越往后的奖励折扣越多。

折扣因子 γ \gamma γ作用:避免无穷奖励,对未来的不确定而打个折扣,希望尽快奖励。(超参)

期望 E π \mathbb{E}_{\pi} Eπ 的下标是 π \pi π 函数, π \pi π 函数的值可反映在我们使用策略 π \pi π 的时候,到底可以得到多少奖励
V π ( s ) = E π [ R t + γ R t + 1 + γ 2 R t + 2 + ⋯ ∣ S t = s ] = E π [ G t ∣ S t = s ] \begin{aligned} V_\pi(s) &=\mathbb{E}_{\pi}[R_t+\gamma R_{t+1}+\gamma^2 R_{t+2} + \cdots |S_t=s ] \\ &=\mathbb{E}_{\pi}[G_t|S_t=s ] \end{aligned} Vπ(s)=Eπ[Rt+γRt+1+γ2Rt+2+St=s]=Eπ[GtSt=s]

动作价值函数(action-value function):预测的奖励不仅考虑状态还考虑动作

Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] Q_\pi(s, a)=\mathbb{E}_\pi\left[G_t \mid s_t=s, a_t=a\right] Qπ(s,a)=Eπ[Gtst=s,at=a]

关系:给定状态 s s s的情况下,智能体所有动作的价值期望(所有动作价值函数乘以对应动作的概率之和)就等于该状态的价值(全期望公式)
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)=\sum_{a \in A} \pi(a \mid s) Q_\pi(s, a) Vπ(s)=aAπ(as)Qπ(s,a)
π ( a ∣ s ) \pi(a|s) π(as)表示随机性策略函数,一般指在状态 s s s下执行动作 a a a的概率分布。比如可能是有 0.7 的概率往左,0.3 的概率往右,那么通过采样就可以得到智能体将采取的动作.

贝尔曼方程

满足动态规划的最优化原理,即将前后两个状态价值函数之间联系起来,以便于递归地解决问题。

贝尔曼方程(Bellman Equation)

状态价值函数:
V π ( s ) = E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ ∣ S t = s ] = E [ R t + 1 ∣ s t = s ] + γ E [ R t + 2 + γ R t + 3 + γ 2 R t + 4 + ⋯ ∣ S t = s ] = R ( s ) + γ E [ G t + 1 ∣ S t = s ] = R ( s ) + γ E [ V π ( s t + 1 ) ∣ S t = s ] = R ( s ) + γ ∑ s ′ ∈ S P ( S t + 1 = s ′ ∣ S t = s ) V π ( s ′ ) = R ( s ) ⏟ 即时奖励 + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ⏟ 未来奖励的折扣总和 \begin{aligned} V_{\pi}(s) & =\mathbb{E}_{\pi}\left[G_t \mid S_t=s\right] \\ & =\mathbb{E}_{\pi}\left[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots \mid S_t=s\right] \\ & =\mathbb{E}\left[R_{t+1} \mid s_t=s\right]+\gamma \mathbb{E}\left[R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+\cdots \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[G_{t+1} \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[V_{\pi}\left(s_{t+1}\right) \mid S_t=s\right] \\ & =R(s)+\gamma \sum_{s^{\prime} \in S} P\left(S_{t+1}=s^{\prime} \mid S_{t}=s\right) V_{\pi}\left(s^{\prime}\right)\\ & =\underbrace{R(s)}_{\text {即时奖励}}+\underbrace{\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right)}_{\text {未来奖励的折扣总和}} \end{aligned} Vπ(s)=Eπ[GtSt=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+St=s]=E[Rt+1st=s]+γE[Rt+2+γRt+3+γ2Rt+4+St=s]=R(s)+γE[Gt+1St=s]=R(s)+γE[Vπ(st+1)St=s]=R(s)+γsSP(St+1=sSt=s)Vπ(s)=即时奖励 R(s)+未来奖励的折扣总和 γsSp(ss)V(s)
动作价值函数:
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) Q_{\pi}(s,a) = R(s,a) + \gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s,a\right) \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s ^{\prime} \right)Q_{\pi}\left(s^{\prime},a'\right) Qπ(s,a)=R(s,a)+γsSp(ss,a)aAπ(as)Qπ(s,a)

贝尔曼最优方程(Bellman optimality equation)

在最优策略下,状态价值函数也是最优的,相应的动作价值函数也最优。

最优策略下累积的回报最大化的状态价值函数可以表示为:
V ∗ ( s ) = max ⁡ a E [ R t + 1 + γ V ∗ ( S t + 1 ) ∣ S t = s , A t = a ] = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V ∗ ( s ′ ) ] \begin{aligned} V^{*}(s)&=\max _a \mathbb{E}\left[R_{t+1}+\gamma V^{*}\left(S_{t+1}\right) \mid S_t=s, A_t=a\right] \\ &=\max_a \sum_{s',r}p(s',r|s,a)[r+\gamma V^{*}(s')] \end{aligned} V(s)=amaxE[Rt+1+γV(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γV(s)]

动作价值函数:
Q ∗ ( s , a ) = E [ R t + 1 + γ max ⁡ a ′ Q ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max ⁡ a ′ Q ∗ ( s ′ , a ′ ) ] \begin{aligned} Q^{*}(s, a) & =\mathbb{E}\left[R_{t+1}+\gamma \max _{a^{\prime}} Q^{*}\left(S_{t+1}, a^{\prime}\right) \mid S_t=s, A_t=a\right] \\ & =\sum_{s^{\prime}, r} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right)\right] \end{aligned} Q(s,a)=E[Rt+1+γamaxQ(St+1,a)St=s,At=a]=s,rp(s,rs,a)[r+γamaxQ(s,a)]

策略和价值迭代

策略迭代比价值迭代收敛要快一些。因为其可以几乎不花时间在 π \pi π V V V之间跳跃从而越过中间可能存在的点 V 12 ′ , V 12 ′ ′ , V 12 ′ ′ ′ V_{12}^{\prime},V_{12}^{\prime\prime},V_{12}^{\prime\prime\prime} V12,V12′′,V12′′′.

习题3

1.动态规划问题的主要性质有哪些?

最优子结构性质:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质。这意味着我们可以通过求解子问题的最优解,来构造原问题的最优解。
重叠子问题性质:如果在用递归算法自顶向下求解问题时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次,我们就称该问题具有重叠子问题性质。这意味着我们可以通过记忆化存储已经求解过的子问题的解,来避免重复计算,提高效率。
无后效性:如果某个状态一旦确定,就不受这个状态以后的决策的影响,我们就称该问题具有无后效性。这意味着我们可以只关注当前的状态,而不用考虑未来的状态。

2.状态价值函数和动作价值函数之间的关系是什么?

V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)=\sum_{a \in A} \pi(a \mid s) Q_\pi(s, a) Vπ(s)=aAπ(as)Qπ(s,a)状态价值函数是所有可能动作的动作价值函数的期望

3.策略迭代和价值迭代哪个算法速度会更快?

策略迭代的优点是收敛速度较快,但是计算量较大,需要对整个状态空间进行遍历。价值迭代的优点是计算量较小,只需要一次迭代就可以进行策略改进,但是收敛速度较慢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值