文献阅读:Exploring Autoencoder-based Error-bounded Compression for Scientific Data

目录

    • 论文简介
    • 动机:为什么作者想要解决这个问题?
    • 贡献:作者在这篇论文中完成了什么工作(创新点)?
    • 规划:他们如何完成工作?
      • 离线训练阶段:
      • 在线压缩阶段
    • 理由:通过什么实验验证它们的工作结果
    • 自己的看法(作者如何得到的创新思路)


论文简介

  • 作者
    Jinyang Liu,∗Sheng Di,† Kai Zhao,∗Sian Jin,‡ Dingwen Tao,‡ Xin Liang,§ Zizhong Chen,∗Franck Cappello†¶

  • 发表期刊or会议
    《2021 IEEE International Conference on Cluster Computing (CLUSTER)》 CCFB

  • 发表时间
    2021


动机:为什么作者想要解决这个问题?

AE 在图像压缩中表现优异,但将AE应用于误差有界的科学数据压缩时面临以下挑战:

  • 存在许多类型的自动编码器,每种都具有不同的架构或训练方法,因此确定最有效的AE模型具有挑战性
  • 在误差有界模型中采用具有适当配置设置的自动编码器并非易事
  • 自动编码器(AE)生成的潜在向量需要进一步压缩,在最小化潜在向量存储开销的同时保持高重建质量

缺乏科学数据所需的误差控制机制,且直接应用于科学数据时存在模型选择、参数配置和潜向量存储开销等挑战

AE 通过最小化整体重建误差(如均方误差 MSE)进行训练,但这种 “平均意义” 的优化无法保证每个数据点的误差都被限制在极小范围内。但是科学数据需要逐点误差可控


贡献:作者在这篇论文中完成了什么工作(创新点)?

  • 深入研究了各种自动编码器模型的特征,基于SZ模型开发了一种误差有界的自动编码器框架
  • 针对所设计的基于自动编码器的误差有界压缩框架中的主要阶段进行压缩质量优化,包括微调块大小和潜在向量大小,以及优化潜在向量的压缩效率。
  • 使用五个真实的科学数据集对提出的解决方案进行了评估,并与其他六项相关工作进行了比较。实验表明,我们的解决方案在所有测试的压缩器中表现出极具竞争力的压缩质量

规划:他们如何完成工作?

离线训练阶段:

1.数据分块
将训练数据划分为固定大小的块(如 2D 数据块 32×32,3D 数据块 8×8×8),确保每个块内的数据具有局部相关性,便于 AE 捕捉细粒度特征

2.选择AE模型
通过对比 8 种 AE 模型(如 VAE、WAE、SWAE 等),选定 切片 Wasserstein 自动编码器(SWAE) 作为核心模型。SWAE 因重建误差低(PSNR 最高达 43.9,见表 I)、计算稳定(相比 VAE 无随机采样)和高效性(相比 WAE 计算成本低)被选中

为什么选SWAE:

  • 与其他测试的自编码器相比,SWAE在科学数据上显示出更少的重建损失
  • 与传统的变分自编码器(VAE)不同,SWAE中的编码和解码计算都是决定性的。VAE(如[53]-[57])实际上是计算输入数据的均值和方差,并根据先验分布的均值和方差对潜在向量进行采样。因此,在相同输入的多次运行中,VAE中作为编码器输出的潜在向量会有所不同,这使得VAE对于数据压缩任务不稳定

3.网络架构

  • 编码器:由卷积块组成(卷积层 + GDN 激活函数),逐步降低特征图维度,生成低维潜在向量。
  • 解码器:镜像对称的反卷积块(反卷积层 + iGDN 激活函数),将潜在向量重建为数据块。
  • 训练目标:最小化重建数据与原始数据的 L1 损失,同时通过 SWAE 的损失函数约束潜在向量的分布,提升泛化能力

在线压缩阶段

1.数据分块:
按训练阶段的块大小分割输入数据,确保 AE 模型可直接应用。

2.双预测器动态选择:
对每个数据块分别使用AE 预测和Lorenzo 预测器(传统线性预测方法),计算两者的 L1 损失,选择损失较小的预测结果:

  • AE 预测:通过预训练的编码器生成潜在向量,经量化压缩后存储,再由解码器重建数据。
  • Lorenzo 预测:利用邻近数据点线性预测(如 2D 数据使用 3 邻点,3D 数据使用 7 邻点),适用于低误差界或数据平稳的块。

在这里插入图片描述
大致流程就是:先根据loss决定选择AE还是Lorenzo;然后量化;编码(Huffman+Zstd)

举个例子:

输入块:HURRICANE-U 的 8×8×8 块,512 个浮点数,2048 字节。

自编码器或Lorenzo:SWAE 压缩为 36 维潜在向量(144 字节),初始 CR=2048/144≈14.22。

量化
假设潜在向量值范围 [ − 5 , 5 ] [-5, 5] [5,5],误差界限 e = 0.2 e=0.2 e=0.2,量化步长 Δ = 0.1 \Delta=0.1 Δ=0.1(确保量化误差 Δ / 2 = 0.05 \Delta/2=0.05 Δ/2=0.05 经解码器后满足 e = 0.2 e=0.2 e=0.2)。

每个值量化到整数,例如 z i = 3.456 → q i = 85 z_i=3.456 \rightarrow q_i=85 zi=3.456qi=85
36 维向量(原本 36×4=144 字节)量化后假设用 8 位整数表示,减到 36×1=36 字节。

Huffman 编码:

量化整数 [85, 23, 45, …],Huffman 编码后假设减到 25 字节(基于频率优化)。

Zstd 压缩:

Zstd 进一步压缩到 20 字节(捕获模式冗余)。

压缩比:
CR = 2048 20 = 102.4 ≈ 100 \text{CR} = \frac{2048}{20} = 102.4 \approx 100 CR=202048=102.4100

3.量化与编码:

  • 误差量化:对预测误差进行线性量化,确保量化后的误差在用户指定的误差界 e 内。若误差超过范围,标记为 “不可预测数据”(U)单独存储。
  • 对量化后的误差和潜在向量分别进行 Huffman 编码和 Zstd 压缩,生成最终的压缩数据。

    Huffman 编码先处理量化后值的局部冗余(基于频率),生成紧凑的比特流;Zstd 再处理比特流中的全局模式(如序列重复),进一步压缩。


理由:通过什么实验验证它们的工作结果

实验数据:使用五个来自不同领域的真实应用数据集,包括 CESM(气候模拟数据)、RTM(地震成像数据)、NYX(宇宙学模拟数据)、Hurricane(飓风模拟数据)和 EXAFEL(分子结构 X 射线衍射数据)

对比方法:将 AE-SZ 与六种其他有损压缩器进行比较,包括经典的误差有界压缩器 SZ2.1、ZFP0.5.5,基于 SZ 框架的 SZauto、SZinterp,以及基于自动编码器的科学数据压缩器 AE-A、AE-B

评估指标

实验结果与分析

  • 率失真结果:AE-SZ 在率失真方面明显优于其他基于 AE 的有损压缩器,在低比特率(高压缩比)情况下,比 SZauto、SZ2.1 和 ZFP 的率失真更好,在高比特率下与 SZ2.1 质量相当。
  • 解压缩数据可视化:在高压缩比情况下,AE-SZ 重建数据的视觉质量良好,优于 SZauto、SZ2.1、ZFP 和 SZinterp 等压缩器。
  • AE-SZ 预测器性能:在中等误差界(约 5E-3 至 2E-2)范围内,AE-SZ 中的自动编码器在预测数据块时比 Lorenzo 更具优势;随着误差界减小,Lorenzo 预测器在更多数据块上表现更好。
  • 压缩速度和自动编码器训练速度:由于神经网络计算成本较高,AE-SZ 的压缩速度约为传统有损压缩器的 10%-40%,但比其他基于自动编码器的压缩器快 30× 至 200×;AE-SZ 中自动编码器的训练时间比 AE-A 更短或相近。

自己的看法(作者如何得到的创新思路)

提出基于卷积自动编码器的误差有界压缩框架 AE-SZ,通过优化自动编码器结构、混合预测机制及隐向量压缩策略,在 5 个真实科学数据集上实现了相比传统方法(如 SZ、ZFP)更高的压缩比(高压缩比场景下提升 100%-800%)和重建质量,为科学数据高效压缩提供了新方案


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

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

相关文章

【业务框架】3C-相机-Cinemachine

概述 插件,做相机需求,等于相机老师傅多年经验总结的工具 Feature Transform:略Control Camera:控制相机参数Noise:增加随机性Blend:CameraBrain的混合列表指定一个虚拟相机到另一个相机的过渡&#xff…

设计一个算法:删除非空单链表L中结点值为x的第一个结点的前驱结点

目录 单链表的存储结构定义如下 快慢指针法 三指针法版本① 三指针法版本② 单链表的存储结构定义如下 typedef struct{Elemtype data;struct Node* next; }LNode,*LinkList; 快慢指针法 void deleteprex(LinkList L, Elemtype e) {if (L NULL || L->next NULL ||…

【Qt】:设置新建类模板

完整的头文件模板 #ifndef %FILENAME%_H #define %FILENAME%_H/*** brief The %CLASSNAME% class* author %USER%* date %DATE%*/ class %CLASSNAME% { public:%CLASSNAME%();~%CLASSNAME%();// 禁止拷贝构造和赋值%CLASSNAME%(const %CLASSNAME%&) delete;%CLASSNAME%&a…

​**​CID字体​**​ 和 ​**​Simple字体​**​

在PDF中,字体类型主要分为 ​​CID字体​​ 和 ​​Simple字体​​ 两大类,它们的主要区别在于编码方式和适用场景。以下是它们的详细对比: ​​1. CID字体(CID-keyed Fonts)​​ CID(Character Identifie…

计组_导学

2025.05.31:老汤讲408计组学习笔记 导学 第1章计算机系统概述:对计算机系统有全局的认识第2章总线系统:简单且独立,不会依赖其他内容,它是被依赖的第3章主存储器:只有了解主存储器的内部结构,才能理解在主存中是如何存储二进制的第4章数据的表示与运算:各种编码以及计算…

【GPT模型训练】第二课:张量与秩:从数学本质到深度学习的基础概念解析

这里写自定义目录标题 张量(Tensor)的定义关键特点:示例: 张量的秩(Rank)示例:“秩”的拼音常见混淆点 总结 张量(Tensor)的定义 在数学和物理学中,张量是一…

RabbitMQ work模型

Work 模型是 RabbitMQ 最基础的消息处理模式,核心思想是 ​​多个消费者竞争消费同一个队列中的消息​​,适用于任务分发和负载均衡场景。同一个消息只会被一个消费者处理。 当一个消息队列绑定了多个消费者,每个消息消费的个数都是平摊的&a…

【Linux操作系统】基础开发工具(yum、vim、gcc/g++)

文章目录 Linux软件包管理器 - yumLinux下的三种安装方式什么是软件包认识Yum与RPMyum常用指令更新软件安装与卸载查找与搜索清理缓存与重建元数据 yum源更新1. 备份现有的 yum 源配置2. 下载新的 repo 文件3. 清理并重建缓存 Linux编辑器 - vim启动vimVim 的三种主要模式常用操…

73常用控件_QFormLayout的使用

目录 代码⽰例: 使⽤ QFormLayout 创建表单. 除了上述的布局管理器之外, Qt 还提供了 QFormLayout , 属于是 QGridLayout 的特殊情况, 专 ⻔⽤于实现两列表单的布局. 这种表单布局多⽤于让⽤⼾填写信息的场景. 左侧列为提⽰, 右侧列为输⼊框 代码⽰例: 使⽤ QFormLayout 创…

兰亭妙微 | 医疗软件的界面设计能有多专业?

从医疗影像系统到手术机器人控制界面,从便携式病原体检测设备到多平台协同操作系统,兰亭妙微为众多医疗设备研发企业,打造了兼具专业性与可用性的交互界面方案。 我们不仅做设计,更深入理解医疗场景的实际需求: 对精…

鸿蒙开发修改版本几个步骤

鸿蒙开发修改版本几个步骤 比如:5.0.4(16)版本改为5.0.2(14)版本 一、项目下的build-profile.json5 "products": [{"name": "default","signingConfig": "default&qu…

Flask 基础与实战概述

一、Flask 基础知识 什么是 Flask? Flask 是一个基于 Python 的轻量级 Web 框架(微框架)。 特点:核心代码简洁,给予开发者更多选择空间。 与 Django 对比: Django 创建空项目生成多个文件,Flask 仅需一个文件即可实现简单应用(如 "Hello, World!")。 Flask …

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…

Java严格模式withResolverStyle解析日期错误及解决方案

在Java中使用DateTimeFormatter并启用严格模式(ResolverStyle.STRICT)时,解析日期字符串"2025-06-01"报错的根本原因是:模式字符串中的年份格式yyyy被解释为YearOfEra(纪元年份),而非…

Java中的泛型底层是怎样的

Java 泛型深入底层原理解析:类型擦除与桥方法的真相 一、Java中的伪泛型 Java 从 JDK 1.5 引入泛型之后,大大提升了代码的类型安全性与可读性。但泛型的底层实现并不像 C 的模板机制那样是“真正的泛型”,Java 的泛型是伪泛型,在…

Spring Boot 从Socket 到Netty网络编程(上):SOCKET 基本开发(BIO)与改进(NIO)

前言 无论是软件还是硬件的本质都是要解决IO问题(输入、输出),再说回网络编程本质上都是基于TCP/UP的开发,socket是在此基础上做的扩展与封装,而Netty又是对socket做的封装。本文旨在通过相关案例对socket进行探讨。 一…

【大模型LLM学习】function call/agent学习记录

【大模型LLM学习】function call/agent学习记录 0 前言1 langchain实现function call2 调用本地模型3 微调本地模型3.1 few-shot调用Claude生成Q-A对3.2 tools格式3.3 agent微调格式3.4 swift微调 p.s. 0 前言 记录一下使用langchain做简单的function call/agent(或者说意图识别…

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…

Puppeteer测试框架 - Node.js

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】