赞
踩
目 录
中文摘要 i
Abstract ii
1 引言 1
1.1 研究背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 研究意义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 论文组织与结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 脉冲神经网络 4
2.1 学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 ANN 转化的 SNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 国内外研究进展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 脉冲发放率和模拟激活值数学分析 . . . . . . . . . . . . . . . . . . 5
2.3 ANN 操作的脉冲实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 偏置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 参数标准化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.3 BN 层的转化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.4 脉冲层中的最大池化 . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 ANN 模型结构 9
3.1 SSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 基础网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 先验框 11
3.1.3 损失函数 11
3.2 YOLO 12
3.2.1 网络结构 12
3.2.2 损失函数 13
3.2.3 预测部分 13
4 SNN 模型结构 15
4.1spikingssd 15
4.1.1 获取最大激活值 16
4.1.2 等价转换操作 17
4.1.3 前向推理 17
4.2spikingyolo 17
4.2.1 通道标准化 17
4.2.2 不平衡阈值的带符号神经元 18
4.2.3 解码方式 19
5 实验结果 21
5.1 数据集介绍 21
5.2 实验指标介绍 21
5.3 实验结果对比 21
5.3.1ssd 与 spikingssd 21
5.3.2yolo 与 spikingyolo 22
6 总结讨论 24
6.1 数据对结果的影响 24
6.2 影响模型结果的几个因素 24
6.2.1 时间步长 24
6.2.2 原始网络的效果 24
6.2.3 转换单元的实现方式 24
参考文献 26
2 脉冲神经网络
在过去多年中,人工神经网络(ANN)已能够解决很多问题。但当我们尝试解决更高 级的问题时,对算力和电源的不断增长的需求是不可避免的,在可用资源有限的嵌入式 系统上几乎不可能采用 ANN。鉴于这些情况,由于事件驱动性和低功率特性,脉冲神经 网络(SNN)作为第三代神经网络正在引起广泛关注。然而,SNN 的复杂的动态神经元和 不可微分的脉冲操作给其带来了显著的性能下降。因此,其应用仅限于相对简单的任务, 例如图像分类。在最近的研究中,Seijoon Kim 等人研究了 SNN 在更具挑战性的对象检 测任务中的性能下降[7], 并提出了第一个用于目标检测的脉冲神经网络模型 Spikingyolo, 该模型是对现有的 yolo 模型进行转化,因此下文中先简述脉冲神经网络的各种学习算法, 再重点对转化的方法进行阐述。
2.1 学习算法
人工神经网络的学习是根据数据对网络的关键参数进行调整和优化的过程。优化学 习算法在这一过程中起着至关重要的作用。目前人工神经网络优化理论中,结合误差反 向传播的梯度下降算法是其核心。
相比之下, 当前脉冲神经网络领域还没有成熟的训练算法。网络采用的神经元模型和 编码方式各异, 均造成了训练算法的多样化。总体来讲,主流的实现 SNN 的方式有三种: 第一种是基于 STDP 等生物解释性好的算法进行训练,第二种是直接使用 BP 算法进行 反向传播,这实现起来也相对困难。第三种是运用成熟的人工神经网络,对其进行转换, 也可以按是否采用标签信息将其分为无监督学习和有监督学习两类。脉冲神经网络一些 常用的学习算法如下图[5] 所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。