探索用于小占用关键词检测的TinyML框架:一个简明概述

2024-08-30 08:20

本文主要是介绍探索用于小占用关键词检测的TinyML框架:一个简明概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

摘要

第一部分:引言

第二部分:部署TinyML的常见挑战

第三部分:SF-KWS的不同方法

A. 网络架构(Network Architecture)

B. 学习技术(Learning Techniques)

C. 模型压缩(Model Compression)

D. 注意力感知架构(Attention Awareness Architecture)

E. 特征优化(Feature Optimization)

F. 神经架构搜索(Neural Architecture Search, NAS)

第四部分:实验研究

第五部分:结论

实验方法

实验结果

模型量化

模型部署

实验结论

代码和模型

参考文献


 

 

这篇论文的标题是《Exploring TinyML Frameworks for Small-Footprint Keyword Spotting: A Concise Overview》,作者是Soumen Garai和Suman Samui,来自印度国立技术学院杜尔加布尔分校电子与通信工程系。论文主要探讨了在智能语音激活设备、智能手机和物联网(IoT)应用中,实现小占用(Small Footprint, SF)关键词检测(Keyword Spotting, KWS)的TinyML框架。以下是对论文主要内容的整理:

摘要

  • 论文讨论了在低功耗和有限内存的边缘设备上实现SF-KWS模型的重要性。
  • 通过深度学习的进步,可以在连续的词汇流中识别预定义的单词或关键词。
  • 论文研究了六种不同的技术类别,包括网络架构、学习技术、模型压缩、注意力感知架构、特征优化和神经网络搜索,这些技术适用于开发SF-KWS系统。
  • 实验表明,Tensorflow Lite框架可以压缩模型约69%,同时保持可接受的准确度。

第一部分:引言

  • 论文介绍了语音助手在日常生活中的重要性,以及它们如何通过云基语音识别实现自然通信。
  • 讨论了将连续的音频流发送到云端进行语音识别的能源效率和网络负载问题。
  • 介绍了关键词检测(KWS)的概念,以及它在唤醒设备并触发云端语音识别中的作用。

f7ec83c8c119458dab2e94a73b2f0382.png

第二部分:部署TinyML的常见挑战

 

  • TinyML旨在在低功耗设备上实现优化和紧凑的机器学习模型。
  • 论文讨论了TinyML解决方案的局限性,包括无法在设备上进行模型训练,以及模型大小和推理延迟的优化问题。
  • 介绍了各种TinyML框架,包括Google的TensorFlow Lite、Microsoft的Embedded Learning Library、ARM的CMSIS-NN等。

373bf10b8ab240099983504400f60e2a.png

第三部分:SF-KWS的不同方法

  • 论文根据文献调查,探讨了多种方法和技术来优化KWS系统,包括网络架构、学习技术、模型压缩、注意力感知、特征优化和神经架构搜索。
  • 每种方法都旨在在准确性和资源效率之间取得平衡。

4df8df7baad5446db01e0f41b7a7c74b.png

A. 网络架构(Network Architecture)

  • 深度神经网络(DNN):使用深度学习技术,如深度残差学习技术和扩张卷积,来提高小占用模型的性能。
  • 卷积循环神经网络(CRNN):结合卷积神经网络和循环神经网络,以捕获时间序列数据的特征。
  • 多分支时间卷积模块(MT-Conv):通过不同尺度的时间模式捕获,以最小的内存和计算开销提高效率。
  • Matchbox架构:使用1D时间通道可分离卷积来减少与常规1D卷积相比的模型大小。

B. 学习技术(Learning Techniques)

  • 残差学习:在深层网络中使用快捷连接来增强训练和模型性能。
  • 知识蒸馏(Knowledge Distillation):将大型模型的知识传递给小型模型,以在减少模型大小和计算需求的同时保持性能。
  • 奇异值分解(Singular Value Decomposition):压缩权重矩阵,保留关键信息,减少参数,适用于SF-KWS。
  • 少样本学习(Few-shot Learning, FSL):解决关键词数据有限的挑战,采用原型网络(ProtoNet)概念,在10次样本情况下实现76%的准确度。

C. 模型压缩(Model Compression)

  • 量化(Quantization):降低模型参数的精度,减少内存占用,同时尽量不牺牲性能。
  • 动态量化:使用较低位宽表示神经网络权重和激活,减少内存使用并加速计算。
  • 错误扩散(Error Diffusion):将量化误差分散在语音特征上,允许更高的压缩比率,同时保持关键词检测的准确性。

D. 注意力感知架构(Attention Awareness Architecture)

  • 注意力机制:通过关注输入序列中的关键部分来减少计算负载,并通过自注意力模型、共享权重自注意力和端到端模型提高关键词检测的准确性和效率。

E. 特征优化(Feature Optimization)

  • 特征选择:选择紧凑且相关的语音信号表示,以实现准确有效的关键词识别。
  • 流特征(Streaming Features):使用时间频率表示,最小化维度,并选择能够捕获关键听觉信息的特征。

F. 神经架构搜索(Neural Architecture Search, NAS)

  • NAS:通过创新算法,如NASNet、AmoebaNet、DARTS和MicroNet,自动发现有效的神经网络架构。
  • NASNet:使用强化学习优化各种操作的结构。
  • AmoebaNet:为具有挑战性的场景细化NAS方法。
  • DARTS:使用基于梯度的方法进行架构优化。
  • MicroNet:专注于小型模型的资源效率。

第四部分:实验研究

  • 论文专注于网络架构组,从六个类别中选择不同的架构进行实验。
  • 使用Google Speech Commands数据集对十类不同的类别进行分类。
  • 对比了不同TinyML框架应用到SF-KWS架构上的性能,包括模型大小、推理时间和准确度。

92b6fb1cdd9240eeba34196531db1069.png

第五部分:结论

  • 论文总结了SF-KWS的探索,强调了Tensorflow Lite框架在减少模型大小方面的显著效果,同时保持了较高的准确度。
  • 指出MicroNet-S架构在模型大小和推理时间上适合IoT设备部署。

实验方法

  • 作者选择了多种网络架构,包括深度神经网络(DNN)、卷积神经网络(CNN)、Deathwish-separable Convolution Networks(DS-CNN)和MicroNet模型。
  • 为了更细致地分类和区分这些架构,作者根据它们的尺寸将它们分为小型(S)和大型(L),例如DNN-S、DNN-L、CNN-S、CNN-L等。
  • 实验使用了不同的TinyML框架,如TensorFlow Lite和Edge Impulse,来适配和优化这些架构,使其适合在物联网(IoT)边缘设备上部署。

实验结果

  • 实验结果显示,TensorFlow Lite框架可以将模型大小压缩约69%,同时保持可接受的准确度,并且推理时间显著减少。
  • 特别是TensorFlow Lite的CNN-S和DS-CNN-S模型,它们在目标边缘设备的闪存上易于部署,非常适合IoT边缘设备。
  • Edge Impulse框架显著减少了模型大小,而MicroNet-S模型在低占用设备上在准确度和内存大小之间进行了权衡。

模型量化

  • 作者将Keras软件模型量化为Int8格式,以适应TensorFlow Lite模型,包括MicroNet架构。
  • 量化过程导致了模型大小的显著减少,同时保持了推理的准确性。

模型部署

  • 作者评估了不同框架在Cortex-M板的推理时间、模型大小和最终部署能力。
  • 表IV(Table IV)可视化了不同TinyML框架应用到各种SF-KWS架构的比较评估。

实验结论

  • 实验结果表明,TensorFlow Lite框架在减少模型占用空间方面表现出色,同时MicroNet-S架构在保持高准确度的同时显著减少了推理时间,非常适合部署在IoT设备上。

代码和模型

  • 作者使用了GitHub上的Keras软件模型,并对其进行了训练和评估。
  • EdgeImpulse框架采用了基于Mel-frequency cepstral coefficients (MFCC)和1D卷积的架构,包括float32和int8压缩技术。

参考文献

  • 论文列出了一系列相关的研究文献,涵盖了关键词检测、TinyML框架、模型压缩和神经网络搜索等领域。

论文通过实验和理论分析,为在资源受限的IoT设备上部署SF-KWS模型提供了有价值的见解和框架比较。

 

这篇关于探索用于小占用关键词检测的TinyML框架:一个简明概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120285

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.