TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers 阅读总结
ABSTRACT
转换后的SNN存在准确性和延迟之间的权衡关系,在大型数据集中会造成相当大的延迟。本文提出了一种名为TCL的技术来缓解这种权衡关系的问题,使得ImageNet 在250个的步长延迟下具有73.87%(VGG-16)和70.37%(ResNet-34)的准确率。
1.INTRODUCTION
感觉几乎每篇论文的introduction介绍背景都十分相似,这里就不再赘述
本文的主要工作:
1.阐述了为什么转换snn的精度和延迟之间存在权衡关系,表明如何缓和这种权衡关系(3.1节)
2.提出了一种基本技术来改善SNN的准确性和延迟之间的权衡关系,即采用可训练裁剪层(TCL)。我们确保在一个ReLU层后都有一个裁剪区域经过训练裁剪层,找到最优的数据归一化因子,以考虑snn中的准确性和延迟。(3.2节)
3.通过适当控制了L2正则化系数,我们进一步提高了极低延迟约束下的SNN精度。(4.1节)
2.PRELIMINARY BACKROUNDS
2.1 Spiking Neural Networks theory
采用经典的IF模型,
z
i
l
(
t
)
z^l_i(t)
zil(t)为l层第i个神经元t时刻的总输入,
θ
j
l
−
1
(
t
)
\theta^{l-1}_j(t)
θjl−1(t)为l-1层第j个神经元t时刻是否产生脉冲,
W
i
j
l
W^l_{ij}
Wijl为l-1的i神经元与l层的j神经元间的权重,
V
i
l
(
t
)
V^l_i(t)
Vil(t)为l层i神经元t时刻的电压,
V
t
h
r
l
V^l_{thr}
Vthrl为l层的电压阈值
有公式如下,相信大家都已经比较熟悉:
2.2 ANN to SNN conversion
ANN中的RELU激活函数作用如下,使得l层i神经元的总输入
a
i
l
a^l_i
ail不小于0:
由于(1)中
θ
j
l
−
1
(
t
)
\theta^{l-1}_j(t)
θjl−1(t)输入信号只能为0或者1,同
a
j
l
−
1
a^{l-1}_j
ajl−1一样不能为负数,所以结合(1)(4)可以得到一个ANN到SNN的参数映射
此外为了进行转换,我们需要进行一个参数均值化,我们将阈值电压
V
t
h
r
l
V^l_{thr}
Vthrl全部设置为1,对每层的参数进行均值化处理
其中,
λ
l
\lambda^l
λl第l层的归一化因子,
λ
l
\lambda^l
λl的大小觉得会在3.1中进行讨论。
对于ANN中的批标准化有(其中a是输入,
μ
\mu
μ和
σ
\sigma
σ是均值和方差,
γ
\gamma
γ和
β
\beta
β是要学习的参数)
(个人认为是因为SNN输入只能是0,1不能进行标准化,所以只好在权重上进行批标准化来加快收敛速度)
在移除批标准化之后为了避免精度损失,我们采用如下式子来代替:
在这篇论文的方法中:
1.基于(5)进行了数据的均值化;
2.使用(7)替代批标准化;
3.用最大池化层代替平均池化层;
4.计算脉冲信号的数量,并且选用其中最大值进行判断分类,以此替代ANN中的soft-max层
3.OUR CONTRIBUTION
3.1 The trade-off between accurancy and latency
在ANN2SNN的转换中常常利用离散脉冲率
f
i
f_i
fi来近似一个连续值
a
i
a_i
ai
其中
a
l
i
m
i
t
a_{limit}
alimit是映射到
f
i
=
1
f_i=1
fi=1的值,
a
m
a
x
a_{max}
amax是该层所有a的最大值,
Δ
\Delta
Δ是量化分辨率
归一化因子
λ
\lambda
λ和
a
l
i
m
i
t
a_{limit}
alimit成正比
如果
λ
\lambda
λ太小就会如图1B,
a
l
i
m
i
t
a_{limit}
alimit与
a
m
a
x
a_{max}
amax间的所有值均对应到
f
i
=
1
f_i=1
fi=1出现较大误差
如果
λ
\lambda
λ太大就会如图1C,出现较大的量化误差
所以需要选择一个适中的
λ
\lambda
λ值
以上是解释了为什么会存在一个这样的权衡问题(由图1A我们知道约99.0%~99.99%的在[0,max/3]的范围里,由于这个规律,前人有的选择99.9%的地方来决定 λ \lambda λ),这篇论文会接着提出一种TCL方法来缓解这种权衡问题
3.2 Traingable Clipping Layer(TCL)(重点)
为了解决
λ
\lambda
λ值的确定,我们如图2在Relu层之后加上了一个Clipping层:
Clipping层的作用如公式9,将大于
λ
\lambda
λ的a全部修正为
λ
\lambda
λ
我们基于公式11,通过梯度下降训练
λ
\lambda
λ,其中
η
\eta
η是学习率,
α
\alpha
α是L2正则系数
−
η
α
λ
-\eta\alpha\lambda
−ηαλ正则项的作用是防止
λ
\lambda
λ的值过大
−
η
∂
a
‾
∂
λ
∂
L
∂
a
‾
-\eta\frac{\partial\overline a}{\partial\lambda}\frac{\partial L}{\partial\overline a}
−η∂λ∂a∂a∂L的作用是增大
λ
\lambda
λ的值来减少训练的误差
如图5的运行结果显示了TCL的存在几乎不会影响结果的准确率
如图6的结果显示了采用 该论文的方法 与前人的采用选取
a
m
a
x
a_{max}
amax固定比例的方法 的对比转换误差结果,发现该论文的方法大幅度优于任何固定比例的选取结果。
综合图5和图6说明了该论文的方法可以在保持ANN准确率不变的情况下,降低ANN2SNN的转换误差。
4.EXPERIMENT RESULTS
4.1 The Effect of a L2-regularization Coefficient
本节讨论L2正则化系数
α
\alpha
α的影响
由图7可以看出,大的
α
\alpha
α值倾向于产生较小的
λ
\lambda
λ,这样有助于提升SNN在较小模拟时间步长(例如50以下)下的精度。
由表1可以看出,ANN的准确度会随着
α
\alpha
α的增加而减少,一般会较大模拟时间步长(例如大于200)下降低SNN的精度
综上两点,我们需要找到最优的
α
\alpha
α,但是目前如何找到最优的
α
\alpha
α的算法,所以这篇文章只是在一些尝试中手动选取了一些
α
\alpha
α值
4.2 Experiment results and discussion
表二显示了该论文的结果,与世界最先进的结果的对比
该方法的成功之处:1.尽管TCL方法限制了ANN输入值的范围,但是几乎不会影响ANN的准确率;2.转换后的SNN精确度几乎与ANN相当。
5.CONCLUSION
许多研究表明,ANN-SNN转换可以成为SNN训练的替代方案。然而,SNN存在较大的延迟,对于大型数据集(如ImageNet)问题较大,限制了SNN的可能性。在这项工作中,提出了一种基于ANN-SNN转换的可训练裁剪层技术,即TCL,缓解了SNN精度和延迟之间的权衡关系。
实验结果表明,基于TCL的SNN即使在250个时钟周期的小延迟下,也能获得几乎与ANN相当的精度,这很好地验证了TCL技术的有效性。