SNN强化学习总结

引言

  要将SNN强化学习进行分类,首先要了解SNN学习算法以及强化学习本身的类别。

强化学习算法:

  • Q-Learning
  • Policy Gradient
  • Actor-Critic

SNN学习算法:

  • 反向传播算法
    • Clock-driven
    • Event-driven
  • Hebbian-based Learning (STDP,R-STDP)
  • ANN-SNN转换

SNN强化学习

  根据前两节对强化学习算法与SNN学习算法的分类,我们可以开始对现有的SNN强化学习论文进行分类。

  需要特别说明的是,由于Actor-Critic结构由actor网络与critic网络构成(引入critic网络可以减小策略梯度的方差),因此在部分工作中actor网络用SNN实现,critic网络用ANN实现。这样最终测试阶段可以仅使用actor网络,充分发挥SNN的高能效优势以用于机器人控制等领域。

  同样在当前的DQN方法(e.g. Rainbow)中,优势函数的使用也会使得模型由两个部分构成:advantage网络以及value网络。优势函数有助于提高学习效率,同时使学习更加稳定;同时经验表明,优势函数也有助于减小方差,而方差过大是导致过拟合的重要因素。如何对这些网络进行实现也是需要注意的点。

相关论文

1、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横向连接方案。

2、A Spiking Neural Network Model of an Actor-Critic Learning Agent (Neural Computation, no. 2 (2009): 301-339)

  • 强化学习算法:A2C (State-Critic Plasticity & State-Actor Plasticity),连续时间更新规则;
  • SNN学习算法:差分Hebbian学习规则(取决于神经元活动的发放率),基于电流的LIF神经元;

3、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脉冲编码。

4、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的加权和返回(输出群体的感受野是由它们的连接权重形成的,这是在训练中学习的)。

5、A neural reinforcement learning model for tasks with unknown time delays (CogSci 2013)

  • 强化学习算法:Q-Learning;
  • SNN学习算法:误差调节神经学习规则(伪Hebbian形式),LIF神经元;

PS:伪Hebbian形式:学习率κ,突触前活动si(x)和突触后活动αjejE。最后一项是矫正扫视对突触后神经元 j 的体细胞电流的影响。值得注意的是,该项不是接收神经元的发放,而是驱动该发放的亚阈值电流(因此是"伪"Hebbian)。换句话说,用于驱动神经元的脉冲活动的相同电流用于更新连接权重。与该规则一致,在实验工作中已经提出,突触后电位对于可塑性不是必需的。

6、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神经元(如果神经元的膜电位低于阈值,则神经元可能会以与膜电位(逃逸噪声)成比例的概率发放脉冲)。

7、Reinforcement learning in populations of spiking neurons (Nature neuroscience, no. 3 (2009): 250-252)

  • 强化学习算法:Policy gradient;
  • SNN学习算法:Hebbian学习规则;逃逸噪声神经元;

PS:逃逸噪声神经元是LIF神经元,具有随机波动的脉冲阈值;可塑性由该全局反馈信号和每个突触处局部计算量(称为资格迹)驱动。

8、Training spiking neural networks for reinforcement learning (Arxiv 2020)

  • 强化学习算法:优势A2C (Critic & Spiking Actor),策略梯度合作者网络(policy gradient coagent network, PGCN);
  • SNN学习算法:Hebbian/Anti-Hebbian学习规则 / Event-driven;脉冲神经元:Memoryless Ising model / Generalized Linear Model (GLM);

PS:本文中介绍了一种重参数化技巧,能够使其能够将采样中的随机性建模为模型的输入,而不是将其归因于模型参数,从而使所有模型参数连续可微的,从而促进反向传播。但是,这种Event-driven的训练方法在其开源代码中并未进行实现,实验分析也十分有限,有待后续版本的查看。

9、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);

10、Computation by Time (Neural Processing Letters, no. 1 (2015))

  • Reinforcement Learning (R-STDP, 策略梯度方法 & TD学习);

11、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学习(假设基础决策过程是马尔可夫模型);

12、Strategy and Benchmark for Converting Deep Q-Networks to Event-Driven Spiking Neural Networks (Preprint · September 2020)

  • 强化学习算法:DQN;
  • SNN学习算法:ANN-SNN转换;IF神经元;

PS:Atari Games;BindsNET;虽然题目中带有Event-Driven,但是实际采用的仍为标准的ANN-SNN转换方法(ReLU激活函数/IF神经元)

相关开源代码

1、SpikingJelly: An open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch

  • 强化学习算法: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:PostPre (Simple STDP rule involving both pre- and post-synaptic spiking activity. By default, pre-synaptic update is negative and the post-synaptic update is positive), WeightDependentPostPre (STDP rule involving both pre- and post-synaptic spiking activity. The post-synaptic update is positive and the pre- synaptic update is negative, and both are dependent on the magnitude of the synaptic weights).

 

3、Norse: A library to do deep learning with spiking neural networks

  • 强化学习算法:DQN,Policy Gradient,Actor-Critic;
  • SNN学习算法:Clock-driven;

PS:最后一层脉冲神经元不发放,用仿真时间T内的最大膜电压表示连续值。

原文地址:https://www.cnblogs.com/lucifer1997/p/14197753.html