【问题标题】:How to train a neural network with Q-Learning如何使用 Q-Learning 训练神经网络
【发布时间】:2018-05-17 14:25:45
【问题描述】:

我刚刚在没有神经网络的情况下实现了 Q-Learning,但我一直坚持使用神经网络来实现它们。

我会给你一个伪代码,展示我的 Q-Learning 是如何实现的:

train(int iterations)
    buffer = empty buffer
    for i = 0 while i < iterations:

         move = null
         if random(0,1) > threshold:
             move = random_move()                 
         else
             move = network_calculate_move()

         input_to_network = game.getInput()
         output_of_network = network.calculate(input_to_network)

         game.makeMove(move)
         reward = game.getReward()

         maximum_next_q_value = max(network.calculate(game.getInput()))

         if reward is 1 or -1:            //either lost or won
             output_of_network[move] = reward
         else:
             output_of_network[move] = reward + discount_factor * max


         buffer.add(input_to_network, output_of_network)
         if buffer is full: 
             buffer.remove_oldest()
             train_network()


train_network(buffer b):
     batch = b.extract_random_batch(batch_size) 
     for each input,output in batch:
          network.train(input, output, learning_rate)  //one forward/backward pass

我现在的问题是此代码适用于小于 200 的缓冲区大小。 对于任何超过 200 的缓冲区,我的代码不再起作用,所以我有几个问题:

  1. 这个实现是否正确? (理论上)
  2. 批量大小与缓冲区大小相比应该有多大
  3. 通常如何训练网络?多长时间?直到达到整个批次的特定 MSE?

【问题讨论】:

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


    【解决方案1】:

    这个实现是否正确? (理论上)

    是的,您的伪代码确实有正确的方法。

    批量大小与缓冲区大小相比应该有多大

    从算法上讲,在随机梯度下降中使用更大的批次可以减少随机梯度更新的方差(通过取批次中梯度的平均值),这反过来又可以让您采用更大的步长,这意味着优化算法会进步得更快。

    体验回放缓冲区存储固定数量的近期记忆,当新记忆进入时,旧记忆会被删除。到了训练的时候,我们只需从缓冲区中抽取一批统一的随机内存,然后用它们训练我们的网络。

    虽然相关,但批处理大小与缓冲区大小没有标准值。试验这些超参数是深度强化学习的乐趣之一。

    通常如何训练网络?多长时间?直到一个 是否达到整批的特定MSE?

    网络通常被训练直到它们“收敛”,这意味着在 Q 表中反复没有有意义的变化

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2012-04-02
      • 2018-08-19
      • 2010-11-20
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      相关资源
      最近更新 更多