当前位置: 首页 > news >正文

TinyTNAS: 不依赖GPU的、有时间限制的、硬件感知的神经架构搜索,用于TinyML时间序列分类

这篇论文的标题是《TinyTNAS: GPU-Free, Time-Bound, Hardware-Aware Neural Architecture Search for TinyML Time Series Classification》,作者是印度理工学院(Indian Institute of Technology Kharagpur)的Bidyut Saha, Riya Samanta, Soumya K. Ghosh, 和 Ram Babu Roy。以下是该论文的主要内容概述:

摘要

  • 提出了TinyTNAS,这是一种针对TinyML时间序列分类的新型硬件感知多目标神经架构搜索(NAS)工具。
  • TinyTNAS与传统依赖GPU的NAS方法不同,它能够在CPU上高效运行,适用于更广泛的应用场景。
  • 用户可以定义RAM、FLASH和MAC操作的约束,以在这些参数内发现最优的神经网络架构。
  • 支持时间限制搜索,确保在用户指定的时间内找到最佳模型。
  • 通过在多个基准数据集上的实验,展示了TinyTNAS在显著降低RAM、FLASH、MAC使用和延迟的同时,保持了优越的准确性。

引言

  • 讨论了神经架构搜索(NAS)的优势,包括自动化设计神经网络架构,节省手动设计所需的时间和专家努力。
  • 传统NAS方法依赖于大量的计算资源,主要是GPU,这对需要快速部署或在硬件约束下运行的应用来说是不切实际的。
  • 介绍了硬件感知NAS方法,这些方法将硬件参数(如内存使用、计算复杂性、功耗)整合到架构搜索过程中。

NAS是神经架构搜索(Neural Architecture Search)的缩写,这是一种自动化设计神经网络架构的方法。在传统的机器学习或深度学习项目中,设计一个高效的神经网络架构通常需要大量的专业知识和实验。而NAS通过搜索和评估大量可能的网络架构,自动寻找到对于特定任务最优的网络设计。

相关工作

  • 回顾了NAS的发展,包括传统NAS方法和硬件感知NAS(HW NAS)。
  • 讨论了TinyML领域的最新进展,包括MCUNet和MicroNets等工具。

TinyTNAS

  • 搜索空间:介绍了TinyTNAS使用的cell-wise搜索空间,以及如何通过用户定义的硬件限制(RAM、FLASH、MAC)来约束生成的模型。
  • 搜索算法:详细描述了TinyTNAS的搜索算法,它使用网格搜索方法的变体,优化了k(第一层1D卷积层的滤波器数量)和c(重复块的数量)两个维度。

TinyTNAS是一种专为TinyML时间序列分类设计的硬件感知多目标神经架构搜索(NAS)工具。这一工具与传统的依赖于GPU资源的NAS方法不同,它能够在CPU上高效运行,使得在资源受限的环境中也能进行神经网络架构的搜索和优化。以下是TinyTNAS的详细介绍:

3.1 搜索空间

TinyTNAS使用的搜索空间基于cell-wise策略,其中每个候选的神经网络架构遵循特定的模板。这个模板包括:

  • 起始层:一个深度可分离的一维卷积层(Depthwise Separable 1D Convolutional layer),具有步长为1、核大小为3的卷积核,以及k数量的卷积核,使用ReLU激活函数。
  • 重复块:可能重复0到c次的块,c是可能的最大MaxPooling1D层数,这些层根据数据集的输入形状进行自适应。
  • 全局平均池化层(GlobalAveragePooling1D layer)。
  • 前密集层(Dense layer with ReLU activation),包含kc+1个神经元。
  • 分类器层:一个与类别数对应的密集层(Dense neurons)和softmax激活函数。

重复块结构以MaxPooling1D开始,接着是深度可分离的一维卷积层,核大小为3,步长为1,使用ReLU激活函数,并且滤波器大小ki遵循增长模式,即ki = 1.5×ki−1,从k1 = 1.5×k开始。搜索空间受到用户定义的RAM、FLASH和MAC硬件限制的约束。

3.2 搜索算法

TinyTNAS的搜索算法专注于在CPU上高效运行,避免使用GPU,并在合理的时间内生成架构。因此,它避免了使用强化学习或进化算法,而是采用了网格搜索方法的变体。用户可以定义RAM、FLASH和MAC操作的约束,以发现满足这些参数的最优神经网络架构。此外,TinyTNAS允许有时间限制的搜索,确保在用户指定的时间内找到最佳可能的模型。

搜索算法优化两个维度来找到最优架构:k和c。这里,k代表第一层深度可分离的1D卷积层中的滤波器数量,而c是重复块的数量。算法通过通常加倍k并保持c不变(除非连续探索的架构中准确度下降)来减少计算需求。对于详细的搜索算法工作流程,可以参考论文中的算法描述。

3.3 实现细节
  • 模型构建:基于用户定义的硬件限制(如RAM、FLASH和MAC操作),TinyTNAS使用TensorFlow Lite进行模型优化,并使用MLTR库估算资源需求。
  • 训练策略:候选架构直接在完整的目标数据集上训练四个周期。用户可以调整这个值:增加它将需要更多的搜索时间,但可能会产生更好的决策;减少它将减少搜索时间,但可能导致次优决策。

TinyTNAS通过其创新的搜索策略,有效地在资源受限的TinyML应用中优化神经网络架构,确保了效率和高性能。

实验

  • 使用了五个基准数据集进行实验,包括UCI HAR、PAMAP2、WISDM、MIT-BIH和PTB Diagnostic ECG数据库。
  • 介绍了生成的架构的规格,包括在20 KB RAM、64 KB FLASH内存、60K MAC操作和10分钟搜索时间的约束下运行。
  • 与现有最先进(SOTA)方法进行了比较,包括在ESP32和Nano BLE Sense等低功耗MCU上的部署和延迟评估。

结论

  • TinyTNAS有效地将NAS与TinyML结合起来,特别是在资源受限设备上的时间序列分类任务。
  • 通过优化的网格搜索方法,TinyTNAS在CPU上高效运行,显著减少了RAM、FLASH内存、延迟和MAC操作,同时保持了SOTA的准确性。

代码

  • 提供了TinyTNAS的GitHub代码库链接。

论文还包含了一些算法伪代码,详细描述了TinyTNAS的主要模块、状态更新、可行性检查、模型构建和深度探索的过程。此外,论文还提供了在不同数据集上使用TinyTNAS生成的模型的准确性和资源需求的详细比较表。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TypeScript与vue
  • 【Matlab】时间序列模型(ARIMA)
  • sql 4,创建表类型
  • 波导阵列天线单元学习笔记7 一种用直接金属激光烧结考虑的轻质量,宽带,双圆极化波导腔体阵列
  • Jmeter(十四)Jmeter分布式部署测试
  • 光降解水凝胶:三色光响应
  • 4.1 版本管理器——2PL与MVCC
  • 【CVPR‘24】DeCoTR:使用 2D 和 3D 注意力增强深度补全
  • 【web开发】Spring Boot 快速搭建Web项目(二)
  • ElasticSearch学习笔记(四)分页、高亮、RestClient查询文档
  • openGuass之CTE Reuse
  • 数据仓库系列17:元数据管理在数据仓库中的作用是什么?
  • 实用好软-----电脑端 开源的视频无损剪切与合并工具
  • Linux——性能调优工具一览
  • 数据资产目录中的主数据划分(汽车制造行业)
  • 时间复杂度分析经典问题——最大子序列和
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 78. Subsets
  • Django 博客开发教程 8 - 博客文章详情页
  • JAVA SE 6 GC调优笔记
  • Netty 4.1 源代码学习:线程模型
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • TypeScript实现数据结构(一)栈,队列,链表
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 安装python包到指定虚拟环境
  • 如何解决微信端直接跳WAP端
  • 如何优雅地使用 Sublime Text
  • 7行Python代码的人脸识别
  • k8s使用glusterfs实现动态持久化存储
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #if等命令的学习
  • $.ajax()参数及用法
  • (175)FPGA门控时钟技术
  • (C11) 泛型表达式
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (八十八)VFL语言初步 - 实现布局
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (蓝桥杯每日一题)love
  • (四)进入MySQL 【事务】
  • (转)3D模板阴影原理
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net的socket示例
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .Net中的设计模式——Factory Method模式
  • @DataRedisTest测试redis从未如此丝滑
  • @requestBody写与不写的情况
  • @Transactional 详解
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [Android] Upload package to device fails #2720
  • [C#]使用C#部署yolov8的目标检测tensorrt模型
  • [C++]C++入门--引用