了解生成对抗网络 (GAN) 的不同方面和复杂性,GAN 是一种在人工智能 (AI) 领域内外使用的神经网络。本文将向您介绍 GAN,介绍什么是 GAN,并解释如何使用它们。
GAN简介
今天对称为 GAN 的通用模型的想法和描述起源于 1990 年代由 Jürgen Schmidhuber 在论文中提出对抗性人工好奇心和通过可预测性最小化学习阶乘代码.2014 年,Ian Goodfellow 创造了 GAN 一词,并在他的论文之后推广了这种类型的模型生成对抗网络.
要理解 GAN,您必须首先了解生成和对抗这两个术语。
-
生成:你可以把“生成”一词看作是生产一些东西。这可以是拍摄一些输入图像并生成带有扭曲的输出。例如,您可以在一定程度上准确地将一匹马变成斑马。结果取决于输入以及此用例的生成模型中层的训练程度。
-
敌对:你可以把“对抗性”一词看作是将一件事与另一件事对立起来。在GAN的上下文中,这意味着将生成结果(假图像)与数据集中存在的真实图像进行对比。这种特定的机制称为鉴别器,它正在实现一个试图区分真假图像的模型。
为了进一步阐述并提供一个现实生活中的例子,Goodfellow做了一个类比来解释GAN模型中存在的动态:“生成模型可以被认为是类似于一群造假者,试图生产假币并在不被发现的情况下使用它,而歧视模型类似于警察,试图检测假币。这场比赛的竞争促使两支球队改进他们的方法,直到假货与真品无法区分。
Goodfellow演示了如何使用现代计算能力来生成虚假示例,这些示例看起来像数字,人物,动物以及任何您能想象到的东西的真实图像。只要您可以整理数据,这些类型的模型就可以生成新颖的示例。在下图中。黄色列是从Goodfellow的论文中生成的图像的示例:生成对抗网络.
GAN 模型中的组件
如前所述,GAN由生成网络和对抗网络组成。虽然有许多不同的GAN模型,但我专注于最常见的GAN模型的核心组件深度卷积生成对抗网络 (DCGAN),由 Alec Radford 等人于 2015 年推出。我还讨论了较新模型的用例,这些模型调整了模型的组件以创建独特的东西。
当DCGAN被引入时,有一些差异在这里解释DCGAN论文.这些差异包括:
- 将任何池化层替换为跨步卷积(判别器)和分数跨步 卷积(生成器)
- 在生成器和鉴别器中使用批量范数 (BN)
- 移除全连接的隐藏层,实现更深层次的架构
- 在生成器中对除使用 Tanh 的输出之外的所有层使用 ReLU 激活
- 在鉴别器中对所有层使用 LeakyReLU 激活
GAN 发电机
对于发生器,您可以输入随机图像(也称为噪声)。这些随机图像可以是任何东西,但也可能是生成的或增强的数据。通过生成器,您可以生成一个样本,如果您训练生成器和鉴别器都足够好,那么该样本最终看起来像是真实数据集的一部分。生成器的输出有时称为潜在空间或潜在向量。
要优化生成器,首先必须将生成器的输出传递到鉴别器。随后,您可以反向传播并计算生成器和鉴别器的误差(将在下一节中介绍)。
实际生成器本身只有几个组件,它们都是卷积神经网络中的典型组件。生成器中使用的卷积类型称为反卷积,也称为转置卷积。其他组件包括典型的批量规范化和激活函数。
反卷积的构造方式以及为各个反卷积设置参数(步幅、填充和内核大小)的方式使得放大和生成应该类似于输入的新图像成为可能。下图显示了来自轴承故障检测与诊断不平衡数据的创成式过采样方法学术论文。
GAN 鉴别器
对于鉴别器,您可以从您策划的实际数据集中输入真实图像。在本例中,我选择了MNIST数据集,这是大量手写数字的集合。此外,您还可以将生成器的输出输入到鉴别器中。
鉴别器的卷积层是我们习惯的正常卷积。对卷积进行参数化,以缩小适合分类的输入。对于鉴别器,您可以通过模型运行两个输入,以接收输出,该输出通过在末尾添加一个全连接层和一个 sigmoid 激活函数来判断。下图显示了轴承故障检测与诊断不平衡数据的创成式过采样方法学术论文。
优化
在数据通过生成器和判别器模型后,反向传播的优化开始,就像在所有其他网络中一样。
优化是 GAN 中一个棘手的课题,因为两个模型都需要以一定的速度不断改进,才能使两个模型都变得出色。您希望生成器通过生成更好的假输入来尝试智取鉴别器,但您也希望生成器对真实和虚假输入进行正确分类,以便生成器可以不断改进。最终,当生成器输出的图像看起来足够真实,可以成为用于训练判别器的原始数据集的一部分时,您就会达到一个平衡点。
平衡点恰好是鉴别器向两侧倾斜 50% 时,这意味着两个图像都可能是真的,也可能是假的。这意味着生成器模型试图最小化鉴别器将生成器的输出预测为假输出的概率。另一方面,鉴别器试图最大限度地提高它正确分类真实和虚假图像的概率。
数据操作
今天,您可以使用所有最新研究轻松处理图像。您可以将样式从一个图像转移到所需的图像上,从而创建一个看起来真实的新图像和经过处理的图像。
有太多的应用要一一列举,所以我选择了一个简单的例子。在下图中,您可以看到 GAN 应用程序如何操作 Ryan Gosling 图像的任何面部特征。这些编辑中的大多数都是在不到一秒钟的时间内完成的,使用面部操作软件来自Anycost 项目.
安全
每一天,随着攻击者开发复杂的软件并使用社会工程来针对组织和个人窃取有价值的敏感信息,威胁形势也在增加。
使用现代 GAN,您可以屏蔽员工照片、医学图像或街景图像,使它们对任何攻击者都毫无用处。如果您想随时使用照片,只需再次使用GAN将蒙版图像映射回原始图像即可。
在隐藏数据之前,发送方会向接收方发送提取器和恢复器。双方都学习了从秘密数据到噪声的映射。与传统的远程数据处理方法相对应,生成的图像可以看作是封面图像和标记图像。然后,发送方将标记的图像发送给接收方。在接收端,可以获取恢复的图像,并提取嵌入的数据。您可以在以下位置获得有关此内容的更多信息高级数据安全及其在多媒体安全通信中的应用](张卓等)。下图显示了数据隐藏过程张卓等.
数据生成
深度学习算法总是需要更多的数据。事实上,它是如此重要,以至于有一些方法可以生成额外的数据。与所有 AI 模型一样,您可以使用更多数据来改进要训练的模型,因为这最终会产生更好的性能。在某些情况下,甚至有有限的数据量会限制您训练一个好的模型。
数据生成用例是无穷无尽的。您可以生成所有不同类型的图像或文本。在我之前对生成器和判别器的解释中,您可能还会开始了解如何使用经过适当训练的生成器来生成新的数据样本,以便在真实数据集中使用,以训练完全不同的模型。
最新的例子之一是 OpenAI 的 DALL-E 2,这是一种文本到图像生成模型。下图显示了”骑着马的宇航员".它输出了对太空中宇航员的描绘,看起来逼真。
本文向您介绍了生成对抗网络 (GAN)。讲解了如何构建特定版本 DCGAN。其中还包括了一些专业运用于GAN的比例数字。希望本文能对你有帮助,感谢点赞,关注。
# 最后
为了帮助大家更好的学习人工智能,这里给大家准备了一份人工智能入门/进阶学习资料,里面的内容都是适合学习的笔记和资料,不懂编程也能听懂、看懂,所有资料朋友们如果有需要全套人工智能入门+进阶学习资源包,可以在评论区或扫.码领取哦)~
在线教程
- 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
- 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
- EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
- 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
- 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
- 机器学习 – 有指导和无指导情况下的基本机器学习算法
- 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
- 斯坦福统计学习
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
人工智能书籍
- OpenCV(中文版).(布拉德斯基等)
- OpenCV+3计算机视觉++Python语言实现+第二版
- OpenCV3编程入门 毛星云编著
- 数字图像处理_第三版
- 人工智能:一种现代的方法
- 深度学习面试宝典
- 深度学习之PyTorch物体检测实战
- 吴恩达DeepLearning.ai中文版笔记
- 计算机视觉中的多视图几何
- PyTorch-官方推荐教程-英文版
- 《神经网络与深度学习》(邱锡鹏-20191121)
- …
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
第一阶段:零基础入门(3-6个月)
新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。
第二阶段:基础进阶(3-6个月)
熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。
第三阶段:工作应用
这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓