【问题标题】:Calculating Q value in dqn with experience replay使用经验回放计算 dqn 中的 Q 值
【发布时间】:2018-01-11 18:06:56
【问题描述】:

考虑深度 Q 学习算法

1   initialize replay memory D
2   initialize action-value function Q with random weights
3   observe initial state s
4   repeat
5       select an action a
6           with probability ε select a random action
7           otherwise select a = argmaxa’Q(s,a’)
8       carry out action a
9       observe reward r and new state s’
10      store experience <s, a, r, s’> in replay memory D
11
12      sample random transitions <ss, aa, rr, ss’> from replay memory D
13      calculate target for each minibatch transition
14          if ss’ is terminal state then tt = rr
15          otherwise tt = rr + γmaxa’Q(ss’, aa’)
16      train the Q network using (tt - Q(ss, aa))^2 as loss
17
18      s = s'
19  until terminated

在第 16 步中,Q(ss,aa) 的值用于计算损失。这个Q值是什么时候计算的?在采取行动时还是在培训期间?

由于重放内存只存储 而不是 q 值,假设 q 值将在训练期间计算是否安全?

【问题讨论】:

  • 您能解释一下“重放内存仅存储而没有 q 值”是什么意思吗?谢谢!
  • @PabloEM 抱歉,这里有一些错别字。我现在已经更正了。更正:“由于回放内存只存储 而不是 q 值”
  • 好的,谢谢!我怀疑这是一个错字,但不确定...

标签: neural-network reinforcement-learning q-learning


【解决方案1】:

是的,在第 16 步中,在训练网络时,您正在使用损失函数 (tt - Q(ss, aa))^2,因为您想要更新网络权重以逼近最近的 Q 值,计算为 rr + γmaxa’Q(ss’, aa’) 并用作目标。因此,Q(ss, aa) 是当前估计,通常在训练期间计算。

Here 你可以找到一个带有简单深度 Q 学习实现的 Jupyter Notebook,这可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    相关资源
    最近更新 更多