生成对抗网络 GAN 基本原理与发展历程

简介: 生成对抗网络 GAN 基本原理与发展历程从人工到自动的**机器学习**:+ 从人工提取特征 到 **自动提取特征**相对于传统的机器学习,**深度学习**厉害的地方就是能够自己学习特征提取。机器学习:数据预处理 -> 特征提取 -> 选择分类器深度学习:数据预处理 -> 设计模型 -> 训练+ 从人工判断**生成结果的好坏** 到 **自动判断**和优化训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此。**GAN** 能自动完成这个过程,且不断的优化,这是一种效率非常高,且成本很低的方式。

1、什么是GAN

背景知识:

  • 快速掌握 机器学习(Machine Learning) 常用概念术语,常用算法

https://gwj1314.blog.csdn.net/article/details/120873124
快速掌握 深度学习(Deep Learning) 常用概念术语,常用模型
https://gwj1314.blog.csdn.net/article/details/120932539

从人工到自动的机器学习

  • 从人工提取特征 到 自动提取特征

相对于传统的机器学习,深度学习厉害的地方就是能够自己学习特征提取。
机器学习:数据预处理 -> 特征提取 -> 选择分类器
深度学习:数据预处理 -> 设计模型 -> 训练

  • 从人工判断生成结果的好坏自动判断和优化

训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此。
GAN 能自动完成这个过程,且不断的优化,这是一种效率非常高,且成本很低的方式。

GAN的原理:

  • 生成对抗网络(GAN)由2个重要的部分构成

1、生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
2、判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

  • 对抗过程

1:固定「判别器」,训练「生成器」
使用一个还 OK 判别器,让一个生成器不断生成“假数据”,然后给这个判别器去判断。
一开始,「生成器」还很弱,所以很容易被揪出来。
但是随着不断的训练,「生成器」技能不断提升,最终骗过了「判别器」。
2:固定「生成器」,训练「判别器」
当通过了第一阶段,继续训练「生成器」就没有意义了。这个时候我们固定「生成器」,然后开始训练「判别器」。
「判别器」通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。
到了这个时候,「生成器」已经无法骗过「判别器」。
3、循环阶段一和阶段二
通过不断的循环,「生成器」和「判别器」的能力都越来越强。
最终我们得到了一个效果非常好的「生成器」,我们就可以用它来生成我们想要的图片了。

  • 简单形象的例子

警察严打小偷导致小偷水平提升。
警察为了破案提高自己水平。
小偷为了生存提高自己水平。
警察和小偷的水平都越来越高。

GAN的应用:

  • 生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GAN 可以自动的生成一些数据集,提供低成本的训练数据。

  • 生成人脸照片、动物照片、漫画人物

生成人脸照片,漫画人物等

  • 图像到图像的转换

把一种形式的图像转换成另外一种形式的图像,就像加滤镜一样。
把草稿转换成照片、把照片转换成油画、三次元转化为二次元

  • 文字到图像的转换

StackGAN,从鸟类和花卉等简单对象的文本描述中生成逼真的照片

  • 照片到Emojis

GANs 可以通过人脸照片自动生成对应的表情(Emojis)

  • 人脸照片编辑

使用GAN可以生成特定的照片,例如更换头发颜色、更改面部表情、甚至是改变性别。

  • 预测不同年龄的长相

给一张人脸照片, GAN 就可以帮你预测不同年龄阶段你会长成什么样。

  • 提高照片分辨率,让照片更清晰

生成一张分辨率更高的照片,使得这个照片更加清晰

  • 照片修复

假如照片中有一个区域出现了问题(例如被涂上颜色或者被抹去),GAN可以修复这个区域,还原成原始的状态。

  • 自动生成3D模型

给出多个不同角度的2D图像,就可以生成一个3D模型。

2、GAN的发展历程

GAN的缺陷

  • 多样性不足的问题

模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。
以使用GANs训练人脸图像为例,当生成分辨率较小的图像时,GANs生成的图像的多样性尚且能得到保证。但是当生成较高分辨率的图像,就会出现GANs生成的人脸图像都非常相似的情况,也就是多样性不足的问题。

  • 高分辨率图像生成质量差的问题

难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
所以使用GANs生成算法去生成高分辨率图像时,通常存在两大问题。其一,生成的图像失真的问题。其二,生成的高分辨率图像高频细节模糊的问题。
于是围绕着缺陷有很多的优化和变种

GAN的种类

  • GAN 算法有数百种之多,大家对于 GAN 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。

GANs动物园 收录了几乎所有的GAN算法实现,论文地址。
开源地址:https://github.com/hindupuravinash/the-gan-zoo

附:高分辨率生成的一种解决方案
参考资料:https://www.jiqizhixin.com/articles/2017-11-16-20

  • 基于上下文约束渐进式生成对抗网络

PG-GAN:
采用 progressive growing 的训练方式,先训一个小分辨率的图像生成,训好了之后再逐步过渡到更高分辨率的图像。然后稳定训练当前分辨率,再逐步过渡到下一个更高的分辨率。
充分利用上个分辨率训练的结果,通过缓慢的过渡(w 逐渐增大),使得训练生成下一分辨率的网络更加稳定。
LAP-GAN:
借助 CGAN,高分辨率图像的生成是以低分辨率图像作为条件去生成残差,然后低分辨率图上采样跟残差求和得到高分辨率图,通过不断堆叠 CGAN 得到我们想要的分辨率。
PC-GAN
首先通过GAN生成局部的小尺寸图像,通过内容扩展网络(Content Extension Network, CEN)在小尺寸图像的基础上生成更大尺寸的图像。接着通过多个CEN逐步的放大图像的尺寸,最终生成大尺寸的图像。
通过多个CEN,将最初的图像中心的小尺寸部分向四周扩展,在分辨率不变的情况下逐渐生成越来越大尺寸的图像。

  • 多层次感知特征约束

多层感知机是指具有至少三层节点,输入层,一些中间层和输出层的神经网络。
感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。
多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。
首先在图像数据集上训练一个对称的自编码器网络,通过自编码器提取每一张图像对应的多个不同层次的语义特征表达,从而获得图像数据集对应的多个不同层次的语义特征数据集。
其次,利用多个不同层次的语义特征数据集训练得到多个不同层次的语义特征判别器,用于判断输入值是否符合相应语义特征数据集的分布。
最后,在图像生成的过程中,利用上一步中得到的语义特征判别器对生成器的多个中间层加以约束。通过引入多个权重参数用于平衡多个特征判别器之间的约束权重,最终在多个语义判别器共同约束下,使得图像生成过程中的网络中间层都处于可控的范围,使得生成图像的过程更加稳定更加可靠。

  • 增加生成多样性

两种可行的方法:通过 loss 让网络自己调整、通过设计判别多样性的特征人为引导
WGAN 属于前者,它采用更好的分布距离的估计。模型收敛意味着生成的分布和真实分布一致,能够有多样性的保证。PG-GAN 则属于后者。
PG-GAN 不引入新的参数,利用特征的标准差作为衡量标准。

目录
相关文章
|
2月前
|
网络协议 安全 5G
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
72 3
|
1月前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
68 3
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
230 1
|
2月前
|
网络协议 Linux 应用服务中间件
Socket通信之网络协议基本原理
【10月更文挑战第10天】网络协议定义了机器间通信的标准格式,确保信息准确无损地传输。主要分为两种模型:OSI七层模型与TCP/IP模型。
|
2月前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。
|
2月前
|
存储 安全 自动驾驶
探索未来网络:量子互联网的原理与应用
【10月更文挑战第2天】 本文旨在探讨量子互联网的基本原理、技术实现及其在通讯领域的革命性应用前景。量子互联网利用量子力学原理,如量子叠加和量子纠缠,来传输信息,有望大幅提升通信的安全性和速度。通过详细阐述量子密钥分发(QKD)、量子纠缠交换和量子中继等关键技术,本文揭示了量子互联网对未来信息社会的潜在影响。
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
2月前
|
机器学习/深度学习 算法 数据建模
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
38 0
|
2月前
|
XML 网络协议 算法
【TCP】网络原理
【TCP】网络原理
38 0
下一篇
DataWorks