当前位置:   article > 正文

Q-learning算法_在q learning中,q值的计算公式

在q learning中,q值的计算公式

Q-learning算法

在Q-learning中,Q的意思是Q函数,即某个策略 π \pi π下的动作价值函数 Q π ( s t , a t ) Q^\pi(s_t, a_t) Qπ(st,at), 他表示在状态 s t s_t st下, 执行动作 a t a_t at会带来的累计奖励 G t G_t Gt的期望
Q π ( s t , a t ) = E [ G t ∣ s t , a t ] = E [ r t + γ Q π ( s t + 1 , a t + 1 ) ∣ s t , a t ]

Qπ(st,at)=E[Gt|st,at]=E[rt+γQπ(st+1,at+1)|st,at]
Qπ(st,at)=E[Gtst,at]=E[rt+γQπ(st+1,at+1)st,at]
给定策略下, 当前状态的Q函数值与

  1. 当前动作的奖励
  2. 下一状态的Q函数值

有关

因此, Q函数的计算可以通过动态规划算法来实现.

但由于计算t时刻的Q函数是,需要知道未来时刻的奖励,这样就
“不仅需要知道某一状态的所有可能出现的后续状态及对应的将离职,还要进行全宽度的回溯来更新该状态的价值”, 对于大规模问题,这样的做法几乎是不可能使用的, 因此Q-learning使用了浅层的时序差分采样学习.

也就是基于当前策略 π \pi π预测接下来发生的n步动作,并计算其奖励值, 以计算累计奖励.

在Q-learning中, 最优策略 π ∗ \pi^{*} π 对应的最优Q函数满足
Q ∗ ( s t , a t ) = max ⁡ π Q π ( s t , a t ) = E s t + 1 [ r t + γ   max ⁡ a t + 1 Q π ( s t + 1 , a t + 1 ) ∣ s t , a t ] Q^*(s_t,a_t) = \max_{\pi} Q^\pi(s_t, a_t) = \mathbb{E}{s_{t+1}}[r_t+\gamma\ \max_{a_{t+1}}Q^{\pi}(s_{t+1}, a_{t+1})|s_t, a_t] Q(st,at)=πmaxQπ(st,at)=Est+1[rt+γ at+1maxQπ(st+1,at+1)st,at]
其中 Q ∗ ( s t , a t ) = Q π ∗ ( s t , a t ) Q^*(s_t,a_t) = Q^{\pi^*}(s_t,a_t) Q(st,at)=Qπ(st,at)

Q-learning在学习过程中不断更新Q值, 但采用的是类似梯度下降的方式
Q ∗ ( s t , a t ) ← Q ∗ ( s t , a t ) + α ( r t + γ   max ⁡ a t + 1 Q ∗ ( s t + 1 , a t + 1 − Q ∗ ( s t , a t ) ) Q^*(s_t,a_t) \leftarrow Q^*(s_t,a_t)+ \alpha(r_t+\gamma\ \max_{a_{t+1}}Q^{*}(s_{t+1}, a_{t+1}- Q^*(s_t,a_t)) Q(st,at)Q(st,at)+α(rt+γ at+1maxQ(st+1,at+1Q(st,at))

这就是Q-learning用于更新价值(动作价值)的策略.

而对于具体选择动作的策略, Q-learning一般采用 ϵ \epsilon ϵ-贪婪策略.

由于采取动作的策略( ϵ \epsilon ϵ-贪婪策略)和更新价值的策略(渐进式更新)不同, 因此Q-learning是一种off-policy策略.

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号