深度强化学习研究笔记(2)——Q-learning(Q-learning问题描述,Q-table方法,一个Python小例子)

本文深入探讨Q-learning,一种基于价值函数的强化学习方法。通过Q-table学习,阐述Q-value的更新过程,展示了一个使用Python实现Q-learning解决路径规划问题的示例,最终得出能够指导agent自主行动的Q-table。
摘要由CSDN通过智能技术生成

1. Q-learning问题描述

Q-learning是一种典型的基于价值(Value)函数的强化学习方法,其中的Q是一个数值(可以理解为价值value),通常在初始化时有可能被赋予一个任意数值(因问题场景而异),在迭代时刻 t t t,我们有状态 s t s_t st,此时代理做出动作 a t a_t at,然后得到奖励 r t r_t rt,从而进入到一个更新的状态 s t + 1 s_{t+1} st+1,从而Q值得到更新,其更新公式为:

(1) Q ( s t , a t ) ← ( 1 − α ) ⋅ Q ( s t , a t ) ⎵ old    value + α ⎵ learnig    rate ⋅ ( r t ⎵ reward + γ ⎵ discount    factor ⋅ max ⁡ a Q ( s t + 1 , a ) ⎵ estimate    of    optimal    future    value ) ⏞ learned    value Q\left( { {s_t},{a_t}} \right) \leftarrow \left( {1 - \alpha } \right) \cdot \underbrace {Q\left( { {s_t},{a_t}} \right)}_{ {\text{old}}\;{\text{value}}} + \underbrace \alpha _{ {\text{learnig}}\;{\text{rate}}} \cdot \overbrace {\left( {\underbrace { {r_t}}_{ {\text{reward}}} + \underbrace \gamma _{ {\text{discount}}\;{\text{factor}}} \cdot \underbrace {\mathop {\max }\limits_a Q\left( { {s_{t + 1}},a} \right)}_{ {\text{estimate}}\;{\text{of}}\;{\text{optimal}}\;{\text{future}}\;{\text{value}}}} \right)}^{ {\text{learned}}\;{\text{value}}} \tag {1} Q(st,at)(1α)oldvalue Q(st,at)+learnigrate αreward rt+discountfactor γestimateofoptimalfuturevalue amaxQ(st+1,a) learnedvalue(1)

从上述公式可以看出,Q值的更新相当于利用学习率对过去的Q值和当前的Q值进行加权求和
注: 关于学习率设定,有的资料会考虑历史学习的结果,即学习率小于1;也有的资料并未考虑历史学习的结果,相当于学习率设置为1)

注: 上式中,可能有同学会对右边括号中的 r t r_t rt写法有困惑(有的资料里面用 r t r_t r

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值