IJCAI 2022 | 推理速度22.3倍提升,北航、字节跳动提出二值化关键字识别模型(1)

简介: IJCAI 2022 | 推理速度22.3倍提升,北航、字节跳动提出二值化关键字识别模型

该研究提出了首个针对 KWS 任务的二值神经网络 BiFSMN,通过令人信服的精度改进优于现有的二值化方法,甚至可以与全精度对应物相媲美。此外,该研究在 ARMv8 实际设备上的 BiFSMN 实现了 22.3 倍加速和 15.5 倍存储节省。

近年来,以 FSMN 为代表的语音关键字识别(KWS)模型在各类边缘场景得到广泛应用。然而,语音唤醒应用的实时响应需求和边缘设备上有限计算与能耗资源间的矛盾一直存在,这阻碍了 KWS 模型在真实世界硬件设备上的部署。近日,人工智能顶会 IJCAI 2022 接收论文结果已经正式公布,北航刘祥龙教授团队和字节跳动 AI Lab 智能语音团队联合提出了首个针对 KWS 任务的二值神经网络 BiFSMN,并在 ARM 设备上实现了高达 22.3 倍和 15.5 倍的推理加速和存储节省。

论文地址:https://arxiv.org/pdf/2202.06483.pdf
1. 引言
1.1 背景
目前深度神经网络的卓越性能,主要依赖于高端图形处理单元进行计算训练。训练好的模型,其体积和参数量通常较大,因此需要大量的存储空间占用,并且有足够的计算单元来提高模型运行效率。这导致模型较难部署在手机等部分算力有限、存储空间有限的边缘设备上,这也限制了神经网络的适用场景和部署平台。
1.2 问题
尽管目前模型二值化取得了进展,但通过现有方法对 KWS 网络进行二值化仍然远非理想。大多数量化方法在推理过程中使用浮点算法,且直接量化会带来严重的性能下降。
首先,由于使用了 1 位参数,二值化网络的表示空间极其有限,难以优化。其次,KWS 的现有架构具有固定的模型规模和拓扑结构,无法在运行时自适应地平衡资源预算。此外,现有的部署框架在现实世界的硬件上实现时还远未达到二值化网络的理论加速上限。
1.3 成果

  • 提出了一种用于 KWS 的准确且极其高效的二元神经网络 BiFSMN。
  • 构建了 HED,方案来强调高频信息,以优化二值化网络的训练。
  • 提出了 TBA,以在运行时实现即时和自适应的精度 - 效率权衡。


BiFSMN 通过令人信服的精度改进优于现有的二值化方法,甚至可以与全精度对应物相媲美。此外,该研究在 ARMv8 实际设备上的 BiFSMN 实现了 22.3 倍加速和 15.5 倍存储节省。
2. 方法概述
2.1 HED —— 高频增强蒸馏
该研究发现,信息倾向于边缘的本质是:基本的二值化表示倾向于集中在高频分量上。该研究使用 2D Haar 小波变换 (WT) [Meyer, 1992],其常用作分离水平、垂直边缘的可分离变换,将表示分解为低频和高频分量。
输入到特定层的隐藏状态 H 可以表示为小波函数族的加权和,


其中 是具有特定时间参数的母小波函数, 是分辨率级别, 和 K 确定波形的平移,为了测量表示的单个分量所传达的信息量,使用相对小波能量来定义信息量[Rosso et al., 2001]。层的小波能量 首先计算为:


当通过一次分解得到低频和高频系数时,它们的相对小波能量可以表示为:


较大的相对小波能量表明信息更多地聚集在该分量中。如图所示,与全精度表示相比,二值化表示的高频分量的相对小波能量显着增加,这意味着二值化表示向高频分量倾斜。


基于上述分析,该研究提出了一种用于二值化感知训练的高频增强蒸馏方法。该方案利用预训练的全精度 D-FSMN 作为教师,并在蒸馏过程中增强其隐藏层特征的高频分量。具体来说,该研究对原始特征应用小波变换,去除低频分量,然后对高频分量应用小波逆变换(IWT)函数来恢复选定的特征。该过程可以表述如下:


然后将强调的高频表示添加到原始表示中:


其中 是标准偏差。受 [Martinez et al., 2020] 的启发,该研究最小化了来自教师的 和直接来自学生的隐藏层特征 之间的注意力蒸馏损失,表示为:


其中 表示第 个块,是 L2 范数。
上面的 HED 方案使二值化学生网络更容易利用强调的全精度表示中的基本信息并提高准确性。
2.2 TBA —— 可细化二值结构
该研究提出了一种用于 KWS 的 Thinnable Binarization Architecture (TBA),它可以在运行时选择具有更少层的更薄模型,从而直接减少计算消耗。该研究把包含 N 个块的基本二值化架构的整个主干网络表示为:


其中 分别是二值化网络和二值化 D-FSMN 块,是网络的输入。形成的 TBA 结构可以定义为:


其中 是所选层的间隔,取值仅限于可整除 N每个可细化块 可以定义为:


可细化网络架构将通过用恒等函数替换中间块来跳过每个 层的中间块, 下图显示了该研究的可细化二值化架构的形式化。

此外,该研究还提供了 的实例,如图所示。


为了优化提议的 TBA 的二值化感知训练,该研究采用统一层映射策略来更好地对齐和学习 HED 中的表示:


来自不同分支的梯度在反向传播过程中累积以共同更新权重。根据可细化架构中的压缩比,加权损失可以计算为:


其中 表示 的交叉熵损失,是控制蒸馏影响的超参数。

相关文章
|
JavaScript
Ant Design Vue栅格Grid的使用
Ant Design Vue栅格Grid的使用
Ant Design Vue栅格Grid的使用
|
27天前
|
人工智能 自然语言处理 供应链
2025年11月,中国数字人平台介绍与技术分析
2025年,数字人技术迈向“价值载体”新阶段,核心市场规模破400亿元。依托多模态大模型、端侧智能与高拟真驱动,数字人在政务、医疗、文旅等领域实现深度落地。从技术架构到场景定制,再到生态协同,正重构产业交互方式,推动虚实融合的智能化变革。
|
8月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
5月前
|
存储 运维 数据挖掘
革新智能驾驶数据挖掘检索效率!某国内新能源汽车未来出行领导者选择阿里云Milvus构建多模态检索引擎
在智能驾驶技术快速发展中,数据成为驱动算法进步的核心。某新能源汽车领军企业基于阿里云Milvus向量数据库构建智能驾驶数据挖掘平台,利用其高性能、可扩展的相似性检索服务,解决了大规模向量数据检索瓶颈问题,显著降低20%以上成本,缩短模型迭代周期,实现从数据采集到场景挖掘的智能化闭环,加速智能驾驶落地应用。
革新智能驾驶数据挖掘检索效率!某国内新能源汽车未来出行领导者选择阿里云Milvus构建多模态检索引擎
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
【干货】软件测试转 AI 测试开发?这些面试题你必须知道!
想转型AI测试开发?掌握AI/ML基础、模型评估、自动化测试与CI/CD全流程是关键!我们整理了面试必备题库,并推出【人工智能测试开发训练营】,助你系统构建AI测试能力体系,提升面试竞争力,实现职业进阶。
|
8月前
|
数据采集 人工智能 数据处理
覆盖16省方言的老人语音数据集!SeniorTalk:智源研究院开源全球首个超高龄老年人中文语音数据集
SeniorTalk是由智源研究院与南开大学联合推出的全球首个中文超高龄老年人对话语音数据集,包含202位75岁及以上老年人的55.53小时语音数据,涵盖16个省市的不同地域口音。
1019 5
覆盖16省方言的老人语音数据集!SeniorTalk:智源研究院开源全球首个超高龄老年人中文语音数据集
|
2月前
|
传感器 人工智能 安全
AI + 视频监管:构筑智慧工地全场景安全防线
融合AI与物联网技术,智慧工地视频监管系统实现人员、设备、环境全维度智能管控,通过主动预警、全域覆盖、数据闭环,提升安全隐患识别效率,降低事故率67%,减少巡检成本40%,推动建筑安全管理迈向智能化、精细化新阶段。
288 0
|
网络协议 API PHP
探索PHP的异步编程:使用ReactPHP实现非阻塞I/O
【8月更文挑战第4天】在传统的同步编程模型中,PHP脚本按顺序执行,每个任务必须等待前一个任务完成后才能开始。这种模式在处理I/O密集型操作时,如网络请求或文件读写,会导致性能瓶颈。异步编程提供了一种解决方案,允许多个操作同时进行,从而提高效率。本文将介绍如何使用ReactPHP库在PHP中实现异步编程,并通过代码示例展示其如何优化I/O操作。
522 1
|
9月前
|
机器学习/深度学习 自然语言处理 物联网
FlowMo: 模式搜索+扩散模型提升图像Token化性能
FlowMo是一种基于Transformer的扩散自编码器,无需卷积网络或对抗性损失,在图像Token化领域实现技术突破。它通过两阶段训练(模式匹配预训练与模式搜索后训练)和一维潜在表征,达到低高比特率下的领先性能。FlowMo摒弃传统方法限制,展现卓越重建质量,但推理计算开销较大。其创新为视觉生成系统提供了新方向。
210 4
FlowMo: 模式搜索+扩散模型提升图像Token化性能
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
310 7