GAN写程序记录

程序名:pytorch-GAN-timeseries

建议:据报道,在使用gan生成序列的若干工作中,循环鉴别器通常比卷积鉴别器更不稳定。因此,我推荐使用基于卷积的方法。
我没有对超参数和训练程序进行广泛的搜索,定性评估是唯一容易实现的。如果配置了一个目标任务(例如,学习一个策略),可以获得直观的和定量的评估,并用于选择最佳的模型。
在实际生成的性能和关于输入增量的错误之间有一点折衷。如果在delta上有轻微的精度对最终任务不是问题,它的误差可以忽略;如果想要尽可能地减少增量上的误差,可以增加监督目标的权重,或者使用监督微调。
这种训练有时容易出现模式崩溃:当前的实现可能受益于使用最近的GAN变体,如Wasserstein GAN。只要改变训练中对抗的部分就足够了。
在gan中注入条件的标准方法不能不考虑由增量产生的问题:正如我在一些独立实验中观察到的那样,基于因果卷积的神经网络能够很容易地解决检测给定序列的增量的问题。因此,接收增量作为输入的鉴别器可以很容易地区分具有正确增量的实序列和具有不正确增量的假序列。

WGAN相较于GAN的改进

作者把它命名为Critic以便与Discriminator作区分(注意:GAN之前的D网络都叫discriminator,但是由于这里不是做分类任务,WGAN作者觉得叫discriminator不太合适,于是将其叫为critic。)。两者的不同之处在于:
Critic最后一层抛弃了sigmoid,因为它输出的是一般意义上的分数,而不像Discriminator输出的是概率。
Critic的目标函数没有log项,这是从上面的推导得到的。
Critic在每次更新后都要把参数截断在某个范围,即weight clipping,这是为了保证上面讲到的Lipschitz限制。
Critic训练得越好,对Generator的提升更有利,因此可以放心地多训练Critic

WGAN的几大优越之处:
不再需要纠结如何平衡Generator和Discriminator的训练程度,大大提高了GAN训练的稳定性:Critic(Discriminator)训练得越好,对提升Generator就越有利。
即使网络结构设计得比较简陋,WGAN也能展现出良好的性能,包括避免了mode collapse的现象,体现了出色的鲁棒性。
Critic的loss很准确地反映了Generator生成样本的质量,因此可以作为展现GAN训练进度的定性指标。

  1. gan网络最终生成的数据与输入进去输入数据的batch_size 大小一样,最终将网络训练好,设置好fix_noise,通过调整batch_size的大小控制生成数量的多少
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值