写字楼门口,有一位值班保安老张。他的工作方式很特别:不盯着监控屏一帧一帧地看,而是闭目养神,等门铃响了才睁眼——看看是谁、有没有工牌、该不该放行,然后瞬间按下开门键。从铃声响起,到门真正打开,整个过程快到几乎感觉不到。老张为什么能这么快?因为他的眼睛只在有动静时才工作,他的大脑只在有事时才算,动作和判断几乎同步发生。这就是脉冲神经网络(SNN)的灵感来源:让机器人像老张一样,用“事件驱动”的方式感知和决策。再配上一双只对变化敏感的“眼睛”(DVS传感器),机器人可以在动态环境中实现极低延迟的实时反应——无论是避开突然出现的障碍,还是精准抓住传送带上移动的工件。这篇文章,我们就从老张的故事出发,把 SNN 如何实现机器人实时决策这件事,讲得明明白白。

岗位关联

理解SNN的事件驱动实时决策原理,是踏入类脑智能与神经形态机器人领域的关键一步。掌握DVS与SNN协同、闭环延迟评估与部署瓶颈,能帮助你在避障、抓取等实时任务中做出更聪明的技术选型。

目录
  1. 可视化演示
  2. 事件驱动机制:铃声不响,保安不动
  3. 时序编码方式:同样的铃,不同的含义
  4. DVS感知融合:一双只看“动”的眼睛
  5. 控制器设计:奖惩教出来的决策本能
  6. 闭环延迟评估:从铃声到开门的总时间
  7. 应用与挑战:早高峰、贵宾与夜班
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示DVS事件感知、闭环控制延迟评估、以及避障实时决策流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

DVS感知 事件相机 脉冲编码 运动→事件→脉冲 异步低延迟

事件驱动机制:铃声不响,保安不动

老张的标配是一张办公桌和一个门铃。走廊空无一人时,他不看、不听、不动作,安心打盹;一旦门铃响起,他才瞬间清醒,睁眼、辨认、按下开门键。注意,老张绝不是每秒录 25 帧的监控摄像头——摄像头哪怕对着空大厅,也会一帧一帧地傻录,每帧都要费电。老张的哲学很简单:没人来,我就不动弹。这在计算机里,叫事件驱动(event-driven)计算。

SNN 就是按照老张哲学设计的神经网络。它传递信息的单位不是连续数值,而是一个个“叮咚”的脉冲(spike)。传感器感知到环境变化,就生成一个脉冲;神经元收到脉冲后,内部的膜电位像水位一样被“注水”,水位越过阈值就再发放一个脉冲给下游。没有脉冲进来时,神经元就安静待着,不做任何运算——这就是稀疏激活(sparse activation)。

传统人工神经网络(ANN)则是“帧驱动”的:每一层都要在每一帧的完整数据上做矩阵乘法,哪怕画面毫无变化,计算量一分不少。SNN 只对有事件的部分作出响应,空闲时几乎零能耗。对机器人来说,这意味着大部分待机时间都在“打盹省电”,而突发情况到来时又能立刻响应。

τmdVm(t)dt=−(Vm(t)−Vrest)+RmIsyn(t)\displaystyle \tau_m \frac{dV_m(t)}{dt} = -(V_m(t) - V_{rest}) + R_m I_{syn}(t)

1. 膜电位变化率 $\dfrac{dV_m(t)}{dt}$:膜电位随时间变化的速度,就像老张“警觉水位”上涨的快慢。

dVm(t)dt\dfrac{dV_m(t)}{dt}

2. 时间常数 $\tau_m$:决定膜电位响应快慢的旋钮,$\tau_m$ 越大反应越迟钝。

τm\tau_m

3. 漏电项 $-(V_m(t) - V_{rest})$:膜电位会向静息电位回流,像水缸有裂缝,水会慢慢漏掉。

−(Vm(t)−Vrest)-(V_m(t) - V_{rest})

4. 输入电流项 $R_m I_{syn}(t)$:突触电流对膜电位的“注水”贡献,相当于门铃的响度。

RmIsyn(t)R_m I_{syn}(t)

回到老张:门铃就是脉冲,膜电位就是他的警觉水位,输入电流就是铃声大小。没有铃声,水位不动;铃声一到,水位快速越过阈值,“叮咚”一声行动。这套机制让机器人像老张一样——平时安静如鸡,有事秒级反应,还特别省电。

时序编码方式:同样的铃,不同的含义

老张不仅听铃声,更听铃声的节奏。急促的三连铃,那是急事;缓慢的一下,是例行访客;铃响一声又停,多半是小孩恶作剧。同样的铃声,时间上的排列不同,含义天差地别。他判断来访者的身份,看的不是铃声响了多久,而是铃声“怎么响、先响哪一下”。

SNN 也是一样。单个脉冲本身不携带具体的数值大小,信息藏在脉冲的时间模式里。最常见的编码方式是频率编码(rate coding):用单位时间内发了多少脉冲来表示刺激强弱,就像用“多少声铃”表示事情有多急。另一种是时序编码(temporal coding):用脉冲发放的具体时刻或先后顺序来传递信息,就像老张捕捉“第一声铃”就立刻做出判断。

频率编码直观、稳健,但代价是慢——必须统计一段时间内的脉冲数才能得到稳定的发放率(spike rate),这天然引入了延迟。时序编码则快得多:第一个脉冲到达的时刻(time-to-first-spike)就能携带信息,一发既出、立即可用。在机器人避障这类毫秒级场景中,时序编码往往是更优的选择;实际系统也常两者混用,兼顾稳健与速度。

ri=1T∑t=1TSi(t)\displaystyle r_i = \frac{1}{T}\sum_{t=1}^{T} S_i(t)

1. 脉冲指示 $S_i(t)$:神经元 $i$ 在第 $t$ 个时间步是否发放脉冲,发放记 $1$,不发放记 $0$。

Si(t)S_i(t)

2. 时间窗口 $T$:统计脉冲个数的总时长,相当于老张数铃声的计时器。

TT

3. 累加求和 $\displaystyle\sum_{t=1}^{T}$:把窗口内每个时间步的脉冲全部加起来,得到脉冲总数。

∑t=1TSi(t)\sum_{t=1}^{T} S_i(t)

4. 平均发放率 $r_i$:脉冲总数除以窗口长度,得到“每单位时间响几声铃”。

1T∑t=1TSi(t)\frac{1}{T}\sum_{t=1}^{T} S_i(t)

老张听的是节奏,SNN 读的是时间。频率编码像老张默默数“这几秒响了五声”,数完才明白;时序编码像老张只听到第一声铃就从椅子上弹起来。机器人要快,就得学会“听第一声铃”——这正是时序编码在实时决策中的价值。

DVS感知融合:一双只看“动”的眼睛

老张的眼睛,比监控摄像头聪明得多。摄像头每秒 25 帧,把大厅的静态背景反反复复录下来;老张的眼睛只在有东西移动时才“亮”起来——有人走过,目光跟着人影扫过去;大厅空着,眼睛就彻底休息。他看的是变化,不是画面。

这种“只对变化敏感”的视觉传感器,叫动态视觉传感器(DVS,Dynamic Vision Sensor)。普通相机按固定帧率输出整幅图像,而 DVS 的每个像素完全独立,只有当感受到的光强变化超过设定阈值时,才产生一个事件(event)。本质上,这个事件就是一个带时间戳的脉冲——和 SNN 的语言完全一致。

DVS 最妙的地方在于,它的输出天然就是事件流,可以直接作为 SNN 输入层的脉冲,省掉了“图像→脉冲”的翻译环节。这带来两个直接好处:一是感知延迟低至微秒级,二是动态范围大,在光线突变或高速运动下也不会糊帧。传统“帧相机+CNN”需要先等一帧图像、再做预处理,而"DVS+SNN"从源头就是脉冲对脉冲的直达通道。

ΔIi(t)=Ii(t)−Ii(t−Δt),ei={+1,ΔIi(t)>Cth−1,ΔIi(t)<−Cth0,otherwise\displaystyle \Delta I_i(t) = I_i(t) - I_i(t - \Delta t), \qquad e_i = \begin{cases} +1, & \Delta I_i(t) > C_{th} \\ -1, & \Delta I_i(t) < -C_{th} \\ 0, & \text{otherwise} \end{cases}

1. 光强变化 $\Delta I_i(t)$:像素 $i$ 在 $\Delta t$ 间隔内的光强差值,像老张眼中“那人动了多少”。

ΔIi(t)=Ii(t)−Ii(t−Δt)\Delta I_i(t) = I_i(t) - I_i(t - \Delta t)

2. 触发阈值 $C_{th}$:产生事件所需的最小光强变化量,低于它的事件被当作噪声忽略。

CthC_{th}

3. 事件输出 $e_i$:$+1$ 表示该像素变亮,$-1$ 表示变暗,$0$ 表示没有值得报告的变化。

ei={+1,ΔIi(t)>Cth−1,ΔIi(t)<−Cthe_i = \begin{cases} +1, & \Delta I_i(t) > C_{th} \\ -1, & \Delta I_i(t) < -C_{th} \end{cases}

4. 逐像素异步判断:每个像素独立判断、互不等待,这是 DVS 低延迟和命名中“动态”的来源。

asynchronous, per-pixel event generation\text{asynchronous, per-pixel event generation}

DVS 就是老张的目光:没动静不眨眼,有动静瞬间锁定。它出事件、SNN 收脉冲,眼睛和大脑说同一种语言,中间零翻译。传感器与网络无缝衔接,机器人的反应自然快得起来。

控制器设计:奖惩教出来的决策本能

老张放不放人进门,靠的是一套“职业准则”:佩戴工牌的直接放行,陌生面孔先拦下询问,行踪可疑的按警报。这套准则不是凭空来的,而是入职以来无数次表扬和批评教出来的——放对了人,队长表扬;放错了人,扣奖金。奖惩之间,老张的判断越来越准。

SNN 控制器设计的骨架,就是机器人的“职业准则”。典型结构分三层:输入层接收 DVS 的事件流,相当于老张的眼睛;隐藏层把事件整合成特征,相当于老张的脑回路;输出层发放脉冲命令驱动电机转向或机械臂运动,相当于老张的手。关键在于,“开门还是拦人”的规则不是手写的,而是通过学习获得的突触权重。

学习的核心机制叫奖励调节的突触可塑性(reward-modulated STDP,简称 R-STDP)。经典 STDP 规则只看神经元发放的先后顺序来调整突触强度,而 R-STDP 把行为结果——奖励或惩罚——也乘进去:成功避障,连接增强;发生碰撞,连接减弱。这样反复在线调节,SNN 控制器就能在真实环境中不断优化策略,既能用于避障,也能用于抓取。

Δwij=η⋅R(t)⋅STDP(Δtij)\displaystyle \Delta w_{ij} = \eta \cdot R(t) \cdot \mathrm{STDP}(\Delta t_{ij})

1. 突触权重更新量 $\Delta w_{ij}$:神经元 $i$ 与 $j$ 之间连接强度的改变量,像老张“放行经验”的强化程度。

Δwij\Delta w_{ij}

2. 学习率 $\eta$:每次调整的步长,太大容易震荡,太小学得慢。

η\eta

3. 奖励信号 $R(t)$:对当前行为的即时评价,正值增强连接、负值削弱连接,像队长的表扬和扣分。

R(t)R(t)

4. 时序依赖项 $\mathrm{STDP}(\Delta t_{ij})$:由前后神经元脉冲发放时间差 $\Delta t_{ij}$ 决定的突触变化趋势,对应“先响的铃引导后响的铃”这样的因果关系。

STDP(Δtij)\mathrm{STDP}(\Delta t_{ij})

R-STDP 就像老张的成长之路:放对一次,表扬一次,突触变强;放错一次,扣分一次,突触变弱。久而久之,机器人自己学会了“看见障碍往右打方向、瞄准目标伸爪子”。这种从奖惩中长出来的决策本能,比人为编写的规则更能适应真实世界的复杂局面。

闭环延迟评估:从铃声到开门的总时间

客人按门铃到门真正打开,中间发生了什么?老张耳朵听到(感知),脑子判断来者是谁(决策),手按下开关(执行)。哪一环慢了,门就开得慢。光说老张脑子转得快是不够的——如果开关生锈了,门照样开得拖拖拉拉。

在机器人控制里,这条完整的链路叫闭环延迟(closed-loop latency):从传感器检测到环境变化开始,到执行器完成相应动作所花的总时间。评估它,不能只盯着神经网络推理有多快。传感器采集要时间,执行器响应要时间,任何一段都可能成为瓶颈。

对比一下传统方案和 SNN 方案。传统“帧相机+CNN”:相机以 30fps 采帧,等一帧就要约 33ms,CNN 推理通常还要几十毫秒,加上执行时间,总闭环延迟普遍超过 100ms。而“DVS+SNN“方案:传感器事件微秒级触发,SNN 又因稀疏激活而计算极快,总延迟可以压到 10ms 以内。对高速移动的机器人,100ms 意味着几十厘米的盲区,10ms 则意味着”看到即躲过”。

Tloop=Tsensor+Tdecision+Tactuator\displaystyle T_{loop} = T_{sensor} + T_{decision} + T_{actuator}

1. 闭环总延迟 $T_{loop}$:从环境变化到动作完成的总时长,像老张从听到铃声到门开了一条缝。

TloopT_{loop}

2. 感知延迟 $T_{sensor}$:传感器输出事件信号所需时间,DVS 只要微秒级,帧相机则要等完一整帧。

TsensorT_{sensor}

3. 决策延迟 $T_{decision}$:控制器产出运动命令的推理时间,SNN 因稀疏计算而极短。

TdecisionT_{decision}

4. 执行延迟 $T_{actuator}$:电机等执行器的机械响应时间,这是整个链路的“物理下限”。

TactuatorT_{actuator}

闭环延迟,就是机器人的“开门速度”。DVS+SNN 把感知和决策两段压缩到极致,就像老张练到“铃声未落、门已开缝”,动作几乎成了条件反射。在高速避障这样的生死场景里,快十倍和慢一秒的差别,就是毫发无伤和粉身碎骨的差别。

应用与挑战:早高峰、贵宾与夜班

老张的一天分几个场景:早高峰,几十人同时涌进大厅,他要眼观六路、快速分流;贵宾来访,他要精准引导、一步不差;深夜值班,整栋楼只剩他一人,电要省着用,人也只能打个盹。每个场景都有各自的脾气和难处。

SNN 控制器的应用也集中在几类任务。动态避障:机器人高速行进,障碍突然闯入视野,DVS 立刻产生事件流,SNN 迅速判断哪边有空隙,指挥底盘转向。机械臂抓取:传送带上的工件不停移动,SNN 根据目标运动事件,实时调整机械臂轨迹和夹爪力度,实现“手眼同步”。

但部署层面的挑战同样现实。其一,SNN 的稀疏事件计算在通用 GPU 上反而难以发挥优势,需要专门的神经形态芯片(如 Intel Loihi、IBM TrueNorth)才能真正兑现低功耗低延迟;其二,SNN 的训练工具链远不如 PyTorch 成熟,从模型设计到部署调试都更费力;其三,DVS 事件流与传统机器人控制系统之间的接口协议仍需大量定制开发。这些瓶颈,决定了 SNN 机器人目前更多出现在实验室和试点产线。

Pavg=Nspikes⋅EspikeTtask+Pidle\displaystyle P_{avg} = \frac{N_{spikes} \cdot E_{spike}}{T_{task}} + P_{idle}

1. 平均功耗 $P_{avg}$:机器人完成一次任务的平均功率,像老张值一天班的总耗电量。

PavgP_{avg}

2. 脉冲总数 $N_{spikes}$:任务过程中发放的脉冲总量,事件越多,总能耗越高。

NspikesN_{spikes}

3. 单脉冲能耗 $E_{spike}$:处理一个脉冲所需的能量,神经形态芯片能把这项压到极低。

EspikeE_{spike}

4. 空闲功耗 $P_{idle}$:无事件时的维持功耗,事件驱动设计让它趋近于零,这正是夜间值班省电的奥秘。

PidleP_{idle}

场景就像老张的早高峰和贵宾接待,挑战就像深夜值班的电费账单。SNN 已经在避障和抓取上展现出“晚出发、先到达”的潜力,但要像老张一样真正独当一面地值班,还得等神经形态硬件更普及、工具链更顺手、接口更标准。路还长,但方向已经清晰。

AI 应用场景

高速无人机自主避障

阶段:模型部署与实时推理

解决的问题:传统“帧相机+CNN”方案闭环延迟超过 100ms,无人机高速飞行时往往“看到障碍已经来不及躲”。DVS+SNN 借助事件驱动感知和稀疏脉冲计算,把闭环延迟压到 10ms 以内——就像老张“听声即开门”,让无人机把“看见”和“躲开”变成近乎同步的动作。

具体案例:某研究团队在四旋翼无人机上搭载 DVS 相机与 SNN 控制器,在布满障碍的室内场地以约 7m/s 的速度自主穿行,平均功耗仅 1W 左右,功耗远低于同场景的 GPU 方案。

工业机械臂动态抓取

阶段:在线决策与强化学习

解决的问题:传送带上的工件位置时刻变化,传统视觉抓取要等完整的图像帧到来才更新目标位置,定位滞后导致抓取失败率上升。SNN 控制器按事件流实时追踪工件运动,并用 R-STDP 在线调整抓取策略——做对了突触变强,抓空了突触变弱,像老张在奖惩中精进放行准则。

具体案例:某柔性生产线部署 DVS+SNN 抓取系统,对匀速及变速传送带上运动的异形零件进行实时追踪抓取,成功率比传统视觉方案提升约 15%,单次决策能耗下降一个数量级以上。

长时间待机的巡逻机器人

阶段:边缘端部署与能效优化

解决的问题:巡逻机器人大部分时间处在“无事发生”的环境中,帧驱动方案每帧都在消耗算力和电量。事件驱动的 SNN 让机器人在静态场景近乎零功耗,只在有事件时“醒来”决策——这正是老张深夜值班省电的哲学:没人来,就不动弹。

具体案例:某园区安防机器人改用 SNN 控制器后,单次充电待机时长从约 6 小时延长到 12 小时,且对人员闯入、车辆靠近的动态事件响应没有明显延迟。

Python 演示

python49 行
class LIFNeuron:    """漏电积分发放神经元,累积输入电流达到阈值就发放脉冲."""     def __init__(self, tau=20.0, v_thresh=1.0):        self.tau = tau        self.v_thresh = v_thresh        self.v = 0.0        self.spike_count = 0     def step(self, current, dt=1.0):        self.v += (-self.v + current) / self.tau * dt        if self.v >= self.v_thresh:            self.spike_count += 1            self.v = 0.0            return 1        return 0  class SNNController:    """事件驱动的避障控制器,左右神经元竞争决定转向."""     def __init__(self):        self.left_neuron = LIFNeuron()        self.right_neuron = LIFNeuron()     def decide(self, left_events, right_events):        left_spike = self.left_neuron.step(left_events)        right_spike = self.right_neuron.step(right_events)        if left_spike and right_spike:            return "stop"        if left_spike:            return "turn_right"        if right_spike:            return "turn_left"        return "forward"  def simulate():    controller = SNNController()    for t in range(30):        left_events = 5 if 10 <= t <= 18 else 0        right_events = 3 if 20 <= t <= 25 else 0        action = controller.decide(left_events, right_events)        print("t={:2d} left={} right={} action={}".format(            t, left_events, right_events, action))  if __name__ == "__main__":    simulate()
目的:用两个 LIF 神经元模拟事件驱动的避障控制器——左侧有障碍时左神经元发放脉冲,控制器右转躲避;右侧有障碍时同理;两侧同时有障碍则停车。
  1. self.v += (-self.v + current) / self.tau * dt更新膜电位:漏电项加输入项,正是 LIF 公式的离散化。
  2. if self.v >= self.v_thresh:膜电位越过阈值就发放脉冲,像老张的水位越过警戒线。
  3. left_spike = self.left_neuron.step(left_events)事件驱动:有事件输入才积分,无事件直接返回 0。
  4. if left_spike and right_spike:两侧同时报警时停车,是最稳妥的决策。
  5. left_events = 5 if 10 <= t <= 18 else 0模拟 DVS 事件流:障碍出现的那段时间事件密集,其余时间静默。

常见误区

误区SNN 就是把 ANN 的 ReLU 换成阶跃函数,本质上还是老一套神经网络,输出变成 0/1 而已。我用 PyTorch 改两行就能实现。

正解SNN 不是“换激活函数”,而是整个计算范式都变了。ANN 是帧驱动的确定性映射:输入浮点数、输出浮点数;SNN 是事件驱动的:输入脉冲序列、输出脉冲序列,信息还藏在时间维度里。更重要的是,SNN 的计算是稀疏的——没有输入事件时,神经元几乎不做任何计算。这种“无事发生就休息”的特性,是 ANN 靠换激活函数根本无法获得的。

为何常见:因为 SNN 神经元也有加权求和,看起来很像 ANN 的线性层,初学者容易把“相似的公式”误当成“相同的本质”。

误区DVS 是每秒能拍几千帧的高速相机,所以它能捕捉更快的运动、把画面看得更清楚。

正解DVS 与普通相机的数据形式完全不同。普通相机无论帧率多高,输出的都是“一张一张的完整图像”;DVS 的每个像素完全独立,只在光强变化超过阈值时输出一个带时间戳的事件,画面静止时输出为零。它更像保安的眼睛——只对“动”感兴趣,而不是把静态背景反复拍几千遍。这种异步事件流直接映射为 SNN 的脉冲,省去了编码环节。

为何常见:人们习惯用“帧率”来理解相机速度,于是很自然地把 DVS 类比成“帧率更高的相机”。

误区评估机器人快不快,就看 SNN 一次推理要多少毫秒。推理快了,机器人反应就快。

正解机器人反应快慢由闭环延迟决定,它包含传感器感知、网络推理、执行器响应三段。就像老张开门的总时间,不只是他“做决定”的时间,还包括听到铃声、按下开关的时间。哪怕 SNN 推理只要 1ms,如果相机等一帧要 33ms,总延迟依然超过 30ms。DVS+SNN 的优势,恰恰在于把感知和决策两段同时压缩。

为何常见:我们习惯了把“模型快”等同于“系统快”,忽略了传感和执行环节同样占据时间。

误区脉冲是离散的、不可微的,梯度根本传不过去,所以 SNN 不能用梯度下降训练,只能靠专家手工调参,没法实用。

正解SNN 确实不能直接套用标准反向传播,但研究者发展出了多条有效路径:代理梯度法(surrogate gradient,用平滑函数近似脉冲的导数)、ANN 转 SNN(把训练好的 ANN 权重迁移为脉冲网络的权重)、以及 R-STDP 这类无梯度在线学习。在机器人控制中,R-STDP 尤其自然,因为“做对了给奖励、做错了给惩罚”正好贴合控制任务的评价方式。

为何常见:初学者看到“不可微”就以为是死刑,忽略了替代梯度和无梯度学习这两条活路。

面试题

Q1. 脉冲神经网络(SNN)中信息传递的基本单位是什么?

单选题 · easy

  • A.连续浮点数
  • B.离散脉冲序列← 正确答案
  • C.概率分布数据
  • D.符号逻辑表达

答案:B。SNN 神经元之间通过离散脉冲(spike)传递信息,脉冲的“有”与“无”就像门铃响不响。连续浮点数是 ANN 的表示方式,概率分布属于概率模型,符号逻辑是符号主义的语言。

Q2. 与传统帧相机相比,DVS 传感器输出的是什么?

单选题 · easy

  • A.固定帧率的灰度图像
  • B.亮度变化的事件流← 正确答案
  • C.场景深度点云数据
  • D.音频信号数据流

答案:B。DVS 每个像素独立检测光强变化,超过阈值才输出事件,画面静止时没有输出。固定帧率灰度图是普通相机的输出,点云是深度相机的输出,音频流是麦克风的输出。DVS 就像保安的眼睛,只捕捉“动了”的信息。

Q3. 频率编码中,信号的强弱通过什么来表示?

单选题 · easy

  • A.脉冲信号的幅值大小
  • B.单位时间内的脉冲数← 正确答案
  • C.脉冲的颜色信息
  • D.神经元的数量规模

答案:B。频率编码用单位时间内的脉冲数表示刺激强弱:刺激越强,脉冲越密。脉冲幅值通常是固定不变的,不携带信息;脉冲没有颜色概念;神经元数量属于网络结构,与编码方式无关。

Q4. LIF 神经元模型中,膜电位达到什么条件会发放脉冲?

单选题 · mid

  • A.膜电位超过发放阈值← 正确答案
  • B.膜电位降到零值
  • C.膜电位变为负值
  • D.膜电位保持恒定值

答案:A。LIF 模型中,输入电流让膜电位持续累积,一旦超过阈值 $V_{thresh}$ 就发放一个脉冲并复位。降到零、变负或保持恒定都不会触发发放。这就像老张的“警觉水位”超过警戒线才响警报。

Q5. 关于事件驱动计算范式,下列哪些说法正确?

多选题 · mid

  • A.事件驱动导致能耗极高
  • B.无事件时神经元保持静默← 正确答案
  • C.空闲时计算开销趋近于零← 正确答案
  • D.高分辨率输入降低延迟

答案:BC。事件驱动下,神经元只在收到输入事件时才积分计算,无事件时静默、空闲开销趋近于零,因此 B、C 正确,A 错误。延迟由传感与决策链路共同决定,高分辨率反而增加计算量,并不会降低延迟。

Q6. 闭环延迟的正确含义是什么?

单选题 · mid

  • A.仅计算神经网络推理延迟
  • B.仅计算传感器响应延迟
  • C.感知决策执行全链路延迟← 正确答案
  • D.训练模型所花费的时间

答案:C。闭环延迟是从传感器检测到事件、到控制器推理、再到执行器完成动作的完整链路时间,任何一段都不能少。只看推理或只看感知都是“一叶障目”;训练时间属于开发阶段,不属于运行时闭环延迟。

Q7. 关于奖励调节的突触可塑性(R-STDP),下列说法正确的是?

多选题 · mid

  • A.奖励信号决定权重更新方向← 正确答案
  • B.依赖前后脉冲的时间关系← 正确答案
  • C.需要大量标注释本来学习
  • D.直接传输连续的梯度信息

答案:AB。R-STDP 中,奖励信号 $R$ 乘上 STDP 项共同决定权重更新的方向和强度(A 对);STDP 本身依据前后神经元脉冲发放的时间差(B 对)。它属于在线强化学习,不需要大量人工标注(C 错),也不依赖连续梯度(D 错)。

Q8. SNN 机器人实现低延迟实时决策得益于哪些因素?

多选题 · hard

  • A.传感器事件驱动机制← 正确答案
  • B.计算过程稀疏高效← 正确答案
  • C.追求更高图像分辨率
  • D.专用神经形态芯片← 正确答案

答案:ABD。低延迟来自三处:事件驱动省去帧等待、稀疏计算省去无关运算、神经形态硬件让脉冲计算能量效率高。高分辨率不是 SNN 路线的目标,反而会引入更多无效事件与计算负担。

Q9. 目前部署 SNN 机器人控制器,最大的挑战是什么?

单选题 · hard

  • A.专用硬件生态尚不成熟← 正确答案
  • B.传感器分辨率不够高
  • C.电机响应速度太慢
  • D.机械结构过于复杂

答案:A。SNN 的稀疏事件计算在通用 GPU 上难以发挥优势,必须依赖神经形态芯片,而这类硬件的生态和应用接口尚不成熟,是当前最大的部署瓶颈。DVS 本就不追求高分辨率;电机和机械结构是机器人通用问题,并非 SNN 特有。

Q10. 为什么 SNN 不能直接使用标准反向传播训练?

单选题 · extreme

  • A.因为模型完全没有梯度
  • B.脉冲不可微需替代梯度← 正确答案
  • C.训练数据规模太有限
  • D.无法表达非线性映射

答案:B。脉冲发放是离散的阶跃事件,其导数处处为零或不存在,标准链式法则无法使用,所以需要代理梯度、ANN 转 SNN 或 R-STDP 等替代方案。SNN 并非没有可学习的结构信息,也并非不能表达非线性映射。