深度强化学习系列(10): NoisyNet-DQN原理及实现

在这里插入图片描述

论文地址: https://arxiv.org/pdf/1706.10295v1.pdf
本篇论文是DeepMind发表于顶会ICLR2018上的论文,第一作者Meire,里面也有熟悉的Mnih等大佬,还是往常的阅读顺序:
在这里插入图片描述

本文解决的是强化学习中的“探索问题”(efficient exploration),作者通过给训练网络中添加噪音参数(和梯度更新同时更新网络权重参数),通过权重网络的训练来更新参数,结果表明能够使用额外较小的计算成本,在A3C、DQN、Dueling DQN等算法上实现相对于传统的启发式更优的结果。
在这里插入图片描述

1。背景及问题

我们知道,对于探索-利用而言,目前通常采用以下两种方法:

  • epsilon-greedy ϵ \epsilon ϵ- g r e e d y greedy greedy(以超参数形式给出)很有可能会导致智能体采取随机步骤,而不是按照它学到的策略采取行动。 通常的做法是,在训练开始时使该 ϵ \epsilon ϵ- g r e e d y = 1 greedy=1 greedy=1,然后慢慢减小到一个较小的值,例如0.1或0.02。

  • 熵正则化:将策略的熵添加到损失函数中时,在策略梯度方法中使用它,以惩罚我们的模型过于确定其行为。

而常见的启发式搜索在强化学习中的原则是“Optimism in the face of uncertainty”,这种面对不确定性乐观的属性就导致了启发式需要在智能体的性能表现上有理论保证,而这些方法的缺点在于仅限于使用在较小的状态、动作空间比较小或者是线性函数逼近的问题上效果还可以,对于一些问题复杂的函数毕竟问题并不能够很好的进行解决。

本文作者提出了一种NoisyNet,该方法主要包括将高斯噪声添加到网络的最后(完全连接)层。 噪声的参数可以在训练过程中通过模型进行调整,这使智能体可以决定何时以及以什么比例将权重引入不确定性。

2.原理与数学过程

NoisyNet是一个神经网络,其权重和偏置会受到噪音的影响,

一般的,如果将NoisyNet数学表示为 y = f θ ( x ) y=f_{\theta}(x) y=fθ(x)(x表示输入,y表示输出, θ \theta θ表示噪音参数),作者在此处将 θ \theta θ定义为:
θ =  def  μ + Σ ⊙ ε \theta \stackrel{\text { def }}{=} \mu+\Sigma \odot \varepsilon θ= def μ+Σε
其中 ζ =  def  ( μ , Σ ) \zeta \stackrel{\text { def }}{=}(\mu, \Sigma) ζ= def (μ,Σ)定义为是一组可学习参数向量的集合, “ ε \varepsilon ε”是零均值噪声的矢量,具有固定统计量, ⊙ \odot 表示逐元素乘法。那么关于噪音参数的的损失函数我们表示为:
ε : L ˉ ( ζ ) =  def  E [ L ( θ ) ] \varepsilon: \bar{L}(\zeta) \stackrel{\text { def }}{=} \mathbb{E}[L(\theta)] ε:Lˉ(ζ)= def E[L(θ)]
那么接下来的过程就是对 ζ \zeta ζ进行优化。那如何优化呢?

接下来让我们思考这样一个问题
对于一个 p p p 个输入 q q q 个输出来说,数学表示为 y = w x + b y= wx+b y=wx+b,其中可知 w ∈ R q × p w \in \mathbb{R}^{q \times p} wRq×p, x ∈ R p x \in \mathbb{R}^{p} xRp, b ∈ R p b \in \mathbb{R}^{p} bRp,这个理解起来很简单。那么如果给参数中添加噪音呢(也就是给网络结构添加噪音)?下面是作者给出的带有噪音参数的线性层数学表示:
y =  def  ( μ w + σ w ⊙ ε w ) x + μ b + σ b ⊙ ε b y \stackrel{\text { def }}{=}\left(\mu^{w}+\sigma^{w} \odot \varepsilon^{w}\right) x+\mu^{b}+\sigma^{b} \odot \varepsilon^{b} y= def (μw+σwεw)x+μb+σbεb
乍看起来挺复杂,其中$w 等 价 于 等价于 \left(\mu{w}+\sigma{w} \odot \varepsilon{w}\right)$,$b$等价于$(\mu{b}+\sigma^{b} \odot \varepsilon^{b})$,每个参数的维度如下:

μ \mu μ σ \sigma σ ε \varepsilon ε
μ w ∈ R q × p \mu^{w} \in \mathbb{R}^{q \times p} μwRq×p σ w ∈ R q × p \sigma^{w} \in \mathbb{R}^{q \times p} σwRq×p ε w ∈ R q × p \varepsilon^{w} \in \mathbb{R}^{q \times p} εwRq×p
μ b ∈ R q \mu^{b} \in \mathbb{R}^{q} μbRq σ b ∈ R q \sigma^{b} \in \mathbb{R}^{q} σbRq ε b ∈ R q \varepsilon^{b} \in \mathbb{R}^{q} εbRq

其中 ε \varepsilon ε是随机噪音参数,下图是对该过程进行图表示:
在这里插入图片描述

其含义如下:

以上是如何引入噪音的问题,在论文中,作者尝试噪音参数引入的两种分布:

  • 独立高斯噪声(Independent Gaussian Noise):噪声层的每个权重都是独立的,并且具有模型自己学习的 μ \mu μ σ \sigma σ。也就是对于任意的 ε i , j w \varepsilon^{w}_{i,j}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值