引言
要將脈沖強化學習進行分類,首先要了解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作為解碼器。