【读论文】TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers

news2024/9/25 1:25:08

请添加图片描述
DAC 2021

背景

通过ANN2SNN的方法得到的SNN中,存在准确性和延迟之间的一种权衡关系,在较大的数据集(如ImageNet)上可能会有较高的延迟。

主要贡献

  1. 分析了转换后SNN精度与延迟之间存在权衡关系的原因,并指出了如何缓解这种权衡关系;
  2. 提出TCL(trainable clipping layer)技术改善权衡关系,TCL的剪裁区域是被训练过的,跟着ReLU层,可以找到精度与延迟之间的最优数据归一化因子;
  3. 通过适当控制L2正则化系数,进一步提高了极低延迟约束下SNN的精度。

主要内容与方法

ANN2SNN误差分析

请添加图片描述
f是放电率,a是激活值,deta是量化解(我的理解是a_limit是转换中可映射的最大激活值)。
ANN2SNN实际上就是用量化的激活值匹配放电率,但量化误差是不可避免的。可以通过增加延迟T或者减小a_limit来减小量化误差,这也是ANN2SNN过程中存在精度和延迟之间权衡关系的原因。请添加图片描述
通过上面这个图也可以看到,ANN大部分激活值都不是特别接近最大激活值,有90.00%~99.99%都是在[0, max / 3]的范围里,但由于a_limit的选择,可能造成不同的损失:当a_limit<a_max,一部分激活值被剪裁掉了,造成了损失;当a_limit>a_max,又会造成量化误差。

可训练的剪裁层(Trainable Clipping Layer)

请添加图片描述
请添加图片描述

clipping layer的功能如(9)所示,λ是可训练参数,其梯度用(10)计算,更新规则如(11)。
其中η是学习率,α是L2正则化系数,L是ANN的loss。

实验结果

请添加图片描述
请添加图片描述
从实验结果可以看出,TCL技术对比SOTAs取得了两方面重要成就:

  1. 尽管限制了激活值的范围,TCL几乎不影响ANN的精度;
  2. 转换后的SNN具有与原ANN相当的精度,并且延迟也较为适中。

总结

本文提出了一种基于ANN-to-SNN转换的可训练剪裁层技术,即TCL,缓解了SNN精度和延迟之间的权衡关系。实验结果表明,基于TCL的SNN即使在250个时钟周期的小延迟下,也能获得几乎相当ANN的精度,很好地验证了TCL的有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6587: 计算分段函数

描述本题目要求计算下列分段函数f(x)的值:输入输入在一行中给出实数x。输出在一行中按“f(x) result”的格式输出,其中x与result都保留两位小数。样例输入10样例输出f(10.00) 3.16提示C/C可在头文件中包含math.h,并调用sqrt函数求平方根&am…

JAVA入门教程||Java Scanner 类||Java 异常处理

Java Scanner 类 java.util.Scanner是Java5的新特征,我们可以通过 Scanner 类来获取用户的输入。 下面是创建 Scanner 对象的基本语法: Scanner s new Scanner(System.in); 接下来我们演示一个最简单的的数据输入,并通过 Scanner 类的 nex…

产品分析丨豆瓣APP

本文将从以下几个方面进行分析:1. 产品功能结构2. 竞品分析3. 用户分析4. 用户调研5. 功能分析与优化方案6. 总结01 产品功能结构产品架构由豆瓣的产品架构图可看出,豆瓣是兼具书影音的评分系统和兴趣社区,以广告、知识付费和电商业务作为商业…

图解LeetCode——剑指 Offer 52. 两个链表的第一个公共节点

一、题目 输入两个链表,找出它们的第一个公共节点。 二、示例 如下面的两个链表: 在节点 c1 开始相交。 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没…

代码质量与安全 | ChatGPT能帮到你什么还有待探索,但人工智能真的可以帮你做自动化测试

当听到“人工智能”(AI)时,你会想到什么? 你可能会开始想象科幻电影中的先进的人形机器人或者未来科技,但是,人工智能聊天机器人程序Chat GPT的爆火已经证明,这种“未来主义”技术已经融入了我…

三个月自学自动化测试,薪资15K直接翻倍,鬼知道我经历了什么····

学习软件测试是迫不得已,幸好最后通过自己的付出,得到了满意的回报。希望大家能通过我的经历得到一些帮助和思路。 零基础自学遇到的第一个难题就是需要怎么学,刚开始一头雾水,只能先从网上买些书来看,但是收效甚微。…

Unity中获取地形的法线

序之前,生成了地形图:(42条消息) 从灰度图到地形图_averagePerson的博客-CSDN博客那末,地形的法线贴图怎么获取?大概分为两个部分吧,先拿到法线数据,再画到纹理中去。关于法线计算Unity - Scripting API: M…

第4讲 cameraserver.rc详解(下)

本讲是Android Camera Native Framework专题的第4讲,我们介绍cameraserver.rc详解(下),包括如下内容:Android init语言简介cameraserver.rc详解serviceuser选项group选项ioprio选项task_profiles选项rlimit选项更多&am…

领域自适应 DA Domain Adaptation

领域自适应是与机器学习和转移学习相关的领域。 当我们的目标是从源数据分布中学习在不同(但相关)的目标数据分布上的良好性能模型时,就会出现这种情况。 例如,常见垃圾邮件过滤问题的任务之一在于使模型从一个用户(源…

2023年金三银四必备软件测试常见面试题1500问!!!【测试思维篇】

五、测试思维5.1 打电话功能怎么去测?我们会从几个方面去测试:界面、功能、兼容性、易用性、安全、性能、异常。1)界面我们会测试下是否跟界面原型图一致,考虑浏览器不同显示比例,屏幕分辨率。2)功能&#…

SpringBoot:SpringBoot配置文件application.properties、application.yml 和 application.ymal(2)

SpringBoot配置文件1. 配置文件格式1.1 application.properties配置文件1.2 application.yml配置文件1.3 application.yaml配置文件1.4 三种配置文件优先级和区别2. yaml格式2.1 语法规则2.2 yaml书写2.2.1 字面量:单个的、不可拆分的值2.2.2 数组:一组按…

《分布式技术原理与算法解析》学习笔记Day24

分布式缓存 在计算机领域,缓存是一个非常重要的、用来提升性能的技术。 什么是分布式缓存? 缓存技术是指用一个更快的存储设备存储一些经常用到的数据,供用户快速访问。 分布式缓存是指在分布式环境或者系统下,把一些热门数据…

全面零信任?Dell搞了个“大动作”

1860年,清朝僧格林沁带领数万骑兵,朝着数千英法联军发起猛烈冲锋,企图依靠清朝凶狠的骑兵突击战术击溃对方。然而,面对已经完成了近代化的西方军队,原来无往不利的八旗骑兵被打的土崩瓦解,再无任何抵抗的能…

Editor工具开发基础四:窗口EditorWindow

目录 1.设置窗口位置和大小 2.设置窗口最大和最小 3.设置窗口标题 4.设置窗中窗 BeginWindows和EndWindows 5.添加窗中窗可拖动 GUI.DragWindow() 完整代码: public class EditorToolWindow : EditorWindow {public static EditorToolWindow ins;[MenuItem(&q…

Elasticsearch:保护你的 Elasticsearch 实例 - 如何使用带有内置证书的 Docker 镜像

使用 docker 来构建 Elasticsearch 集群为开发者们带来了极大的方便。在我之前的文章中: Elasticsearch:使用 Docker compose 来一键部署 Elastic Stack 8.x Elasticsearch:如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发 Elastic&am…

JavaSE-线程池(5)- ThreadPoolExecutor常用方法

JavaSE-线程池(5)- ThreadPoolExecutor常用方法 invokeAll ExecutorService 接口中定义的方法,给定一组任务,在所有任务执行完成时返回一个 Futures 列表,其中包含它们的状态和结果。 /*** Executes the given task…

Java基础:常见API(Math,System,Runtime,Object,BigInteger,BigDecima)

1.常见API 1.1 Math类 向上取整是向着数轴右边走的意思, 负数也是. 也可以叫进一法, 不论正数负数都会往右走一. 向下取整是向着数轴左边走. 也可以叫去尾法, 不论正负数都会将小数点后的数字去掉. 1.1.2 练习 // 判断有多少水仙花数int count 0;for (int i 100; i < 1…

代码随想录算法训练营九期第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素、总结

打卡第十三天&#xff0c;昨天休息&#xff0c;今天继续栈和队列&#xff0c;重新复习了单调队列&#xff0c;上次看ACwing的视频学了单调队列&#xff0c;没有完全学明白&#xff0c;重学之后比之前清晰多了 今日任务 滑动窗口最大值 347.前 K 个高频元素总结 239. 滑动窗口最…

【Ap AutoSAR入门与实战开发02】-【Ap_s2s模块01】: s2s的背景

总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 s2s的背景?2 AUTOSAR 方法应支持车辆的无缝开发2.1 面向服务的ECU的解读2.2 面向信号的ECU的解读2.3 通过网关ECU实现转换1 s2s的背景? Cp AutoSAR基于传统的can,lin,flexray总线的通信,一般是面向信号设…

汽车网络安全需求分析方法综述

引言&#xff1a; 近年来&#xff0c;汽车的网络安全问题逐渐被重视&#xff0c;在汽车产品的全生命周期中&#xff0c;需要进行网络安全风险管理&#xff0c;其主要活动包括网络安全需求分析、安全策略设计与实施、运营阶段安全监控与应急响应等。 安全需求分析工作作为系统安…