欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 初探Reforcement Learning强化学习【QLearning/Sarsa/DQN】

初探Reforcement Learning强化学习【QLearning/Sarsa/DQN】

2025/5/18 21:26:15 来源:https://blog.csdn.net/weixin_74257347/article/details/148027980  浏览:    关键词:初探Reforcement Learning强化学习【QLearning/Sarsa/DQN】

文章目录

      • 一、Q-learning
        • 现实理解:
        • 举例:
        • 回顾:
      • 二、Sarsa
        • 和Q-learning的区别
      • 三、Deep Q-Network
        • Deep Q-Network是如何工作的?
          • 前处理:
          • Convolution Networks
          • Experience Replay

一、Q-learning

是RL中model-free、value-based算法,Q即为Q(s,a)就是在某一时刻s (s∈S)状态下采取动作a (a∈A) 能够获得收益的期望,环境根据Agent的动作反馈相应的回报reward。将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。

Q-Tablea1a2
s1q(s1,a1)q(s1,a2)
s2q(s2,a1)q(s2,a2)
s3q(s3,a1)q(s3,a2)

也就是马尔科夫决策过程:每个格子都是一个状态 s t s_t st, π ( a ∣ s ) \pi(a|s) π(as)在s状态下选择动作a的策略。 P ( s ’ ∣ s , a ) P(s’|s,a) P(s’∣s,a) ,也可以写做 P s s ′ a P^a_{ss'} Pssa为s状态下选择动作a转换到下一状态 s ′ s' s的概率。 R ( s ’ ∣ s , a ) R(s’|s,a) R(s’∣s,a)表示这一Action转移的奖励。

在这里插入图片描述

我们的目标是最大累计奖励的策略期望:

m a x π E [ ∑ t = 0 H γ t R ( S t , A t , S t + 1 ) ∣ π ] max_π E [ ∑ _{t = 0} ^H γ^ t R ( S_t , A_t , S_t + 1 )∣π] maxπE[t=0HγtR(St,At,St+1)π]

使用了时间差分法TD能够离线学习,使用bellman方程对马尔科夫过程求最优解。

在我们探索环境(environment)之前,Q-table 会给出相同的任意的设定值(大多数情况下是 0)。随着对环境的持续探索,这个 Q-table 会通过迭代地使用Bellman方程(动态规划方程)更新 Q(s,a) 来给出越来越好的近似。

在这里插入图片描述

算法是基于贪婪的策略进行选择:

在这里插入图片描述

S t e p 4 Step 4 Step4中选择动作a并且执行动作并返回一个新的状态 s ’ s’ s和奖励r,使用Bellman方程更新 Q ( s , a ) Q(s,a) Q(s,a):

在这里插入图片描述

新 Q ( s , a ) = 老 Q ( s , a ) + α ∗ ( 现实 − 估计 ) 新Q(s,a)=老Q(s,a)+\alpha*(现实-估计) Q(s,a)=Q(s,a)+α(现实估计)

现实理解:

在状态s采取行动a到达 s ′ s' s,但是我们用于决策的Q表并没有实际采取任何行为,所以我们只能使用期望值进行下一个状态 s ′ s' s各个动作的潜在奖励评估:

  • Q-Learning的做法是看看那种行为的Q值大,把最大的 Q ( s ′ , a ′ ) Q(s', a') Q(s,a) 乘上一个衰减值 γ \gamma γ (比如是0.9) 并加上到达 s ′ s' s时所获取的奖励 R(真真实实存在的)
  • 这个值更新为现实中的新Q值
举例:
  • 一块奶酪 = +1
  • 两块奶酪 = +2
  • 一大堆奶酪 = +10(训练结束)
  • 吃到了鼠药 = -10(训练结束)

img

S t e p 1 Step 1 Step1 初始化Q表都是0(所有状态下的所有动作)

S t e p 2 Step2 Step2 重复 S t e p 3 − 5 Step3-5 Step35

S t e p 3 Step 3 Step3 选择一个动作:向右走(随机)

img

S t e p 4 Step 4 Step4 更新Q函数

在这里插入图片描述

  • 首先,我们计算 Q 值的改变量 ΔQ(start, right)。
  • 接着我们将初始的 Q 值与 ΔQ(start, right) 和学习率的积相加。
回顾:
  • Function Q(state, action) → returns expected future reward of that action at that state.
  • Before we explore the environment: Q table gives the same arbitrary fixed value → but as we explore the environment → Q gives us a better and better approximation.

二、Sarsa

State-Action-Reward-State-Action,清楚反应了学习更新函数依赖的5个值,分别是当前状态S1,当前状态选中的动作A1,获得的奖励Reward,S1状态下执行A1后取得的状态S2及S2状态下将会执行的动作A2

img

和Q-learning的区别
  • Q_learing下一步q表最大值 γ ∗ m a x a ′ Q ( s ′ , a ′ ) + r γ*max_{a'}Q(s^′,a')+r γmaxaQ(s,a)+r
  • Sarsa:具体的某一步估计q值 γ ∗ Q ( s ′ , a ′ ) + r γ*Q(s^′,a^′)+r γQ(s,a)+r

img

Q-learning更激进,当前的Q值和以后的Q都有关系,越近影响越大

  • Q_learning:取max,也就是不考虑最终走到很大负奖励的值,只考虑会不会最终获得最大奖励,如果获得了,那这条路就牛逼,所以么Q-learning更勇猛,不害怕错,更激进
  • Sarsa :是取某具体的一步,只要周围有错(很大的负奖励),那么就有机会获得这个不好的奖励,那么整条路反馈都会评分很差。之后会尽量避开。那么最终导致Sarsa会对犯错更敏感,会远离犯错的点,更保守

三、Deep Q-Network

成千上万的状态和动作,Q-Table显然不现实。使用Q-Network网络将在给定状态的情况下近似每个动作的不同 Q 值。

Image

Deep Q-Network是如何工作的?

Image

  • input: 一组 4 帧
  • 为给定状态下每个可能的动作输出一个 Q 值向量
  • output:取这个向量中最大的 Q 值来找到我们的最佳行动
前处理:

Image

  1. 对每个状态进行灰度化,降低state复杂度
  2. 裁剪帧
  3. 减小帧的大小,将四个帧堆叠在一起。堆叠?因为它可以帮助我们处理时间限制问题,产生运动的概念
Convolution Networks

使用一个具有 ELU 激活函数的全连接层和一个输出层(具有线性激活函数的全连接层),为每个动作生成 Q 值估计。

Experience Replay

problem1:

  • 权重的可变性,因为动作和状态之间存在高度相关性。
  • 将与环境交互的顺序样本提供给我们的神经网络。它往往会忘记以前的体验,因为它会被新的体验覆盖。

solution:

  • create a “replay buffer.” This stores experience tuples while interacting with the environment, and then we sample a small batch of tuple to feed our neural network.
  • 重播缓冲区视为一个文件夹,其中每个工作表都是一个体验元组。您可以通过与环境交互来喂养它。然后你随机获取一些工作表来馈送神经网络

Image

problem2:

  • 每个 action 都会影响下一个 state。这将输出一系列可以高度相关的体验元组。按顺序训练网络,我们的Agent可能会受到这种相关性的影响。

从 replay buffer中随机采样,我们可以打破这种相关性。这可以防止作值发生振荡或发散。

solution:

  • 停止学习,同时与环境互动。我们应该尝试不同的东西,随机玩一点来探索状态空间。我们可以将这些体验保存在replay buffer中
  • 回忆这些经历并从中学习。之后,返回 Play with updated value function。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词