dqn在训练过程中loss越来越大_强化学习(十)--DQN的理解

7fbc54e6ba063677a8c918fc5d074eab.png

Q-Learning可以很好的解决迷宫问题,但这终究是个小问题,它的状态空间和动作空间都很小。而在实际的情况下,大部分问题都有巨大的状态空间或动作空间,建立Q表,内存是不允许的,而且数据量和时间开销也是个问题。

NIPS 2013 Playing Atari with Deep Reinforcement Learning

Nature 2015 Human-level Control through Deep Reinforcement Learning

我们可以使用神经网络来表示我们的 Q 函数,每层网络的权重就是对应的值函数,取 4 四帧游戏图像作为 state,输出每个 action 对应的 Q 值。如果我们想要执行 Q 值的更新,或者选择具有最高 Q 值的对应的 action,我们只需经过整个网络一次就能立刻获得任意动作对应的 Q 值。DQN的原始输入为连续的4帧图像,不只使用一帧画面是为了感知环境的动态性。

0b8f6b0f6341f222f2f5f739cf8f12ab.png
左图:简单的DQN模型,右图:DeepMind改进的DQN模型

假设一帧图像有84个像素点,那么四帧图像就有84*84*4个像素。每一个像素点的取值是0-255可能,所有的可能性就有256^84*84*4。

a2bb87c105f941d0acf98068c3967111.png

DeepMind使用的网络结构如下:

9f25c4d816551972e69e5f4cda8ef7f9.png

这是一个经典的带有三层卷积层的卷积神经网络,后面跟两个全连接层。注意:这里没有池化层,池化层会让你获得平移不变性,即网络对图像中对象的位置变得不敏感。这对于 ImageNet 这样的分类任务来说是有意义的,但游戏中位置对潜在的奖励至关重要,我们不希望丢失这些信息。

这个网络的输入是4个84 x 84 的灰度游戏屏幕,输出是每个可能的动作对应的 Q 值 (DeepMind 实验玩的游戏是 Atari,对应有 18 种动作)。这成为一个回归任务,可以用简单的平方误差损失进行优化:

equation?tex=L%3D%5Cfrac%7B1%7D%7B2%7D%5Br%2Bmax_%7Ba%5E%7B%27%7D%7DQ%28s%5E%7B%27%7D%2Ca%5E%7B%27%7D%29-Q%28s%2Ca%29%5D%5E%7B2%7D

对于给定的<s, a, r, s'>,前一算法的 Q表的更新规则应该做如下修改:

1.对当前状态 s 进行一次前馈,获得所有 action 预测的 Q 值。;

2.对下一个状态 s' 进行一次前馈,计算整个网络最大的输出值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值