对抗生成网络(GAN),DCGAN原理

目录

1. GAN基础原理

1.1 生成器

1.2 判别器

1.3 整体架构

2. 损失函数 

3. DCGAN

3.1 问题 

3.2 解决


1. GAN基础原理

        GAN(Generative Adversarial Nets)是一种深度神经网络架构。它由生成器和判别器组成,生成器学习真实样本(图像)分布(特征)从而让自身生成的图像更加真实。判别器对生成的样本来进行真假判别。

1.1 生成器

        想一想,生成器的作用是生成与真是图像接近的图像,达到以假乱真。那么其输出就是Fake Image(假图像),那么输入是啥呢?

        答案是一组噪音,噪音是随机生成的?当然和原图像是有联系的吧。

        那么生成器就在训练的过程中,得到一组参数,将噪声经过运算转换成真实的分布,产生以假乱真的图像。

1.2 判别器

        判别器的作用是判断图像是真的还是假的。

        想一想输入,是两种数据,真实的数据,生成器生成的假数据。

        输出就是一个二分类,判断数据真假。

        到最好的结果就是,判别器分不出假数据。

1.3 整体架构

        怎么让生成的数据与真实的数据接近??想一想如果判别器越严格,生成器是否也会变得严格呢??就是判别器特别强悍,但是生成的数据让判别器判断不出来真假,这样就到达了目标。只有D的效果好G的效果也会好,所以关键是判别器的构建。

2. 损失函数 

        其损失函数:

        它做的是去最大化D的区分度,最小化G和real的数据分布。

        判别器要做的是区分真假数据,将真数据判断成真(1),把假数据判断成假(0)。判别模型的损失函数: 

        -log(D_1(x))-log(1-D_2(G(z)))

        其中D_1是真实数据判别概率,D_2是假数据判别概率,代入-log函数得到其损失,学过神经网络的都知道。

        生成器要做的是生成让判别器判断不出真假的数据,所以的它的损失函数和判别器有关:

        log(D_2(G(z)))

        D_2的概率越接近0,表示其生成的数据G(z)就越不好,代入log函数的值就越大,损失就越大。

        在迭代的过程中,生成器和判别器相互对抗,互为矛盾,提升效果,让损失函数收敛。

3. DCGAN

      

3.1 问题 

在GAN的传统构建中,发现了一些问题。其损失总是收敛于一点,生成的数据总是很相像。

在反向传播中,梯度增大,或者消失。

3.2 解决

着重这些问题,发展出了DCGAN,用卷积核来提取特征,并且不同于传统的卷积神经网络,其用卷积成代替池化层,达到压缩的作用。

而且在生成器中加入反卷积(由噪音-->图像),用stride上下采样。

       

        这是生成器的示意图:stride=2,3个反卷积核,由100维向量到64*64*3的图像,其第一步是reshape,然后反卷积,下采样,通道数不断减少。

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值