U-Net 的输入与输出:通用场景与扩散模型场景解析

U-Net 是一种 "编码器 - 解码器 + 跳跃连接" 的对称网络结构,最初为医学图像分割设计,后来因擅长 "精准捕捉空间细节" 被扩散模型(如 Stable Diffusion)选为核心的 "噪声预测网络"。其输入输出并非固定,而是随任务场景变化,核心差异体现在 "通用任务" 与 "扩散模型任务" 中。

一、通用场景下的 U-Net(以图像分割为例)

通用 U-Net 的核心目标是 "对输入图像做像素级预测",典型场景如医学图像分割(CT/MRI 图像的器官分割)、自然图像语义分割。

1. 输入:待处理的图像张量

输入是单模态或多模态的图像数据 ,形状通常表示为 [B, C, H, W],各维度含义:

  • B:批量大小(Batch Size),即一次输入的图像数量(如训练时 B=16,推理时 B=1);

  • C:通道数(Channels),对应图像的模态或色彩维度:

    • 灰度图像(如 CT):C=1;

    • 彩色图像(RGB):C=3;

    • 多模态医学图像(如 CT+MRI 融合):C=2 或更多;

  • H/W:图像的高度和宽度(需为 2 的整数次幂,如 256×256、512×512,因 U-Net 编码器需多次下采样)。

示例 :输入一张 512×512 的脑部 MRI 灰度图像,输入张量形状为 [1, 1, 512, 512](B=1,C=1,H=512,W=512)。

2. 输出:与输入同尺寸的 "像素级预测图"

输出是与输入图像尺寸完全一致的张量 ,形状为 [B, K, H, W],核心是对每个像素做 "类别归属" 预测:

  • K:预测的类别数(如分割 "脑灰质、脑白质、脑脊液"3 类,K=3);

  • 每个像素的输出值:通过 Softmax 激活后,对应 "该像素属于某一类" 的概率(如某像素输出为 [0.02, 0.95, 0.03],表示 95% 概率属于 "脑白质")。

示例 :对上述 MRI 图像做 3 类分割,输出张量形状为 [1, 3, 512, 512],每个 512×512 的特征图对应一类的概率分布。

二、扩散模型场景下的 U-Net(核心:噪声预测)

扩散模型中的 U-Net 是 "定制化版本",核心目标从 "分割" 变为 "预测带噪数据中的噪声",因此输入输出与通用场景差异显著,且需结合扩散模型的 "时间步" 和 "条件信息"。

1. 输入:多组件融合的 "带噪数据 + 引导信息"

扩散模型的 U-Net 输入并非单一图像,而是 **"带噪数据 + 时间步嵌入 + 条件信息" 的融合组合 **,最终输入到编码器的是 "融合后的特征张量",各组件细节如下:

(1)核心输入:带噪数据 xtx_txt
  • 本质:扩散模型正向过程中,第 t 步的带噪数据(如带噪图像),是 U-Net 的 "基础数据输入";

  • 形状:与最终生成的目标数据一致,如生成 512×512 彩色图像时,xtx_txt 形状为 [B, 3, 512, 512](B = 批量,C=3=RGB 通道,H/W=512);

  • 作用:提供 "当前需要去噪的数据载体",U-Net 需从其中提取噪声特征。

(2)必需输入:时间步嵌入(Time Embedding)
  • 本质:将 "当前去噪步数 t"(如从 1000 递减到 1 的整数)转化为 "可与图像特征融合的向量";

  • 处理逻辑:

  1. 先将 t 通过 "正弦位置编码"(Sinusoidal Embedding)转化为高维向量(如维度 256);

  2. 再通过 2 层全连接层映射到 "与 U-Net 编码器第一层输出特征同维度" 的向量(如特征图维度为 128,则映射为 128 维);

  3. 最后通过 "广播机制" 将向量扩展为与特征图同形状(如 [B, 128, 512, 512]),与图像特征相加融合;

  • 作用:让模型知道 "当前处于去噪的哪一步"------ 早期步(t 大)需去除大量噪声(优化轮廓),后期步(t 小)需精细去噪(优化纹理)。
(3)可选但关键:条件信息嵌入(Conditional Embedding)
  • 本质:引导生成方向的 "指令载体",对应前文提到的 "文本提示、类别标签、图像特征" 等;

  • 常见类型与处理:

    • 文本提示:通过 CLIP 模型将文本转化为 768 维的 "文本嵌入向量",再通过全连接层映射到与时间步嵌入同维度(如 128 维),与特征图相加 / 拼接;

    • 类别标签:通过 "独热编码 + 全连接层" 转化为同维度向量,再融合;

    • 图像特征(如图像修复):直接提取参考图像的特征图,与xtx_txt的特征图拼接;

  • 作用:让模型在预测噪声时 "带上约束"(如 "预测的噪声要能引导生成'猫'的特征"),实现可控生成。

最终输入融合示例

生成一张 512×512 彩色图像,文本提示为 "红色玫瑰":

  • xtx_txt 形状:[1, 3, 512, 512]

  • 时间步嵌入:t=500 → 编码后映射为 128 维 → 扩展为 [1, 128, 512, 512]

  • 文本嵌入:"红色玫瑰"→ CLIP 编码(768 维)→ 映射为 128 维 → 扩展为 [1, 128, 512, 512]

  • 融合后特征:xtx_txt 先通过卷积层降维到 128 通道([1, 128, 512, 512]),再与时间步嵌入、文本嵌入相加,得到最终输入编码器的特征张量([1, 128, 512, 512])。

2. 输出:与带噪数据同尺寸的 "噪声预测图"

扩散模型 U-Net 的输出目标是 "预测带噪数据xtx_txt中包含的真实噪声ε\varepsilonε",因此输出特征具有以下特点:

  • 形状:与输入的带噪数据xtx_txt完全一致,即 [B, C, H, W]

    • 示例:若xtx_txt是[1, 3, 512, 512]的彩色带噪图像,输出也是[1, 3, 512, 512]的张量;
  • 含义:输出张量的每个元素,对应xtx_txt中 "同一位置、同一通道" 的噪声值(无需激活函数,直接输出实数,因噪声是连续值);

  • 与前文的关联:输出的噪声预测值ε^\hat{\varepsilon}ε^,正是反向扩散过程中 "计算xt−1x_{t-1}xt−1" 的核心输入(对应公式 xt−1=1αt⋅(xt−1−αt1−αˉt⋅ε^)+σt⋅zx_{t-1} = \frac{1}{\sqrt{\alpha_t}} \cdot \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \cdot \hat{\varepsilon} \right) + \sigma_t \cdot zxt−1=αt 1⋅(xt−1−αˉt 1−αt⋅ε^)+σt⋅z)。

示例 :对[1, 3, 512, 512]的xtx_txt预测噪声,输出ε^\hat{\varepsilon}ε^的形状为[1, 3, 512, 512],每个元素对应xtx_txt中该像素的噪声大小(如某 RGB 像素的噪声预测为 [0.21, -0.15, 0.33])。

三、两类场景的核心差异对比

对比维度 通用 U-Net(图像分割) 扩散模型 U-Net(噪声预测)
输入组成 单一图像张量 带噪数据xtx_txt+ 时间步嵌入 + 条件嵌入
输入核心目的 提供 "待分割的图像内容" 提供 "待去噪的数据 + 去噪引导信息"
输出形状 [B,K,H,W][B, K, H, W][B,K,H,W](K = 类别数) [B,C,H,W][B, C, H, W][B,C,H,W](与xtx_txt一致)
输出含义 像素级类别概率分布 像素级噪声预测值
激活函数 输出层用 Softmax(概率归一化) 无激活函数(直接输出连续噪声)

四、关键总结

  1. 通用 U-Net 是 "单输入 - 单输出" 的像素级预测网络,输入为图像,输出为分割图;

  2. 扩散模型 U-Net 是 "多输入 - 单输出" 的噪声预测网络,输入需融合 "带噪数据、时间步、条件信息",输出为与带噪数据同尺寸的噪声图;

  3. 两者的核心差异源于任务目标:分割是 "归类像素",而扩散模型是 "预测噪声"------ 这也解释了为何扩散模型要对 U-Net 做 "时间步嵌入、条件融合" 的定制化改造。

结合前文的扩散模型训练逻辑:正是因为 U-Net 能精准预测 "条件约束下的噪声",反向去噪过程才能从纯噪声中生成符合指令的逼真内容(如图像、文本)。

相关推荐
哥布林学者6 小时前
吴恩达深度学习课程二: 改善深层神经网络 第一周:深度学习的实践(六)梯度现象和梯度检验
深度学习·ai
说私域6 小时前
定制开发开源AI智能名片S2B2C商城小程序中的羊群效应应用研究
人工智能·小程序
databook7 小时前
AI辅助编程下的软件分层设计:让生成的代码井然有序
人工智能·程序员·架构
向阳逐梦7 小时前
一篇图文详解PID调参细节,实现PID入门到精通
人工智能·机器人
来让爷抱一个7 小时前
2025年企业智慧大脑升级指南:PandaWiki如何用AI重构知识生产力
人工智能·重构
第七序章7 小时前
【C + +】C++11 (下) | 类新功能 + STL 变化 + 包装器全解析
c语言·数据结构·c++·人工智能·哈希算法·1024程序员节
FriendshipT7 小时前
图像生成:PyTorch从零开始实现一个简单的扩散模型
人工智能·pytorch·python
盼小辉丶7 小时前
优势演员-评论家(Advantage Actor-Critic,A2C)算法详解与实现
深度学习·keras·强化学习
格林威7 小时前
AOI在化学药剂检测领域中的应用
人工智能·数码相机·计算机视觉·目标跟踪·视觉检测·制造·机器视觉