Q-learning智能体

Q-learning智能体

  Q-learning算法是一种无模型、在线、非策略的强化学习方法。Q-learning算法是一种基于价值的强化学习算法,它训练一个评价网络去估计回报或未来奖励。对于给定的观测值,智能体选择并输出估计收益最大的动作。
注:Q-learning算法不支持循环网络。
Q-learning智能体可以在具有以下观察和动作空间的环境中进行训练。
在这里插入图片描述Q-learning使用如下的评价网络:
在这里插入图片描述   在训练过程中,智能体使用贪心策略探索来探索动作空间。在每个控制区间内,agent随机选择一个概率为 ϵ \epsilon ϵ的动作,否则选择值函数最大的动作,概率为 1 − ϵ 1-\epsilon 1ϵ

评价函数逼近器

  为了估计值函数,一个Q-learning智能体维持一个评价函数 Q ( S , A ; ϕ ) Q(S,A;\phi ) Q(S,A;ϕ),它是一个带参数 ϕ \phi ϕ的函数逼近器。评价网络将观察S和行动A作为输入,并返回对长期回报的相应期望。
  对于使用基于表的值函数的评价网络, ϕ \phi ϕ中的参数是表中实际的 Q ( S , A ) Q(S,A) Q(S,A)值。
  在训练过程中,智能体调整参数值 ϕ \phi ϕ。训练后,参数保持在它们的调整值和训练值函数逼近器的参数被存储在评价网络 Q ( S , A ) Q(S,A) Q(S,A)中。

创建智能体

创建一个Q-learning智能体:

  • 使用rlQValueFunction对象创建评价网络。
  • 使用rlQAgentoptions对象指定代理选项。
  • 使用rlQAgent对象创建代理。

训练算法

Q-learning智能体使用如下的训练算法。要配置训练算法,请使用rlQAgentOptions对象指定选项。

  • 用随机参数值 ϕ \phi ϕ初始化评价网络 Q ( S , A ; ϕ ) Q(S,A;\phi ) Q(S,A;ϕ).

  • 对于每一个训练集:
    1.从环境中得到初始观测值 S S S.
    2. 对于迭代的每一步重复以下步骤,直到S是最终状态。
     a. 对于当前观测值S,选择概率为 ϵ \epsilon ϵ的随机动作A。否则,选择评价值函数最大的动作。 y = R + γ max ⁡ A Q ( S ′ , A ; ϕ ) y=R+\gamma \max _{A} Q\left(S^{\prime}, A ; \phi\right) y=R+γAmaxQ(S,A;ϕ)要指定 ϵ \epsilon ϵ及其衰减率,请使用EpsilonGreedyExploration选项。
     b.确定动作A,观察奖励 R R R和下一个观测值 S ′ S' S
     c.如果 S ′ S' S 是一个最终的状态,将值函数目标设置成R,否则,设置它为 y = R + γ max ⁡ A Q ( S ′ , A ; ϕ ) y=R+\gamma \max _{A} Q\left(S^{\prime}, A ; \phi\right) y=R+γAmaxQ(S,A;ϕ)要设置折扣因子 γ \gamma γ,请使用DiscountFactor选项。
     d.计算值函数目标和当前$Q(S,A;\phi )值的差值。
    Δ Q = y − Q ( S , A ; ϕ ) \Delta Q=y-Q(S, A ; \phi) ΔQ=yQ(S,A;ϕ)
     e.使用学习率 α \alpha α更新critic,在创建critic时,通过在智能体选项对象的rlCriticoptimizerOptions属性中设置LearnRate选项来指定学习率。

    • 对于基于表的评价网络,更新表中相应的 Q ( S , A ) Q(S,A) Q(S,A)值。
      Q ( S , A ) = Q ( S , A ; ϕ ) + α ⋅ Δ Q Q(S, A)=Q(S, A ; \phi)+\alpha \cdot \Delta Q Q(S,A)=Q(S,A;ϕ)+αΔQ
    • 对于所有其他类型的评价网络,计算损失函数相对于参数 φ φ φ的梯度 Δ φ Δφ Δφ。然后,根据计算得到的梯度更新参数。在这种情况下,损失函数是 Δ Q ΔQ ΔQ的平方。 Δ ϕ = 1 2 ∇ ϕ ( Δ Q ) 2 ϕ = ϕ + α ⋅ Δ ϕ \begin{array}{c}\Delta \phi=\frac{1}{2} \nabla_{\phi}(\Delta Q)^{2} \\ \phi=\phi+\alpha \cdot \Delta \phi\end{array} Δϕ=21ϕ(ΔQ)2ϕ=ϕ+αΔϕ

     f. 将观测值 S S S设置成 S ′ S' S


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抱抱宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值