ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理

论文标题

英文标题:ETHEREAL: Energy-efficient and High-throughput Inference using Compressed Tsetlin Machine
中文标题:ETHEREAL:使用压缩Tsetlin机器实现能效高吞吐量推理

作者信息

Shengyu Duan, Newcastle University, Newcastle upon Tyne, UK
Rishad Shafik, Newcastle University, Newcastle upon Tyne, UK
Alex Yakovlev, Newcastle University, Newcastle upon Tyne, UK

论文出处

tinyML Research Symposium'25, February 2025, Austin, TX


摘要

本文介绍了一种名为ETHEREAL的模型压缩方法,用于Tsetlin机器(TM),旨在提高机器学习应用中的能效和吞吐量。Tsetlin机器是一种替代深度神经网络(DNN)的新型机器学习算法,通过Tsetlin自动机学习数据中的命题逻辑模式,而非依赖多路径算术运算。ETHEREAL通过在训练过程中引入排除状态,稀疏化TM的逻辑模式,从而在保持高分类精度的同时显著减小模型大小。实验表明,ETHEREAL模型在多个TinyML数据集上相比标准TM模型减少了高达87.54%的模型大小,仅牺牲了少量精度。此外,ETHEREAL在STM32F746G-DISCO平台上实现了比二值化神经网络(BNN)更高的吞吐量和更低的能耗,同时相比随机森林(RF)具有更小的内存占用。


1. 引言

随着机器学习在低能耗、资源受限的边缘应用中的需求不断增加,深度神经网络(DNN)的高计算需求成为一大挑战。Tsetlin机器(TM)作为一种低复杂度的替代方案,通过逻辑运算而非算术运算实现与DNN相当的精度,并具有可解释性。TM的结构包括三个主要过程:布尔化(Booleanization)、训练和推理。布尔化将输入数据转换为布尔形式的字面量;训练过程中,子句通过Tsetlin自动机学习字面量的子模式;推理则通过正负子句的多数投票完成分类。尽管TM在训练后表现出高稀疏性,但标准TM训练过程仍会引入与目标类别相关性较弱的字面量。本文提出的ETHEREAL方法通过排除这些字面量,进一步压缩TM模型,实现更高的能效和吞吐量。


2. Tsetlin机器学习动态

Tsetlin机器通过调整Tsetlin自动机(TA)的状态来学习支持或反对某个命题的子模式,这一过程由Type I和Type II反馈驱动。Type I反馈用于减少假阴性,通过增加或减少TA状态来强化或削弱字面量的包含关系;Type II反馈则用于减少假阳性,通过调整TA状态改变错误的子句输出。尽管这种反馈机制能够快速收敛并提高精度,但它忽略了字面量与目标类别的相关性,导致许多不重要的字面量被包含在模型中。


3. ETHEREAL模型压缩

3.1 字面量的重要性

通过实验发现,TM在训练过程中会逐渐增加包含的字面量数量,但这些字面量并非都与分类任务强相关。例如,在MNIST数据集中,靠近数字轮廓的特征更可能被包含在正负子句中,而靠近图像边界的特征则因缺乏区分性而被同时包含在正负子句中。这些不重要的字面量可以通过ETHEREAL方法被识别并排除。

3.2 ETHEREAL训练过程

ETHEREAL训练过程包括交替的标准训练和排除步骤。首先进行若干轮标准训练,以恢复可能错误排除的字面量;然后识别同时出现在正负子句中的字面量,并将其TA状态调整为排除状态。通过这种方式,ETHEREAL能够在保持高精度的同时显著减少模型大小。实验表明,ETHEREAL在MNIST数据集上实现了46.6%的模型大小减少,仅牺牲了0.8%的精度。


4. 实验评估

4.1 实验设置

本文选择8个TinyML数据集进行实验,包括基于肌电图(EMG)的手势识别、气体传感器漂移、手势阶段分割、人类活动识别、乳腺X线摄影肿块、无传感器驱动诊断、体育活动和车辆轮廓数据集。通过调整超参数,ETHEREAL模型在这些数据集上表现出显著的模型大小压缩效果,同时仅牺牲少量精度。

4.2 离线评估

ETHEREAL在多个数据集上显著减少了字面量的包含数量(39.29%-87.54%),精度下降幅度仅为0.78%-3.38%。对于某些数据集(如乳腺X线摄影肿块和车辆轮廓),ETHEREAL甚至在减少字面量后精度有所提高。这表明ETHEREAL在去除噪声特征的同时保留了重要特征,从而在某些情况下提高了模型性能。

4.3 在STM32F746G-DISCO上的在线评估

ETHEREAL在STM32F746G-DISCO微控制器上的实验结果表明,相比随机森林(RF)和二值化神经网络(BNN),ETHEREAL在推理时间、能耗和内存占用方面表现出显著优势。ETHEREAL的推理时间比BNN快10倍以上,能耗降低超过10倍,同时内存占用比RF减少约7倍。这些结果表明ETHEREAL在资源受限的边缘设备上具有显著的能效优势。


5. 结论

ETHEREAL通过在训练过程中排除不重要的字面量,显著减少了Tsetlin机器的模型大小,同时仅牺牲少量精度。这种压缩方法在推理时间、能耗和内存占用方面带来了显著的改进,使其在资源受限的边缘设备上具有很高的应用价值。与BNN相比,ETHEREAL在推理时间和能耗方面表现出超过10倍的提升;与RF相比,ETHEREAL在内存占用方面减少了约7倍。ETHEREAL为在低功耗、高吞吐量的边缘设备上实现高效的机器学习模型提供了一种新的解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 批量替换

选择替换的内容 1. 打开全局替换窗口 有两种方式可以打开全局替换窗口: 快捷键方式: 在 Windows 或 Linux 系统下,按下 Ctrl Shift R。在 Mac 系统下,按下 Command Shift R。菜单操作方式:点击菜单栏中的 Edit&…

mars3d接入到uniapp的时候ios上所有地图的瓦片都无法加载解决方案

用的是【Mars3d】官网的uniapp的仓库,安卓没有问题,但是ios的不行 相关链接 mars3d-uni-app: uni-app技术栈下的Mars3D项目模板 解决方案:感觉所有图片请求全被拦截了 uniapp的ios内核不允许跨域,需要先把瓦片下载后转base64&…

SpringBoot速成(十)更新用户信息P11-P12

1.代码展示: 1.RequestBody 是 Spring 框架中用于处理 HTTP 请求体的注解,通常用于控制器(Controller)层的方法参数中。当客户端发送一个包含 JSON 或 XML 数据的 HTTP 请求时,可以使用 RequestBody 将这些数据绑定到一…

3.3.3 VO-O语法- 语法算子(二)

循环遍历 由于VO语言是面向数据集的,其所有隐含的语义中都已经带有了遍历并计算的数据逻辑。因此,VO语言只提供了一种支持循环语法的算子--Loop算子。 Loop算子 Loop算子是一个容器算子,其可以实现对其内部子流程的循环迭代运行。但Loop算…

java后端开发day13--面向对象综合练习

(以下内容全部来自上述课程) 注意:先有javabean,才能创建对象。 1.文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候&#…

RocketMQ和Kafka如何实现顺序写入和顺序消费?

0 前言 先说明kafka,顺序写入和消费是Kafka的重要特性,但需要正确的配置和使用方式才能保证。本文需要解释清楚Kafka如何通过分区来实现顺序性,以及生产者和消费者应该如何配合。   首先,顺序写入。Kafka的消息是按分区追加写入…

DeepSeek系统崩溃 | 极验服务如何为爆火应用筑起安全防线?

引言 极验服务让您的产品站在风口之时,不必担心爆红是灾难的开始,而是期待其成为驱动持续创新的全新起点。 01现象级狂欢背后,你的业务安全防线抗得住吗? “近期DeepSeek线上服务受到大规模恶意攻击,注册可能繁忙&am…

【故障处理】- RMAN-06593: platform name ‘Linux x86 64-bitElapsed: 00:00:00.00‘

【故障处理】- RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00 一、概述二、报错原因三、解决方法 一、概述 使用xtts迁移,在目标端进行恢复时,遇到RMAN-06593: platform name Linux x86 64-bitElapsed: 00:00:00.00’报错。 二、报错…

日志结构化处理:PO对象toString日志转JSON工具

日志结构化处理:PO对象toString日志转JSON工具 1. 解决的问题2. 下载地址 在Java项目中,PO(Plain Old Java Object)对象遍布各个角落,且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象&…

【云安全】云原生- K8S API Server 未授权访问

API Server 是 Kubernetes 集群的核心管理接口,所有资源请求和操作都通过 kube-apiserver 提供的 API 进行处理。默认情况下,API Server 会监听两个端口:8080 和 6443。如果配置不当,可能会导致未授权访问的安全风险。 8080 端口…

Ansible批量配置服务器免密登录步骤详解

一、准备工作 192.168.85.138 安装ansible,计划配置到139的免密 192.168.85.139 待配置免密 1. 生成SSH密钥对 在Ansible控制节点生成密钥对,用于后续免密认证: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa 全部回车默认,无…

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:制作一些光场(Light Field) 当前的目标是为游戏添加光照系统,并已完成了法线映射(normal maps)的管道,但还没有创建可以供这些正常映射采样的光场。为了继续推进&…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目,uniappnodemysql七牛云。 在如今快节奏的生活里,大家都忙忙碌碌,那些具有特殊意义的日子一不小心就容易被遗忘。今天,想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

yanshee机器人初次使用说明(备注)-PyCharm

准备 需要: 1,(优必选)yanshee机器人Yanshee 开发者说明 2,手机-联网简单操控 / HDMI线与显示器和键鼠标-图形化开发环境 / 笔记本(VNC-内置图形化开发环境/PyCharm等平台)。 3,P…

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…

uniapp - iconfont下载本地并且运用至项目上

1、项目中创建一个文件夹放置iconfont相关文件&#xff0c;例如src/assets/iconfont&#xff08;名称自己定义&#xff09; 2、在iconfont下载项目至本地 3、解压后把文件复制进1的文件夹中 4、修改src/assets/iconfont - iconfont.css里的font-face的src地址&#xff0c;修…

黑马Redis详细笔记(实战篇---短信登录)

目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …

企业级高并发全链路优化:流量分发、边缘防护与服务治理的整合之道

文章目录 第一章&#xff1a;引入概览1.1 高并发时代的业务挑战与背景1.2 全链路思维在高并发架构中的必要性1.3 解决方案总览&#xff1a;技术演进与混合架构模式 第二章&#xff1a;流量分发与边缘网络2.1 DNS 解析与全球流量调度2.2 LVS 与 Nginx 集群&#xff1a;流量负载均…

Mysql中使用sql语句生成雪花算法Id

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

react传递函数与回调函数原理

为什么 React 允许直接传递函数&#xff1f; 回调函数核心逻辑 例子&#xff1a;父组件控制 Modal 的显示与隐藏 // 父组件 (ParentComponent.tsx) import React, { useState } from react; import { Modal, Button } from antd; import ModalContent from ./ModalContent;co…