[Autoencoder(AE)]手书动画✍️
图生文和文生图虽然都是生成类型任务,但模型架构和思想却有很大不同,与CLIP一样,AE也是学习文生图的最佳选择。
自编码器用于学习数据的低维表示,常用于图像压缩、降维、去噪等任务;但由于缺乏控制变量,所以不太适合用于文生图,但它为后续变分自编码器(VAE)奠定了基础。
-- 网络架构 --
编码器
线性层(4,3)
ReLU激活
线性层(3,2)
ReLU激活
解码器
线性层(2,3)
ReLU激活
线性层(3,4)
-- 步骤详解 --
[1] 给定
↳ 四个训练样本 X1, X2, X3, X4
[2] 自动
↳ 将训练样本复制为目标 (Y'),目标就是训练样本本身。
↳ 目的是训练网络重构训练样本。
[3] 编码器: 第1层 + ReLU
↳ 将输入与权重和偏置相乘
↳ 应用ReLU,将负值划掉 (-1 -> 0)
[4] 编码器: 第2层 + ReLU
↳ 将特征与权重和偏置相乘
↳ 应用ReLU,将负值划掉 (-1 -> 0)
↳ 这一层通常被称为"bottleneck",因为它的输出(绿色)的特征维度(2)比输入特征(4)少得多。
[5] 解码器: 第1层 + ReLU
↳ 将特征与权重和偏置相乘
↳ 应用ReLU,划掉负值。这里没有负值需要划掉。
[6] 解码器: 第2层
↳ 将特征与权重和偏置相乘
↳ 输出(Y)是解码器尝试从降维到2D的表示(绿色)重构训练样本。
[7] 损失梯度和反向传播
↳ 计算输出(Y)和目标(Y')之间的均方误差(MSE)损失的梯度。
↳ 公式是 2 * (Y - Y')
↳ 首先我们计算 输出(Y) - 目标(Y')
↳ 然后我们将每个元素乘以2
↳ 这些梯度启动反向传播过程,用于更新权重和偏置。