首页 > 编程知识 正文

cnn 神经网络(lstm神经网络)

时间:2023-05-05 16:07:37 阅读:97557 作者:3416

翻译|文森特李

来源|欢呼蛋挞的算法工程笔记

脉冲神经网络(SNN)以脉冲神经元为计算单元,可以模拟人脑的信息编码和处理过程。与美国有线电视新闻网使用连续值进行信息传输不同,SNN可以通过离散脉冲序列中每个脉冲的时间来传输信息,从而提供稀疏但强大的计算能力。脉冲神经元积累输入到膜电压,达到特定阈值时发出脉冲,可以进行事件驱动计算。由于脉冲事件的稀疏性和事件驱动的计算形式,SNN可以提供优异的能量利用效率,是神经形态和结构的首选神经网络。

虽然SNN有很多优势,但目前只能处理相对简单的任务。由于神经元的复杂动力学和不可微操作,目前还没有可扩展的训练方法。DNN对SNN是近年来广泛使用的SNN训练方法。该方法将目标DNN变换为SNN的中间DNN网络进行训练,然后将其转换为SNN并重用其训练参数。它可以在小数据集分类中取得良好的性能,但在大数据集上的分类效果并不理想。

本文旨在利用DNN-SNN变换方法将SNN应用于更复杂的目标检测领域。图像分类只需要选择分类,而目标检测需要神经网络进行高精度的数字预测,难度要大得多。经过深入分析,实现YOLO的转型主要面临以下两个问题:

常用的SNN归一化方法效率太低,导致脉冲传输频率低。由于SNN需要为脉冲传输设置阈值,因此需要对权重进行归一化,这有利于阈值的设置。然而,常用的SNN归一化方法在目标检测中效率太低,这将在后面详细描述。

在SNN领域,漏-ReLU没有高效的实现,因为YOLO包含了大量的漏-ReLU,这是一个重要的结构,但是目前还没有高效的转换方法。

为此,本文分别采用通道归一化和带不平衡阈值的符号神经元来解决上述问题,并建立了基于SNN的目标检测模型斯派克-YOLO。本文的贡献总结如下:

深度SNN在目标探测领域的首次尝试

通道式归一化和深度SNN的细粒度归一化使多个神经元能够以更高但仍然适当的频率传输脉冲,从而使SNN信息传输更快、更准确。

带不平衡阈值的带符号神经元,提出了漏-ReLU在SNN场的高效实现,也可以轻量级集成在神经芯片上。

SNN神经元简述

SNN利用脉冲序列在神经元之间传递信息,而中频(积分-点火)神经元积累输入到膜电压。

层中第一个神经元的膜电压按公式1计算,即脉冲、临界电压和神经元的输入。

由多个输入累加,和就是权重和偏移量。

当膜电压大于临界电压时,产生脉冲,这是单位阶跃函数。如果满足要求,输出1;如果不是,它将输出0。因为SNN是事件驱动,能效相当高,但训练难度是SNN在所有应用中的主要障碍。

方法

本文将DNN-SNN转换方法直接应用于SNN目标检测,发现其性能严重下降。在分析了性能下降的原因后,得出了两个主要原因:a)大量神经元的脉冲传输频率过低;b)SNN缺乏漏-ReLU的高效实现。

基于通道的数据标准化

Conventional normalization methods

在SNN,根据输入幅度生成脉冲序列对于无损内容传输非常重要。但在固定时间内,过度激活或激活不足的神经元都可能导致内容丢失,这与临界电压的设定有关。如果设置过高,神经元需要长时间积累电压才能发出脉冲。恰恰相反。

则会过多地发射脉冲。发射频率通常定义为,为个timestep的脉冲发射总数,最大的发射率为100%,即每个timestep都发射脉冲

为了防止神经元的激活过度和激活不足,权值和临界电压都需要精心地选择。为此,很多研究提出了归一化的方法,比如常用的Layer-wise normalization(layer-norm)。该方法通过该层的最大化激活值来归一化层的权值,如公式4,和为权重,为输出特征图最大值。经过归一化后,神经元的输出就归一到,方便设定临界电压。由于最大激活值从训练集得到的,所以测试集和训练集需要有相同的分布,但论文实验发现这种常规的归一化方法在目标检测任务上会导致明显的性能下降。

Analysis of layer-norm limitation

图1展示了通过layer-norm后的各层每个channel的最大激活值,蓝色和红色的线分别为每层的平均激活值和最小激活值。可以看到每层的归一化后的激活值偏差较大,总体而言,layer-norm使得神经元的channel偏向激活不足,这在仅需选择分类的图片分类任务是不被察觉的,但对于需要预测准确值的检测任务的回归则不一样。比如传递0.7,则需要在10个timestep脉冲7次,0.007则需要在1000timestep脉冲7次。当tempstep本身就很少时,过低的发射率可能会因发射不到足够的脉冲而导致信息丢失。

Proposed normalization method

论文提出更细力度的归一化方法,channel-wise normalization(channel-norm),该方法在每层的channel维度上,使用最大激活值对权值进行归一化。

channel-wise归一化方法如公式5,和为维度下标,层权值通过在每个channel使用最大激活值进行归一化,该值依然是从训练集计算的。对于非首层中,归一化的激活值必须乘上来将输入还原为上一层归一化前的值,再进行本层的归一化,不然传递的信息会越来越小。

具体的逻辑如图2和算法1,channel-wise的归一化方法能够消除激活值特别小的问题,即得到更高但合适的发射频率,在短时间内也能准确地传递信息。

Analysis of the improved firing rate

如图3所示,对于channel-norm,大多数的神经元能接近80%的发射率,而对于layer-norm,大多数的神经元的发射率在0到3.5%之间,这明显表明channel-norm避免了过小的激活值使得更多神经发射频率更高且合适。

另外从图4可以看出,channel-norm在大多数的channel上能产生更高的发射频率,特别在channel 2。

图5则随机采样了20个神经元,记录其脉冲活动,使用channel-norm使得大多数神经元能够更有规律地发射脉冲

从上面的分析可以看出,channle-norm能够避免过小的归一化激活值,从而保持较高的脉冲发射频率,使得神经元能够在短时间内准确地传递信息,是深度SNN在解决更高级的机器学习问题的一种可行解决方案

Signed neuron featuring imbalanced threshold

Limitation of leaky-ReLU implementation in SNNs

ReLU是最常用的激活函数,保留正值而去掉所有的负值,目前的DNN-to-SNN方法都专注于IF神经元与ReLU间的转换,忽略了激活函数中的负值,而在Tiny-YOLO中,负值激活占了51%。leaky-ReLU是目前最常用的激活,通过leakage项来保留负值,一般为0.01,但目前还没有准确且高效的SNN实现方法。此前有研究提出负临界电压(-1),使得可以存在正负激活,然后在这基础乘以来转换leaky-ReLU,但这违背了生物学(脉冲是离散信号),而在神经芯片上也需额外的模块进行浮点运算。

The notion of imbalanced threshold

论文提出阈值不平衡的有符号神经元(IBT),在负值区域使用临界电压,不仅可以传递正负激活值,保持离散型,还可以高效和准确地仿照leaky-ReLU的leakage项。

如图6所示,假设,在时,,膜电压需要积累多10倍来发射负激活,类似于leaky-ReLU。

评估

Spiking-YOLO detection results

实验的目的是无损地将Tiny-YOLO的转移为SNN,结果如图7所示,使用channel-norm和IBT能有效地提升性能,且使用的timestep更少

论文尝试了不同的解码方式,分别为膜电压和脉冲数,由于脉冲数的余数要舍弃,这会带来误差和信息损失,所以基于膜电压进行解压会更准确

Spiking-YOLO energy efficiency

DNN主要使用相乘累积(multiply-accumulate , MAC)操作,而SNN则主要是累积操作(accumulate, AC),因为脉冲是二值的(1或-1),当接受到脉冲时,不用实时乘权重就可以知道结果。32-bit浮点型MAC和AC分别需要3.6pJ和0.9pJ,而32-bit整数型MAC和AC分别为3.2pJ和0.1pJ。如图9所示,不管使用哪种归一化方法,Spiking-YOLO的计算耗能仅为Tiny-YOLO的1/2000倍,能源利用十分高效。

论文在实际设备上对比了Spiking-YOLO(TrueNorth chip)和Tiny-YOLO(Titan V100),因为channel-norm的发射率较高且合适,所以使用了更少的timestep,能源消耗最少。

结论

论文提出Spiking-YOLO,是脉冲神经网络在目标检测领域的首次尝试,实现了与卷积神经网络相当的性能,而能源消耗极低。论文内容新颖,比较前沿,推荐给大家阅读。

参考内容

Towards spike-based machine intelligence with neuromorphic computing (https://www.nature.com/articles/s41586-019-1677-2)

Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition (https://link.springer.com/article/10.1007/s11263-014-0788-3)

论文地址:

https://arxiv.org/abs/1903.06530

【end】

有奖征文

超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M

网红直播时的瘦脸、磨皮等美颜功能是如何实现的?

比特币最主流,以太坊大跌,区块链技术“万金油”红利已结束 | 区块链开发者年度报告

一文了解 Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控!

用 3 个“鸽子”,告诉你闪电网络是怎样改变加密消息传递方式的!

出生小镇、高考不顺、复旦执教、闯荡硅谷,59 岁zgdws为何如此“幸运”?

你点的每个“在看”,我都认真当成了AI

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。