Reinforcement Learning - Q-learning

2. Q learning

Q-learning是我们将讨论的第一个可以解决 MDP 中最优策略的技术。Q-learning 的目标是找到一个最优策略,即所有连续步骤的总奖励的期望值是可实现的最大值。因此,换句话说,Q-learning 的目标是通过学习每个状态-动作对的最优 Q 值来找到最优策略。

初始我们需要一个Q-Table来记录所有更新后的值,该表的行表示所有的位置,而列表示所有有限的行为,数字表示执行该行为后的reward.

以下是 3 个基本步骤:

  1. 代理开始于状态 (s1) 采取行动 (a1) 并获得奖励 (r1)
  2. 代理通过参考具有最高值 (max)随机 (epsilon, ε)的 Q 表来选择动作
  3. 更新 q 值

初始时,所有的值都为0.那么如何进行第一个动作的选择? 使用下面两个方法

2 ways

  • follow Q table and choice one action by max future reward - exploiting 
  • act randomly to explore new states - exploring + can balance using epsilon (ε)

为了在利用和探索之间取得平衡,我们使用了所谓的 epsilon 贪婪策略。通过这种策略,我们定义了一个 探索率 ε我们最初设定的1. 这个探索率是我们的代理将探索环境而不是利用它的概率。和ε=1, 这是100% 确定代理将从探索环境开始。

随着代理对环境的了解更多,在每个新剧集开始时,ε将以我们设置的某个速率衰减,因此随着代理对环境的了解越来越多,探索的可能性变得越来越小。一旦有机会探索和了解环境, 代理将在利用环境方面变得 “贪婪” 。

为了确定代理在每个时间步是选择探索还是利用,我们生成一个随机数0和1. 如果这个数字大于 epsilon,那么代理将通过利用来选择其下一个动作,即它将从 Q 表中为其当前状态选择具有最高 Q 值的动作。否则,它的下一个动作将通过探索来选择,即随机选择它的动作并探索环境中发生的事情。

if random_num > epsilon:
 # 通过开发选择动作
else :
 # 通过探索选择动作

学习率

学习率是一个介于0和1,这可以被认为是代理为新的 Q 值放弃给定状态-动作对的 Q 表中先前 Q 值的速度。

因此,例如,假设我们在 Q 表中有一个 Q 值,用于代理在前一个时间步中经历的任意状态-动作对。好吧,如果智能体在了解了更多关于环境的信息后,在稍后的时间步经历了相同的状态-动作对,则需要更新 Q 值以反映智能体现在对未来回报的预期变化。

代理在单集之后不会学到太多东西,但最终会进行足够的探索(步骤和集)它将收敛并学习最佳 q 值或 q-star ( Q∗)。

参考: 代码Capstone Project: Reinforcement Learning from Scratch with Python - Learn Python with Rune

3. SARSA

4. Deep Q Neural Network (DQN):

Policy Gradients -Policy network- stochastic policy

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值