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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS—实现UserDataAbility

UserDataAbility接收其他应用发送的请求,提供外部程序访问的入口,从而实现应用间的数据访问。Data提供了文件存储和数据库存储两组接口供用户使用。 文件存储 开发者需要在Data中重写FileDescriptoropenFile(Uriuri,Stringmode)方法来操作文件&#xf…

在做题中学习(32):只出现一次的数字 III

260. 只出现一次的数字 III - 力扣(LeetCode) 根据题目可知:有两个元素只出现一次,其余出现两次。 而在只出现一次的数字 I 里,只有一个元素出现一次,可以用异或的方式直接得到最后的答案,而此…

PaddleOCR:超越人眼识别率的AI文字识别神器

在当今人工智能技术已经渗透到各个领域。其中,OCR(Optical Character Recognition)技术将图像中的文字转化为可编辑的文本,为众多行业带来了极大的便利。PaddleOCR是一款由百度研发的OCR开源工具,具有极高的准确率和易…

Linux嵌入式配置USB鼠标支持+触摸板

在linux嵌入式中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动 1、定位鼠标 要用鼠标,首先要知道生成的鼠标设备是哪个,直接直接ls input目录,当…

2023.12.6-12.11 黑马知行教育项目实战,访问咨询意向线索主题

目录 简单介绍: 一.项目背景介绍 二.项目架构介绍 三.项目内容 3.1访问和咨询分析主题: 3.1.1 表与表之间的关联 3.1.2访问咨询主题需求汇总:最终需在ADS层制作六张表 3.1.3 访问咨询DWS大宽表建表与导入数据 3.2意向线索主题需求分析 3.2.1意向线索主题需求汇总:最终需在…

【数据结构(六)】希尔排序、快速排序、归并排序、基数排序的代码实现(3)

文章目录 1. 希尔排序1.1. 简单插入排序存在的问题1.2. 相关概念1.3. 应用实例1.3.1. 交换法1.3.1.1. 逐步推导实现方式1.3.1.2. 通用实现方式1.3.1.3. 计算时间复杂度 1.3.2. 移动法 2. 快速排序2.1. 相关概念2.2. 实例应用2.2.1. 思路分析2.2.2. 代码实现 2.3. 计算快速排序的…

华清远见作业第二十五天

使用三个程序来完成输出ABCABCABCABCABC #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <sys/sem.h>#define NUM_SEMS 3 // 信号量集中的信号量数量union semun {int val;struct semid_ds *…

隔离电源与非隔离式电源

开关电源 文章目录 开关电源前言一、它们之间的区别是什么&#xff1f;二、如何区分它们呢&#xff1f;三、隔离电源与非隔离电源的优缺点四、隔离电源与非隔离电源的选择总结 前言 在产品设计时&#xff0c;倘若没有考虑应用环境对电源隔离的要求&#xff0c;产品到了应用时就…

Linux服务器安装vim命令

1、查看是否安装vim命令 vim /etc/hosts2、检查系统中是否存在安装包 rpm -qa|grep vim2、 安装vim yum -y install vim*4、测试是否安装成功 vim /etc/hosts

深度学习——第3章 Python程序设计语言(3.7 matplotlib库)

3.7 matplotlib库 目录 1 matplotlib库简介 2 pyplot的plot函数 3 matplotlib基础绘图函数示例 数据可视化有助于深度理解数据。 本节介绍绘制图形的基本方法。 1. matplotlib库简介 matplotlib官网 1.1 matplotlib库概述 matplotlib是Python优秀的数据可视化第三方库&a…

Python 神奇解码器:pyWhat 库全面指南

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在当今数字化的世界中&#xff0c;理解和处理文本数据是许多应用程序的关键任务。而PyWhat库作为一个用于处理文本的Python库&#xff0c;提供了强大的功能&#xff0c;帮助开发者在文本中识别和提取有意义的信息…

【Qt开发流程】之2D绘图1:概述及基本绘制与填充和渐变填充

概述 Qt的绘图系统可以使用相同的API在屏幕和打印设备上进行绘图&#xff0c;并且主要基于QPainter, QPaintDevice和QPaintEngine类。 QPainter用于执行绘图操作&#xff0c;QPaintDevice是一个二维空间的抽象&#xff0c;可以使用QPainter在其上绘制&#xff0c;QPaintEngine…

Mybatis核心配置文件加载流程详解

Mybatis核心配置文件加载流程详解 本文将介绍MyBatis在配置文件加载的过程中&#xff0c;如何加载核心配置文件、如何解析映射文件中的SQL语句以及每条SQL语句如何与映射接口的方法进行关联。 映射配置文件 在介绍核心配置文件加载流程前&#xff0c;先给出一个简单的MyBati…

从概念到现实,2024中国式元宇宙如何落地?

前几个月&#xff0c;马斯克和扎克伯格隔空约架愈演愈烈&#xff0c;网友拱火也其乐无穷。两位顶级富豪贴身肉搏&#xff1f; 想想就刺激&#xff01; 随之&#xff0c;老马的X&#xff08;原Twitter&#xff09;和小扎的Threads&#xff08;X竞品&#xff09;也获得了颇多关注…

为什么看书或者看文章有时候晕?

我今天发现&#xff0c;当我看了一篇深度学习相关的文章&#xff08;我是0基础机器学习&#xff09; 当我尝试理解的时候&#xff0c;头就开始晕了&#xff08;也有些人是犯困&#xff09;&#xff0c;并不是你的错&#xff0c;而是因为看不懂。 仔细观察就发现&#xff0c;看…

Python从入门到精通九:Python异常、模块与包

了解异常 什么是异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生 早期计算机采用大量继电器工作&#xff0c;马克二型计算机就是这样的。 19…

Java实现插入排序及其动图演示

插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置&#xff0c;从而得到一个新的、元素个数加一的有序序列。 具体的插入排序算法过程如下&#xff1a; 从第一个元素开始&#xff0c;认为第一个元素已经是有序序列。取…

Jmeter场景设置与监听

Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元&#xff0c;场景设计源自于用户真实操作。 场景设计: 场景设计是根据收集分析用户的实际操作而定义的Jmeter脚本的执行策略。 性能测试中涉及的基本场景有两种&#xff0c;即单一业务场景和混合业务场景…

js 有关递归简单介绍

递归&#xff1a;指调用自身的函数 重点&#xff1a;递归函数必须有可以终止递归调用的语句&#xff0c;否则会导致内存溢出 递归的性能不好&#xff0c;因为在递归终止前&#xff0c;JavaScript引擎会为每一次递归分配一块内存以存储栈帧&#xff0c;随着递归的深入&#xff…

掌握 Python sympy 库的高级计算技巧

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Sympy是Python中一个强大的符号计算库&#xff0c;为数学和科学计算提供了丰富的功能。本文将深入介绍Sympy库的各项功能&#xff0c;并提供丰富的示例代码&#xff0c;以帮助大家更好地理解和应用这一工具。 S…