深度q学习(dqn)与神经拟合q迭代之间的区别

时间:2019-04-24 23:15:15

标签: reinforcement-learning

“通过深度强化学习进行人级控制”的深度q学习(dqn)与“神经拟合Q迭代-数据有效的神经强化学习方法的初体验”的神经拟合q迭代之间有什么区别? 链接分别在下面。 https://www.nature.com/articles/nature14236.pdf http://ml.informatik.uni-freiburg.de/former/_media/publications/rieecml05.pdf

根据我的理解,除了dqn每C个步骤更新目标网络外,他们似乎在做同样的事情。

1 个答案:

答案 0 :(得分:1)

除DQN中存在目标网络外,神经拟合Q迭代仅使用可用的历史观测值,而不进行任何探索。换句话说,不需要环境,只需要遍历训练步骤即可:

D = historical data
for e in range(epochs):
  b = get_batch from D
  train_step(b)

在DQN中有两个循环:

D = []
for e in range(max_episode):
  done = False
  s = env.reset()
  while (!done)
   a = policy.get_action(s)
   s',r, done = env.step(a)
   D.append(s,a,r,s')
   if D.size > min_replay_mem:
    b = get_batch
    train_step(b)

train_step中都获得一个target值,然后使用欧几里得损失函数。为了获得target值,DQN使用目标网络,尽管拟合的Q迭代使用当前策略。

实际上,神经拟合Q迭代被视为批处理RL算法,它假定没有任何可用的环境。