nuget server logo nuget api documents
↑

API Docs / Microsoft.VisualBasic.DeepLearning.SpikingNeuralNetwork / LIFLayer

LIFLayer

Full name Microsoft.VisualBasic.DeepLearning.SpikingNeuralNetwork.LIFLayer Assembly Microsoft.VisualBasic.DeepLearning.SpikingNeuralNetwork Members 17

01 Syntax

Microsoft.VisualBasic.DeepLearning.SpikingNeuralNetwork.LIFLayer

02 Methods

NameOverloadsSummary
ResetState 1 重置膜电位与时间缓存。每个样本批次开始前必须调用!
ForwardStep 1 单时间步前向:X[t] → S[t] 积分 → 泄漏 → 触发 → 复位,并缓存中间量供 BPTT 使用。
BackwardTime 1 沿时间反向传播。 前向依赖链(ZeroOnSpike 为例): U[t] = β·H[t−1] + X[t]·W S[t] = Θ(U[t] − θ) H[t] = U[t]·(1 − S[t]) 反向递推(从 T−1 到 0): dH[t] = β·dU[t+1]…

03 Properties

NameOverloadsSummary
Weight 1 突触权重矩阵 [InputSize, Units]
WeightGrad 1 权重梯度(BackwardTime 中累积)[InputSize, Units]
Beta 1 膜电位衰减系数 β ∈ (0,1),越小遗忘越快
Threshold 1 发放阈值 U_thr
ResetMode 1 复位模式
SurrogateType 1 替代梯度函数类型
Alpha 1 替代梯度陡度参数 α(fast sigmoid: σ' = 1/(α|u|+1)²)
SmoothForward 1 梯度自检开关:前向用光滑函数 f(u) 代替 Heaviside 阶跃。 f'(u) 恰好等于对应的替代导数,因此"解析梯度 == 数值差分梯度" 可用来验证 BPTT 实现的正确性。正常训练/推理必须为 False。
UHistory 1 最近一次前向仿真的膜电位轨迹(可视化用)
SHistory 1 最近一次前向仿真的脉冲轨迹(可视化用)
Name 1
InputSize 1
Units 1

04 Fields

NameOverloadsSummary
_H 1 膜电位 H(跨时间步持续)[batch, Units]

05 Members

method ResetState #
ResetState(Int32)

重置膜电位与时间缓存。每个样本批次开始前必须调用!

method ForwardStep #
ForwardStep(Tensor)

单时间步前向:X[t] → S[t] 积分 → 泄漏 → 触发 → 复位,并缓存中间量供 BPTT 使用。

method BackwardTime #
BackwardTime(List(Of Tensor))

沿时间反向传播。

前向依赖链(ZeroOnSpike 为例): U[t] = β·H[t−1] + X[t]·W S[t] = Θ(U[t] − θ) H[t] = U[t]·(1 − S[t])

反向递推(从 T−1 到 0): dH[t] = β·dU[t+1] ← H[t] 只经 U[t+1] 影响损失 dS[t] = dS_ext[t] − dH[t]⊙U[t] ← ∂H/∂S = −U dU[t] = dS[t]⊙σ'(U[t]−θ) + dH[t]⊙(1−S[t]) ← 替代梯度 + ∂H/∂U = 1−S dW += X[t]ᵀ·dU[t] ← dL/dI[t] = dL/dU[t] dX[t] = dU[t]·Wᵀ

SubtractThreshold 模式把复位导数换为 ∂H/∂S = −θ、∂H/∂U = 1。

Parameters
NameTypeDescription
dS_extList(Of Tensor)

上游对每步脉冲的梯度 dL/dS[t]([batch, Units] × T)

Returns

各时间步的 dL/dX[t](传给更早的层)

property Weight #
Weight

突触权重矩阵 [InputSize, Units]

property WeightGrad #
WeightGrad

权重梯度(BackwardTime 中累积)[InputSize, Units]

property Beta #
Beta

膜电位衰减系数 β ∈ (0,1),越小遗忘越快

property Threshold #
Threshold

发放阈值 U_thr

property ResetMode #
ResetMode

复位模式

property SurrogateType #
SurrogateType

替代梯度函数类型

property Alpha #
Alpha

替代梯度陡度参数 α(fast sigmoid: σ' = 1/(α|u|+1)²)

property SmoothForward #
SmoothForward

梯度自检开关:前向用光滑函数 f(u) 代替 Heaviside 阶跃。 f'(u) 恰好等于对应的替代导数,因此"解析梯度 == 数值差分梯度" 可用来验证 BPTT 实现的正确性。正常训练/推理必须为 False。

property UHistory #
UHistory

最近一次前向仿真的膜电位轨迹(可视化用)

property SHistory #
SHistory

最近一次前向仿真的脉冲轨迹(可视化用)

field _H #
_H

膜电位 H(跨时间步持续)[batch, Units]

property Name #
Name
property InputSize #
InputSize
property Units #
Units