DreamDiffusion: Generating High-Quality Images from Brain EEG Signals

老规矩,开头还是得说一段话,讲讲为什么要写这篇论文,这篇论文算是入学以来接触视觉重建这个领域以来读的第一篇论文,
现在也正在复现这篇代码。以前以为已经搞懂了这篇论文,但在组会讨论时才发现自己读文章有很多需要改进的地方。
还有很多地方处理的细节并没有深究,导致有疑问时,却没有可以回答的思路。
在讨论实验结果时,因为没看论文的实验结果,所以对实验的结果也存在着认知偏差。
所以现在就想再重新读一下这篇论文,认真梳理一下文章内容。

文章目录

  • <center>DreamDiffusion: Generating High-Quality Images from Brain EEG Signals
  • 一、研究目的
  • 二、研究背景
    • 2.1 两个挑战
    • 2.2 fMRI数据
      • fMRI的数据特征和数据形式
      • fMRI视觉重建的Related Work
  • 三、研究内容(主要贡献)
  • 四、技术路线
    • 4.1 Masked signal pre-training for effective and robust EEG representations
    • 4.2 Fine-tuning with Stable Diffusion on limited EEG-image pairs
    • 4.3 Aligning the EEG, text, and image spaces with CLIP encoders
  • 五、实验结果
    • 5.1 Implementation details
    • 5.2 Comparison with Brain2Image
    • 5.3. Ablation studies(消融实验)

一、研究目的

  本文介绍了 DreamDiffusion,这是一种直接从脑电图 (EEG) 信号生成高质量图像的新方法,无需将想法转化为文本(以往的视觉重建模型的常见做法是要将EEG信号通过一系列操作转换为Text去指导image的生成)。

二、研究背景

2.1 两个挑战

  • 脑电图信号是无创捕获的,因此本质上是嘈杂的。此外,脑电图数据有限,个体差异不容忽视。如何在这么多约束下从脑电信号中获得有效和稳健的语义表示
为了解决第一个挑战,我们建议使用大量的 EEG 数据而不是仅使用罕见的 EEG 图像对来训练 EEG 表示。
具体来说,我们采用掩蔽信号建模,根据上下文线索预测缺失的标记。
与 MAE 和 MinD-Vis 将输入视为二维图像并掩盖空间信息不同,我们考虑了脑电信号的时间特性,并深入挖掘了人们大脑时间变化背后的语义。
我们随机掩盖了一定比例的 token,然后在时域中重建了那些被掩盖的 token。
通过这种方式,预先训练的编码器可以深入了解不同人和各种大脑活动的脑电图数据。
  • 由于使用了 CLIP 和对大量文本图像对的训练,Stable Diffusion中的文本和图像空间得到了很好的对齐。但是,脑电信号有其自身的特点,其空间与文本和图像的空间有很大不同。如何将 EEG、文本和图像空间与有限和嘈杂的 EEG 图像对对齐
至于第二个挑战,我们利用 CLIP 的图像编码器来提取与 CLIP 文本嵌入非常一致的丰富图像嵌入。
然后,这些 CLIP 图像嵌入用于进一步优化 EEG 嵌入表示。
因此,精炼后的脑电图特征嵌入可以与 CLIP 图像和文本嵌入很好地对齐,更适合于 SD 图像生成,从而提高生成图像的质量。

2.2 fMRI数据

  其实我觉得在利用fMRI重建图像的论文也可以看看,好像不少思想都是从fMRI2img中借鉴过来的

fMRI的数据特征和数据形式

  功能性磁共振成像(Functional Magnetic Resonance Imaging,fMRI)是一种神经影像学技术,其基本原理是利用磁振造影来测量神经元活动所引发的血液动力的改变,由于其非侵入性(不需要注射放射性同位素或其他药理代理)和相对低廉的成本以及具有良好的空间分辨率,fMRI已经在认知神经科学、临床心理/心理学和术前规划中被广泛使用。

  常见的功能性磁共振成像(fMRI)数据格式是DICOM(Digital Imaging and Communicationsin Medicine)。DICOM是医学影像领域的一种标准格式,用于存储医学影像数据,包括MRI、CT、PET等。DICOM格式的fMRI数据通常包含多个序列,每个序列代表了一次扫描(即一个时间点),并包含了体积图像数据以及相关的元数据,比如扫描参数、患者信息等。这种格式在医学影像研究中广泛使用,并且可以方便地与其他医学影像工具和软件进行交互和分析。
在这里插入图片描述

静息状态下不同位置人脑截面图

fMRI的介绍参考 中国人民大学健康大数据研究院-fMRI数据介绍

fMRI视觉重建的Related Work

  对于 fMRI 的使用,传统方法依靠 fMRI-图像配对数据来训练模型以预测 fMRI 的图像特征。这些图像特征将被馈送到 GAN中,以便在测试期间进行刺激重建。然而,最近的研究提出了无监督的方法,例如可重构的自动编码器设计,以从未配对的 fMRI 和图像中学习,并利用回归模型提取潜在的 fMRI 表示,可用于微调预先训练的条件 BigGAN 以进行解码。最近的工作 MinD-Vis 集成了 SC-MBM 和 DC-LDM,以生成更合理的图像和更好地保留的语义信息。

三、研究内容(主要贡献)

本文的贡献可以总结如下:

  • 首先,我们利用大量含噪的EEG数据进行掩蔽信号建模,以训练EEG编码器提取上下文知识。

  • 然后,得到的EEG编码器通过交叉注意力机制提供条件特征给Stable Diffusion。

  • 为了提高EEG特征与Stable Diffusion的兼容性,我们在微调过程中进一步对齐EEG、文本和图像嵌入空间,通过减少EEG嵌入与CLIP图像嵌入之间的距离来实现。

  • 最终,我们能够获得DreamDiffusion,它仅通过EEG信号生成高质量的图像。
    在这里插入图片描述

四、技术路线

4.1 Masked signal pre-training for effective and robust EEG representations

  由于 EEG 数据固有的可变性和噪声,传统的建模方法通常难以从 EEG 信号中提取有意义的信息。因此,采用掩蔽信号建模技术已被证明可以有效地从嘈杂和可变数据中捕获上下文信息(《Masked autoencoders are scalable vision learners》、《Seeing beyond the brain: Conditional diffusion model with sparse masked modeling for vision decoding》,这两篇论文说的),代表了从大规模嘈杂的 EEG 数据中获取有意义的上下文知识的有前途的途径。与MAE 和 MinD-Vis将输入视为二维图像并掩盖空间信息不同,我们考虑了脑电信号的时间特性,并深入挖掘了人们大脑时间变化背后的语义

  我们首先在时域中将它们划分为标记,并随机掩盖一定比例的token。随后,这些标记将使用一维卷积层转换为嵌入。然后,我们使用非对称架构,如 MAE,根据来自周围标记的上下文线索来预测缺失的token。通过重建掩蔽信号,预先训练的 EEG 编码器可以深入了解不同人和各种大脑活动的 EEG 数据。
在这里插入图片描述


在这里插入图片描述
MAE模型的基本原理
在这里插入图片描述

  MAE 的思想很简单:mask 输入图像的随机 patches,并重建缺失的 pixels。MAE 基于两个核心设计。

  • 首先,我们开发了一个非对称 (asymmetric) 的编码器-解码器架构,编码器只操作于 patches 的可见子集 (无 mask
    tokens),轻量级解码器 从潜在表示和 mask tokens 中重构原始图像。
  • 其次,我们发现高比例地 mask 输入图像 (如 75%) 产生了一个重要 (non-trival) 和有意义的自监督任务。

Masking  我们按照 ViT 将一幅图像划分成规则无重叠的 (non-overlapping) patches。然后,从所有 patches 中采样一个子集,并 mask (即移除) 其余未被采样的 patches。采样策略很简单:按照均匀分布随机采样 patches 而不替换。我们仅将其称为 “随机采样”。

  具有高 masking 比例的随机采样 (即被移除的 patches 的比例) 很大程度上消除了冗余,从而创建了一个不易通过从可见的相邻 patches 进行外推/外插 (extrapolation) 来解决的任务 (见图 )。均匀分布防止了潜在的中心偏差 (即在图像中心附近有更多的 masked patches)。最后,高度稀疏的输入为设计一个有效的编码器创造了机会,接下来将介绍。
在这里插入图片描述
MAE encoder  编码器是一个只应用于 visible & unmasked patches 的 ViT。正如一个标准 ViT,编码器通过一个添加了位置嵌入的线性投影 来嵌入 patches,然后通过一系列 Transformer blocks 处理结果集。然而,编码器只操作于整个集合的一小个子集 (如 25%)。删除 masked patches;不使用 mask tokens。这允许 只用一小部分的计算和内存 来训练非常大的编码器。完整的集合由一个轻量级解码器处理。(核心观点: mask tokens不参与Transformer Block的处理)

MAE decoder  MAE 解码器的输入是完整的令牌集,包括 (i) 编码的可见patches和 (ii) mask tokens。每个mask tokens都是一个共享的、学习的向量,它指示存在要预测的缺失patches。我们将positional Embedding添加到此完整集合中的所有tokens;否则,mask tokens将没有有关它们在图像中的位置的信息。解码器有另一个系列的 Transformer 块。


在这里插入图片描述
Question: 如何理解 每个mask tokens都是一个共享的、学习的向量

  共享的、学习的向量:这些 mask tokens 是通过训练过程学习得到的,而不是手动定义的。它们在整个模型中是共享的,意味着所有的 mask tokens 都使用同样的向量表示。这种设计使得模型能够有效地学习如何重建被遮盖的图像块.


MAE 解码器仅在预训练期间用于执行图像重建任务(仅使用编码器生成用于识别的图像表示)。因此,解码器架构可以独立于编码器设计的方式灵活设计。我们试验了非常小的解码器,比编码器更窄、更浅。例如,与编码器相比,我们的默认解码器每个token的计算量为 <10%。通过这种不对称设计,整套token仅由轻量级解码器处理,这大大减少了预训练时间

Reconstruction target  我们的 MAE 通过预测每个mask patch的像素值来重建输入。解码器输出中的每个元素都是表示 patch 的像素值向量。解码器的最后一层是线性投影,其输出通道数等于 patch 中的像素值数。解码器的输出被重塑以形成重建的图像。我们的损失函数计算像素空间中重建图像和原始图像之间的均方误差 (MSE)。**我们只计算掩码补丁的损失,类似于 BERT **。

Simple implementation  我们的MAE预训练可以高效实现,重要的是,它不需要任何专门的稀疏操作。首先,我们为每个输入图像块生成一个标记(通过线性投影并添加位置嵌入)。接下来,我们随机打乱标记列表,并根据掩码比例移除列表的最后部分。这个过程为编码器产生了一个小的标记子集,等同于无放回抽样图像块。编码后,我们将掩码标记列表添加到编码的图像块列表中,并对整个列表进行解乱(反转随机打乱操作)以对齐所有标记与其目标。然后对整个列表(添加了位置嵌入)应用解码器。如所指出的,不需要稀疏操作。这种简单的实现引入的开销可以忽略不计,因为打乱和解乱操作非常快。。

MAE的实验部分可以参照这篇博客详解 MAE (这里的MAE原理也是转载这篇博客)

再根据作者提供的代码看看与原始的MAE有哪些区别,就不提供代码了(太长了),有兴趣可以去看看Github上的mae_for_egg.py这个文件。

在这里插入图片描述

我们考虑了脑电信号的时间特性,并深入挖掘了人们大脑时间变化背后的语义,这句话该怎么理解 ?


4.2 Fine-tuning with Stable Diffusion on limited EEG-image pairs

  在从掩蔽信号预训练中获得 EEG 信号的有效表示后,我们利用预训练的Stable diffusion (SD) 模型利用它来生成图像。Stable diffusion涉及逐渐对正态分布的变量进行去噪以学习数据分布。SD 通过交叉注意力机制进行了增强,以实现更灵活的条件图像生成,最常见的情况是文本提示。Stable Diffusion 在从各种类型的信号(如标签、文本和语义图)生成高质量图像方面显示出强大的生成能力。
在这里插入图片描述


在这里插入图片描述
Stable Diffusion的基本原理

正在重学概率论 不然Diffusion的论文都看不懂

在这里插入图片描述
对大模型微调是什么意思,微调的方式又有哪几种(有听说过指令微调)
  对大模型进行微调(Fine-tuning)是指在一个已经预训练好的模型基础上,针对特定的任务进行进一步的训练。这样做的目的是为了让模型能够适应新的任务或者数据集,提高其在特定任务上的性能。由于大模型通常已经在大规模数据集上进行了预训练,它们已经学习到了丰富的特征表示,微调可以使得这些特征更加适应新的任务。

  微调的方式主要有以下几种:

    端到端微调(End-to-End Fine-tuning):
      在这种微调方式中,整个模型包括所有的层都会参与训练。这意味着模型的权重会根据新任务的数据进行更新。这种方法适用于新任务与预训练任务差异较大,或者新数据集的分布与预训练数据集差异较大的情况。

    冻结层微调(Frozen Layers Fine-tuning):
      在这种方法中,模型的一部分层(通常是较底层的层)会被冻结,即它们的权重在微调过程中不会更新。只有未被冻结的层(通常是较顶层的层)会根据新任务的数据进行训练。这种方法适用于新任务与预训练任务相似,且新数据集的分布与预训练数据集相似的情况。

    指令微调(Prompt Tuning):
      指令微调是一种特殊的微调方式,它通过在输入数据前添加一些特定的指令或提示(prompts),来引导模型执行特定的任务。这些指令可以是自然语言的形式,它们告诉模型如何解释输入数据并生成期望的输出。指令微调通常只需要对模型的一小部分参数进行更新,因此计算成本较低。

    适配器微调(Adapter Tuning):
      适配器微调是一种在模型中引入额外的适配器模块来适应新任务的方法。这些适配器模块通常只包含少量的参数,并且只在模型的特定层中使用。微调过程中,只有适配器模块的参数会被更新,而原始模型的权重保持不变。

    元学习微调(Meta-learning Fine-tuning):
      元学习微调是一种通过学习如何学习来提高模型在新任务上的适应能力的方法。这种方法通常涉及到在多个相关任务上进行训练,使得模型能够快速适应新任务。

    多任务微调(Multi-task Fine-tuning):
      在多任务微调中,模型被训练来同时执行多个任务。这可以通过共享模型的某些层来实现,也可以通过为每个任务设计特定的分支来实现。


4.3 Aligning the EEG, text, and image spaces with CLIP encoders

  接下来,我们将微调从预训练中获得的 EEG 表示,使其更适合生成图像。预先训练的 Stable Diffusion 模型专门针对文本到图像的生成进行了训练;但是,脑电信号有其自身的特点,其潜在空间与文本和图像的潜伏空间大不相同。因此,使用有限的脑电图图像配对数据直接端到端地微调稳定扩散模型不太可能准确地将脑电图特征与预训练 SD 中的现有文本嵌入对齐
在这里插入图片描述

  由于使用了 CLIP 和对大量文本-图像对的训练,Stable Diffusion 中的文本和图像空间得到了很好的对齐。因此,我们建议采用额外的 CLIP 监督来协助 EEG、文本和图像空间的对齐。具体来说,从预训练编码器获得的 EEG 特征通过投影层转换为与 CLIP 具有相同维度的嵌入。然后,我们使用损失函数来最小化 EEG 嵌入和从 CLIP 图像编码器获得的图像嵌入之间的距离。CLIP 模型在微调过程中是固定的。损失函数定义如下:(这里就是常说的对齐clip特征)
L c l i p = 1 − E I ( I ) ⋅ h ( τ θ ( y ) ) ∣ E I ( I ) ∣ ∣ h ( τ θ ( y ) ) ∣ \mathcal{L}_{clip}=1-\frac{E_I(I)\cdot h(\tau_\theta(y))}{|E_I(I)||h(\tau_\theta(y))|} Lclip=1EI(I)h(τθ(y))EI(I)h(τθ(y))
其中 h h h 是投影层, E I E_I EI 是 CLIP 图像编码器。这种损失函数可以鼓励 EEG 特征与图像更紧密地对齐,从而更类似于文本特征。通过这种方式,我们可以将 EEG 信号、文本和图像对齐在一个统一的空间中。优化的 EEG 嵌入表示更适合于 SD 图像生成,从而提高生成图像的质量。


在这里插入图片描述

这里我其实有一个疑惑的点,就是text和image的Embedding是通过大量的配对数据训练得来的,但是EEG和cilp的共享子空间的对齐并没有那么多数据的支持,对齐的效果会不会大大折扣?

首先这里其实有点误解,原文其实也是表达了说使用有限的脑电图图像配对数据直接端到端地微调稳定扩散模型不太可能准确地将脑电图特征与预训练 SD 中的现有文本嵌入对齐。所以开始直接摆烂,开始从预训练编码器获得的 EEG 特征通过投影层转换为与 CLIP 具有相同维度的嵌入。然后,我们使用损失函数来最小化 EEG 嵌入和从 CLIP 图像编码器获得的图像嵌入之间的距离。

但是也可以查证一下数据集小大的区别。

  To address this, we constructed a new dataset of 400 million (image, text) pairs collected form a variety of publicly available sources on the Internet.为了解决这个问题,我们构建了一个包含 4 亿对(图像、文本)的新数据集,这些数据集是从互联网上的各种公开来源收集的。
Clip模型是用了4亿多配对数据才训练好的,但是本文中的数据集的量才在3w左右。


五、实验结果

5.1 Implementation details

  脑电图表示预训练的数据。我们在 MOABB 平台上收集了来自 400 多名受试者的大约 120,000 个脑电图数据样本,通道范围从 30 到 128 不等,用于脑电图预训练

MOABB 是一个软件包,旨在通过以通用格式提供一组公开可用的 EEG 数据集以及一套最先进的算法来促进脑机接口 (BCI) 算法的开发。
该平台使研究人员能够使用自动统计分析轻松验证新算法,无需耗时且不可靠的数据预处理。
这些数据包含各种各样的 EEG 数据,包括看物体、运动图像和观看视频等任务。

  我们的目标是从不同的 EEG 数据中学习通用表示,对 EEG 数据类型没有特定要求。由于用于数据采集的设备不同,这些 EEG 数据样本的通道数差异很大。为了便于预训练,我们通过用复制值填充缺失的通道,将所有数据统一填充到 128 个通道。在预训练过程中,每 4 个相邻的时间步长被分组到一个 Token 中,每个 Token 通过投影层转化为 1024 维嵌入,用于后续的掩蔽信号建模。损失函数计算重建和原始 EEG 信号之间的 MSE。仅在掩码补丁上计算损失。重建是在整个 128 个通道集合上执行的,而不是基于每个通道执行的。解码器在预训练后被丢弃。

  我们使用 Stable Diffusion 的 1.5 版本来生成图像。EEG 信号的掩码率设置为 75%。在预训练之前,所有 EEG 信号都在 5-95 Hz 的频率范围内进行过滤。随后,信号被截断为公共长度 512。编码器预先训练了 500 个 epoch,并使用 Stable Diffusion 进行了另外 300 个时期的微调。EEG 的预训练模型类似于中的 ViT-Large。

5.2 Comparison with Brain2Image

  在本节中,我们提出了我们提出的方法与 Brain2Image 的比较,Brain2Image 是最近的一项工作,它采用传统的生成模型,即变分自动编码器 (VAE) 和生成对抗网络 (GAN),来实现 EEG 到图像。但是,Brain2Image 仅显示少数类别的结果,并且不提供参考实现。

  有鉴于此,我们对 Brain2Image 论文中展示的几个类别(即 Airliner、Jack-o-Lantern 和 Panda)的结果进行了定性比较。为了确保公平的比较,我们遵循了与 Brain2Image 概述的相同的主观评估策略,并在图 中展示了不同方法的生成实例。最上面几行描述了 Brain2Image 生成的结果,而下面几行是由我们提出的方法 DreamDiffusion 生成的。我们观察到DreamDiffusion 生成的图像质量明显高于 Brain2Image 生成的图像,从而验证了我们提出的方法的有效性。
在这里插入图片描述

5.3. Ablation studies(消融实验)

  在本节中,我们使用各种案例对拟议的框架进行了几项消融研究。我们通过采用 50 路 top-1 准确率分类任务来评估不同方法的有效性。我们使用预先训练的 ImageNet1K 分类器 来确定生成图像的语义正确性。真实图像和生成的图像都将输入到分类器中。然后,我们将验证生成图像的前 1 分类是否与 50 个选定类别中的真实分类相匹配。只要生成的图像的语义分类结果与真实值一致,生成的图像就会被视为正确。

  预训练的作用。为了证明使用大规模脑电图数据进行预训练的有效性,我们通过使用未经训练的编码器训练几个模型来进行验证。其中一个模型与完整模型相同,而另一个模型有一个浅的 EEG 编码层,只有两层,以避免数据过度拟合。在训练过程中,两个模型在有和没有剪辑监督的情况下进行了训练,结果如表 1 中的模型 14 所示。可以观察到,没有预训练的模型的准确性有所下降
在这里插入图片描述

E 和 A 分别表示编码器头和交叉注意力头的微调。

  掩码比率。我们进行调查以确定使用 EEG 数据进行 MSM 预训练的最佳掩码比率。如表 的模型 5-7 所示,过高或过低的掩模率会对模型的性能产生不利影响。在掩模率为 0.75 时实现了最高的整体准确度。这一发现意义重大,因为它表明,与通常使用低掩码率的自然语言处理不同,在脑电图上执行 MSM 时,高掩码率也是一个更可取的选择

CLIP 对齐。我们方法的关键之一是通过 CLIP 编码器将 EEG 表示与图像对齐。为了验证这种方法的有效性,我们进行了实验 13-14,如 表 1 所示。可以观察到,当不使用 CLIP 监督时,模型的性能会显著降低。事实上,如图 6 右下角所示,即使没有预训练,使用 CLIP 对齐 EEG 特征仍然可以产生合理的结果,这凸显了 CLIP 监督在我们的方法中的重要性。
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐