A Novel Reinforcement Learning Algorithm Based on Multilayer Memristive Spiking Neural Network With Applications
-
摘要: 人工神经网络(Artificial neural networks,ANNs)与强化学习算法的结合显著增强了智能体的学习能力和效率.然而,这些算法需要消耗大量的计算资源,且难以硬件实现.而脉冲神经网络(Spiking neural networks,SNNs)使用脉冲信号来传递信息,具有能量效率高、仿生特性强等特点,且有利于进一步实现强化学习的硬件加速,增强嵌入式智能体的自主学习能力.不过,目前脉冲神经网络的学习和训练过程较为复杂,网络设计和实现方面存在较大挑战.本文通过引入人工突触的理想实现元件——忆阻器,提出了一种硬件友好的基于多层忆阻脉冲神经网络的强化学习算法.特别地,设计了用于数据——脉冲转换的脉冲神经元;通过改进脉冲时间依赖可塑性(Spiking-timing dependent plasticity,STDP)规则,使脉冲神经网络与强化学习算法有机结合,并设计了对应的忆阻神经突触;构建了可动态调整的网络结构,以提高网络的学习效率;最后,以Open AI Gym中的CartPole-v0(倒立摆)和MountainCar-v0(小车爬坡)为例,通过实验仿真和对比分析,验证了方案的有效性和相对于传统强化学习方法的优势.
-
关键词:
- 强化学习 /
- 脉冲神经网络 /
- 脉冲时间依赖可塑性规则 /
- 忆阻器
Abstract: The combination of reinforcement learning algorithms with artificial neural networks (ANNs) enhances the learning ability of agents effectively. However, these algorithms consume a large number of computing resources, which are unfavourable for hardware implementation. Bionic spiking neural networks (SNNs) convey information by spikes and possess energy-efficient and hardware-friendly features. It is promising to accelerate reinforcement learning and develop embedded self-learning agents based on SNNs. Nevertheless, SNNs lack efficient learning algorithms and their training processes are really complex. As a result, it is challenging to design and implement SNNs. This paper proposes a hardware-friendly reinforcement learning algorithm based on an SNN by introducing famous artificial synapse element:memristor. Data-spike switching spiking neurons are designed especially. Then, we improve spiking-timing-dependent plasticity (STDP) rule to combine the SNN with reinforcement learning organically and the corresponding memristive synapses are created. Besides, the dynamic adjustable network structure is created to increase learning efficiency. Finally, a series of simulations show the effectiveness and advantages of the proposed scheme over conventional reinforcement learning algorithms in applications of CartPole-v0 and MountainCar-v0 in Open AI Gym environment. -
强化学习, 是智能体通过与环境交互、试错的过程来学习的行为.它是一种以环境反馈作为输入的自适应的机器学习方法[1], 目前已广泛应用于控制科学、运筹学等诸多领域[2-3].在强化学习过程中, 智能体最初对环境一无所知, 通过与环境交互的方式获取奖赏.智能体在这个过程中学习策略, 使得最终能在某种评价体系下达到最优目标. Q学习是一种典型的无需模型的强化学习算法, 智能体根据动作价值即Q值函数, 通过对状态-动作序列进行足够多的访问, 学习到最优策略[4].通常, 在Q学习任务中, Q值函数由表格的方式实现, 在状态为连续值的情况下, 则通过离散化状态以存储动作价值, 然而传统的表格法有如下缺点: 1)状态的离散度难以控制. 2)状态维数较多时会导致维数灾难.
将神经网络作为Q值函数拟合器可以有效解决以上问题.神经网络可以分为三代:第一代把McCulloch-Pitts神经元模型作为计算单元; 第二代为人工神经网络(Artificial neural network, ANN), 它们的计算单元中带有激活函数; 脉冲神经网络(Spiking neural network, SNN)将脉冲神经元作为计算单元, 被称为第三代神经网络[5]. SNN的学习方式与哺乳动物的学习方式非常类似[6].此外, SNN能量效率高, 有报道证明SNN芯片比用现场可编程门阵列(Field programmable gate array, FPGA)实现的ANN能耗低两个数量级[7].因此, 基于SNN的强化学习算法更容易进行低功耗-硬件实现.
与ANN类似, SNN的学习算法也分为监督学习算法和非监督学习算法.非监督学习算法仅仅基于数据的特征, 这类算法对计算能力要求较低, 因为不需要数据集的多次迭代, 脉冲神经网络中典型的非监督学习算法是脉冲时间依赖可塑性(Spike-timing dependent plasticity, STDP)学习规则[8].而监督学习算法需要带有标签的数据集, 需要多次迭代运算, 主要有远程监督学习算法(ReSuMe)等[9].
目前许多训练SNN的学习算法都只能用于不含隐含层的网络, 且没有通用的方法[10].对于训练多层SNN, 一种方式是先训练ANN, 再将其转换为SNN[11], 这种基于映射的学习方式会导致局部最优, 因为训练在ANN上进行, 而不是SNN[12].也有人提出了利用突触延迟的监督学习算法, 并行调整隐含层和输出层权重[13].由于本文基于多层SNN实现强化学习算法, 因此设计有效的多层SNN的训练方法是一个必须要解决的问题.
基于传统半导体器件和集成技术实现的神经网络电路复杂度高、规模小、处理能力有限, 难以真正用于嵌入式智能体.本文进一步引入新型纳米信息器件忆阻器, 探求强化学习算法的硬件加速新方案.忆阻器是除电阻、电容、电感以外的第四种基本电路元件, 由Chua[14]于1971年基于电路完备性理论提出, 其定义忆阻器的电阻值为流经忆阻器的磁通量和电荷的比值($M={\rm d}\phi/{\rm d}q$).然而, 由于没有物理实物, 忆阻器一直没有引起太多的关注.直到2008年, 美国惠普(HP)实验室制造出了基于二氧化钛的交叉存储阵列, 并声称交叉点处的存储单元即为预言的忆阻器[15], 立即引起了学术界和工业界的深厚兴趣.之后, 研究者对忆阻器的模型、特性进行了广泛的研究[16-17].此外由于忆阻器具有记忆力和类似突触的可变导电性, 使其成为构建硬件神经网络关键部件-电子突触的理想器件.近年来, Jo等[18]证明了CMOS神经元和忆阻突触构成的神经网络能够实现一些重要的突触行为, 如STDP.在此基础上, 研究者提出了多种用忆阻器实现STDP的方法, 例如Panwar等[19]实现了对任意STDP波形的模拟. Serrano-Gotarredona等[20]仅用一个忆阻器实现并完成了对STDP的仿真.
本文提出并研究了基于多层SNN的强化学习算法, 并利用忆阻器设计了其硬件实现方案, 下文称之为忆阻脉冲强化学习(Memristive spiking reinforcement learning, MSRL).首先, 为了实现数据和脉冲之间的转换, 设计了用于数据-脉冲转换的脉冲神经元; 然后, 通过改进基本STDP学习规则, 将SNN与强化学习算法有效结合, 并设计相应的忆阻突触以期实现硬件加速.此外, 为了进一步提高网络的学习效率, 构建了可动态调整的网络结构.最后基于brian2框架[21]完成了对MSRL的实验仿真.结果显示, MSRL控制的智能体可以以较低的计算资源消耗, 高效地完成强化学习任务.
本文结构如下:第1节介绍了Q学习和SNN以及忆阻器的背景知识, 第2节给出MSRL算法的基础, 第3节详细地介绍了MSRL算法设计.第4节给出仿真结果, 第5节总结全文.
1. 背景知识
1.1 Q学习
强化学习的理论基础是马尔科夫决策过程(Markov decision process, MDP). MDP可以表示为: $({\mathit{\boldsymbol{s}}}, {\mathit{\boldsymbol{A}}}, P_a({\mathit{\boldsymbol{s}}}_t, {\mathit{\boldsymbol{s}}}_{t+1}), R_a({\mathit{\boldsymbol{s}}}_t, {\mathit{\boldsymbol{s}}}_{t+1})$), 其中${\mathit{\boldsymbol{s}}}$是状态集, ${\mathit{\boldsymbol{A}}}$是动作集, $P_a({\mathit{\boldsymbol{s}}}_t, {\mathit{\boldsymbol{s}}}_{t+1})$表示若智能体在时间$t$时处于状态${\mathit{\boldsymbol{s}}}_t$, 采取动作$a$可以在时间$t+1$时转换到${\mathit{\boldsymbol{s}}}_{t+1}$的概率; $R_a({\mathit{\boldsymbol{s}}}_t, {\mathit{\boldsymbol{s}}}_{t+1})$表示通过动作$a$, 状态${\mathit{\boldsymbol{s}}}_t$转换到${\mathit{\boldsymbol{s}}}_{t+1}$所带来的及时奖赏.
强化学习中的Q学习是一种经典的在线学习方法.在学习过程中, 智能体在每一个时间步(step)内尝试动作, 获得来自环境的奖赏, 从而更新Q值和优化行动策略$\pi({\mathit{\boldsymbol{s}}})$ (如图 1).这个学习过程称为时间差分(Temporal difference, TD)学习[22].
强化学习的目标是让智能体通过与环境的交互学到最优的行动策略$\pi^{*}({\mathit{\boldsymbol{s}}})$, 使累积奖赏即回报最大.回报定义为
$ \begin{align} G_t = \sum\limits_{i = 0}^\infty {\gamma^{i}r_{t+i}} \end{align} $
(1) 其中, 折扣因子$\gamma\in[0, 1]$, 表示我们对未来奖赏的重视程度. $\gamma = 0$时智能体只关注当前奖赏值, $\gamma = 1$时未来奖赏与当前奖赏同样重要.
Q学习算法中的Q值是智能体按照行动策略$\pi({\mathit{\boldsymbol{s}}})$执行动作后所得回报的期望, 定义为
$ \begin{align} Q_\pi({\mathit{\boldsymbol{s}}}_t, a_t)={\rm E}_\pi[G_\pi|{\mathit{\boldsymbol{s}}}={\pmb s}_t, A=a_t] \end{align} $
(2) 智能体通过Q值的更新优化行动策略$\pi({\mathit{\boldsymbol{s}}})$, 使其所得回报增大. Q值更新公式为
$ \begin{align} &Q({\mathit{\boldsymbol{s}}}_t, a_t) \leftarrow Q({\mathit{\boldsymbol{s}}}_t, a_t)~+\notag\\ &\qquad \alpha[r_t+\gamma \max\limits_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})-Q({\pmb s}_t, a_t)] \end{align} $
(3) 其中, ${\rm max}_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})$表示智能体在状态${\mathit{\boldsymbol{s}}}_{t+1}$下采取动作$a_{t+1}$后所得到的Q值中的最大值, 而$\gamma {\rm max}_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})-Q({\mathit{\boldsymbol{s}}}_t, a_t)$便是所谓的TD误差, 用来衡量目标Q值$\gamma {\rm max}_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})$和当前Q值$Q({\mathit{\boldsymbol{s}}}_t, a_t)$之间的差距, 学习率$\alpha\in[0, 1]$表示对过往经验的重视程度.
除此之外, 在Q学习中选择动作的基本策略也即本文采取的策略是$\epsilon-{\rm greedy}$策略, 该策略也是Q学习同其他机器学习所不同之处, 它反映了Q学习中智能体探索(Exploration)和利用(Exploitation)之间的权衡.前者是指随机尝试动作, 以期获得更高的回报, 即$\epsilon$; 后者是执行根据历史经验学习到的可获得最大收益的动作, 即${\rm greedy}$.智能体以概率$\epsilon$随机选择动作, 而以$1- \epsilon$的概率选取最大价值所对应的动作.
基本Q学习的算法流程可描述为
算法1.基本Q学习算法
1 任意初始化动作价值$Q_\pi({\mathit{\boldsymbol{s}}}_0, a_0)$
2 for ${\rm episode}=1:M$ do
3 初始化状态${\mathit{\boldsymbol{s}}}$, 概率$\epsilon$
4 repeat
5 以概率$\epsilon$随机选择动作, 以概率$1-\epsilon$选取最大价值所对应动作
6 执行动作$a_t$, 获得奖赏$r_t$, 观察到状态${\mathit{\boldsymbol{s}}}_{t+1}$
7 更新Q值: $Q({\mathit{\boldsymbol{s}}}_t, a_t) \leftarrow Q({\mathit{\boldsymbol{s}}}_t, a_t)+ \alpha[r_t~+$$\gamma {\max}_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})-Q({\mathit{\boldsymbol{s}}}_t, a_t)]$
8 更新状态: ${\mathit{\boldsymbol{s}}}_t \leftarrow {\mathit{\boldsymbol{s}}}_{t+1}$
9 until ${\mathit{\boldsymbol{s}}}$ is terminal
10 end for
1.2 脉冲神经网络
脉冲神经网络(Spiking neural network, SNN)起源于神经科学, 广泛用于构建类脑神经系统模型, 例如用于设计模拟大脑皮层中的信息传递和时间动态可观测过程[23].与ANN类似, SNN也是由神经元和突触构成, 本文利用经典的LIF (Leaky integrate-and-fire)神经元模型和具有STDP学习规则的突触模型来构建SNN.
在流经离子通道的电流作用下, 脉冲神经元(Spiking neuron, SN)的细胞膜将会产生动作电位$u(t)$[24].当动作电位达到阈值后, 神经元将会发放脉冲, 这个过程可以描述为
$ u(t^{(f)})=u_{\rm th} $
(4) $ \frac{{\rm d}u(t)}{{\rm d}t}|_{t=t^{(f)}}>0 $
(5) 其中, $t^{(f)}$是神经元发放脉冲的时间, $u_{\rm th}$是阈值电压.
LIF模型将神经元抽象为一个RC电路(图 2).
图 2中, $\delta(t-t^{(f)}_i)$为来自突触前神经元$i$的脉冲信号, 而$\alpha(t-t^{(f)}_j)$为突触后神经元$j$的输出脉冲.神经元收到输入电流后, 由于积分电路的作用, 动作电位会升高, 直到达到激活阈值, 发放脉冲, 这个过程称为积分点火.在脉冲发放后, 由于漏电流的作用, 神经元的动作电位会立即恢复至静息电位, 这一过程是对真实生物神经元中的离子扩散效应的模拟[25]. LIF模型的微分方程描述如下
$ I_1(t) = \frac{u(t)}{R_m(t)} $
(6) $ I(t)-I_1(t) = C_m\frac{{\rm d}u(t)}{{\rm d}t} $
(7) 其中, $C_m$为神经元膜电容, $I(t)$为外界输入电流, $I_1(t)$为漏电流, $R_m(t)$为神经元膜电阻.
在LIF模型中, 外部输入电流$I(t)$通常为$\delta(t-t^{(f)}_i)$的加权和, 因此, 神经元$j$收到第$i$个神经元的输入电流可以表示为
$ \begin{align} I_j(t)= \sum\limits_i \bigg \{ w_{ij} \sum\limits_f \delta(t-t^{(f)}_i) \bigg \} \end{align} $
(8) 其中, $w_{ij}$为神经元$i$和$j$之间的突触权重; $t^{(f)}_i$为突触前神经元$i$发出第$f$个脉冲的时间.
STDP规则是SNN的基本学习规则之一, 具有良好的生物学基础. Hebb等[26]于1949年提出通过改变神经元相互之间的连接强度来完成神经系统学习过程的假设, 称为Hebb规则. Hebb规则指出, 如果两个神经元同时发放脉冲, 则它们之间的突触权重会增加, 反之会减少.这一假设描述了生物神经元突触可塑性的基本原理.随后在海马趾上进行的研究发现了长时增强(Long-term potentiation, LTP)效应和长时抑制(Long-term depression, LTD)效应:在一个时间窗口内, 如果突触后神经元发放脉冲晚于突触前神经元发放脉冲, 则会导致LTP效应, 而反之则会导致LTD效应.前者称为"突触前先于突触后"事件("Pre before post" event), 后者称为"突触后先于突触前"事件("Post before pre" event). LTP和LTD有力地支持了Hebb的假设.
LTP和LTD效应是与脉冲发放时间高度相关的, 基于这两种效应和相关实验, Markram[27]于1997年定义了STDP规则, 在STDP规则中权重的变化量是前后两个神经元激活的时间差的函数, 该函数称为学习窗函数$\xi(\Delta t)$, STDP学习窗函数$\xi(\Delta t)$以及权重变化量$\Delta w_{ij}$如下所示
$ \begin{align} \xi(\Delta t) = \begin{cases} A^{+} {\rm e}^{-\frac{\Delta t}{\tau_{\rm pre}}}, & \Delta t \geq 0\\[1mm] A^{-} {\rm e}^{\frac{\Delta t}{\tau_{\rm post}}}, & \Delta t < 0 \end{cases} \end{align} $
(9) $ \begin{align} \Delta w_{ij} = w_{ij} \xi(\Delta t) \end{align} $
(10) 式(9)中, $\Delta t = t_{\rm post}-t_{\rm pre}$为突触后神经元与突触前神经元发放脉冲时间差, 而$\tau_{\rm pre}$, $\tau_{\rm post}$分别为突触前后的时间常数, 权重增强的增益$A^{+}>0$, 减弱的增益$A^{-} < 0$. $\Delta t \geq 0$对应LTP效应而$\Delta t < 0$对应LTD效应. STDP学习规则可以看作是Hebb规则在时间上的改进版本, 因为它考虑了输入脉冲和输出脉冲调整突触权重时时间上的相关性, 换句话说, STDP强调了脉冲之间的因果联系.
1.3 忆阻器模型
HP实验室于2008年制造出了能够工作的物理忆阻器, 并提出了HP忆阻器模型(图 3).
图 3中, $D$是二氧化钛薄膜的厚度, 亦为忆阻器的全长, $W$是掺杂层的宽度, 会在电场作用下改变, 并与流过忆阻器的电荷数有关.当掺杂宽度$W$增大, 忆阻值减小, 反之忆阻值增大.忆阻器的总电阻值可表示为
$ R_{\rm mem}(x)=R_{\rm on}x+R_{\rm off}(1-x) $
(11) $ x=\frac{W}{D}\in(0, 1) $
(12) 其中, $R_{\rm on}$和$R_{\rm off}$分别为掺杂区和非掺杂区的长度达到全长时的电阻, 也称为极值电阻.由于在时间$t$时, 掺杂区的宽度取决于通过忆阻器的电荷量, 而电流为电荷的导数, 因此, 内部状态变量$x$的变化可以表示为电流的函数
$ \begin{align} \frac{{\rm d}x}{{\rm d}t}=\frac{U_D}{D}=\frac{\mu E}{D}=\frac{\mu R_{\rm on} i(t)}{D^{2}} f(x) \end{align} $
(13) 其中, $U_D$是掺杂区和非掺杂区之间边界移动的速度, $\mu$是平均离子漂移率, $E$是掺杂区的电场强度, $i(t)$为流经忆阻器的电流, $f(x)$为窗函数, 已存在多种多样的函数表达形式, 通常用于模拟离子漂移的非线性, 限制器件边缘特性等.本文的主要目的并非提出新的忆阻器模型, 而是利用合适的模型实现忆阻突触, 后文详述, 这里不做过多讨论.
2. 基于忆阻SNN的强化学习
忆阻脉冲神经网络强化学习(MSRL)算法的目标在于减小TD误差的绝对值, 使回报最大.训练SNN所需样本来自对过往经验的回放, 这些经验存放在记忆池中.经验回放减少了需要学习的经验数目, 学习效率高于智能体直接与环境交互学习的方式[28].由此, 设计MSRL算法的首先任务是设计学习效率较高的SNN并使之与Q学习结合.
2.1 忆阻SNN
MSRL算法的设计是基于一个三层的SNN, 如图 4所示.图中省略号表示神经元的数量随着任务的不同而变化.网络中输入神经元将状态值转换为状态脉冲${{\delta }_{\mathrm{S}}}(t)$, 其数量等于状态的维数.输出神经元的输出为Q值脉冲$\delta_Q(t)$, 其数量等于动作数.这样的结构意味着每个输入神经元对应每个状态维度, 每个输出神经元对应每个动作.相邻层神经元之间用忆阻器连接, 忆阻器可工作在三种状态: a)权重不可更改状态; b)权重调节状态; c)断开状态.
适当调节隐含层节点数量是有必要的, 如果隐含层节点数过少, 网络的学习能力和信息处理能力不足.反之, 如果节点过多可能会增加网络结构的复杂性, 减慢运行速度.具体的隐含层神经元数量对网络性能的影响将在第4节讨论.
2.2 数据-脉冲转换
考虑到脉冲神经元接受、处理和传递的信息是脉冲信号, 因此有必要设计数据与脉冲之间的转换关系.在本文中, 模拟数据转换为脉冲时间序列的过程为编码, 其逆过程为解码.一个时间窗口$T$为10 ms.
1) 输入层神经元
生物学研究表明, 在生物视觉神经网络中, 神经元对信息的编码与首次发放脉冲的时间有关, 发放时间越提前说明输入脉冲与输出脉冲之间的相关性越强[29].由此引入一维编码方式[30]:状态值$s$ $\in$ $[s_{\min}$, $s_{\max}]$, 编码后首次发放时间$t(s)\in[0, T]$, 则编码规则为
$ \begin{align} t(s)=\frac{T(s-s_{\min})}{s_{\max}-s_{\min}} \end{align} $
(14) 这种编码方式使输入神经元在一个$T$内只发放一个脉冲.基于式(14), 并结合式(8)得到隐含层输入电流$I_h(t)$为
$ \begin{align} I_h(t) = \sum\limits_i w_{ih}t(s)_i \end{align} $
(15) 其中, $w_{ih}$为输入层与隐含层神经元之间的突触权重.输入神经元用于将状态值转换为单个的状态脉冲, 没有解码过程.
2) 隐含层神经元
研究以下情形:两个LIF神经元$i$, $j$由一个突触连接.突触前神经元$i$为输入神经元而突触后神经元$j$为输出神经元, 它们的初始电压均为0, 神经元$i$在$t_0$时间电压达到阈值而发放脉冲, 根据式(8), 脉冲将通过突触转换为输入至神经元$j$的电流, 如果输入电流能使突触后电位达到阈值, 则突触后神经元$j$将发放脉冲.通过神经元不应期的设置, 在一个时间窗口的时间内, 神经元$j$只会发放一个脉冲, 如图 5 (a)所示.
对于隐含层神经元, 设置激发态时其只发放一个脉冲, 解码时将其脉冲发放时间$t_h$直接作为输出数据, 从而可得输出层输入电流$I_o(t)$
$ \begin{align} I_o(t)=\sum\limits_h w_{ho}t_h \end{align} $
(16) 其中, $w_{ho}$是隐含层与输出层之间的突触权重, 编码时则根据发放时间还原脉冲即可.
3) 输出层神经元
由于首次发放时间越提前说明输入输出相关性越强, 则可以认为在一个时间窗口内, 输出层中最早发放脉冲的神经元为动作价值最大的动作, 这意味着首次发放时间和动作价值呈反相关关系, 解码时直接将首次发放时间作为输出数据则需要修改Q值更新公式.为了减少算法设计的复杂度, 输出层神经元发放脉冲的形式设置为连续发放.如图 5 (b)所示, 进而计算其平均发放率(Mean firing rate)[24]
$ \begin{align} v=\frac{n_{\rm sp}}{T} \end{align} $
(17) 其中, $n_{\rm sp}$是输出层神经元在一个时间窗口$T$内发放脉冲的数量.事实上, 平均发放率和首次发放时间是等效的, 一个神经元的平均发放率越高, 由于脉冲时间间隔均等, 则说明它的首次发放时间就越提前[24].因而如果设置输出层神经元总是在一个时间窗口内, 连续发放时间间隔相同的脉冲, 那么可以直接将$n_{\rm sp}$作为输出动作价值.进一步, 近似认为输出脉冲时间将$T$均等分, 所以输出脉冲序列的发放时间为等差数列, 在已知数列项数即脉冲数量$n_{\rm sp}$的情况下可还原脉冲序列.
2.3 改进STDP与忆阻突触设计
神经科学领域的主要研究问题之一是对生物学习过程的解释.例如, STDP学习规则的提出是基于对单个生物突触的实验, 但对于STDP规则如何在脉冲神经网络中实现权重调整并没有统一且详尽的描述[31].为了实现STDP规则对脉冲神经网络的权重调整, 进而应用于强化学习中, 需要对基本STDP规则加以改进.其思路在于引入第三方信号(可以是奖赏信号或TD误差信号), 作为突触权重的调节信号[31].
以奖赏信号为调节信号的STDP规则称作Reward STDP, 例如文献[32]提出如下权重调节规则
$ \begin{align} \Delta w_{ij} = \frac { T_{e} \xi(\Delta t)} {T_{e} + t_{\rm re}-t_{t}} S_{\rm rp} \end{align} $
(18) 方案中奖赏为一个时间函数$S_{\rm rp}$, $t_{\rm re}$是奖赏出现的时间而$t_{t}$是智能体执行动作的时间. $T_{e}$是每次迭代持续的时间. Reward STDP实现了在虚拟环境中对觅食行为这一生物问题的建模.但是, 这种方案不适用于强化学习任务, 因为在强化学习任务中, 执行动作的事件和奖赏之间可能达到上千步的延迟, 导致学习效率非常低.
以TD误差信号作为调节信号的STDP规则称作TD STDP规则, 为了方便讨论, 将TD误差重写
$ \begin{align} TD = r_t + \gamma \max\limits_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1})-Q({\pmb s}_t, a_t) \end{align} $
(19) 利用式(19), 文献[33]提出如下的权重调节方案
$ \begin{align} \frac{{\rm d}w_{ij}(t)}{{\rm d}t} = \eta TD \frac{\rho(stdp_{ij}(t))} {w_{ij}(t)} \end{align} $
(20) 其中, $\rho(stdp_{ij}(t))$为突触前发放脉冲与突触后发放脉冲的概率之差, $\eta \in [0, 1]$为学习率.此改进方案的立足点在于, TD误差反映了目标值和实际输出值的偏离程度.如果TD误差为正, 说明目标值优于实际值, 当前的突触权重应该加强, 反之应该减弱, 但是, 这种权重调节方案并不能直接应用于MSRL算法, 原因在于, 此方案限制每个神经元仅发放一个脉冲, 而MSRL中输出层神经元发放的是连续脉冲.另外, 直接将TD误差作为权重调节系数不能最小化误差, 需要定义损失函数.
我们在式(20)基础上提出改进的STDP规则.首先, 将$\xi(\Delta t)$简化如下
$ \begin{align} \xi(\Delta t) = \begin{cases} A^{+}, & \Delta t \geq 0\\ A^{-}, & \Delta t < 0 \end{cases} \end{align} $
(21) 式(21)不考虑输入和输出脉冲的时间差, 只考虑输入和输出脉冲之间的相关性.进一步, 按照文献[34], 定义损失函数如下
$ \begin{align} L_{i}(\theta_i)={\rm E}[(y_i-Q({\mathit{\boldsymbol{s}}}_t, a_t;\theta_i))^2] \end{align} $
(22) 其中, $y_i={\rm E}[r_t + \gamma {\rm max}_{a_{t+1}} Q({\mathit{\boldsymbol{s}}}_{t+1}, a_{t+1};\theta_{i-1})]$为第$i$次迭代的目标Q值, $\theta$为网络参数.改进STDP的目标在于使平方TD误差的期望(即式(22))最小.最后, 改进的STDP规则表示为
$ \begin{align} \frac{{\rm d}w_{ij}(t)}{{\rm d}t} = \eta L_{i}(\theta_i) \frac{ \xi(\Delta t) } {w_{ij}(t)} \end{align} $
(23) 在此基础上, 本文还设计了对应的基于忆阻器的人工突触, 以期进一步实现所提出算法的硬件加速.定义非线性窗函数如下
$ \begin{align} f(v_{\rm MR}) = \begin{cases} v_{\rm MR}, & |v_{\rm MR}| > v_{\rm th} \\ 0, & |v_{\rm MR}| \leq v_{\rm th} \end{cases} \end{align} $
(24) 其中, $v_{\rm MR}$为忆阻器两端电压, $v_{\rm th}$为忆阻器的阈值电压, 调整忆阻器两端电压大小可使忆阻器处于权重调节或不可更改两个状态.
进一步, 设置权重调节状态时$v_{\rm MR}$为
$ \begin{align} v_{\rm MR}(\Delta t) = \begin{cases} A^{+}, & \Delta t \geq 0\\ A^{-}, & \Delta t < 0 \end{cases} \end{align} $
(25) 而突触权重的更新如下
$ \begin{align} \frac{{\rm d}w_{ij}(t)}{{\rm d}t} = \eta L_{i}(\theta_i) \frac{ f(v_{\rm MR} (\Delta t) ) } {w_{ij}(t)} \end{align} $
(26) 即可实现改进后的STDP学习规则.
3. 算法流程
在第2节基础上, 给出MSRL (算法2)的具体实现流程.如下所示:
1) 数据收集
强化学习任务开始时, 没有足够的样本用于训练SNN, 需要通过智能体与环境的交互以获取样本.此时使权重服从均值和方差均为0.1的正态分布, 并通过正则化提高权重收敛速率, 即
$ \begin{align} w_{ij}\leftarrow \frac{w_{ij}}{ \sqrt{n} } \end{align} $
(27) 其中, $n$为输入神经元的数量.另外, 为了消除脉冲之间的相关性, 每个神经元注入了微量的噪声[33].每一个时间步(step)内, 神经网络的运行时间为两个时间窗口$T$.我们设置输入层和隐含层只在第一个$T$内发放脉冲, 一个$T$的时间过后, 输出层再发放脉冲.一旦神经网络运行完成, 便得到了输出脉冲数量${ Q}$, 隐含层输出脉冲时间$t_h$, 根据$\epsilon$-${\rm greedy}$策略, 智能体有$1 - \epsilon$的概率选择${ Q}$最多的神经元所对应的动作, 而以$\epsilon$的概率随机选择动作. $\epsilon$-${\rm greedy}$中$\epsilon$的值会随着迭代次数的增加而递减, 以确保随着任务的进行智能体逐渐依赖于策略$\pi({\mathit{\boldsymbol{s}}})$而不是无目的的选取动作.
2) 网络训练
根据文献[35], 突触权重变化会逆行而快速的传播到突触前神经元树突的突触上, 但并不会向前传播到下一级突触上, 这表明类似反向传播算法的机制可以在脉冲神经网络中存在并发挥作用.因此提出如图 6所示的训练方式.图中画出的忆阻器表示此时忆阻器处于权重调节状态, 未画出的忆阻器则处于断开状态.一次训练包含多个样本, 每一个样本使神经网络运行三个时间窗口$T$.训练时, 首先断开所有忆阻器.之后使目标动作对应的输出神经元与隐含层之间的忆阻器导通, 这类似于监督学习中利用标签进行训练.令隐含层神经元发放对应的隐含层脉冲$\delta_h(t)$, 运行一个时间窗口后, 在第二个时间窗口内令输出神经元发放目标脉冲$\delta_{y_{j}}(t)$ (图 6 (a)).网络运行完两个时间窗口后, 断开隐含层与输出层之间的忆阻器, 使输入层和隐含层之间的忆阻器导通(图 6 (b)), 令输入神经元发放状态脉冲$\delta_{{\mathit{\boldsymbol{s}}}}(t)$, 同时令隐含层神经元再次发放隐含层脉冲$\delta_{h}(t)$.如此循环往复, 直到一次训练完成.
3) 网络测试
测试时忆阻突触的权重将完全由训练结果决定, 通过设置忆阻器电压, 可以使其工作在权重不可更改状态.神经网络的运行步骤同训练前.
具体的MSRL算法描述如下:
算法2.忆阻脉冲神经网络强化学习(MSRL)算法
1 初始化容量为$N$的记忆池${\mathit{\boldsymbol{D}}}$
2 初始化观测值$o$, 样本容量$b$
3 初始化权重
4 for ${\rm episode}=1:M$ do
5 初始化状态${\mathit{\boldsymbol{s}}}_0$
6 repeat
7 运行神经网络, 得到输出层输出脉冲数量$Q_t$, 隐含层脉冲发放时间$t_h$
8 以概率$\epsilon$随机选择动作$a_t$, 以$1-\epsilon$执行$a_t= \mathop{\arg\max} Q_t$
9 执行动作$a_t$, 得到奖赏值$r_t$和下一个状态${\mathit{\boldsymbol{s}}}_{t+1}$
10 存储${\mathit{\boldsymbol{e}}}_{t}=({\mathit{\boldsymbol{s}}}_t, a_t, r_t, {\mathit{\boldsymbol{s}}}_{t+1}, t_h, Q_t)$于记忆池${\mathit{\boldsymbol{D}}}$
11 if迭代步数大于$o$, then
12 从${\mathit{\boldsymbol{D}}}$中随机抽取$b$个元组$({\mathit{\boldsymbol{s}}}_j, a_j, r_j, {\mathit{\boldsymbol{s}}}_{j+1}, t_{hj}, Q_j)$作为训练样本
13 将${\mathit{\boldsymbol{s}}}_{j+1}$输入到神经网络中, 得到$Q_{j+1}$
14
15 目标脉冲$\delta_{y_{j}}(t)$数量$n_{y_{j}}={\rm ceil}(y_{j})$
16 对每一个动作, 分别按式(22)求出其平方TD误差的期望
17 运用改进STDP算法训练神经网络
18 ${\mathit{\boldsymbol{s}}}_t\leftarrow {\mathit{\boldsymbol{s}}}_{t+1}$
19 until ${\mathit{\boldsymbol{s}}}$ is terminal
20 end for
4. 实验与分析
4.1 实验设置
1) CartPole-v0
如图 7所示, 一辆小车上用铰链装有一只平衡杆, 平衡杆可以自由移动.在力$F$的作用下, 小车在离散时间区间内向左或向右移动, 从而改变小车自身的位置和杆的角度.这个模型的状态有4个维度: a)小车在轨道上的位置$x$; b)平衡杆与垂直方向的夹角$\theta$; c)小车速度$v$; d)平衡杆角速度$\omega$.
游戏中每移动一个时间步(step), 智能体都会通过观察获得下一个状态的值, 并且会获得值为$1$的奖赏.游戏终止的条件为: a)平衡杆的角度的绝对值大于$12^\circ$; b)小车的位置与$x=0$的位置的距离超出$\pm2.4$的范围; c)在一次迭代(episode)中step数超过200.满足条件c)则认为游戏成功.由于摆杆角度和车位移的绝对值较小的情况下游戏容易成功, 因而定义每一步的游戏得分为
$ \begin{align} S_c = \frac{1}{100}\left(\frac{1}{|x|}+\frac{1}{|\theta|}\right) \end{align} $
(28) 每次游戏得分通过此次游戏总分除以此次游戏迭代步数得到. MSRL参数设置如下:对$\epsilon-{\rm greedy}$, 设置$\epsilon=0.1$, 学习率$\eta$设置为$0.1$, 记忆池容量为$10\, 000$, 折扣因子$\gamma$为$0.9$.算法运行$500$次迭代.
2) MountainCar-v0
如图 8所示, 一辆小车被置于两座山峰之间, 小车的初始位置$x_0\in(-0.6, -0.4)$, 山谷处的位置为$-0.5$.任务目标是开到右边小旗处.但是, 车的动力不足以一次爬上山顶, 因此, 小车需要来回移动以获取足够的速度到达目标处.智能体的状态由两个维度组成: a)小车轨道位置$x\in(-1.2, 0.6)$; b)小车的速度$y\in(-0.07, 0.07)$.
每一个step中, 小车有三个动作可供选择:向右、停止、向左.小车移动一步后会获得观察值和值为$-1$的奖赏.根据小车与终点的距离, 定义每步游戏得分$S_m$为
$ \begin{align} S_m=\frac{1}{0.6-x} \end{align} $
(29) 每次游戏得分计算方式与CartPole-v0相同.另外, 设定当一次迭代中步数超过300游戏也会自动结束. MSRL参数设置如下:对$\epsilon-{\rm greedy}$, 同样设置$\epsilon=0.1$, 学习率$\eta$设置为$0.1$, 记忆池容量为$5\, 000$, 折扣因子$\gamma$为$0.9$.算法运行100次迭代.
3) 隐含层神经元数量
为了确定SNN隐含层神经元的数量, 我们在其他实验参数相同的情况下分别独立运行了隐含层神经元数量不同的MSRL算法, 并比较它们的TD方差, 结果见表 1.表 1的列展示了隐含层神经元数量不同的情况下TD方差的大小, 在其他参数相同的条件下进行实验. TD方差小表明学习效率更高. CartPole-v0的输入神经元为4个, MountainCar-v0为2个.
表 1 不同隐含层神经元数量TD方差对比Table 1 The comparison of TD variance for difierent hidden neurons任务 CartPole-v0 MountainCar-v0 $\rm Hidden = 1$ 27.14 5.17 $\rm Hidden = 2$ 24.52 5.03 $\rm Hidden = 4$ 21.2 4.96 $\rm Hidden = 6$ 19.45 4.87 $\rm Hidden = 10$ 17.26 4.79 $\rm Hidden = 12$ 14.04 4.65 从表 1中可以发现, 隐含层神经元数量较少, TD方差较大, 但数量过多并没有显著提高学习效率, 反而可能会增加网络复杂度, 减慢运行速率.因此我们设置CartPole-v0隐含层神经元数量为6, MountainCar-v0隐含层神经元数量为4, 作为折中的一种优化选择.
4.2 实验结果与分析
1) MSRL有效性验证
在实验过程中智能体的状态反映了学习效果. Cartpole-v0游戏中, 平衡杆的角度和小车的位移越小越好, 这样游戏才可能成功.而MountainCar-v0游戏中, 小车在速率足够大的情况下才能爬上右侧山坡, 到达目标.我们分别在训练开始前和训练开始后随机抽取相同数量的样本以观察样本的数值分布, 结果如图 9所示.可以看出, 在CartPole-v0中, 当完成了200次游戏后, 平衡杆的角度和小车的位置集中于原点附近.而在MountainCar-v0中, 完成了50次游戏后, 坐标值的变化显示小车学会了利用左侧山坡获得反向势能, 并且速率大于训练之前.
2) 算法对比
为进一步说明MSRL的特点, 我们将深度Q网络(Deep Q network, DQN)和离散状态Q-learning作为比较的对象.三者折扣因子和学习率均相同, DQN同样采用三层全连接前向网络结构, 隐含层神经元数量为10, 且其记忆池容量与MSRL相同.三个算法在同一台计算机上分别独立运行.对比结果如图 10和表 2所示.
表 2 比较结果(B)Table 2 The results of comparison (B)评价指标 平均迭代步数 平均分数 平均CPU利用率(%) 运行时间(s) MSRL (CartPole-v0) 98.93 1.28 12.0 3 528.38 DQN (CartPole-v0) 61.79 1.22 23.5 1 119.52 Q-learning (CartPole-v0) 11.83 1.14 0.3 105.60 MSRL (MountainCar-v0) 183.87 1.23 11.8 1 358.14 DQN (MountainCar-v0) 204.32 1.12 22.9 359.21 Q-learning (MountainCar-v0) 250.26 0.98 0.2 32.68 根据游戏环境的设置, 在CartPole-v0游戏中每次游戏的迭代步数越高越好, 而MountainCar-v0则相反.图 10(a)和10(b)的结果显示, 在CartPole-v0游戏中, MSRL算法所控制的倒立摆系统游戏成功率和得分高于另外两种算法.尽管DQN先于MSRL算法完成游戏目标, 但其收敛性较差.图 10(c)和10(d)的结果显示, 在MountainCar-v0游戏中, MSRL算法所控制的小车容易以较少的步数达到目标处, 且最少步数小于另外两种算法, 同时游戏得分为三者中的最高值.从两个游戏的结果可以看出, 离散状态之后的Q-learning算法难以达成目标.我们将结果列在表 2里以更清楚对比结果.
表 2中, 平均迭代步数为实验中的累积步数除以迭代数, 而平均分数为累积分数除以累积步数.在CartPole-v0游戏中, MSRL算法总平均迭代步数相比于DQN和离散Q-learning明显增加, 而在MountainCar-v0游戏中, MSRL算法总平均迭代步数相比于DQN和离散Q-learning明显减少.两个游戏中得分最高者均为MSRL.此外, 我们还在游戏执行的每一步中记录CPU利用率, 最后用累积CPU利用率除以累积步数以计算平均CPU利用率.结果显示, 尽管Q-learning能以较短的运行时间和较低的CPU利用率完成目标, 但是其计算效果不如神经网络式强化学习.而MSRL算法CPU利用率低于DQN, 但运行时间长于DQN.根据文献[36], 采用不同的模拟策略影响脉冲神经网络的运行时间.而本文利用新型信息器件忆阻器的高密度、非易失性等优势, 融合优化的网络结构和改进的学习算法, 有望以实现MSRL的硬件加速, 同时减少对计算资源的依赖.
5. 结论
尽管传统的神经网络与强化学习算法的结合提高了智能体的学习能力, 但这些算法对计算能力依赖性较强, 同时网络复杂度高, 不适合硬件实现.为了进一步达到硬件加速, 促进嵌入式智能体在实际环境中独立执行任务, 本文设计了基于多层忆阻脉冲神经网络的强化学习(MSRL)算法.首先解决了数据与脉冲之间的转换问题; 在前人工作基础上, 改进了STDP学习规则, 使SNN能够与强化学习有机结合, 同时也设计了相应的忆阻突触; 进一步, 设计了结构可动态调整的多层忆阻脉冲神经网络, 这种网络具有较高的学习效率和适应能力.实验结果表明, MSRL与传统的强化学习算法相比能更高效地完成学习任务, 同时更节省计算资源.在未来的工作中, 我们将研究深度SNN与更复杂的强化学习算法例如Actor-Critic算法的结合, 并进一步改进学习算法以增强算法稳定性.
-
表 1 不同隐含层神经元数量TD方差对比
Table 1 The comparison of TD variance for difierent hidden neurons
任务 CartPole-v0 MountainCar-v0 $\rm Hidden = 1$ 27.14 5.17 $\rm Hidden = 2$ 24.52 5.03 $\rm Hidden = 4$ 21.2 4.96 $\rm Hidden = 6$ 19.45 4.87 $\rm Hidden = 10$ 17.26 4.79 $\rm Hidden = 12$ 14.04 4.65 表 2 比较结果(B)
Table 2 The results of comparison (B)
评价指标 平均迭代步数 平均分数 平均CPU利用率(%) 运行时间(s) MSRL (CartPole-v0) 98.93 1.28 12.0 3 528.38 DQN (CartPole-v0) 61.79 1.22 23.5 1 119.52 Q-learning (CartPole-v0) 11.83 1.14 0.3 105.60 MSRL (MountainCar-v0) 183.87 1.23 11.8 1 358.14 DQN (MountainCar-v0) 204.32 1.12 22.9 359.21 Q-learning (MountainCar-v0) 250.26 0.98 0.2 32.68 -
[1] 高阳, 陈世富, 陆鑫.强化学习研究综述.自动化学报, 2004, 30(1):86-100 http://www.aas.net.cn/CN/abstract/abstract16352.shtmlGao Yang, Chen Shi-Fu, Lu Xin. Research on reinforcement learning:a review. Acta Automatica Sinica, 2004, 30(1):86 -100 http://www.aas.net.cn/CN/abstract/abstract16352.shtml [2] 唐昊, 万海峰, 韩江洪, 周雷.基于多Agent强化学习的多站点CSPS系统的协作Look-ahead控制.自动化学报, 2010, 36(2):289-296 http://www.aas.net.cn/CN/abstract/abstract13356.shtmlTang Hao, Wan Hai-Feng, Han Jiang-Hong, Zhou Lei. Coordinated look-ahead control of multiple CSPS system by multi-agent reinforcement learning. Acta Automatica Sinica, 2010, 36(2):289-296 http://www.aas.net.cn/CN/abstract/abstract13356.shtml [3] 秦蕊, 曾帅, 李娟娟, 袁勇.基于深度强化学习的平行企业资源计划.自动化学报, 2017, 43(9):1588-1596 http://www.aas.net.cn/CN/abstract/abstract19135.shtmlQin Rui, Zeng Shuai, Li Juan-Juan, Yuan Yong. Parallel enterprises resource planning based on deep reinforcement learning. Acta Automatica Sinica, 2017, 43(9):1588-1596 http://www.aas.net.cn/CN/abstract/abstract19135.shtml [4] Watkins C J C H, Dayan P. Q-learning. Machine Learning, 1992, 8(3-4):279-292 doi: 10.1007/BF00992698 [5] Maass W. Networks of spiking neurons:the third generation of neural network models. Neural Networks, 1997, 10(9):1659-1671 doi: 10.1016/S0893-6080(97)00011-7 [6] Florian R V. Reinforcement learning through modulation of spike-timing-dependent synaptic plasticity. Neural Computation, 2007, 19(6):1468-1502 doi: 10.1162/neco.2007.19.6.1468 [7] Cao Y Q, Chen Y, Khosla D. Spiking deep convolutional neural networks for energy-efficient object recognition. International Journal of Computer Vision, 2015, 113(1):54-66 doi: 10.1007/s11263-014-0788-3 [8] Ghosh-Dastidar S, Adeli H. Spiking neural networks. International Journal of Neural Systems, 2009, 19(4):295-308 doi: 10.1142/S0129065709002002 [9] Ponulak F. Analysis of the ReSuMe learning process for spiking neural networks. International Journal of Applied Mathematics and Computer Science, 2008, 18(2):117-127 doi: 10.2478/v10006-008-0011-1 [10] Mostafa H. Supervised learning based on temporal coding in spiking neural networks. IEEE Transactions on Neural Networks and Learning Systems, 2018, 29(7):3227-3235 http://d.old.wanfangdata.com.cn/OAPaper/oai_arXiv.org_1109.2788 [11] de Kamps M, van der Velde F. From artificial neural networks to spiking neurons and back again. Neural Networks, 2001, 14(6-7):941-953 doi: 10.1016/S0893-6080(01)00068-5 [12] Zheng N, Mazumder P. Learning in memristor crossbar-based spiking neural networks through modulation of weight dependent spike-timing-dependent plasticity. IEEE Transactions on Nanotechnology, 2018, 17(3):520-532 http://ieeexplore.ieee.org/document/8328902/ [13] Taherkhani A, Belatreche A, Li Y H, Maguire L P. A supervised learning algorithm for learning precise timing of multiple spikes in multilayer spiking neural networks. IEEE Transactions on Neural Networks and Learning Systems, 2018, 29(11):5394-5407 doi: 10.1109/TNNLS.2018.2797801 [14] Chua L O. Memristor--the missing circuit element. IEEE Transactions on Circuit Theory, 1971, 18(5):507-519 doi: 10.1109/TCT.1971.1083337 [15] Strukov D B, Snider G S, Stewart D R, Williams R S. The missing memristor found. Nature, 2008, 453(7191):80-83 doi: 10.1038/nature06932 [16] Kvatinsky S, Friedman E G, Kolodny A, Weiser U C. TEAM:threshold adaptive memristor model. IEEE Transactions on Circuits and Systems I--Regular Papers, 2013, 60(1):211-221 doi: 10.1109/TCSI.2012.2215714 [17] Hu X F, Feng G, Liu L, Duan S K. Composite characteristics of memristor series and parallel circuits. International Journal of Bifurcation and Chaos, 2015, 25(8):1530019 doi: 10.1142/S0218127415300190 [18] Jo S H, Chang T, Ebong I, Bhadviya B B, Mazumder P, Lu W. Nanoscale memristor device as synapse in neuromorphic systems. Nano letters, 2010, 10(4):1297-1301 doi: 10.1021/nl904092h [19] Panwar N, Rajendran B, Ganguly U. Arbitrary spike time dependent plasticity (STDP) in memristor by analog waveform engineering. IEEE Electron Device Letters, 2017, 38(6):740-743 doi: 10.1109/LED.2017.2696023 [20] Serrano-Gotarredona T, Masquelier T, Prodromakis T, Indiveri G, Linares-Barranco B. STDP and STDP variations with memristors for spiking neuromorphic learning systems. Frontiers in Neuroscience, 2013, 7(2), DOI:10.3389/fnins. 2013.00002 [21] Goodman D F M, Brette R. The brian simulator. Frontiers in Neuroscience, 2009, 3(2):192-197 http://d.old.wanfangdata.com.cn/OAPaper/oai_pubmedcentral.nih.gov_2751620 [22] Sutton R S, Barto A G. Reinforcement Learning:An Introduction. London:The MIT Press, 1999.185-187 [23] Ferré P, Mamalet F, Thorpe S J. Unsupervised feature learning with winner-takes-all based STDP. Frontiers in Computational Neuroscience, 2018, 12(24), DOI:10.3389/fncom. 2018.00024 [24] Gerstner W, Kistler W M. Spiking Neuron Models. New York:Cambridge University Press, 2002. [25] Hasselmo M E. Methods in neuronal modeling:from ions to networks. Science, 1998, 282(5391):1055-1055 doi: 10.1126/science.282.5391.1055 [26] Hebb D O, Martinez J L, Glickman S E. The organization of behavior:a neuropsychological theory. Contemporary Psychology, 1994, 39(11):1018-1020 doi: 10.1037/034206 [27] Markram H, Lubke J, Frotscher M, Sakmann B. Regulation of synaptic efficacy by coincidence of postsynaptic APs and EPSPs. Science, 1997, 275(5297):213-215 doi: 10.1126/science.275.5297.213 [28] Schaul T, Quan J, Antonoglou I, Silver D. Prioritized experience replay. In:Proceedings of the 4th International Conference on Learning Representations. Puerto Rico, San Juan:Cornell University Library, 2016. [29] Gollisch T, Meister M. Rapid neural coding in the retina with relative spike latencies. Science, 2008, 319(5866):1108 -1111 doi: 10.1126/science.1149639 [30] Kostal L, Lansky P, Rospars J P. Neuronal coding and spiking randomness. European Journal of Neuroscience, 2007, 26(10):2693-2701 doi: 10.1111/j.1460-9568.2007.05880.x [31] Legenstein R, Pecevski D, Maass W. A learning theory for reward-modulated spike-timing-dependent plasticity with application to biofeedback. Plos Computational Biology, 2008, 4(10):e1000180 doi: 10.1371/journal.pcbi.1000180 [32] Skorheim S, Lonjers P, Bazhenov M. A spiking network model of decision making employing rewarded STDP. Plos One, 2014, 9(3), DOI: 10.1371/journal.pone.0090821 [33] Zheng N, Mazumder P. Hardware-friendly actor-critic reinforcement learning through modulation of spike-timing-dependent plasticity. IEEE Transactions on Computers, 2017, 66(2):299-311 doi: 10.1109/TC.2016.2595580 [34] Mnih V, Kavukcuoglu K, Silver D, Graves A, Antonoglou I, Wierstra D, et al. Playing atari with deep reinforcement learning. In:Proceedings of the 26th Conference and Workshop on Neural Information Processing Systems, Nevada, USA:Cornell University Library. 2013. [35] Li C Y, Lu J T, Wu C P, Duan S M, Poo M M. Bidirectional modification of presynaptic neuronal excitability accompanying spike timing-dependent synaptic plasticity, Neuron, 2004, 41(2):257-268 doi: 10.1016/S0896-6273(03)00847-X [36] Brette R, Rudolph M, Carnevale T, Hines M, Beeman D, Bower J M, et al. Simulation of networks of spiking neurons:a review of tools and strategies. Journal of Computational Neuroscience, 2007, 23(3):349-398 doi: 10.1007/s10827-007-0038-6 -