2020李宏毅机器学习笔记-Generative Adversarial Network - Conditional GAN

目录 

摘要

1. Text-to-Image

1.1 Traditional supervised approach

1.2 Conditional GAN

 1.3 Conditional GAN - Discriminator

1.4 Stack GAN

 2. Image-to-image

 2.1 application

 2.2 Traditional supervised approach

 2.3 Conditional GAN

 3. Speech Enhancement

 3.1 Traditional supervised approach

 3.2 Conditional GAN

 4. Video Generation

结论与展望


摘要

本节课讲的是 Conditional GAN。即有条件的GAN,可以让 GAN 产生的结果符合一定的条件,通过人为改变输入的向量,控制最终输出的结果。首先以 Text-to-Image 为例,传统的监督学习似乎可以解决 Text-to-Image 这个问题,但其不能生成没见过的 Text 下的图片,而且生成的图像比较模糊,所以需要用Conditional GAN来解决问题。然后详细讲了cGAN Discriminator 的设计,最后讲了cGAN在Speech Enhancement (去噪音功能)、视频生成Video Generation 等方面的应用。

1. Text-to-Image

1.1 Traditional supervised approach

对于一个依据文字生成图像的问题,我们传统的做法就是训练一个NN,然后输入一个文字,输出对应一个图片,我们希望图片与目标图片越接近越好。

这样做有什么问题?我们来看一下,例如文字:train对应的图片有很多张。例如下面的火车有正面,有侧面的,如果用传统的NN来训练,模型会想让火车长得像左边,又像一个右边的,这样的结果是不好的。模型会想产生多张图像的平均,结果就会很模糊。

1.2 Conditional GAN

Conditional,意思是条件,所以 Conditional GAN 的意思就是有条件的GAN。Conditional GAN 可以让 GAN 产生的结果符合一定的条件,即可以通过人为改变输入的向量,控制最终输出的结果。这种网络与普通 GAN 的区别在于输入加入了一个额外的 condition(比如在 text-to-image 任务中的描述文本),并且在训练的时候使得输出的结果拟合这个 condition。

此外如果判别器还是以前的那样的话,肯定是不行的,因为这样训练出来的生成器会无视输入的conditional vector;因为判别器只会看你的图片是不是高质量,所以生成器只要生成高质量就行了,可以完全无视其他input信息。

我们希望的是机器能够按照我们的input产生图片,因此需要变形。此时的判别器的输入不只看生成器的输出,还要看conditional vector。这时候判别器有两个任务:

  • 图片质量好不好(图片是不是真实的)
  • 图片是否和输入的条件匹配。就算质量高但是不匹配的话,也是低分。

 1.3 Conditional GAN - Discriminator

具体设计条件GAN判别器,有两种方式:

  1. 图片x经过一个网络变成一个code,一句话经过网络也变成一个code;把这两种code组合在一起丢到网络里面,输出一个数值。

  2. 首先让图片经过一个网络,输出一个分数(用于判断图片是否真实),同时这个网络也输出一个code,这个code和一句话结合起来丢到另外一个网络里,也输出一个分数(图片和文字是否匹配);其实两种分数拆开比较合理

这两种方式,前者更为常用,但李宏毅老师认为后者更加合理,它用两个神经网络分别对输出结果的质量以及条件符合程度独立进行判别。

1.4 Stack GAN

对于现有模型GAN来说,要实现高分辨率并不容易,首先,简单的在GAN模型中添加更多的上采样层用于生成高分辨率图像(例如,256×256)的方法通常导致 训练不稳定并产生无意义的输出。这里提出了一种新的model来解决这个问题:

  1. 提出了一种新的叠加生成对抗网络(stackgan),用于从文本描述中合成照片般逼真的图像。它将生成高分辨率图像的困难问题分解为更多可管理的子问题-----解决细节缺失问题,分辨率变高。
  2. 提出了一种新的条件增强技术(CA)来稳定条件GAN的训练,同时也提高了条件GAN训练的多样性。
  3. 广泛的定性和定量实验证明整体模型设计的有效及单个组件的效果。
     

 2. Image-to-image

 2.1 application

设定 conditional 为输入的图片,可以用在黑白转彩色图、手绘转真实图、航拍图转地形图等。

 2.2 Traditional supervised approach

先收集大量的样本,然后训练模型,在测试的结果却很模糊,原因在上面有讲:It is blurry because it is the average of several images。

 2.3 Conditional GAN

 

Generator会吃一个从分布中抽取的vector和一个input,其中input作为条件,output是一个image。

传统做法中,仅仅使image和真实的image接近,会发现生成的图像比较模糊,即下面第二张图片。这个我们在前面都有提及。在Gan中,Discriminator会输入产生的image和input(也就是condition),从而输出一个scalar。

通过算法的迭代,我们的Gan可以生成下面第三张图片,看起来很清晰了,很棒了。但是仔细看,图中左上角是不是长个了角,一看,是个烟囱,但是我们的input中并没有这个东东呀,它和我们的真实image有些出入。因此,单纯的一个Conditional Gan并不能达到很好的效果。GAN+close是一个好的解决办法!在GAN+close中,我们对generator生成的image加上限制,要使得生成的image与真实对象越接近越好。通过训练,可以得到下面第四张图片,此时,生成的image不仅清晰而且也基本符合要求了!

 3. Speech Enhancement

 3.1 Traditional supervised approach

 

先要有数据,然后训练一个NN,注意这里会直接套CNN。然后使output和真正clean的结果越接近越好。这样做效果当然不好。

 3.2 Conditional GAN

 4. Video Generation

可以根据影片的前几帧产生后几帧。conditional 为之前几帧的图片。

 

结论与展望

 这节课的Conditional GAN,翻译过来就是条件GAN,所谓条件GAN就是指我们现在生成的网络不仅仅需要逼真,而且还要有一定的条件。同一般形式的GAN类似,也是先训练判别网络,再训练生成网络,然后再训练判别网络,两个网络交替训练。只是训练判别网络的样本稍有不同,分别如下:

  • 条件和与条件相符的真实图片,期望输出为1
  • 条件和与条件不符的真实图片,期望输出为0
  • 条件和生成网络生成的输出,期望输出为0

具体的Conditional GAN判别器的设计也有两种:

  • 图片x经过一个网络变成一个code,一句话经过网络也变成一个code;把这两种code组合在一起丢到网络里面,输出一个数值。
  • 让图片经过一个网络,输出一个分数(用于判断图片是否真实),同时这个网络也输出一个code,这个code和一句话结合起来丢到另外一个网络里,也输出一个分数(图片和文字是否匹配)

Conditional GAN主要应用在Image-to-Image、Text-to-Image、Speech Enhancement和Video Generation上,而Conditional GAN也有许多变种,针对训练不稳定的问题,提出了Stack GAN,针对Discriminator评估大张的图片容易训练过久和过拟合问题提出了Patch GAN,用多个Discriminator来进行评估。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。
李宏毅2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记:Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值