GANs和低效映射

生成对抗网络(GANs)被誉为生成艺术领域的下一纪元,这是有充分理由的。新技术一直是艺术的驱动因素,从颜料的发明到照相机再到Photoshop-GAN是自然而然的。例如,考虑下面的图片,由埃尔加马勒发表在2017年的论文。

如果你不熟悉GAN,那么本文将简要介绍训练过程。简而言之,GAN将随机噪声作为输入,并且产生的输出与真实数据是无法区分的(如果训练顺利的话),其中真实数据几乎可以是任何东西(一组抽象绘画,名人头像照片,手写数字等) )。

在GAN文献中,与之前的变分自编码器一样,输入值常常与输出没有明确的关系,这是一个得到充分证明的问题。正如我前面提到的,GANs接受随机噪声(通常是100个随机的、正态分布的值)作为输入,每个随机数都可以看作是输出的控制杠杆。理想情况下,每个杠杆都对应一个特征,例如在生成人脸的情况下,将有一个杠杆用于微笑和皱眉,一个用于肤色,一个用于头发长度,等等;在艺术创作时这种情况很少发生,因此使用GANs进行艺术创作就成了一种挑战。作为这个问题的可视化,考虑以下动画:

在这里,我使用16维的空间在MNIST手写数字数据集上训练了一个GAN。我使用这个GAN生成了一个随机样本,然后说明当一个输入值被调整而其他值被固定在适当的位置时,输出是如何变化的。正如你所看到的,这两种杠杆都不会以人类可能觉得直观或有用的方式改变输出;第一个杠杆控制数字是7还是9以及笔画角度,而第二个杠杆控制数字是7还是9以及笔画厚度。可以想象生成“手写”数字的理想工具是什么样子的:第一个控制杆控制要生成的数字,从0到9;第二杠杆控制冲程的厚度;第三个控制笔画角度;第四,循环,你懂的。相反,我们看到这些特征中的一些是由一个杠杆控制的,而这些特征中的一个是由多个杠杆控制的。想象一下,如果Photoshop的旋转工具也通过色轮旋转图像的色调,那该有多令人沮丧!

这里的一个明显的问题是,这使得生成图像的接口效率很低,而且非常混乱。然而,还有另一个不太明显的问题:输入和输出之间扭曲而复杂的关系也妨碍了训练并限制了输出的整体质量。

问题一:螺旋

正如我在本文中所解释的,GAN本质上是用于对某些数据分布建模的工具,无论是正态分布还是人脸分布。因此,GAN是从某些潜在空间到某些样本空间的转换或映射。当GAN作为学生全神贯注于诸如图像生成之类的高维问题时,这一点常常被忽视。在这里,我打算使用简单的二维问题来演示低效的映射问题,其中第一个问题在此处进行了说明:

这是一个相当简单的函数,它将输入空间中的x轴映射到样本空间中沿着螺旋的位置(角度和半径),并将y轴映射到螺旋内的横向位置。出于可视化的目的,x轴也映射到色相,y轴也映射到值(彩色与黑色)。为了进一步阐明此功能,请考虑以下动画:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ieyY5MJz-1582722801728)(http://qiniu.aihubs.net/1_GPA8YvfHxPPJXoPjphn5_g.gif)]

因此,问题是要训练一个能够从这种螺旋分布中采样点的GAN,这样就很难分辨出GAN的批次和真实函数的批次。注意,GAN不必学习原始映射。只要输出分布相同,任何映射都可以。

结果:

使用典型的GAN训练技术对GAN进行了60000次步骤的训练(代码在本文结尾)。如你所见,GAN成功学习了螺旋分布。但是,它有几个问题:

  1. 它比目标函数要瘦很多。尽管螺旋的某些部分具有一定的宽度,但GAN实质上已将这种分布减小为二维空间中的一维流形。
  2. 输出混乱。注意分散在螺旋形负空间中的点。这些永远不会在目标函数中发生,那么它们在做什么?
  3. 注意点(0.60,-0.63)和(0.45,0.17)上的奇怪伪像; 这些不连续性会在分布中造成漏洞。
  4. 将GAN产生的螺旋中的色相和值的分布与原始函数中的相比较(图3);它们的顺序性不明显,并且在潜在空间(控制杆)和输出之间没有明确的关系。

在此动画中说明了所有这四个问题:

正如你所看到的,这四个问题实际上是同一个问题。对比图6和图4,我们可以看到GAN学会了一个低效的映射。首先,考虑潜空间右上角的撕裂;撕裂上方的潜在空间区域被映射到螺旋的最外层,而紧挨着撕裂下方的区域被映射到螺旋的中心。这种撕裂行为解释了混乱(问题2);位于裂缝上的任何一点都映射到这两个极端之间的某个地方,通常落在螺旋的负空间中。它也解释了(0.60,-0.63)处的伪影(问题3),因为在这个区域生成的点是从潜在空间的远处点映射而来的,这也是为什么颜色的色调和值也没有对齐(第4期)。最后,学习分布(问题1)的瘦性是由映射的复杂性来解释的;分布的大部分方差来自于沿螺旋的位置,在螺旋宽度内的位置不那么显著。因此,Gan首先学会了如何创造螺旋。每当它试图扩展时,映射的复杂性就会导致其他一些区域中断。Gan基本上把自己困在了一个无法逃脱的局部极小值中。如果你很好奇,以下是GAN在训练时的样子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2qUbzCCg-1582722801730)(http://qiniu.aihubs.net/1_m3mAqofrq5dVsBD3vseQBw.gif)]

图显示GAN迅速了解了最外层和最内层区域的不兼容映射,并且分布的剩余 部分不得不在它们之间进行协调。

问题二:八个高斯

这个函数将2.5维空间映射到2维空间。潜在空间的前两个维度是独立的、标准的正态分布的值。剩下的“0.5”是一个包含8个可能值的离散维度,编码为长度为8的向量,其中一个值被设置为1,而其他值为0。在图8中,通过在x轴和y轴上绘制两个连续维度来表示潜在空间中的随机样本,而用颜色表示离散维度。目标函数将这个潜在空间映射到样本空间,方法是将正态分布重新缩小0.2倍,并根据潜在维度的值将其移动到8个点之一。过程如下:

因此,问题是要训练一个能够从这八个高斯分布中采样点的GAN,使得GAN的批处理和真实函数的批处理是无法区分的。请注意,就像上述螺旋问题一样,GAN不必学习原始映射,如果有一个简单的映射当然更好。

结果:

结果不好。GAN完全无法在两种模式下生成样本(模式崩溃),它在模式之间产生了大量的点,无法生成正态分布的模式,并且潜空间和样本空间之间显然没有合理的关系。在以下动画中,这一点更加明显:

很明显,两个连续潜值内的不同区域被切割并映射到六个样本空间模式。这和螺旋问题中的撕裂问题是一样的;落在裂缝上的点被映射到模式之间的负空间。尽管有简单的解决方案(即按比例缩小连续维度并将离散维度中的每个值映射到不同的模式),GAN还是陷入了局部最小值,无法再将自己挖出来。

问题三:一个高斯

八高斯问题显然太难了,所以这里有一个更简单的问题:把二维均匀噪声转换成二维标准正态噪声。就像在螺旋问题中一样,点是通过沿着x轴旋转色相和沿着潜在空间的y轴变化值来着色的。最简单的映射很简单:独立地展开每个维度。如下图所示:

结果:

如你所见,即使涉及从二维正态分布之类的简单样本中进行采样,GAN仍然将自身束缚在一起。最值得注意的是,GAN似乎将潜在空间折叠了起来,从而在样品空间的右下角产生了扭结,缝隙和突起。这是插值的动画:

总结

我希望上面的可视化说明已经清楚地表明,输入和输出特征之间的模糊关系不仅仅是一个难点,而是一个基本问题。如果你对用于训练上述GANs或可视化代码的代码感兴趣,可以通过以下github仓库获得:

https://github.com/ConorLazarou/medium/tree/master/12020/visualizing_gan_mapping

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/

OpenCV中文官方文档:
http://woshicver.com/

智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
Transformer和GANs(Generative Adversarial Networks)是两种不同的深度学习模型,它们分别应用于自然语言处理和生成式模型领域。 **Transformer:** - Transformer是一种用于处理序列数据的神经网络架构,最初由Google在2017年提出,用于改进机器翻译任务中的性能。 - 它的核心特点是自注意力机制,能够同时考虑输入序列中的所有位置,消除了传统RNN(循环神经网络)中的依赖顺序限制。 - 主要应用在诸如自然语言理解、文本生成(如聊天机器人)、文本摘要等任务中。 **GANs:** - GANs是由Ian Goodfellow等人于2014年提出的一种生成模型,由两个主要部分组成:生成器和判别器。 - 生成器尝试生成与训练数据类似的新样本,而判别器则负责判断哪些是真实样本,哪些是生成的假样本。 - GANs广泛应用于图像生成、图像修复、视频生成等领域,尤其是在高质量图像和视频的生成方面表现出色。 **区别:** 1. **目标不同**:Transformer关注的是理解和生成结构化的序列数据,如文本;而GANs致力于学习数据分布,生成新的、看起来像是来自同一分布的数据。 2. **工作原理**:Transformer依赖于自注意力和编码-解码架构;GANs则是通过对抗性训练让生成器和判别器相互博弈。 3. **应用场景**:Transformer在自然语言处理中的应用更为广泛,而GANs在视觉生成和图像处理中更常见。 **相关问题--:** 1. Transformer是如何处理序列数据的? 2. GANs的训练过程是如何保证生成样本质量的? 3. 在实际项目中,如何选择使用Transformer还是GANs?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值