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

DiT中的 Adaptive Layer Normalization (adaLN) 讲解

DiT

论文:Scalable Diffusion Models with Transformers (ICCV 2023, Oral)

DiT的论文细节可以读原论文,推荐知乎:扩散模型解读 (一):DiT 详细解读,那么在 transformer 替换 Unet中,有个核心的改动,就是 adaLN

即以下的DiT Block with adaLN-Zero
在这里插入图片描述
首先,Dit 基本沿用了 transformer 的一般结构,即 transformer 就是 input -> layer_norm -> multi-head-att -> layer_norm -> feedforward 结构,但是由于 DiT 是用于扩散模型,所以会涉及到 timesteplabel 的输入,所以这块需要考虑如何把这两个信息进行融合到 transformer 里面来。

常见的几种信息融合的办法

简单总结一下几种常见的信息融合的办法:

  • concat 或者 add:fused = torch.cat([vector_a, vector_b], dim=1)
  • attention 加权或者 cross-att:一个序列作为Query,另一个作为Key/Value。
attention_weights = torch.softmax(torch.matmul(vector_a, vector_b.T), dim=-1)
fused = torch.matmul(attention_weights, vector_b)
  • 门控(Gated Fusion)
gate * transformed + (1 - gate) * a
  • 条件归一化(Conditional Normalization)

那么,DiT 这篇论文经过实验,验证了 adaLN 这种方式最好,具体 adaLN 是啥呢?我们来看一下

Layer Normalization 和 Adaptive Layer Normalization

参考自:https://zhuanlan.zhihu.com/p/698014972
在这里插入图片描述
在这里插入图片描述

More

值得注意的是,Dit 这个任务是根据分类lable重建图像,所以使用的 adaLN 机制,其实后续一些如果有 text context作为control信息时,为了效果更好可能还是要使用 cross-attention 的方式来提高效果。

更具体地,两者的差别可以大致总结如下:
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 【Android构建系统】如何在Camera Hal的Android.bp中选择性引用某个模块
  • 使用哈希表封装myunordered_set和myunordered_map
  • leetcode:58. 最后一个单词的长度(python3解法)
  • Centos7 中 Docker运行配置Apache
  • 【Shell的基本操作】
  • 第九天——贪心算法——非递减数组
  • Promise.all 详解
  • ch10 题目参考思路
  • 突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌
  • 文章记单词 | 第87篇(六级)
  • Android App CAN通信测试
  • elementUI源码学习
  • OpenCV CUDA模块中矩阵操作------归一化与变换操作
  • 反射机制详细说明
  • 2025年渗透测试面试题总结-安恒[实习]安全服务工程师(题目+回答)
  • 遥感图像露天矿区检测数据集VOC+YOLO格式1542张1类别
  • 智能裂变引擎 商业增长利器 —— 专业推客系统耀世而来
  • Sprnig MVC 如何统一异常处理 (Exception Handling)?
  • Java—— 方法引用 : :
  • HANA数据库死锁
  • 一箭六星,朱雀二号改进型遥二运载火箭发射成功
  • 《歌手》回归,人均技术流,00后整顿职场
  • 夜读丨什么样的前程值得把春天错过
  • 多个“首次”!上市公司重大资产重组新规落地
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈
  • 媒体:中国女排前队长朱婷妹妹被保送浙大受质疑,多方回应