Hardware-Friendly Actor-Critic Reinforcement Learning Through Modulation of Spike-Timing-Dependent Plasticity

郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

IEEE TRANSACTIONS ON COMPUTERS, VOL. 66, NO. 2, FEBRUARY 2017

 

Abstract

  在这项工作中,我们提出了一种硬件友好的强化学习算法。学习算法基于使用脉冲神经网络(SNN)实现的actor-critic结构。一种生物学合理且对硬件友好的脉冲时序依赖可塑性学习规则被制定,并将其用于SNN的训练。在强化学习环境中应用学习规则的几个重要方面得到了研究,特别是从电路设计人员的角度来看。识别并正确解决潜在噪声混合和相关脉冲的缺陷。为了采用低功耗学习架构,提出了诸如对某些学习块进行下采样数据、将量化噪声作为神经元中的噪声残基注入以及适当的内存分区等技术。本文研究了一个一维状态价值函数学习问题和一个二维迷宫行走问题,以说明所提出的算法和学习规则的有效性。一种低功耗的硬件架构被提出,并用Verilog实现了示例。分析了所提算法的硬件复杂度,并讨论了当问题规模变大时打破内存瓶颈的潜在解决方案。

 

Index Terms—Reinforcement learning, spiking neural network, hardware neural network, spike-timing-dependent plasticity, and actor-critic network

 

1 INTRODUCTION

  近年来,硬件友好的机器学习算法的开发和实现引起了许多研究人员的关注。主要目标是通过利用专用硬件的计算能力将机器学习的能力提升到一个新的水平。与传统的纯软件方法相比,专用硬件能够实现更高的计算能力,同时消耗更少的能量。可用的硬件平台包括通用现场可编程门阵列(FPGA)[1][2][3][4]、定制的CMOS芯片[5][6][7][8][9][10][11][12],新兴的纳米技术,如忆阻器[13][14]和自旋电子学[15]。

  各种机器学习算法已经在上述硬件平台上实现,例如深度学习[8][12]、稀疏学习[10]和支持向量机[16]。然而,作为机器学习最重要的分支之一,强化学习仅在有限的文章中得到报道[9]。

  脉冲神经网络(SNN)作为第三代神经网络,是帮助完成大量机器学习任务的有前途的技术。传统上,强化学习是在人工神经网络(ANN)的基础上发展起来的,其中ANN被用作通用函数近似器。最近,有人试图用SNN构建强化学习,因为假设这种学习方式实际上可能是哺乳动物如何学习的机制[17][18][19][20][21]。除了生物学上的可行性,SNN对硬件更加友好,尤其是在网络规模很大的情况下。地址事件表征(AER)能够方便地互连大型网络中的各个子SNN [5][11][22],并且SNN的并行特性通过利用专门硬件的并行处理能力实现快速计算。此外,与传统计算相比,SNN提供的事件驱动计算更加节能。例如,在[23]中已经表明,定制的SNN硬件比在FPGA上实现的传统的基于发放率的ANN能效高两个数量级。因此,近年来神经网络的硬件实现重点已从ANN转移到SNN。越来越多的SNN,例如IBM [11]的TrueNorth、欧洲的CAVIAR [12]和HRL [24]的神经形态芯片,都是为了解决更大、更复杂的任务而构建的。

  长期以来,人们一直认为SNN中存在的脉冲时序依赖可塑性(STDP)是哺乳动物大脑学习的潜在机制[25][26]。为了使SNN具有学习能力,STDP通常用作硬件SNN中的学习算法。在大多数情况下,STDP被视为生物学合理且经验上成功的学习规则,而没有对其基本原理进行研究。神经科学界有许多努力试图解释STDP在学习中的基本作用[27]。Hinton在[28]中首先假设基于STDP的学习可能是梯度下降学习的一种形式。后来,类似的想法以不同的形式出现在不同的上下文中[17][18][19][20]。

  在本文中,STDP学习规则被开发为一种硬件友好的学习机制。本文的主要目的不是揭示STDP学习规则在生物学背景下的确切作用。相反,我们的目标是通过合理的简化和假设,将STDP学习规则调整为一种经济的硅学习方式。结果表明,经过细微调整的STDP成为梯度的度量。结果,STDP学习规则变成了一种梯度下降优化方法。在学习规则合理的情况下,我们专注于将其用作基于actor-critic网络的强化学习的有效工具。形成了面向硬件的学习规则,并提出了有助于实现更好学习性能的实现技术。当STDP学习规则用于试图最小化时序差分(TD)误差的强化学习时,就会发现噪声混合问题。高频量化噪声被下变频到基带,这将使学习过程饱和,除非使用适当的过滤。此外,为了确保STDP学习规则正确执行,需要一个统计神经元模型,使得脉冲之间几乎没有相关性。我们提出了一种量化噪声注入技术,该技术避免使用伪随机发生器,从而节省功率和面积。此外,建议在强化学习任务中使用两种不同的采样率,以利用1位脉冲信号的轻松路由和多位计算的功率效率。此外,与下采样过程相关的抽取增益也有助于减少定点实现中突触权重所需的位数。受[18]启发的两个测试用例被用来检查硬件实现的各个方面。还提出了该算法的低功耗硬件架构,其示例在Verilog中实现为同步数字电路。此外,还分析了硬件复杂度。为了减轻内存访问带来的限制,还讨论了几种可能的解决方案。

 

2 BACKGROUND

  我们首先回顾了基于actor-critic的强化学习中的一些概念。为简洁起见,仅涵盖与本文密切相关的重要术语。有兴趣的读者可以参考强化学习的经典书籍[29]。

  在强化学习任务中,智能体尝试学习最佳策略,以随着时间的推移最大化其从环境中获得的奖励。最流行的强化学习类型之一是actor-critic方法。actor-critic架构中有两个网络。一种是负责动作选择的actor网络。它试图在critic网络的帮助下学习最优策略。一个策略,用π(s, a)表示,是状态 s 和动作 a 的函数。它表示在状态 s 选择动作 a 的概率。critic网络用于估计策略π(s, a)下状态st的价值。

(省略) 

 

3 STDP AS A MEASURE OF GRADIENT

  让我们考虑两层神经元,如图1所示。突触前(输入)神经元和突触后(输出)神经元输出的脉冲序列分别显示在(4)和(5)中:

其中脉冲的形状由兴奋性突触后电位E(t)表示。

  暂时搁置E(t)项并假设spikes只是pulses。这种表示脉冲的方式是硬件实现的标准。如图2所示,脉冲时序可以用作建立两个区域的边界:任何给定输入脉冲的因果和反因果。这两个区域的更详细的定义可能会随着实现的不同而不同。例如,对于以Δt作为时间分辨率的离散时间实现,如果输入神经元和输出神经元之间没有延迟,[-Δt, 0)和[0, Δt)能够被定义为两个区域,而(-Δt, 0]和(0, Δt]可用于输入和输出神经元之间存在一个单位时间延迟的实现。

  现在让我们关注由突触连接的一对输入和输出神经元。用于对神经元编号的下标被理解并在索引不重要的地方删除。(6)-(8)定义了三个有助于简化以下分析中的符号的量。它们是二项式随机变量,表示某些事件是否发生。

  仅发生因果脉冲的概率是:

  同样,仅发生反因果脉冲的机会是:

  我们有兴趣找出是什么,其中ρ(·)表示脉冲序列的归一化密度。现在让我们考虑准平稳的情况。也就是说,与神经元的工作频率相比,ρ(x(t))和ρ(y(t))的带宽要窄得多。我们首先在(11)中定义一个量stdp。

  然后我们有:

  接下来,我们在(9)-(12)的帮助下得出第一个关键公式。

  直观地说,(13)表明可以通过观察输出脉冲如何在输入脉冲上改变其统计行为来获得,输入脉冲作为对网络的小扰动。脉冲实现的一个优点(即E(t) = 1)是当前输入脉冲仅影响下一个输出脉冲。换句话说,与电流脉冲相差超过一个单位时间的输出脉冲是不相关的。因此,因果和反因果区域只需要跨越一个单位时间,从而在硬件上实现非常简单。在本文中,我们只讨论E(t) = 1的情况,因为这是大多数硬件实现中的常见做法。在使用非平凡的E(t)的情况下,这两个区域需要相应地扩展,因为突触前脉冲的影响随着时间的推移由E(t)分布。在这种情况下,需要更大的时间窗口来累积由突触前脉冲引起的所有影响。

  即使(13)是通过假设只有一对输入和输出神经元获得的,它也适用于如图1所示的输入和输出神经元网络,只要每个神经元的脉冲时间合理地不相关。一个直观的例子是,在任何给定的时间ti,如图2所示,当输入神经元脉冲不存在时,输出神经元在两个区域中的任何一个中发放的概率相等。当输入脉冲出现时,输出脉冲更有可能出现在 ti 的一侧,这取决于突触是兴奋性的还是抑制性的。来自其他输入神经元的贡献表现为噪声,如果它们不相关,它们很容易被过滤掉。对于大多数SNN,尤其是那些使用统计模型的SNN,每个神经元的脉冲时间有点不相关的温和假设成立。尽管每个神经元的密度可能高度相关(特别是考虑到经常使用稀疏编码),但单个脉冲的脉冲时间可能在很大程度上是不相关的。因此,(13)可以很容易地用于大型网络,并且可以同时获得各个梯度。这与同时扰动随机近似(SPSA)[30]具有相同的精神。

  接下来,我们假设(14)可以近似地描述所选神经元模型中的输入-输出关系,其中fj(·)是一个取决于所使用的脉冲神经元模型的函数。(14)的正确性是有充分理由的,因为它实际上是人工神经网络的基础。

  然后,通过(13)和(14),我们得到了第二个关键公式。

  公式(15)与文献中的乘法STDP学习方法非常相似。等式中的分母wi,j在以前的文献[17][18]中不存在。我们相信这个分母在学习中起着关键作用。从数学上讲,包括权重至少提供了符号信息。如果允许负权重,那么肯定需要一个项来改变(15)中的符号,否则会导致梯度下降的错误方向。另一点是分母的引入确保了wi,j的上限。这也是首先引入乘法STDP学习规则的主要原因。

  为了验证(15),我们在具有五个输入神经元和一个输出神经元的网络上进行了模拟。在第一个模拟中,一个输入神经元的输入膜电位被扫描,而其他输入神经元的输入电位保持在固定但随机选择的值。在第二个模拟中,所有五个输入神经元的脉冲密度都是固定的,而一个突触的权重被扫描。在这两种模拟中,都使用了LIF神经元模型。向所有神经元注入少量噪声,以减少每个神经元脉冲时间的相关性。在图3中,从STDP获得的结果与数值结果很好地匹配,直到神经元的发放率达到一定水平。这是由算法的离散时间性质引起的。当发放率太大时,很难将输出脉冲分类为因果脉冲或反因果脉冲,因为输入脉冲几乎占据了时间线上所有可能的时隙。幸运的是,可以通过以更快的时钟为代价保持离散时间设计的时间分辨率足够精细,从而避免饱和。在图4中,基于(15)估计的结果与数值获得的梯度之间取得了很好的一致性,证明了分母的存在。(15)的准确性在很大程度上取决于(14)中的模型如何能够描述所选神经元模型的实际动态。(14)的限制在于只有权重和输入脉冲密度的乘积才重要。也就是说,如果他或她反向缩放权重和输入脉冲密度,将获得相同的结果。当权重和输入脉冲密度不太大时,这对于IF模型来说大致是正确的。同样,如果时钟频率足够高,这可以实现。

 

4 REINFORCEMENT LEARNING WITH STDP

  在actor-critic强化学习任务中,最关键的部分是状态价值函数学习。使用(15),可以根据(16)更新每个突触的权重。

其中 η 是学习率,δt 是(17)中定义的时序差分TD误差。

其中 γ 是折扣因子,R(t) 是在时间 t 收到的奖励。

  为了利用(17),需要适当的过滤来抑制下混噪声。为了说明这一点,让我们将TD误差和脉冲时序(ST)信息表示为:

其中δ0(t)和ρ0(stdpi,j(t))是我们感兴趣的信号部分,nδ(t), nρ(t)是量化噪声。

  使用(18)和(19),我们有:

  与Σ - Δ调制器类似,(18)和(19)中所示的量化噪声具有位于高频的大部分能量。对于nδ(t)尤其如此,如(17)所示,对其应用了类似差异的过滤器。(20)中的噪声nρ(t)和nδ(t)的缩放版本几乎没有问题,因为(20)中的结果是随着时间的推移求和的,这相当于通过一个积分器。因此,nρ(t)和nδ(t)中的高频噪声被积分器滤除。因此,学习过程对这种类型的噪声具有一定的鲁棒性。(20)中的nρ(t)nδ(t)项要麻烦得多,因为它们会产生如图5和(21)所示的下混噪声。式中,Φ(·)代表自相关,F(·)和F-1(·)分别代表傅里叶和傅里叶逆变换。

  公式(21)不能解析求解,因为噪声谱的相位信息通常是未知的。然而,在数值模拟的帮助下可以进行定性分析。出现在低频下的下混噪声可能比所需信号部分显著几个数量级。更糟糕的是,量化噪声nδ(t)和nρ(t)是相关的,使得下混噪声严重偏差。因此,为避免被下变频噪声饱和,在乘法之前需要进行适当的滤波。从电路设计人员的角度来看,应该为V(t)或δ(t)使用复杂的滤波器,并为stdpi,j使用简单的低功耗滤波器。例如,具有不断增长的阻带衰减的设计良好的有限脉冲响应(FIR)滤波器可用于状态价值函数,而简单的移动平均滤波器可用于脉冲时序信息。有两个原因。第一个是δ(t)与stdpi,j相比具有更多的高频噪声,因为噪声被塑造了两次:一次由神经元塑造,第二次由(17)塑造。 另一个原因是δ(t)只需要过滤一次,就可以用于所有stdpi,j,而每个stdpi,j需要单独过滤。

  过滤后,可以很容易地使用抽取来显著降低功耗,大约是原始的log2(M)/M倍,其中M是下采样率。下采样过程如图6所示。抽取在定点实现中也非常有用,这在硬件实现中非常流行。这是因为抽取增益可以有效地促进权重变化,减少存储权重所需的位数。

  为了演示所提出的方法,让我们首先考虑一个一维问题。模拟中采用了类似于[18]中的critic网络。被测critic网络如图7所示。智能体在固定策略下向目标移动。输入神经元是对应于不同位置的位置细胞。每个输入神经元的输入电位pi(t)计算为:

其中 x 是智能体的当前位置,ci 是输入神经元 i 的中心,k(·)是类似于径向基函数(RBF)网络中使用的核函数。最流行的选择是高斯核。

  达到目标后,智能体会收到奖励。对于每次训练(或迭代),智能体首先被放置在一个固定的起点,并以恒定的速度向目标移动。学习是在执行任务时发生的。每次训练后,智能体都会回到起点,开始新的训练阶段。智能体因此通过TD学习来学习这个过程中的状态价值函数。

  图8显示了经过几次训练后得到的状态价值函数和解析得到的参考结果。在x = 300处,智能体收到奖励。然后为每个状态分配最终奖励的信度,如图所示,形成指数曲线。TD误差的反向传播在图中清楚地显示出来,结果与参考很好地匹配。

  为了证明适当过滤的重要性,图9显示了在将不同阶数的过滤器应用于stdpi,j和δ(t)时,critic网络的输出与参考之间的均方根误差(RSME)。为了公平比较,所有滤波器都是移动平均FIR滤波器。唯一的区别是使用的tap数量。对于tap较少的情况,学习率会降低,否则会发散。如图所示,随着滤波器阶数的增加,学习效果会更好。

  我们之前假设输入脉冲是不相关的。一般来说,这是一个很好的假设。即使使用确定性IF神经元模型,如果输入核是非线性的并且输入是变化的,则输入脉冲序列是合理不相关的。在必须使用简单线性核的情况下,或者只是想使用统计神经元模型来提高性能的情况下,可以将噪声添加到IF神经元模型中。然而,注入噪声是一项昂贵的操作,尤其是在硬件实现中,因为每个神经元都需要运行与神经元一样快的伪随机数生成器。

  为了解决这个问题,我们提出利用现成的量化噪声来实现统计模型。图10a显示了具有噪声阈值的IF模型。另一个统计模型,图10b中所示的噪声残差模型的行为类似于噪声阈值模型。不同之处在于,噪声阈值模型中的每个时钟周期都会注入噪声,而噪声残留模型中的每个脉冲都会注入噪声。在图10c中,不是注入白噪声残余,而是采用量化残余作为"自由"噪声。通过这种噪声注入机制,每个IF神经元都表现为一阶Σ - Δ调制器。即使添加到每个神经元的量化噪声在这种情况下取​​决于该神经元的输入,但在输入变化的实际情况下,神经元的量化噪声变得相当不相关。这是因为量化噪声是该神经元所有过去状态的积分函数,这通常会因神经元而异。除了注入噪声之外,具有量化残差的离散时间IF神经元更接近于连续时间IF神经元,因为它较少受到脉冲时序量化问题的影响。因此,除非另有说明,否则我们将在本文的其余部分使用此神经元模型。

  从三个案例中获得的RSME绘制在图11中用于高斯核,图12用于三角形核。第一种情况是使用确定性IF模型进行学习。第二种情况是使用统计IF模型进行训练,其中使用具有白频谱的噪声残差。第三种情况是带有量化噪声残留的中频模型。如图所示,当使用高斯核时,所有三个测试用例都可以取得令人印象深刻的学习结果。确定性模型略逊于其他两种情况。当使用三角核时,确定性模型的表现明显比其他两个统计模型差。在图13中比较了每对神经元之间相关性的平均幅度。当智能体位于它们之间时,测量两个相邻输入神经元的相关性。如图所示,基于性能不佳的三角核的确定性模型在脉冲之间具有高度相关性。借助所提出的量化噪声注入,可以实现低相关值并显著提高学习性能。

  接下来,检查具有actor-critic网络的二维测试用例。智能体被放置在120 x 120迷宫中的随机起点。它以恒定的速度移动,移动方向由actor网络控制。智能体的目标是在避开墙壁和障碍物的同时到达目标。智能体最初对目标、墙壁和障碍物一无所知。它通过强化从每次试验中学习。 前面一维示例中的critic网络可以很容易地适应这个二维迷宫问题。要完成actor-critic网络,我们仍然需要actor网络。我们使用的actor神经元类似于critic神经元。在迷宫问题中,我们提出使用四个actor神经元,如图14所示,分别代表北、南、西和东。在每个时间单位,神经元 N 和神经元 S 比较它们的电位,以及具有较大电位脉冲的那个。发放后,两个神经元的膜电位都重置为零。对 E 和 W 神经元进行类似的操作。这种方法的行为类似于赢家通吃的方法。然而,这种操作方式避免了[18]中对居住权重的试错调整。为了进行探索,噪声被注入到actor神经元中。与(16)中所示相同的学习规则被用于actor神经元。在这个迷宫问题中,我们利用动作的互斥性和正交性,导致我们采用如(23)所示的策略。

其中π(s, a)是策略,s(t)是当前状态,a(t)是选择的动作,ak是动作 k,是ak的反面,nk是注入的噪声。

  等式(23)的行为类似于Gibbs softmax方法[29],即以高概率选择首选动作(具有较大权重的动作),而出于探索目的以低概率选择其他动作。根据(16)更新权重,以便在收到正TD误差时加强所采取的动作,反之亦然。

  当互斥性质不存在时,可以应用如(24)所示的更一般的策略。在(24)中,以最高概率采取最优选的动作。

  过滤来自每个actor神经元的脉冲,移动方向由下式确​​定:

  进行了两组模拟,结果如图15, 16, 17和18所示。使用了81个位置单元。对于每次训练,智能体都被放置在迷宫中的随机起点。然后智能体开始以恒定的速度在迷宫中游荡。其运动方向由公式(25)确定。当智能体撞到障碍物或墙壁时,它会反弹回来并受到惩罚(负奖励)。每当智能体达到目标(小于总面积的3%)时,就会提供奖励并终止当前的训练周期。如果智能体的运行时间超过预设的超时限制,也可以终止训练周期。一旦一个训练周期结束,智能体就会被放置在迷宫中一个新的随机起点,然后另一个训练周期开始。迷宫配置如图17和图18所示。对于第一组模拟(图15和17),迷宫中没有放置障碍物。对于第二组模拟(图16和18),迷宫中放置了一个障碍物。

  智能体收到的累积奖励以及智能体在每个训练周期中到达目标所花费的时间绘制在图15和图16中。为了更好地说明,图中的结果被过滤以显示成功学习的趋势。如图所示,智能体最初对环境很幼稚。因此,收到的奖励很少甚至是负的。智能体无法在超时限制内达到目标,在我们的实验中设置为10,000。经过多次训练,智能体学会了如何避开墙壁和障碍物并朝着目标移动。图17和18显示了critic网络的输出和actor网络选择的首选动作。图中的彩色图代表了critic网络输出的相对大小。图中的箭头表示该点的首选动作。颜色越亮,critic网络的输出越大。更大的critic输出意味着智能体"认为"在这些区域中获得奖励的机会更高。因此,actor网络将智能体引向那些奖励区域。

 

5 HARDWARE ARCHITECTURE

 

6 CONCLUSION AND FUTURE WORK

  在本文中,我们制定了生物学合理且硬件友好的STDP学习规则。STDP学习规则原来是一种梯度下降优化算法。基于这个学习规则,基于actor-critic网络的强化学习被提出。发现在权重更新过程中量化噪声被下混到基带中,旨在最小化TD误差。因此,建议在critic的输出处使用适当的滤波,以在混合之前消除噪声。滤波后抽取被提出作为一种有效的方法来减少学习相关块的操作频率,以及减少在学习任务中表示突触权重所需的位数。还研究了相关脉冲的影响,并提出了一种量化噪声注入技术来帮助减少相关性,提高学习性能。研究了状态价值函数学习的一维问题和迷宫行走的二维问题。配备所提出算法的智能体可以有效地学习任务。此外,还提出了一种低功耗硬件架构,并在Verilog中实现了示例。随着网络规模的扩大,为了打破内存瓶颈,还讨论了可能的解决方案,例如利用内存分区、分层内存结构和紧急内存技术。

  在本文中,只考虑了两层神经元,因为它是完成感兴趣的任务所需的层数。然而,将(16)调整为更通用的形式应该很简单,可以应用于多层配置。主要区别在于图2中所示的区域划分需要根据与层数相关的延迟进行调整。此外,除了本文考虑的单任务场景外,该方法还可以处理多任务场景。例如,可以采用诸如[35]中提出的比例因子之类的技术来处理多个奖励。在未来的工作中,将研究多层SNN的更一般的学习规则。此外,利用STDP学习规则构建具有模拟神经元的神经形态芯片将是另一个研究方向。

posted on 2022-03-04 14:36  穷酸秀才大草包  阅读(178)  评论(0编辑  收藏  举报

导航