Reinfocement Learning 学习笔记PartⅠ

文章目录

  • Reinfocement Learning
    • 一、基本概念
    • 二、贝尔曼公式(bellman equation)
      • 2.1 为什么return重要
      • 2.2 state value function的定义
      • 2.3 贝尔曼公式推导
      • 2.4 如何求解贝尔曼公式
      • 2.5 Action value的定义
    • 三、贝尔曼最优公式(bellman optimality equation)
      • 3.1 最优策略和公式推导
      • 3.2 公式求解
      • 3.3 最优策略的有趣性质
    • 四、值迭代和策略迭代(Value Iteration & Policy Iteration)
      • 4.1 值迭代算法
      • 4.2 策略迭代算法
      • 4.3 二者区别
      • 4.4 截断策略迭代算法(Truncated Policy Iteration)
    • 五、蒙特卡洛方法(Monte Carlo Learning)
      • 5.1 有模型与免模型强化学习
      • 5.2 MC Basic算法
      • 5.3 MC Exploring Starts算法
      • 5.4 MC Epsilon-Greedy算法

Reinfocement Learning

一、基本概念

  1. 强化学习(Reinfocement Learning):智能体(agent)可以在与复杂且不确定的环境进行交互时,尝试使所获得的奖励最大化的算法(寻找最优策略)。

  2. 动作(action):环境接收到的智能体基于当前状态的输出,即智能体采取什么动作。

  3. 状态(state):智能体从环境中获取的状态。

  4. 状态转移(state transition):采取动作,智能体从一个状态转变到另一个状态。

  5. 策略(policy):对每个状态而言,智能体会用策略来选取下一步的动作。

    • 随机性策略(stochastic policy): π \pi π 函数,即 π ( a ∣ s ) = p ( a t = a ∣ s t = s ) \pi(a|s)=p(a_t=a|s_t =s) π(as)=p(at=ast=s)。输入一个状态 s s s,输出一个概率。

    • 确定性策略(deterministic policy):智能体直接采取最有可能的动作。

  6. 奖励(reward):智能体从环境中获取的反馈信号,这个信号指定了智能体在某一步采取了某个策略以后是否得到奖励,以及奖励的大小。

  7. 轨迹(trajectory):状态—动作—奖励链

image-20231211141123277 image-20231211141213075
  1. 回报(return):奖励的逐步叠加。如上述 t r a j e c t o r y trajectory trajectory r e t u r n return return 0 + 0 + 0 + 1 = 1 0+0+0+1=1 0+0+0+1=1

  2. 折扣回报(discounted return):引入了一个折扣因子(discounted rate) γ \gamma γ,则折扣回报 G t G_t Gt为:
    G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + . . . γ T − t + 1 r T G_t=r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\gamma^3 r_{t+4}+...\gamma^{T-t+1}r_T Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4+...γTt+1rT

    • 有些马尔可夫过程带环,它并不会终结,我们想避免无穷的奖励

    • 把折扣因子设为0,我们就只关注当前的奖励;把折扣因子设为1,对未来的奖励并没有打折扣,未来获得的奖励与当前获得的奖励是一样的

  3. episode:agent在环境里面执行某个策略从开始到结束(到达terminal state)这一过程。

  4. 马尔可夫决策过程(Markov decision process, MDP)

    key elements of MDP:

    • 集合(sets)

      • state:状态的集合 S S S
      • action:动作的集合 A ( s ) A(s) A(s),即在状态 s s s 下,智能体可采取的动作有哪些
      • reward:奖励的集合 R ( s , a ) R(s, a) R(s,a),即在当前状态 s s s 下,采取动作 a a a 将会获得多少奖励
    • 概率分布(probabiliy distribution)

      • state transition probability:在状态 s s s 下,采取动作 a a a,转移到下一状态 s ′ s' s 的概率,即 p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a)
      • reward probability:在状态 s s s 下,采取动作 a a a,获得奖励 r r r 的概率,即 p ( r ∣ s , a ) p(r|s,a) p(rs,a)
    • 策略(policy):在状态 s s s 下,采取动作 a a a 的概率,即 π ( a ∣ s ) \pi(a|s) π(as)

    • 马尔可夫性质(Markov property):memoryless property,下一状态和奖励只跟当前状态和采取的动作有关,跟之前所有的都无关。
      p ( s t + 1 ∣ a t + 1 , s t , . . . , a 1 , s 0 ) = p ( s t + 1 ∣ a t + 1 , s t ) p ( r t + 1 ∣ a t + 1 , s t , . . . , a 1 , s 0 ) = p ( r t + 1 ∣ a t + 1 , s t ) p(s_{t+1}|a_{t+1},s_t,...,a_1,s_0)=p(s_{t+1}|a_{t+1},s_t) \\ p(r_{t+1}|a_{t+1},s_t,...,a_1,s_0)=p(r_{t+1}|a_{t+1},s_t) p(st+1at+1,st,...,a1,s0)=p(st+1at+1,st)p(rt+1at+1,st,...,a1,s0)=p(rt+1at+1,st)

​ 如图为一个markov process,而不是markov decision process,因为policy已经确定

image-20231211144517020

二、贝尔曼公式(bellman equation)

2.1 为什么return重要

image-20231211145858937

r e t u r n return return 可作为评估策略好坏的依据。

由图可知, r e t u r n 1 > r e t u r n 3 > r e t u r n 2 return_1>return_3>return_2 return1>return3>return2,故策略1是最好的,策略2是最差的。

2.2 state value function的定义

折扣回报(discounted return):
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + . . . γ T − t + 1 r T G_t=r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\gamma^3 r_{t+4}+...\gamma^{T-t+1}r_T Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4+...γTt+1rT
s t a t e v a l u e f u n c t i o n state \ value \ function state value function 就是折扣回报(discounted return)的期望。即从一个状态出发,agent能获得的折扣回报的期望:
v π ( s ) = E [ G t ∣ S t = s ] v_\pi(s)=\mathbb{E}[G_t|S_t=s] vπ(s)=E[GtSt=s]

  • 这是关于状态 s s s 的函数,从不同的状态出发,得到的 t r a j e c t o r y trajectory trajectory 是不同的, d i s c o u n t e d r e t u r n discounted\ return discounted return 的期望也是不同的

  • 这是基于策略 π \pi π 的函数,采取不同的策略,得到的 t r a j e c t o r y trajectory trajectory 是不同的, d i s c o u n t e d r e t u r n discounted\ return discounted return 的期望也是不同的

  • 当一个 s t a t e v a l u e f u n c t i o n state \ value \ function state value function 比较大时,代表这个状态是比较有价值的,因为从这个状态出发会得到更多的 r e t u r n return return

  • r e t u r n return return 是由一条确定 t r a j e c t o r y trajectory trajectory 得到的,而 s t a t e v a l u e state \ value state value 是从当前状态出发,可能会得到多条 t r a j e c t o r y trajectory trajectory,对其 r e t u r n return return 求平均

image-20231211154037091

2.3 贝尔曼公式推导

image-20231211160835380

E [ R t + 1 ∣ S t = s ] \mathbb{E}[R_{t+1}|S_t=s] E[Rt+1St=s] 表示的是当前奖励的平均, E [ G t + 1 ∣ S t = s ] \mathbb{E}[G_{t+1}|S_t=s] E[Gt+1St=s] 表示下一回报的平均

由此可得贝尔曼公式:

image-20231211160916907

  • 贝尔曼公式就是 s t a t e v a l u e state \ value state value(的表现形式)
  • 贝尔曼公式描述了不同 s t a t e v a l u e state \ value state value 之间的关系
  • 对于状态空间中的所有状态均成立
  • 贝尔曼公式依赖于给定的策略 π \pi π,这样才能求解
  • 计算状态价值函数的过程就是策略评估( p o l i c y e v a l u a t i o n policy \ evaluation policy evaluation
  • 其实直观上是非常好理解的,因为 G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + . . . γ T − t + 1 r T = r t + 1 + γ G t + 1 G_t=r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\gamma^3 r_{t+4}+...\gamma^{T-t+1}r_T = r_{t+1}+\gamma G_{t+1} Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4+...γTt+1rT=rt+1+γGt+1,我要求 G t G_t Gt 的期望,其实就是求即刻奖励的期望和下一折扣回报的期望。

2.4 如何求解贝尔曼公式

image-20231211164752267

对于 n n n 个状态而言:

image-20231211165009830

用矩阵形式表示(假设共有四个状态):

image-20231211165128163

例子:

image-20231211165522108

2.5 Action value的定义

s t a t e v a l u e state \ value state value 关注的是从一个状态出发, a g e n t agent agent 能获得的折扣回报的期望。它体现了每个状态的价值。

a c t i o n v a l u e action \ value action value 关注的是从状态出发,采取某个 a c t i o n action action 能获得的折扣回报的期望。它体现了每个动作的价值。有如下数学定义:
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a] qπ(s,a)=E[GtSt=s,At=a]
两者可以互相求解:

image-20231211172630853

因此(上图有推导):

image-20231211172846296

三、贝尔曼最优公式(bellman optimality equation)

3.1 最优策略和公式推导

最优策略:当一个策略 π ∗ \pi^* π 的所有状态对应的 s t a t e v a l u e state \ value state value 值都大于其他任何一个策略时,即 $v_\pi^*(s)>v_\pi(s) $ 时,称 π ∗ \pi^* π 是最优策略。

贝尔曼最优公式,就是当贝尔曼公式中的策略不再给定,而是要求解采用什么策略是最优的一个过程,知道了最优策略过后,当然可以求出最优的 s t a t e v a l u e state \ value state value。贝尔曼最优公式就是当给定的策略为最优策略时的一个特殊的贝尔曼公式:

image-20231211185500495

假设所有 q ( s , a ) q(s,a) q(s,a) 已知时,一定存在一个最大的 q ( s , a ) q(s,a) q(s,a) ,我们想让 v ( s ) v(s) v(s) 最大,那就是让最大的 q ( s , a ) q(s,a) q(s,a) 所占的权重最大,而权重代表概率,最大为1。所以采取的策略就是让 a c t i o n v a l u e action \ value action value 最大的 a c t i o n action action 发生概率为1,此时得到的 s t a t e v a l u e state \ value state value 值即为 a c t i o n v a l u e action \ value action value

image-20231211190752604

image-20231211190817568

以矩阵形式表示为:

image-20231212121331053

3.2 公式求解

基于 c o n t r a c t i o n m a p p i n g t h e o r e m contraction \ mapping \ theorem contraction mapping theorem

image-20231212121443469

  1. 对任意状态 s s s,都先给出一个估计值 v k ( s ) v_k(s) vk(s) k k k 表示迭代次数)
  2. 根据 a c t i o n v a l u e action \ value action value 公式可以求解出 q k ( s , a ) q_k(s,a) qk(s,a)
  3. 根据 m a x max max 可以求解出 q k ( s , a ) q_k(s,a) qk(s,a) 对应的策略 π \pi π(就是选择最大的 q k ( s , a ) q_k(s,a) qk(s,a) 的策略,此时得到当前的最优策略 π ∗ \pi^* π
  4. m a x a q k ( s , a ) max_{a} \ q_k(s,a) maxa qk(s,a) 的值计算出来带入 v k + 1 ( s ) v_{k+1}(s) vk+1(s)
  5. 不断迭代至 v ∗ v^* v 收敛(即 v k ( s ) v_k(s) vk(s) v k + 1 ( s ) v_{k+1}(s) vk+1(s) 的差值很小时)

例子:

image-20231211194913969

表格中存储的是 a c t i o n v a l u e action \ value action value,此表即为 Q − t a b l e Q-table Qtable

image-20231212192341524

第一轮迭代 k = 0 k=0 k=0,假设 v 0 ( s 1 ) = v 0 ( s 2 ) = v 0 ( s 3 ) = 0 v_0(s_1)=v_0(s_2)=v_0(s_3)=0 v0(s1)=v0(s2)=v0(s3)=0(下标0表示迭代次数 k k k),可得表格:

image-20231211195239036

由表得到第一轮迭代的最优策略和最优 s t a t e v a l u e state \ value state value

image-20231211195335038

第二轮迭代 k = 1 k=1 k=1,将第一轮的最优 s t a t e v a l u e state \ value state value 带入得到新的表格:

image-20231211195444517

由表得到第二轮迭代的最优策略和最优 s t a t e v a l u e state \ value state value

image-20231211195509800

不断迭代下去,直到第 k k k 轮的 v ∗ v^* v 收敛可停止迭代,得到最终的最优策略和最优 s t a t e v a l u e state \ value state value

3.3 最优策略的有趣性质

影响最优策略的因素:奖励 r e w a r d reward reward 和折扣因子 γ \gamma γ 会影响到最优策略

当奖励发生线性变化时,最优策略并不会改变

Q Q Q:为了寻找最短路径,防止绕远路有必要将每走一步的 r e w a r d reward reward 设置为负数吗? A A A:没有必要,因为不仅是 r e w a r d reward reward 限制,折扣因子也会限制,绕远路意味着拿到奖励会打折的非常厉害,为了获取最大 s t a t e v a l u e state \ value state value 肯定选近路。

贝尔曼最优公式一定存在解,且解唯一(最优策略不唯一,最优 s t a t e v a l u e state \ value state value 唯一)

四、值迭代和策略迭代(Value Iteration & Policy Iteration)

二者都属于 d y n a m i c p r o g r a m m i n g dynamic \ programming dynamic programming 的方法(或者说是 m o d e l − b a s e d model-based modelbased 的方法)

4.1 值迭代算法

其实就是贝尔曼最优公式的求解过程。

s t e p 1 : p o l i c y u p d a t e step1:policy \ update step1policy update

由前面的贝尔曼最优公式可知,最优策略的数学表示为:

image-20231212122343218

a r g m a x a f ( a ) arg \ \underset {a}{max}f(a) arg amaxf(a) 表示 f ( a ) f(a) f(a) 取最大时 a a a 的值。故上述式子的含义为后面这一长串(即 s t a t e v a l u e state \ value state value)取最大值时所采取的策略,即最优策略,表示为:

image-20231212122952493

即采取的策略为选取对应 q k ( s , a ) q_k(s,a) qk(s,a) 最大的那个 a c t i o n action action,概率为1。

s t e p 2 : v a l u e u p d a t e step2:value \ update step2value update

此时策略已定,贝尔曼最优公式转变为贝尔曼公式:

image-20231212123648331

得到最优 s t a t e v a l u e state \ value state value,就是最大的 a c t i o n v a l u e action \ value action value,因为最优策略选取最大 a c t i o n v a l u e action \ value action value 对应 a c t i o n action action 的概率为1,所以只有一条 t r a j e c t o r y trajectory trajectory

image-20231212123848504

概括为先定 v k v_k vk q k q_k qk 再求 π k + 1 \pi_{k+1} πk+1 最后得到 v k + 1 v_{k+1} vk+1,迭代至其收敛。

image-20231212124058373

完整例子:

image-20231212124502755 image-20231212124516815

表格中存储的是 a c t i o n v a l u e action \ value action value,此表即为 Q − t a b l e Q-table Qtable

image-20231212124553322

第一轮迭代:

image-20231212124717365

表中状态为 s 1 s_1 s1 时选的动作 a 3 a_3 a3 a 5 a_5 a5 得到的 a c t i o n v a l u e action \ value action value 值相同,此时随机选择一个,假设为 a 5 a_5 a5

image-20231212124744738 image-20231212124817341

得到新的策略图:

image-20231212124858020

第二轮迭代:

image-20231212125113474

得到新的策略图:

image-20231212125206452

继续往下迭代,知道 ∣ ∣ v k − v k + 1 ∣ ∣ ||v_k-v_{k+1}|| ∣∣vkvk+1∣∣ 很小时,即收敛到 v ∗ v^* v 时停止。

4.2 策略迭代算法

image-20231212130058298

P E = P o l i c y E v a l u a t i o n PE=Policy \ Evaluation PE=Policy Evaluation P I = P o l i c y I m p r o v e m e n t PI=Policy \ Improvement PI=Policy Improvement

s t e p 1 : p o l i c y e v a l u a t i o n step1:policy \ evaluation step1policy evaluation

给定策略,求解贝尔曼方程,不断迭代 j j j 轮至 v π k v_{\pi_k} vπk 收敛:

image-20231212131308582

s t e p 2 : p o l i c y i m p r o v e m e n t step2:policy \ improvement step2policy improvement

根据上一步得到的 s t a t e v a l u e state \ value state value 求解贝尔曼最优公式,更新策略:

image-20231212131700963

同值迭代一样,选取最大 a c t i o n v a l u e action \ value action value 对应 a c t i o n action action,使其概率为1更新策略:

image-20231212131841654 image-20231212131852982

简单例子:

image-20231212132325326

第一步策略评估,即求解贝尔曼公式:

image-20231212132550172

因为例子比较简单,可以直接联系方程组解出:

image-20231212132632445

如果当式子较难解出,一般采用迭代的算法让其收敛,即当 v π k ( j + 1 ) v_{\pi_k}^{(j+1)} vπk(j+1) v π k ( j ) v_{\pi_k}^{(j)} vπk(j) 差值很小时:

image-20231212132737869

第二部策略优化,将上述得到的 s t a t e v a l u e state \ value state value 带入,此时就跟值迭代算法一样了:

image-20231212133025711

得到新的策略:

image-20231212133244289

4.3 二者区别

image-20231212160542710 image-20231212160939631

上图中当 v v v 的下标为 π \pi π 时,表示的是由确切的策略求解出的 s t a t e v a l u e state \ value state value;当 v v v 的下标为数字时,表示的只是迭代过程中的一个中间量,是用这个中间两来不断逼近真正的 s t a t e v a l u e state \ value state value,可以看作是未收敛的 s t a t e v a l u e state \ value state value

策略迭代是由初始时给定的策略来计算出 s t a t e v a l u e state \ value state value,而值迭代是直接给出一个估计值,之后求解贝尔曼最优方程时的步骤时策略迭代带入的是由确切的策略通过求解贝尔曼方程出的 s t a t e v a l u e state \ value state value,而值迭代带入的是未收敛的 s t a t e v a l u e state \ value state value。相当于在每一轮迭代开始前,策略迭代多了一步求 s t a t e v a l u e state \ value state value 的过程,这个过程也是一个迭代的过程。

4.4 截断策略迭代算法(Truncated Policy Iteration)

image-20231212162955441 image-20231212162916364

五、蒙特卡洛方法(Monte Carlo Learning)

5.1 有模型与免模型强化学习

有模型(model-based)强化学习 a g e n t agent agent 通过学习状态的转移来采取动作。具体来说,当 a g e n t agent agent 知道状态转移函数和奖励函数(即 M D P MDP MDP 中的两个概率分布)后,它就能知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态。

免模型(model-free)强化学习 a g e n t agent agent 没有直接去估计状态的转移,也没有得到环境的具体转移变量,它通过学习状态价值函数和策略函数进行决策。免模型强化学习没有对真实环境进行建模, a g e n t agent agent 只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新动作策略,反复迭代直到学习到最优策略。

用通俗的话解释大数定理:在不知道模型参数的情况下,经过多次实验,将所得参数的平均近似为期望。大数定理是免模型的,而蒙特卡洛估计也是免模型的,二者不谋而合。

5.2 MC Basic算法

如何做到从有模型到免模型的转变,或者说如何在不知道两个概率分布的条件下得到 a c t i o n v a l u e action \ value action value 进而更新策略呢?

为了回答上述问题,我们需要借助 p o l i c y i t e r a t i o n policy \ iteration policy iteration

即问题转变为:如何把 p o l i c y i t e r a t i o n policy \ iteration policy iteration 这种 m o d e l − b a s e d model-based modelbased 算法转变为 m o d e l − f r e e model-free modelfree 的算法呢?

算法中涉及两个概率分布的只有 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a),所以问题转换为如何求这个 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a)

image-20231212171637543

回到 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a) 最初始的定义, q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_{\pi_k}(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a] qπk(s,a)=E[GtSt=s,At=a],也是要求期望,何不用蒙特卡洛估计呢?

  • ( s , a ) (s,a) (s,a) 开始,采取策略 π k \pi_k πk,生成一个 e p i s o d e episode episode
  • 一个 e p i s o d e episode episode r e t u r n return return 称为 g ( s , a ) g(s,a) g(s,a)。( e p i s o d e episode episode 长度的选取会影响到策略的选择, e p i s o d e l e n g t h episode \ length episode length 越大,离目标越远的状态也能找到正确的策略。
  • g ( s , a ) g(s,a) g(s,a) 即为 G t G_t Gt 的一个采样(sample)
  • 对每一个 s s s 的每一个 a a a,生成一系列 e p i s o d e episode episode,对其每个 r e t u r n return return 相加求平均,近似为 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a),即 q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] ≈ 1 N ∑ N i = 1 g ( s , a ) q_{\pi_k}(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a]\approx \frac{1}{N}\underset{i=1}{\overset{N} \sum} g(s,a) qπk(s,a)=E[GtSt=s,At=a]N1i=1Ng(s,a)
  • 更新策略

其实就是用蒙特卡洛估计来直接得到 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a),然后进行 p o l i c y i m p r o v e m e n t policy \ improvement policy improvement。MC Basic算法需要采样的 e p i s o d e episode episode 过多,效率(efficiency)较低。

为什么不用 v a l u e i t e r a t i o n value \ iteration value iteration 进行转换呢?因为 v a l u e i t e r a t i o n value \ iteration value iteration 事先不知道策略,也就无法生成 r e t u r n return return 作为采样结果。

例子:

image-20231212174236174

这个例子其实是有模型的,但并不妨碍介绍蒙特卡洛的思想。以 s 1 s_1 s1 为例,因为此时给定的策略概率都为1,所以采样一次即可(即使采样多次结果平均下来结果还是和采样一次一样)。先是求状态 s 1 s_1 s1 每个动作对应的 a c t i o n v a l u e action \ value action value

image-20231212175713688 image-20231212175730404

然后根据 a c t i o n v a l u e action \ value action value 更新策略:

image-20231212175837000

5.3 MC Exploring Starts算法

核心思想,在每个 e p i s o d e episode episode 中充分利用数据:

image-20231212181712688

现在要求得每一个 ( s , a ) (s,a) (s,a) a c t i o n v a l u e action \ value action value 有两种方法,一种是从 ( s ′ , a ′ ) (s',a') (s,a) 开始经历一个 e p i s o d e episode episode,另一种是从别的 ( s , a ) (s,a) (s,a) 开始在其 e p i s o d e episode episode 中找到我需要的 ( s , a ) (s,a) (s,a)。但第二种方法是不确定会不会经过我需要的这样一个 ( s , a ) (s,a) (s,a) 的。

5.4 MC Epsilon-Greedy算法

如何确保MC Exploring Starts算法中提到的,可以从别的 ( s , a ) (s,a) (s,a) 开始在其 e p i s o d e episode episode 中找到我需要的 ( s , a ) (s,a) (s,a) 呢?

采用 ϵ − g r e e d y \epsilon-greedy ϵgreedy 策略,保证在选择 a c t i o n action action 时是 s t o c h a s t i c stochastic stochastic 的,这样做能保证每个 ( s , a ) (s,a) (s,a) 都有概率能取到(即使概率较小,较大的概率还是取最大的 a c t i o n v a l u e action \ value action value 对应的 a c t i o n action action ),保证其有 e x p l o r a t i o n exploration exploration

image-20231212184752715

如何将其与前面所讲的两个算法结合起来。其实就是在求出了 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a) 后进行 p o l i c y i m p r o v e m e n t policy \ improvement policy improvement 时,采用 ϵ − g r e e d y \epsilon-greedy ϵgreedy 策略:

image-20231212185524763

这样就可以做到从一个或几个 ( s , a ) (s,a) (s,a) 出发得到的 e p i s o d e episode episode 能覆盖到几乎所有的 ( s , a ) (s,a) (s,a)

注意 ϵ \epsilon ϵ 的值不宜过大:

image-20231212192053833

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/215823.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1841_在Windows上安装emacs irony server

Grey 全部学习内容汇总:GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1841_在Windows上安装emacs irony server emacs有很多优点,配置出来不仅用着顺手而且有一定的成就感。但是,对于大多数人来说或…

将单体应用程序迁移到微服务

多年来,我处理过多个单体应用,并将其中一些迁移到了微服务架构。我打算写下我所学到的东西以及我从经验中用到的策略,以实现成功的迁移。在这篇文章中,我将以AWS为例,但基本原则保持不变,可用于任何类型的基…

【动态规划精选题目】1、斐波那契数列模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解入门级:斐波那契模型,会在讲解题目同时给出AC代码 为什么叫斐波那契数列模型?因为本篇4道题的状态转移方程都跟斐波那契递推方程差不多,但这点不重要,请往…

【C++】:set和map

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关多态的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结…

补充回答一些关于枚举类型的问题

补充回答一些关于枚举类型的问题 1.枚举类型在什么时候使用 枚举类型在以下情况下特别有用: 有限的离散值集合: 当变量的取值只有有限且离散的几个选项时,使用枚举类型能够提高代码的可读性。例如,星期几、月份、颜色等。 enum W…

Uncaught ReferenceError: jQuery is not defined解决方法

当我在写java的Maven项目时,出现了这样的一个报错信息: 我一直找代码,抓包,调试,比对代码 jQuery未定义就是指JS的导包没有导进来!!!! 导进来就运行正常啦

Server check fail, please check server xxx.xxx.xxx.xxx,port 9848 is available

记录一次服务调用中的错误 背景:我使用了nacos2.x的版本,同时在同一台服务器的三个docker容器中部署了nacos1、2、3,并将它们连接到了同一个docker网络 错误:Server check fail, please check server xxx.xxx.xxx.xxx,port 9848 …

使用cmake构建Qt6.6的qt quick项目,添加应用程序图标的方法

最近,在学习qt的过程中,遇到了一个难题,不知道如何给应用程序添加图标,按照网上的方法也没有成功,后来终于自己摸索出了一个方法。 1、准备一张图片作为图标,保存到工程目录下面,如logo.ico。 …

主机访问Android模拟器网络服务方法

0x00 背景 因为公司的一个手机app的开发需求,要尝试链接手机开启的web服务。于是在Android Studio的Android模拟器上尝试连接,发现谷歌给模拟器做了网络限制,不能直接连接。当然这个限制似乎从很久以前就存在了。一直没有注意到。 0x01 And…

Python编程技巧 – 使用组合运算符

Python编程技巧 – 使用组合运算符 Python Programming Skills – Using Combined Operators Python通过赋值过程,将声明变量与赋值和而为之,可谓讲求效率。此外,在Python赋值运算符里,也有一个强大高效的功能,即复合…

赴美上市传闻再起,SHEIN走到十字路口

作者 | 辰纹 来源 | 洞见新研社 裹挟着“黑五”大胜的余波,跨境电商巨头SHEIN(希音)将赴美IPO的传闻又在行业中散播开来。 金融投资报称SHEIN此次IPO的估值或达900亿美元;上海证券报表示,SHEIN已对投资人发出了路演…

字符设备驱动开发基础

一. 简介 本文简单了解一下,在字符设备驱动开发开始前对其一些基本认识。简单了解一下,应用程序与驱动的交互原理,以及字符设备驱动开发流程。 二. 字符设备驱动开发流程 1. 在 Linux 中一切皆为文件,驱动加载成功以后会在“…

Camunda 7.x 系列【60】流程分类

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2. 案例演示2.1 后端2.2 前端2.3 测试1. 前言 钉钉中的OA审批分类: 企业级的业务…

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用 1. 直接上代码(复制可直接用,请根据自己的文件修改引用地址,图表只是简单封装,可根据自身功能,进行进一步配置。) …

优雅玩转实验室服务器(二)传输文件

使用服务器最重要的肯定是传输文件了,我们不仅需要本地的一些资源上传到服务器,好进行实验,也需要将服务器计算得到的实验结果传输到本地,来进行预览或者报告撰写。 首先,由于涉及到服务器操作,我强烈推荐…

Jemeter,提取响应体中的数据:正则表达式、Json提取器

一、正则表达式 1、线程组--创建线程组; 2、线程组--添加--取样器--HTTP请求; 3、Http请求--添加--后置处理器--正则表达式提取器; 4、线程组--添加--监听器--查看结果树; 5、线程组--添加--取样器--调试取样器。 响应体数据…

UI5 development on VS Studio code

今天来分享一下如何VS studio code 上UI5开发环境的搭建 1.安装Node.js 路径:Node.js 因安装步骤较为简单,故不在此赘述。 验证方法如下:WINR-->CMD--->node --version 出现下图即可 2. 安装UI5 CLI (为了后面我们方便使用UI5 的命令…

本地部署语音转文字(whisper,SpeechRecognition)

本地部署语音转文字 1.whisper1.首先安装Chocolatey2.安装3.使用 2.SpeechRecognition1.环境2.中文包3.格式转化4.运行 3.效果 1.whisper 1.首先安装Chocolatey https://github.com/openai/whisper 以管理员身份运行PowerShell Set-ExecutionPolicy Bypass -Scope Process -…

【JVM从入门到实战】(一) 字节码文件

一、什么是JVM JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。 JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 二、JVM的功能 解释和运行 对字节码文件中的指令,实时的解释成机器码,让计算机…

ubuntu20 安装docker

一.官网安装文档 (基本按官方文档安装) Install Docker Engine on Ubuntu | Docker Docs 二.安装步骤 1.docker 需要64位操作系统、linux内核要在3.1以上 #uname -r 2.卸载可能存在的旧版本 #sudo apt-get remove docker docker-engine docker-ce …