提交 e50bef39 编写于 作者: W wizardforcel

2020-08-14 18:08:52

上级 449608e8
......@@ -12,7 +12,7 @@
在本章中,我们将讨论如何将**生成对抗网络****GAN**)用于深度学习领域,其中关键方法是通过同时训练鉴别器来挑战图像来训练图像生成器 后者用于改进。 可以将相同的方法应用于不同于 Image 的域。 另外,我们将讨论变分自编码器。
GAN 已被定义为*,这是 ML*[https://www.quora.com/What-are-some-recent-and-potentially-upcoming- 深度学习之父之一 Yann LeCun 的“深度学习突破](https://www.quora.com/What-are-some-recent-and-potentially-upcoming-breakthroughs-in-deep-learning)”)。 GAN 能够学习如何再现看起来真实的合成数据。 例如,计算机可以学习如何绘制和创建逼真的图像。 这个想法最初是由与蒙特利尔大学 Google Brain 合作的 Ian Goodfellow 提出的,最近由 OpenAI( [https://openai.com/](https://openai.com/)提出。
GAN 已被深度学习之父之一 Yann LeCun 定义为[“这是深度学习的突破”](https://www.quora.com/What-are-some-recent-and-potentially-upcoming-breakthroughs-in-deep-learning)。 GAN 能够学习如何再现看起来真实的合成数据。 例如,计算机可以学习如何绘制和创建逼真的图像。 这个想法最初是由与蒙特利尔大学 Google Brain 合作的 Ian Goodfellow 提出的,最近由 [OpenAI](https://openai.com/) 提出。
# 那么,GAN 是什么?
......@@ -34,7 +34,7 @@ An example of convergence for Generator and Discriminator
# 一些很酷的 GAN 应用程序
我们已经确定生成器学习如何伪造数据。 这意味着它将学习如何创建由网络创建的新合成数据,并且*看起来是*真实的并且由人类创建。 在讨论有关 GAN 代码的详细信息之前,我想分享使用 GAN 的最新论文(代码可在线获得 [https://github.com/hanzhanggit/StackGAN](https://github.com/hanzhanggit/StackGAN) )的结果。 从文本描述开始合成伪造的图像。 结果令人印象深刻。 第一列是测试集中的真实图像,其他所有列都是从 StackGAN 的 Stage-I 和 Stage-II 中相同的文本描述生成的图像。 YouTube 上有更多示例( [https://www.youtube.com/watch?v=SuRyL5vhCIM & feature = youtu.be](https://www.youtube.com/watch?v=SuRyL5vhCIM&feature=youtu.be)
我们已经确定生成器学习如何伪造数据。 这意味着它将学习如何创建由网络创建的新合成数据,并且*看起来是*真实的并且由人类创建。 在讨论有关 GAN 代码的详细信息之前,我想分享使用 GAN 的最新论文([代码可在线获得](https://github.com/hanzhanggit/StackGAN))的结果。 从文本描述开始合成伪造的图像。 结果令人印象深刻。 第一列是测试集中的真实图像,其他所有列都是从 StackGAN 的 Stage-I 和 Stage-II 中相同的文本描述生成的图像。 [YouTube 上有更多示例](https://www.youtube.com/watch?v=SuRyL5vhCIM&feature=youtu.be)
![](img/60422def-cdf2-489b-8974-49708350aea0.png)
......@@ -52,11 +52,11 @@ We can see further improvements in the following image:
![](img/c905787d-d0ac-421d-9826-a925c4ada1a8.png)
GAN 最酷的用途之一是对生成器矢量 Z 的面部进行算术。换句话说,如果我们停留在合成伪造图像的空间中,则可能会看到类似以下内容:[微笑的女人]-[中性的女人 ] + [中性男人] = [微笑男人],或类似这样:[戴眼镜的男人]-[戴眼镜的男人] + [戴眼镜的女人] = [戴眼镜的女人]。 下图取自:*深度卷积生成对抗网络的无监督表示学习,* Alec Radford,Luke Metz,Soumith Chintala,2016, [https://arxiv.org/abs/1511.06434](https://arxiv.org/abs/1511.06434)
GAN 最酷的用途之一是对生成器矢量 Z 的面部进行算术。换句话说,如果我们停留在合成伪造图像的空间中,则可能会看到类似以下内容:`[微笑的女人]-[中性的女人] + [中性的男人] = [微笑的男人]`,或类似这样:`[戴眼镜的男人] - [戴眼镜的男人] + [戴眼镜的女人] = [戴眼镜的女人]`。 下图取自:[深度卷积生成对抗网络的无监督表示学习](https://arxiv.org/abs/1511.06434)(Alec Radford,Luke Metz,Soumith Chintala,2016)
![](img/01744226-effd-46ec-9e04-f7668a1379aa.png)
[https://github.com/Newmu/dcgan_code](https://github.com/Newmu/dcgan_code) 提供了 GAN 的其他出色示例。 本文中所有图像均由神经网络生成。 他们不是真实的。 全文可在此处找到: [http://arxiv.org/abs/1511.06434。](http://arxiv.org/abs/1511.06434)
[这个链接](https://github.com/Newmu/dcgan_code)提供了 GAN 的其他出色示例。 本文中所有图像均由神经网络生成。 他们不是真实的。 [全文可在此处找到](http://arxiv.org/abs/1511.06434)
**卧室**:经过五个时期的训练后生成的卧室:
......@@ -74,7 +74,7 @@ Ian J.Goodfellow,Jean Pouget-Abadie,Mehdi Mirza,Bing Xu,David Warde-Farl
# 做好准备
此食谱基于 [https://github.com/TengdaHan/GAN-TensorFlow 上可用的代码。](https://github.com/TengdaHan/GAN-TensorFlow)
此食谱基于[这个页面](https://github.com/TengdaHan/GAN-TensorFlow)上可用的代码。
# 怎么做...
......@@ -267,7 +267,7 @@ feed_dict={X: batch_X, z: batch_noise})
# 这个怎么运作...
在每个时期,生成器都会进行许多预测(它会生成伪造的 MNIST 图像),鉴别器会在将预测与实际 MNIST 图像混合后尝试学习如何生成伪造的图像。 在 32 个时代之后,生成器学习伪造这组手写数字。 没有人对机器进行编程来编写,但是它学会了如何编写与人类所写的数字没有区别的数字。 请注意,训练 GAN 可能非常困难,因为有必要在两个参与者之间找到平衡。 如果您对该主题感兴趣,我建议您看看从业者收集的一系列技巧( [https://github.com/soumith/ganhacks](https://github.com/soumith/ganhacks)
在每个时期,生成器都会进行许多预测(它会生成伪造的 MNIST 图像),鉴别器会在将预测与实际 MNIST 图像混合后尝试学习如何生成伪造的图像。 在 32 个时代之后,生成器学习伪造这组手写数字。 没有人对机器进行编程来编写,但是它学会了如何编写与人类所写的数字没有区别的数字。 请注意,训练 GAN 可能非常困难,因为有必要在两个参与者之间找到平衡。 如果您对该主题感兴趣,我建议您看看[从业者收集的一系列技巧](https://github.com/soumith/ganhacks)
让我们看一下不同时期的许多实际示例,以了解机器将如何学习以改善其编写过程:
......@@ -286,7 +286,7 @@ Example of forged MNIST-like characters with a GAN
# 做好准备
此食谱基于 [https://github.com/TengdaHan/GAN-TensorFlow 上可用的代码。](https://github.com/TengdaHan/GAN-TensorFlow)
此食谱基于[这个页面](https://github.com/TengdaHan/GAN-TensorFlow)上可用的代码。
# 怎么做...
......@@ -531,7 +531,7 @@ Example of forged MNIST-like with DCGAN
# 学习使用 DCGAN 伪造名人面孔和其他数据集
用于伪造 MNIST 图像的相同思想可以应用于其他图像域。 在本食谱中,您将学习如何使用位于 [https://github.com/carpedm20/DCGAN-tensorflow](https://github.com/carpedm20/DCGAN-tensorflow) 的包在不同的数据集上训练 DCGAN 模型。 这项工作基于论文*和深度卷积生成对抗网络的无监督表示学习,Alec Radford,Luke Metz,Soumith Chintal,2015 年。*引用摘要:
用于伪造 MNIST 图像的相同思想可以应用于其他图像域。 在本食谱中,您将学习如何使用位于[这个链接](https://github.com/carpedm20/DCGAN-tensorflow)的包在不同的数据集上训练 DCGAN 模型。 这项工作基于论文*和深度卷积生成对抗网络的无监督表示学习,Alec Radford,Luke Metz,Soumith Chintal,2015 年。*引用摘要:
In recent years, supervised learning with convolutional networks (CNNs) has seen huge adoption in computer vision applications. Comparatively, unsupervised learning with CNNs has received less attention. In this work we hope to help bridge the gap between the success of CNNs for supervised learning and unsupervised learning. We introduce a class of CNNs called deep convolutional generative adversarial networks (DCGANs), that have certain architectural constraints, and demonstrate that they are a strong candidate for unsupervised learning. Training on various image datasets, we show convincing evidence that our deep convolutional adversarial pair learns a hierarchy of representations from object parts to scenes in both the generator and discriminator. Additionally, we use the learned features for novel tasks - demonstrating their applicability as general image representations.
......@@ -543,7 +543,7 @@ In recent years, supervised learning with convolutional networks (CNNs) has seen
# 做好准备
此食谱基于 [https://github.com/carpedm20/DCGAN-tensorflow 上提供的代码。](https://github.com/carpedm20/DCGAN-tensorflow)
此食谱基于[这个页面](https://github.com/carpedm20/DCGAN-tensorflow)上提供的代码。
# 怎么做...
......@@ -621,7 +621,7 @@ Example of Encoder-Decoder for Autoencoders.
# 怎么做...
此处的代码基于 Kingma 和 Welling 的论文《自动编码变分贝叶斯( [https://arxiv.org/pdf/1312.6114.pdf](https://arxiv.org/pdf/1312.6114.pdf) ),并改编自 GitHub: [https:// jmetzen.github.io/2015-11-27/vae.html](https://jmetzen.github.io/2015-11-27/vae.html)
此处的代码基于 Kingma 和 Welling 的论文[自动编码变分贝叶斯](https://arxiv.org/pdf/1312.6114.pdf),并改编自 [GitHub](https://jmetzen.github.io/2015-11-27/vae.html)
1. 第一步是始终导入必要的模块。 对于此食谱,我们将需要 Numpy,Matplolib 和 TensorFlow:
......@@ -896,15 +896,15 @@ VAE 的生成图像取决于潜在空间尺寸。 模糊减少了潜在空间的
# 也可以看看...
●Kingma 和 Welling 的论文是该领域的开创性论文。 他们会经历完整的建筑思维过程以及优雅的数学运算。 对于对 VAE 感兴趣的任何人,必须阅读: [https://arxiv.org/pdf/1312.6114.pdf](https://arxiv.org/pdf/1312.6114.pdf)
[Kingma 和 Welling 的论文](https://arxiv.org/pdf/1312.6114.pdf)是该领域的开创性论文。 他们会经历完整的建筑思维过程以及优雅的数学运算。 对于对 VAE 感兴趣的任何人,必须阅读
●另一个有趣的读物是 Carl Doersch 的论文,《变型编码器教程》: [https://arxiv.org/pdf/1606.05908.pdf](https://arxiv.org/pdf/1606.05908.pdf)
另一个有趣的读物是 Carl Doersch 的论文,[变分编码器教程](https://arxiv.org/pdf/1606.05908.pdf)
●Github 链接包含 VAE 的另一种实现,以及来自 Kingma 和 Welling 论文的图像再现: [https://github.com/hwalsuklee/tensorflow-mnist-VAE](https://github.com/hwalsuklee/tensorflow-mnist-VAE)
[Github 链接包含 VAE 的另一种实现,以及来自 Kingma 和 Welling 论文的图像再现](https://github.com/hwalsuklee/tensorflow-mnist-VAE)
# 通过 Capsule Networks 学习击败 MNIST 的最新结果
Capsule Networks(或 CapsNets)是一种非常新颖的深度学习网络。 这项技术是在 2017 年 10 月底由 Sara Sabour,Nicholas Frost 和 Geoffrey Hinton 发表的名为“胶囊之间的动态路由”的开创性论文( [https://arxiv.org/abs/1710.09829](https://arxiv.org/abs/1710.09829)中引入的。 欣顿(Hinton)是深度学习之父之一,因此,整个深度学习社区很高兴看到胶囊技术取得的进步。 确实,CapsNets 已经在 MNIST 分类中击败了最好的 CNN,这真是……令人印象深刻!
Capsule Networks(或 CapsNets)是一种非常新颖的深度学习网络。 这项技术是在 2017 年 10 月底由 Sara Sabour,Nicholas Frost 和 Geoffrey Hinton 发表的[名为“胶囊之间的动态路由”的开创性论文](https://arxiv.org/abs/1710.09829)中引入的。 欣顿(Hinton)是深度学习之父之一,因此,整个深度学习社区很高兴看到胶囊技术取得的进步。 确实,CapsNets 已经在 MNIST 分类中击败了最好的 CNN,这真是……令人印象深刻!
**那么 CNN 有什么问题?** 在 CNN 中,每一层*都会以渐进的粒度理解*图像。 正如我们在多种配方中讨论的那样,第一层将最有可能识别直线或简单的曲线和边缘,而随后的层将开始理解更复杂的形状(例如矩形)和复杂的形式(例如人脸)。
......@@ -938,7 +938,7 @@ A simple CapsNet architecture
# 做好准备
此食谱基于 [https://github.com/debarko/CapsNet-Tensorflow](https://github.com/debarko/CapsNet-Tensorflow) 上提供的代码,而该代码又基于 [https://github.com 上的代码。 /naturomics/CapsNet-Tensorflow.git。](https://github.com/naturomics/CapsNet-Tensorflow.git)
此食谱基于[这个页面](https://github.com/debarko/CapsNet-Tensorflow)上提供的代码,而该代码又基于[这个页面](https://github.com/naturomics/CapsNet-Tensorflow.git)
# 怎么做...
......@@ -1326,10 +1326,10 @@ Examples of increase in accuracy for CapsNet
CapsNets 在 MNIST 上可以很好地工作,但是在理解是否可以在其他数据集(例如 CIFAR)或更通用的图像集合上获得相同的令人印象深刻的结果方面,还有很多研究工作要做。 如果您有兴趣了解更多信息,请查看以下内容:
●Google 的 AI 向导在神经网络上带来了新的变化: [https://www.wired.com/story/googles-ai-wizard-unveils-a-new-twist-on-neural-networks/](https://www.wired.com/story/googles-ai-wizard-unveils-a-new-twist-on-neural-networks/)
[Google 的 AI 向导在神经网络上带来了新的变化](https://www.wired.com/story/googles-ai-wizard-unveils-a-new-twist-on-neural-networks/)
●Google 研究人员可以替代传统神经网络: [https://www.technologyreview.com/the-download/609297/google-researchers-have-a-new-alternative-to-traditional-neural-networks /](https://www.technologyreview.com/the-download/609297/google-researchers-have-a-new-alternative-to-traditional-neural-networks/)
[Google 研究人员可以替代传统神经网络](https://www.technologyreview.com/the-download/609297/google-researchers-have-a-new-alternative-to-traditional-neural-networks/)
●Keras-CapsNet 是可在 [https://github.com/XifengGuo/CapsNet-Keras](https://github.com/XifengGuo/CapsNet-Keras) 上使用的 Keras 实现。
Keras-CapsNet 是可在[这个页面](https://github.com/XifengGuo/CapsNet-Keras)上使用的 Keras 实现。
●杰弗里·欣顿(Geoffrey Hinton)讨论了卷积神经网络的问题: [https://www.youtube.com/watch?v=rTawFwUvnLE & feature = youtu.be](https://www.youtube.com/watch?v=rTawFwUvnLE&feature=youtu.be)
\ No newline at end of file
[杰弗里·欣顿(Geoffrey Hinton)讨论了卷积神经网络的问题](https://www.youtube.com/watch?v=rTawFwUvnLE&feature=youtu.be)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册