引言
要将脉冲强化学习进行分类,首先要了解SNN学习算法以及强化学习本身的类别。
图片源自:OpenAI Spinning Up (https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html#citations-below)
强化学习算法:
- Q-Learning (DQN等)
- Policy Optimization (Policy Gradient, Actor-Critic等)
- 两者的整合(DDQG, TD3, SAC)
PS:本文主要考虑Model-Free RL;
图片源自:胡一凡,李国齐,吴郁杰,等.脉冲神经网络研究进展综述[J].控制与决策,2021,36(1):1-26
SNN学习算法:
- 基于反向传播的算法
- Clock-driven
- Event-driven
- 基于突触可塑性的算法(赫布规则及其变种, STDP, R-STDP以及其他突触可塑性规则)
- ANN-SNN转换
PS:本文后续介绍的基于突触可塑性的算法一般都属于三因素学习规则;
脉冲强化学习
根据前两节对强化学习算法与SNN学习算法的分类,我们可以开始对现有的脉冲强化学习论文进行分类。
需要特别说明的是,由于Actor-Critic结构由actor网络与critic网络构成(引入critic网络可以减小策略梯度的方差),因此在部分工作中actor网络用SNN实现,critic网络用ANN实现。这样最终测试阶段可以仅使用actor网络,充分发挥SNN的高能效优势以用于机器人控制等领域。
同样在当前的DQN方法(e.g. Rainbow)中,优势函数的使用也会使得模型由两个部分构成:advantage网络以及value网络。优势函数有助于提高学习效率,同时使学习更加稳定;同时经验表明,优势函数也有助于减小方差,而方差过大是导致过拟合的重要因素。如何对这些网络进行实现也是需要注意的点。
相关概念
- MDP:马尔可夫过程;
- POMDP:部分可观察的马尔可夫过程;
- GPOMDP:一种在参数化随机策略控制的通用POMDP中生成平均奖励梯度的有偏估计的算法;
- OLPOMDP:GPOMDP算法的在线变体;
相关论文
1、Learning in Spiking Neural Networks by Reinforcement of Stochastic Synaptic Transmission (Neuron 2003)
- 强化学习算法:奖励最大化规则;
- SNN学习算法:享乐主义突触,IF神经元模型;
2、A reinforcement learning algorithm for spiking neural networks (SYNASC 2005)
- 强化学习算法:连续时间的强化学习规则,OLPOMDP强化学习算法;
- SNN学习算法:带有全局奖励信号的脉冲时序依赖可塑性(STDP),随机IF神经元模型;
3、Reinforcement Learning Through Modulation of Spike-Timing-Dependent Synaptic Plasticity (Neural Computation, 2007)
- 强化学习算法:连续时间的强化学习规则,OLPOMDP强化学习算法;
- SNN学习算法:奖励调节的STDP——带有资格迹的调节STDP(MSTDPET) & 不带资格迹的简化学习规则(MSTDP),带逃逸噪声的脉冲响应模型(SRM);
4、Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling (BMC Neuroscience, 2007)
- 强化学习算法:TD强化学习;
- SNN学习算法:STDP;
5、A Spiking Neural Network Model of an Actor-Critic Learning Agent (Neural Computation, 2009)
- 强化学习算法:A2C (State-Critic Plasticity & State-Actor Plasticity),连续时间更新规则,行动器-评判器的TD学习;
- SNN学习算法:差分Hebbian学习规则(取决于神经元活动的发放率),基于电流的LIF神经元;
6、Reinforcement learning in populations of spiking neurons (Nature neuroscience, 2009)
- 强化学习算法:资格迹驱动的权重更新规则,群体强化 & 在线学习(Online learning);
- SNN学习算法:三因素学习规则,逃逸噪声神经元;
PS:逃逸噪声神经元是LIF神经元,具有随机波动的脉冲阈值;可塑性由该全局反馈信号和每个突触处局部计算量(称为资格迹)驱动。
7、Spike-Based Reinforcement Learning in Continuous State and Action Space: When Policy Gradient Methods Fail (PLoS Computational Biology, 2009)
- 强化学习算法:连续状态和动作的强化学习,标准策略梯度规则和朴素的Hebbian规则之间的过渡;
- SNN学习算法:连续时间的三因素规则,LIF神经元;
PS:横向连接,根据动作单元发放率的群体向量决定下一步行动;
8、Functional Requirements for Reward-Modulated Spike-Timing-Dependent Plasticity (The Journal of neuroscience: the official journal of the Society for Neuroscience, 2010)
- 强化学习算法:critic (利用奖励预测误差进行学习);
- SNN学习算法:R-STDP & R-max学习规则,具有指数逃逸率的简化脉冲响应模型(SRM0)神经元;
9、Reinforcement Learning Using a Continuous Time Actor-Critic Framework with Spiking Neurons (Plos Computational Biology, 2013)
- 强化学习算法:A2C (Spiking Neuron Critic & Spiking Neuron Actor),连续TD学习;
- SNN学习算法:Event-driven,简化的脉冲响应模型(SRM0);
PS:该SNN-RL学习方法被称为TD-LTP学习规则;状态编码为位置单元发放率;critic以及actor输出遵循群体编码;为了确保明确选择动作,actor使用N-winner-take-all横向连接方案。
10、A neural reinforcement learning model for tasks with unknown time delays (CogSci 2013)
- 强化学习算法:Q学习,TD强化学习;
- SNN学习算法:误差调节神经学习规则(伪Hebbian形式),LIF神经元;
PS:伪Hebbian形式:学习率κ,突触前活动si(x),突触后因素αjej以及误差E。值得注意的是,该项不是接收神经元的发放,而是驱动该发放的亚阈值电流(因此是"伪"Hebbian)。换句话说,用于驱动神经元的脉冲活动的相同电流用于更新连接权重。与该规则一致,在实验工作中已经提出,突触后电位对于可塑性不是必需的。
11、A Spiking Neural Model for Stable Reinforcement of Synapses Based on Multiple Distal Rewards (Neural Computation, 2013)
- 强化学习算法:类似critic的算法;
- SNN学习算法:具有衰减奖励门控的 R-STDP,并增加了短期可塑性(STP);
12、Biologically Inspired SNN for Robot Control (IEEE Transactions on Cybernetics, 2013)
- 强化学习算法:TD学习规则;
- SNN学习算法:自组织SNN,LIF神经元模型;
PS:沿墙绕行任务,Pioneer 3机器人(声纳,激光和电机);
13、Reinforcement learning in cortical networks (Encyclopedia of Computational Neuroscience, 2014)
- 策略梯度方法(Hedonistic synapse, Spike reinforcement, Node perturbation, Population reinforcement, Online learning & Phenomenological R-STDP models);
- TD学习(假设基础决策过程是马尔可夫模型);
14、Computation by Time (Neural Processing Letters, 2015)
- Reinforcement Learning (R-STDP, 策略梯度方法 & TD学习);
15、A Spiking Neural Network Model of Model-Free Reinforcement Learning with High-Dimensional Sensory Input and Perceptual Ambiguity (PloS one, 2015)
- 强化学习算法:基于自由能的强化学习(FERL)
- SNN学习算法:带平均发放率的伪自由能(aFE) & 平均瞬时伪自由能(iFE),LIF神经元;
PS:受限玻尔兹曼机(RBM),部分可观察的RL,NEST模拟器;
16、Navigating Mobile Robots to Target in Near Shortest Time using Reinforcement Learning with Spiking Neural Networks (IJCNN 2017)
- 强化学习算法:Q学习;
- SNN学习算法:带资格迹的多巴胺调节的Hebbian脉冲时序依赖可塑性(STDP);
PS:绕墙避障导航任务;
17、A Survey of Robotics Control Based on Learning-Inspired Spiking Neural Networks (Front. Neurorobot., 2018)
- Hebbian-Based Learning (Unsupervised Learning, Supervised Learning, Classical Conditioning, Operant Conditioning, Reward-Modulated Training);
- Reinforcement Learning (Temporal Difference, Model-Based & Others);
18、End to End Learning of Spiking Neural Network based on R-STDP for a Lane Keeping Vehicle (ICRA 2018)
- 强化学习算法:奖励最大化规则;
- SNN学习算法:R-STDP,LIF神经元;
PS:车道保持任务,部署有动态视觉传感器(DVS)的Pioneer机器人;利用DVS作为输入,电机命令作为输出;
19、Improved robustness of reinforcement learning policies upon conversion to spiking neuronal network platforms applied to Atari Breakout game (Neural Networks, 25 November 2019)
- 强化学习算法:DQN;
- SNN学习算法:ANN-SNN转换,随机LIF神经元;
PS:本研究探索了几种搜索最优缩放参数的方法,包括粒子群优化(particle swarm optimization,PSO);在所研究的优化方法中,PSO产生了最优性能;使用基于PyTorch的开源库BindsNET模拟脉冲神经元;随机LIF神经元基于LIF神经元(如果神经元的膜电位低于阈值,则神经元可能会以与膜电位(逃逸噪声)成比例的概率发放脉冲);Atari Breakout游戏任务。
20、Reinforcement Learning in Spiking Neural Networks with Stochastic and Deterministic Synapses (Neural Computation, 2019)
- 强化学习算法:随机性-确定性协调(SDC)脉冲强化学习模型(SDC模型);
- SNN学习算法:享乐主义规则/半RSTDP规则;
PS:随机性突触的可塑性是通过调节具有全局奖励的突触神经递质的释放概率来实现的。确定性突触的可塑性是通过R-STDP规则的变体实现的(Florian, 2007; Fremaux & Gerstner, 2015)。我们将其命名为半RSTDP规则,它根据一半STDP窗口的结果修改权重(突触前脉冲先于突触后脉冲的部分)。
21、Reinforcement co-Learning of Deep and Spiking Neural Networks for Energy-Efficient Mapless Navigation with Neuromorphic Hardware (arXiv:2003.01157v2 [cs.NE] 31 Jul 2020)
- 强化学习算法:A2C (Deep Critic Network & Spiking Actor Network);
- SNN学习算法:Clock-driven,具有两个内部状态变量(电流和电压)的LIF神经元;
PS:混合框架是脉冲确定性策略梯度(SDDPG);状态编码为Possion脉冲编码;任务为Gazebo模拟器与真实场景下的目标导航任务。
22、Deep Reinforcement Learning with Population-Coded Spiking Neural Network for Continuous Control (CoRL 2020)
- 强化学习算法:A2C (Deep Critic Network & Population-coded Spiking Actor Network);
- SNN学习算法:Clock-driven,基于电流的LIF模型;
PS:群体编码的脉冲actor网络(PopSAN);将观察和动作空间的每个维度编码为脉冲神经元的各个输入和输出群体的活动。编码器模块将连续观测转换为输入群体中的脉冲,而解码器模块将输出群体活动解码为实值动作;编码器模块中的每个神经元具有高斯感受野(μ, σ),μ和σ都是任务特定的可训练参数;解码器模块分两个阶段:首先,每T个时间步骤计算发放率fr,然后将动作a作为计算出的fr的加权和返回(输出群体的感受野是由它们的连接权重形成的,这是在训练中学习的);任务为MuJoCo仿真环境(OpenAI gym)。
23、Training spiking neural networks for reinforcement learning (ArXiv 2020)
- 强化学习算法:优势A2C (Critic & Spiking Actor),策略梯度合作者网络(policy gradient coagent network, PGCN);
- SNN学习算法:类似Hebbian/Anti-Hebbian学习规则,Memoryless Ising model;类似STDP学习规则,LIF神经元;Event-driven,Generalized Linear Model (GLM);
PS:由于权重更新还受全局TD误差控制,所以前两种学习规则仍属于三因素学习规则范畴。本文中还额外介绍了一种事件驱动的算法。假设每个脉冲神经元从一个发放策略中采样其动作,从而在网络中形成一个随机节点。通过使用重参数化技巧,能够将采样中的随机性建模为模型的输入,而不是将其归因于模型参数,从而使所有模型参数连续可微的,实现反向传播。但是,这种训练方法在其开源代码中并未进行实现,缺乏实验分析,网络实现部分介绍也十分有限,有待后续版本的查看。
24、A solution to the learning dilemma for recurrent networks of spiking neurons (NATURE COMMUNICATIONS, 2020)
- 强化学习算法:Actor-Critic;
- SNN学习算法:e-prop,LSNN;
25、Reinforcement Learning with Feedback-modulated TD-STDP (ArXiv 2020)
- 强化学习算法:Actor-Critic;
- SNN学习算法:反馈调节的TD-STDP学习规则;
26、Strategy and Benchmark for Converting Deep Q-Networks to Event-Driven Spiking Neural Networks (AAAI 2021)
- 强化学习算法:DQN;
- SNN学习算法:ANN-SNN转换,IF神经元;
PS:BindsNET;虽然题目中带有Event-Driven,但是实际采用的仍为标准的ANN-SNN转换方法(ReLU激活函数/IF神经元);任务为Atari游戏环境。
27、 Population-coding and Dynamic-neurons improved Spiking Actor Network for Reinforcement Learning (Journal of Neural Networks, 2021)
- 强化学习算法:A2C (Deep Critic Network & Population-coded Spiking Actor Network);
- SNN学习算法:Clock-driven,具有膜电位的一阶或更高阶动态的动态神经元;
PS:任务为MuJoCo仿真环境(OpenAI gym)。
28、Combining STDP and binary networks for reinforcement learning from images and sparse rewards (Neural Networks, 2021)
- 强化学习算法:奖励最大化规则;
- SNN学习算法:R-STDP;
29、On-chip trainable hardware-based deep Q-networks approximating a backpropagation algorithm (Neural Computing and Applications, 2021)
- 强化学习算法:DQN;
- SNN学习算法:硬件实现的LTP/LTD;
相关开源代码
- 强化学习算法:DQN,Policy Gradient,Actor-Critic;
- SNN学习算法:Clock-driven;
PS:最后一层脉冲神经元不发放,用仿真时间T结束后的膜电压表示连续值。
2、BindsNET: A Machine Learning-Oriented Spiking Neural Networks Library in Python (Blog)
- SNN学习算法:PostPre, WeightDependentPostPre, Hebbian learning rules, MSTDP, MSTDPET, Rmax / ANN-SNN转换;
- 脉冲神经元:McCullochPitts(对应的一般的ANN里的神经元), IFNodes, LIFNodes, CurrentLIFNodes, AdaptiveLIFNodes, DiehlAndCookNodes, IzhikevichNodes, SRM0Nodes;
- 游戏环境:Atari (Breakout);
PS:具体学习算法参见(BindsNET学习系列 —— LearningRule),脉冲神经元参见(BindsNET学习系列 —— Nodes),强化学习代码参见(BindsNET Breakout)。
3、Norse: A library to do deep learning with spiking neural networks
- 强化学习算法:DQN,Policy Gradient,Actor-Critic;
- SNN学习算法:Clock-driven;
PS:最后一层脉冲神经元不发放,用仿真时间T内的最大膜电压表示连续值。
解码方式
- 直接利用发放率作为动作概率;
- 利用仿真时间T结束后的脉冲发放率+剩余膜电压作为值函数;Ref:Strategy and Benchmark for Converting Deep Q-Networks to Event-Driven Spiking Neural Networks - 穷酸秀才大艹包 - 博客园 (cnblogs.com)
- 最后一层脉冲神经元不发放,用仿真时间T结束后的膜电压表示值函数;
- 最后一层脉冲神经元不发放,用仿真时间T内的最大膜电压表示值函数;
- 用一个训练好的MLP作为解码器。