A Survey about GAN

博客主要介绍了生成对抗网络(GAN),包括生成器和鉴别器的目标。还重点阐述了Conditional GAN,它以额外信息y为条件;以及Cycle GAN,用于解决不成对图像间的转化,指出GAN成功关键在于对抗损失思想,并说明了Cycle GAN的生成器和鉴别器情况。

GAN

生成器的目的是捕获样本分布,鉴别器的目的是区分数据是来自于样本还是生成器。他们俩的two-player min-max目标函数表示为

 Conditional GAN

生成器和鉴别器都以额外的信息y作为条件的生成对抗网络,就称为Conditional GAN。y可以是任何形式的辅助信息,例如类标签或者来自其他模态的样本。Conditional GAN的two-player min-max目标函数表示为

Cycle GAN

 上图向我们展示了何谓成对匹配好的训练数据和不成对的训练数据。Cycle GAN正是为了解决不成对的图像与图像之间的转化。

Cycle GAN在介绍GAN的时候指出GAN成功的关键在于提出了对抗损失的思想,迫使生成图像的分布和真实图像的分布不易区分开来。

在介绍数学推导之前,描述变量含义:XY表示两个域,\left \{ x_i \right \}^N_{i=1}\left \{ y_i \right \}^N_{i=1}表示不成对的训练样本。

Cycle GAN有两个生成器,GX映射到YFY映射到X;有两个鉴别器,D_x区分图像\left \{ x \right \}和转化来的图像\left \{ F(y) \right \}D_y区分图像\left \{ y \right \}和转化来的图像\left \{ G(x) \right \}

 

### Transformer 架构综述 #### 2.1 Transformer架构的核心组成 Transformer是一种基于自注意力机制的模型,摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),从而能够并行处理数据[^1]。该架构由编码器(encoder)和解码器(decoder)两部分构成。 - **编码器**:负责接收输入序列,并通过多层堆叠的方式提取特征。每一层都包含了两个子层——一个多头自注意力机制(multi-head self-attention mechanism) 和一个前馈神经网络(feed-forward neural network)。 - **解码器**:用于生成目标序列,在每一步都会考虑之前位置的信息以及来自编码器端的内容表示。同样地,它也是由多个相同的层组成的,其中除了上述提到的两种子层外还增加了一个额外的“encoder-decoder attention”层来关注源侧信息。 #### 应用场景 ##### 自然语言处理(NLP) 在自然语言处理方面,Transformers已经被证明非常有效,尤其是在机器翻译、文本摘要等任务上取得了显著成果。这些进步得益于其强大的建模能力可以捕捉到远距离依赖关系而无需像LSTM那样逐词顺序扫描整个句子。 ##### 计算机视觉(CV) 对于计算机视觉领域而言,尽管最初设计是为了应对NLP问题,但现在也被广泛应用于图像分类、物体检测等领域。例如,Dosovitskiy等人研究发现当把图片分割成patch后再送入transformer进行训练时可以获得很好的效果[^2]。 ##### 音频处理 此外,在语音识别和其他涉及时间序列数据分析的任务中也有着不错的表现。这是因为音频信号本质上也是一种连续的时间序列数据形式,所以采用类似的策略即能取得良好成效。 ##### 跨模态学习 最后值得一提的是跨模态学习的应用案例,比如BART(Bidirectional and AutoRegressive Transformers)就是一个典型的例子,它可以实现双向编码的同时具备一定的预测功能,适用于多种下游任务如问答系统构建等[^3]。 ```python import torch.nn as nn class Transformer(nn.Module): def __init__(self, d_model=512, nhead=8, num_encoder_layers=6, num_decoder_layers=6, dim_feedforward=2048, dropout=0.1): super().__init__() # 定义编码器和解码器 encoder_layer = nn.TransformerEncoderLayer(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward, dropout=dropout) decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead, dim_feedforward=dim_feedforward, dropout=dropout) self.transformer = nn.Transformer(d_model=d_model, nhead=nhead, num_encoder_layers=num_encoder_layers, num_decoder_layers=num_decoder_layers).cuda() def forward(self, src, tgt): output = self.transformer(src.cuda(), tgt.cuda()) return output ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值