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

扩散模型与正弦位置编码

之前的文章已经讲述过扩散模型的内容,扩散模型作为一种生成式模型,为帮助模型更好地捕捉数据中的位置信息,尤其是在处理序列数据或具有空间结构的数据时,可能会需要用到正弦位置编码。

例如,在基于 Transformer 的扩散模型中,对于输入的文本序列或图像的分块序列,先将每个元素(词、图像块等)映射为一个低维向量表示,然后再加上对应的正弦位置编码向量,得到包含位置信息的输入表示,之后将其输入到扩散模型的后续层中进行处理。这样,模型在生成或处理数据的过程中,就能够利用位置编码所提供的信息,更好地捕捉数据的结构和语义信息,从而生成更准确、更符合实际的结果。

1. 正弦位置编码

正弦位置编码是一种将离散的位置信息(如时间步长t)转换为连续向量表示的方法,最初由Transformer论文提出,后被广泛用于扩散模型。其数学形式为:

PE(t,2i)=sin(\frac{t}{10000^{2i/d}})

PE(t,2i+1)=cos(\frac{t}{10000^{2i/d}})

  • 输入:时间步t(整数,如t=1,2,...,T)。

  • 输出:一个d维向量,每个维度由不同频率的正弦/余弦函数生成。

  • 特点

    • 能捕捉时间步之间的相对位置关系(如t=5和t=6的编码相似度高于t=5和t=100)。

    • 对任意长度的t具有泛化性。

2. 扩散模型中引入正弦位置编码的原因

  • 处理序列信息:当扩散模型应用于处理序列数据,如文本、语音等时,序列中元素的顺序和位置是非常重要的信息。正弦位置编码可以将位置信息嵌入到模型中,使得模型能够区分不同位置的元素,从而更好地处理序列的顺序性。

  • 增强空间感知:对于具有空间结构的数据,如图像,虽然图像中的像素在空间上是有位置关系的,但卷积操作本身在一定程度上会忽略像素的绝对位置信息。正弦位置编码可以为模型提供额外的空间位置信息,帮助模型更好地理解图像中物体的空间分布和结构,提升模型对图像的生成和处理能力。

3.UNet

UNet 是一种用于图像分割的卷积神经网络(CNN)架构,它在医学图像分割等领域有着广泛的应用。

  • 架构特点

    • U 型结构:UNet 的名称源于其独特的 U 型架构。它由收缩路径(下采样)和扩张路径(上采样)组成,形似字母 “U”。收缩路径用于提取图像的特征,逐渐减小图像的空间尺寸,增加特征通道数;扩张路径则通过上采样操作将特征图恢复到原始图像的尺寸,同时逐步融合收缩路径中相应层次的特征,以实现精确的分割。

    • 跳跃连接:在 UNet 中,收缩路径和扩张路径之间通过跳跃连接(skip connections)相连。这些跳跃连接将收缩路径中不同层次的特征图直接传递到扩张路径的对应层次,有助于在解码过程中保留更多的细节信息,从而提高分割的准确性。

  • 工作原理

    • 下采样过程:在收缩路径中,图像经过一系列的卷积和池化操作。卷积操作用于提取图像的特征,池化操作则降低图像的分辨率,减少数据量,同时扩大感受野,使模型能够捕捉到更全局的特征。

    • 上采样过程:在扩张路径中,通过反卷积(或转置卷积)等操作对特征图进行上采样,逐步恢复图像的尺寸。在每次上采样后,会与收缩路径中对应层次的特征图进行融合,然后再进行卷积操作,进一步细化特征。

    • 输出层:最后,在网络的输出层使用一个逐像素的分类器(如 softmax 函数)来预测每个像素属于不同类别的概率,从而得到图像的分割结果。

 将时间步t添加到UNet中

  1. 生成位置编码
    将整数t转换为正弦编码向量PE(t)(如128维)。

  2. 嵌入到UNet的每一层

    • 方式1:将PE(t)与输入特征相加。

    • 方式2:将PE(t)作为条件输入,通过自适应归一化(AdaGN)调节每一层的特征。

5. 对比其他位置编码方法

方法优点缺点
正弦编码(Sinusoidal)无需学习,泛化性强固定模式,可能不够灵活
可学习嵌入(Learned)自适应数据分布需要更多参数,可能过拟合
整数直接输入(Integer)简单无法表达时间步之间的相对关系
http://www.xdnf.cn/news/2900.html

相关文章:

  • datasets 数据处理封装后,统一处理流程以避免Dataset Map顺序依赖问题
  • 《算法吞噬幻想乡:GPT-4o引发的艺术平权运动与版权核爆》
  • 数据库Mysql学习——day7(多表查询(JOIN)进阶)
  • 软件测试深度解析:从“用户登录“看测试用例设计的艺术
  • 什么是 Web 标准?为什么它们对 SEO 和开发很重要?
  • TRex 控制台命令解析
  • 【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM
  • 【MySQL数据库】表的连接
  • OpenGL学习笔记(HDR、泛光)
  • ros2_不同ROS_DOMAIN_ID环境变量之间通信
  • vuex与vuex-persistedstate 插件固化数据
  • Spring框架allow-bean-definition-overriding详细解释
  • terraform隐藏云账号ak/sk信息
  • Linux系统中的静态库和动态库
  • 《无刷空心杯电机减速机选型及行业发展趋势》
  • 解密面试高频题:加权轮询负载均衡算法 (Java 实现)
  • 量子算法调试:Grover算法搜索空间压缩过程可视化方案
  • 算法笔记.kruskal算法求最小生成树
  • 汤晓鸥:计算机视觉的开拓者与AI产业化的先行者
  • 深入理解 Spring 类型转换核心接口 ConversionService
  • emqx部署
  • 厚铜板的镀前处理差异:工艺参数与成本影响
  • C22-作业练习之最大公约数与最小公倍数
  • idea启动springboot方式及web调用
  • 半监督学习与强化学习的结合:新兴的智能训练模式
  • Docker网络架构深度解析与技术实践
  • 【深入理解指针(6)】
  • IIC 通信协议
  • Spring系列四:AOP切面编程第三部分
  • MySQL-排序