目录
-
- 1. AE
- 2. DAE/MAE
- 3. VAE
- 4. VQ-VAE/VQ-VAE2
生成式多模态发展主要历程
年份 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 |
---|---|---|---|---|---|---|---|---|---|---|---|
2020 | DETR | DDPM | DDIM、VisionTransformer | ||||||||
2021 | CLIP、DALL·E | Swin Transformer | |||||||||
2022 | BLIP | DALL·E 2 | StableDiffusion、BEiT-3、Midjourney V3 | ||||||||
2023 | BLIP2 | VisualChatGPT、Midjourney V5、GPT4、Diffusion Transformers | SAM | DALL·E3 | |||||||
2024 | Sora、StableDiffusion3 |
1. AE
自编码器(Autoencoder,AE)是一种无监督学习的神经网络,用于学习输入数据的压缩表示。是一种瓶颈架构( bottleneck),它使用编码器将高维输入x 转换为潜在的低维Code h,然后使用解码器将潜在Code h进行重构,得到最终的输出x’。
class autoencoder(nn.Module):
def __init__(
self,
x_dim,
hidden_dim=256,
z_dim=50
):
super(autoencoder, self).__init__()
# Define autoencoding layers
self.enc_layer1 = nn.Linear(x_dim, hidden_dim)
self.enc_layer2 = nn.Linear(hidden_dim, z_dim)
# Define autoencoding layers
self.dec_layer1 = nn.Linear(z_dim, hidden_dim)
self.dec_layer2 = nn.Linear(hidden_dim, x_dim)
def encoder(self, x):
# Define encoder network
x = F.relu(self.enc_layer1(x))
z = F.relu(self.enc_layer2(x))
return z
def decoder(self, z):
# Define decoder network
output = F.relu(self