基于事件的反向传播算法在脉冲神经网络中的应用

2022-02-17 02:50:21

两个尖峰神经元中基于事件的反向传播和一个依赖于尖峰时间的损失函数\(\mathcal{L}\)。最后的累积值是\(\frac{\mathrm{d}\mathcal{L}}{\mathrm{d}w}\)。这是模拟数据的可视化。尖峰神经元使用离散的尖峰事件进行通信,这会导致神经元模型的动力学不连续。基于梯度的优化意味着什么?我们能有梯度吗?在由漏积分神经元和激发神经元组成的尖峰神经网络中,膜电位梯度和尖峰时间几乎在重量空间的任何地方都是有限的,直到尖峰被添加或丢失的超曲面。正如Christian Pehle和作者[20]最近所示,推导反向传播来计算这些梯度不需要任何任意选择或近似。此外,最近的一些出版物展示了使用精确梯度训练多层尖峰神经网络[20][20][20][20]。基于事件的尖峰神经网络通信方案可以在反向传播过程中保留(如动画所示)。与在传统数字硬件上训练无尖峰人工神经网络相比,这可以使新型神经形态硬件实现更好的可扩展性和能效。不连续系统怎么可能有定义良好的参数导数?对于定义在连续时间中的系统,如尖峰神经网络,与离散时间相比,反向传播有什么相似之处?这篇博文按顺序回答了这两个问题。尖峰-尖峰神经网络的导数是混合动力系统:它们将连续动力与事件触发的不连续状态变化结合起来。这类系统通常使用瞬时事件对短时间内发生的现象进行建模。在棘突神经元的情况下,这是神经元的棘突机制;其他例子包括弹球在撞击地面时反射,发动机变速器在一定转速下改变档位,或者恒温器在达到温度阈值时切换加热元件。混合系统已经在最优控制理论[20]的背景下研究了半个世纪,包括计算状态变量的参数导数[20][20]。直觉是,如果参数的微小变化导致事件时间的微小变化,则会导致事件后状态变量的微小变化。如下文所述,一种形式化的数学处理方法使之精确:它将事件前后的参数导数联系起来,并说明这种关系成立的条件。关系\(V(t,w)-\vartheta=0\)定义了一个隐式函数(黑线),它允许我们确定尖峰时间导数\(\frac{\partial t{\mathrm{spike}}}{\partial w}\)。在混合系统中,事件由事件函数的过零触发。考虑一个泄漏的积分和激发神经元,其中事件函数简单地开始{{Al}} V(t,w)-Valtheta,\{{ } } } }(v(t,w))是以突触权重(w)和\(\Valtheta)为时间阈值的膜电位。为了简单起见,在A(T=0)时考虑单个输入尖峰。关系\(V(t,w)-\vartheta=0\)在\(t,w\)平面上刻出一条线,该关系在此平面上成立(参见左图)。这一行由函数\(t{\mathrm{spike}(w)\)局部描述。隐式函数定理[20]允许我们用膜势导数来表示它的导数,即尖峰时间导数\(\frac{\partial t{\mathrm{spike}}}{\partial w}),即:begin{align}\boxed{\frac{\partial t{\mathrm{spike}}{\partial w}=-\frac{1}{\frac{\partial V}{\partial t}{\结束{align}直观地说,\(w\)的变化需要通过\(t\)的变化来补偿,以便保持在\(V(t,w)-\vartheta=0\)的线上。这种变化率(2)的左侧)由沿t轴和w轴(2)的V的变化率的负比率给出。在峰值处,我们将膜电位重置为零。用\(V^+\)表示跃迁后的膜电位,我们得到了begin{align}V^+(t{mathrm{spike},w)=0。\end{align}我们知道\(t{\mathrm{spike}})是权重\(w\)的函数,其导数满足\((2)\)。由于我们的要求是\((3)\)在我们改变\(w\)(隐式改变\(t{mathrm{spike}})时保持不变,\(V^+\)相对于\(w\)的总导数必须消失:\begin{align}\frac{partial V^+}{\partial w}+\frac{\partial t{\mathrm{spike}}{\partial w}\frac{。\结束{align}在\((2)\)中插入\(V^-\)表示尖峰前的评估,并解决\(\frac{\partial V^+}{\partial w})产生所需的结果:\begin{align}\frac{\partial V^+}{\partial w}=\frac{\frac{\partial V^+}{\partial t}{\frac{\partial V^-}{\partial t}。\end{align}在一个有电流突触和膜时间常数的泄漏整合和激发神经元中(\tau{mathrm{mem}),这可以写成[20]。\begin{align}\boxed{\frac{\partial V^+}{\partial w}=\left(1+\frac{\vartheta}{\tau{\mathrm{mem}\frac}\partial V^-\frac}\端点{align}在尖峰之间,\(\frac{\partial V}{\partial w}\)的动力学由定义\(V\)动力学的微分方程的\(w\)微分给出。在峰值时,导数根据\((6)\)跳跃。这些结果推广到具有任意多个尖峰的周期性尖峰神经元网络[20]。隐函数定理要求\(\dot{V}^-\neq 0\)才能保持\((2)\)。当膜电位与阈值相切,我们有\(\dot{V}^-\到0\)时,\((2)\)中的尖峰时间导数发散。由于\(\dot V^-=0\)和\(V^-=\vartheta\)保持的点由\(N)维权重空间中的\((N-1)维超曲面给出(例如,图1中的红色点),基于\(V\)或\(t{mathrm{spike}}}的损失函数几乎在任何地方都是可微的(类似于在激活的“扭结”处不可微的带ReLUs的非尖峰神经网络)。已发布的模拟结果表明,梯度可用于优化尖峰神经网络[20][20][20][20]。既然我们已经知道了在计算参数导数时如何处理尖峰不连续性,那么反向传播是什么样的类比使我们能够有效地计算这些导数呢?深度学习中使用的伴随方法反向传播本质上是伴随方法[20]的特例,它也可以应用于连续时间系统,如尖峰神经网络或最近引入的神经常微分方程[20]。给定一组由常微分方程和损失函数定义的动态变量,它指定了一组以反向时间(“时间反向传播”)计算的伴随变量,并跟踪每个变量对总损失的贡献。伴随变量的数量等于原始变量的数量,重要的是,独立于参数的数量,允许在参数多于状态变量的系统(例如,神经网络)中进行有效的梯度计算。历史:Backprop之前的Backprop是一个概念,而伴随微分方程的概念可以追溯到拉格朗日,拉格朗日在1766年的线性情况下证明了它们的存在性和唯一性(方程伴随[20]),它们在最优控制理论和机器学习中的应用是最近才出现的。1956年,列夫·庞特里亚金(Lev Pontryagin)著名地使用了伴随法,因为他的最大原理为控制轨迹的优化提供了必要条件[20]。使用伴随方法计算参数梯度的第一批出版物似乎是亨利·J·凯利(Henry J.Kelley)在1960年[20]和阿瑟·E·布莱森(Arthur E.Bryson)在1961年[20]撰写的。这两个出版物都提供了反向传播误差的方程,这些误差相当于后传播(20)[20 ] [20 ]中推导出的那些误差,这使得一些人认为后者是“Kelle布莱森梯度过程”[20 ] [20 ]的独立发现。伴随变量=反向传播误差在非尖峰人工神经网络中,伴随变量仅对应于反向传播过程中通常称为中间变量或误差(\(\delta\)。考虑具有(L)层和输入(x0 0)的前馈网络。通过激活\(x_i \)、层\(i\)的重量\(w_i \),我们有为(i