我们选择`tf.keras`作为本书的首选工具,因为它是致力于加速深度学习模型实施的库。 这使得 Keras 非常适合我们想要实用且动手的时候,例如,当我们探索本书中的高级深度学习概念时。 由于 Keras 旨在加速深度学习模型的开发,训练和验证,因此在有人可以最大限度地利用图书馆之前,必须学习该领域的关键概念。
我们选择`tf.keras`作为本书的首选工具,因为它是致力于加速深度学习模型实现的库。 这使得 Keras 非常适合我们想要实用且动手的时候,例如,当我们探索本书中的高级深度学习概念时。 由于 Keras 旨在加速深度学习模型的开发,训练和验证,因此在有人可以最大限度地利用图书馆之前,必须学习该领域的关键概念。
本章概述了三种深度学习模型(MLP,RNN,CNN),并介绍了 TensorFlow 2 `tf.keras`,这是一个用于快速开发,训练和测试适合于生产环境的深度学习模型的库。 还讨论了 Keras 的顺序 API。 在下一章中,将介绍函数式 API,这将使我们能够构建更复杂的模型,专门用于高级深度神经网络。
...
...
@@ -930,7 +928,7 @@ Non-trainable params: 0
了解了深度学习概念以及如何将 Keras 用作工具之后,我们现在可以分析高级深度学习模型。 在下一章讨论了函数式 API 之后,我们将继续执行流行的深度学习模型。 随后的章节将讨论选定的高级主题,例如自回归模型(自编码器,GAN,VAE),深度强化学习,对象检测和分段以及使用互信息的无监督学习。 随附的 Keras 代码实现将在理解这些主题方面发挥重要作用。
# 7.参考
# 7\. 参考
1.`Chollet, François. Keras (2015). https://github.com/keras-team/keras.`
2.`LeCun, Yann, Corinna Cortes, and C. J. Burges. MNIST handwritten digit database. AT&T Labs [Online]. Available: http://yann.lecun.com/exdb/mnist2 (2010).`
在本章中,我们介绍了函数式 API 作为使用`tf.keras`构建复杂的深度神经网络模型的高级方法。 我们还演示了如何使用函数式 API 来构建多输入单输出 Y 网络。 与单分支 CNN 网络相比,该网络具有更高的准确率。 在本书的其余部分中,我们将发现在构建更复杂和更高级的模型时必不可少的函数式 API。 例如,在下一章中,函数式 API 将使我们能够构建模块化编码器,解码器和自编码器。
1.`Kaiming He et al. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification. Proceedings of the IEEE international conference on computer vision, 2015 (https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/He_Delving_Deep_into_ICCV_2015_paper.pdfspm=5176.100239.blogcont55892.28.pm8zm1&file=He_Delving_Deep_into_ICCV_2015_paper.pdf).`
1.`Kaiming He et al. Deep Residual Learning for Image Recognition. Proceedings of the IEEE conference on computer vision and pattern recognition, 2016a (http://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf).`
在本章中,我们已经介绍了自编码器,它们是将输入数据压缩为低维表示形式的神经网络,以便有效地执行结构转换,例如降噪和着色。 我们为 GAN 和 VAE 的更高级主题奠定了基础,我们将在后面的章节中介绍它们。 我们已经演示了如何从两个构建模块模型(编码器和解码器)实现自编码器。 我们还学习了如何提取输入分布的隐藏结构是 AI 的常见任务之一。
...
...
@@ -888,6 +886,6 @@ plt.show()
在下一章中,我们将着手介绍 AI 最近最重要的突破之一,即 GAN。 在下一章中,我们将学习 GAN 的核心优势,即其综合看起来真实的数据的能力。
# 6.参考
# 6\. 参考
1.`Ian Goodfellow et al.: Deep Learning. Vol. 1. Cambridge: MIT press, 2016 (http://www.deeplearningbook.org/).`
1.`Ian Goodfellow et al.: Generative Adversarial Nets. Advances in neural information processing systems, 2014 (http://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf).`
在本章中,我们讨论了如何解开 GAN 的潜在表示。 在本章的前面,我们讨论了 InfoGAN 如何最大化互信息以迫使生成器学习解纠缠的潜矢量。 在 MNIST 数据集示例中,InfoGAN 使用三种表示形式和一个噪声代码作为输入。 噪声以纠缠的形式表示其余的属性。 StackedGAN 以不同的方式处理该问题。 它使用一堆编码器 GAN 来学习如何合成伪造的特征和图像。 首先对编码器进行训练,以提供特征数据集。 然后,对编码器 GAN 进行联合训练,以学习如何使用噪声代码控制发电机输出的属性。
在本章中,我们讨论了如何解开 GAN 的潜在表示。 在本章的前面,我们讨论了 InfoGAN 如何最大化互信息以迫使生成器学习解纠缠的潜矢量。 在 MNIST 数据集示例中,InfoGAN 使用三种表示形式和一个噪声代码作为输入。 噪声以纠缠的形式表示其余的属性。 StackedGAN 以不同的方式处理该问题。 它使用一堆编码器 GAN 来学习如何合成伪造的特征和图像。 首先对编码器进行训练,以提供特征数据集。 然后,对编码器 GAN 进行联合训练,以学习如何使用噪声代码控制生成器输出的属性。
在下一章中,我们将着手一种新型的 GAN,它能够在另一个域中生成新数据。 例如,给定马的图像,GAN 可以将其自动转换为斑马的图像。 这种 GAN 的有趣特征是无需监督即可对其进行训练,并且不需要成对的样本数据。
# 5.参考
# 5\. 参考
1.`Xi Chen et al.: InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets. Advances in Neural Information Processing Systems, 2016 (http://papers.nips.cc/paper/6399-infogan-interpretable-representation-learning-by-information-maximizing-generative-adversarial-nets.pdf).`
1.`Xun Huang et al. Stacked Generative Adversarial Networks. IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Vol. 2, 2017 (http://openaccess.thecvf.com/content_cvpr_2017/papers/Huang_Stacked_Generative_Adversarial_CVPR_2017_paper.pdf).`
1.`Yuval Netzer et al.: Reading Digits in Natural Images with Unsupervised Feature Learning. NIPS workshop on deep learning and unsupervised feature learning. Vol. 2011. No. 2. 2011 (https://www-cs.stanford.edu/~twangcat/papers/nips2011_housenumbers.pdf).`
1.`Zhu-Jun-Yan et al.: Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. 2017 IEEE International Conference on Computer Vision (ICCV). IEEE, 2017 (http://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_ICCV_2017_paper.pdf).`
1. `Diederik P. Kingma and Max Welling. Auto-encoding Variational Bayes. arXiv preprint arXiv:1312.6114, 2013 (https://arxiv.org/pdf/1312.6114.pdf).`
1. `Kihyuk Sohn, Honglak Lee, and Xinchen Yan. Learning Structured Output Representation Using Deep Conditional Generative Models. Advances in Neural Information Processing Systems, 2015 (http://papers.nips.cc/paper/5775-learning-structured-output-representation-using-deep-conditional-generative-models.pdf).`
1.`Sutton and Barto: Reinforcement Learning: An Introduction, 2017 (http://incompleteideas.net/book/bookdraft2017nov5.pdf).`
1.`Volodymyr Mnih et al.: Human-level Control through Deep Reinforcement Learning. Nature 518.7540, 2015: 529 (http://www.davidqiu.com:8888/research/nature14236.pdf).`
1. `Krizhevsky Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.`
1. `Liu Wei, et al. "SSD: Single Shot MultiBox Detector." European conference on computer vision. Springer, Cham, 2016.`
1.`Kirillov, Alexander, et al.: Panoptic Segmentation. Proceedings of the IEEE conference on computer vision and pattern recognition. 2019.`
1.`Long, Jonathan, Evan Shelhamer, and Trevor Darrell: Fully Convolutional Networks for Semantic Segmentation. Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.`
与“第 11 章”,“对象检测”相似,我们实现了`DataGenerator`类以多线程方式有效地提供输入数据。 `DataGenerator`对象生成由输入图像`X`及其变换后的图像`X_bar`组成的所需配对训练输入数据(即,连体输入图像)。 `DataGenerator`类中最关键的方法`__data_generation()`显示在“列表 13.5.2”中。 输入图像`X`从原始输入图像中央裁切。 对于 MNIST,这是`24 x 24`像素中心裁剪。 变换后的输入图像`X_bar`可以随机旋转`±20`范围内的某个角度,也可以从图像的任何部分随机裁剪`16 x 16`、`18 x 18`或`20 x 20`像素,然后将其调整为`24 x 24`像素。 作物尺寸存储在`crop_sizes`列表中。
1.`Ji, Xu, João F. Henriques, and Andrea Vedaldi. Invariant Information Clustering for Unsupervised Image Classification and Segmentation. International Conference on Computer Vision, 2019.`
1.`Simonyan, Karen, and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556 (2014).`
本书适用于计划使用 GCP 构建 AI 应用程序的软件开发人员,技术主管和架构师。 除此之外,学生和任何对 AI 应用程序有很好的主意并希望了解可用工具和技术来快速构建原型并最终用于生产级应用程序的人都将从本书中受益。 本书对业务分析师和从业务角度了解数据格局的任何人也很有用。 无需大量的动手经验,就可以按照本书来基于领域知识构建支持 AI 的应用程序。 我们试图逐步提供这些说明,以使读者发现它们易于遵循和实施。
本书适用于计划使用 GCP 构建 AI 应用程序的软件开发人员,技术主管和架构师。 除此之外,学生和任何对 AI 应用程序有很好的主意并希望了解可用工具和技术来快速构建原型并最终用于生产级应用程序的人都将从本书中受益。 本书对业务分析师和从业务角度了解数据格局的任何人也很有用。 无需大量的动手经验,就可以按照本书来基于领域知识构建支持 AI 的应用程序。 我们试图逐步提供这些说明,以使读者发现它们易于遵循和实现。
三个步骤使用 Cloud AI Platform。 如上图所示,您可以使用 Google AI Platform Notebooks,Google Cloud Machine Learning 模型训练以及 Google Cloud AI Platform Prediction 服务来构建项目。 在本章中,我们将介绍如何利用 Google AI Platform Notebooks。 我们在“第 8 章”,“使用 Cloud ML Engine 实施 TensorFlow 模型”和“第 9 章”,“构建预测应用”中介绍了 Google Cloud Machine Learning 模型的训练和预测服务。
三个步骤使用 Cloud AI Platform。 如上图所示,您可以使用 Google AI Platform Notebooks,Google Cloud Machine Learning 模型训练以及 Google Cloud AI Platform Prediction 服务来构建项目。 在本章中,我们将介绍如何利用 Google AI Platform Notebooks。 我们在“第 8 章”,“使用 Cloud ML Engine 实现 TensorFlow 模型”和“第 9 章”,“构建预测应用”中介绍了 Google Cloud Machine Learning 模型的训练和预测服务。
* GCP 将具有更好的跨平台产品集成和可用性。 例如,IBM Power Systems 现在可以在 GCP 上使用。 这样,通过将整个平台迁移到 GCP,即可利用企业已经在大型生产系统中进行的投资。 这将为企业节省实施成本和基础设施成本。
* GCP 将具有更好的跨平台产品集成和可用性。 例如,IBM Power Systems 现在可以在 GCP 上使用。 这样,通过将整个平台迁移到 GCP,即可利用企业已经在大型生产系统中进行的投资。 这将为企业节省实现成本和基础设施成本。
* 即用型 AI 和 ML 模型将启用 GCP。 随着市场的成熟,GCP 将托管越来越多的 AI 和 ML 模型。 这些模型可通过具有固有互操作性的预定义 API 来使用。 GCP 将不断对模型进行训练和调整,并随着时间的推移产生越来越好的结果。 市场将随着使用量的增加而成熟。 签署和定价将简化,以使所有经验级别(包括入门级)的开发人员都能够快速构建其企业应用程序。
* GCP 将提供一个拖放式用户界面,以构建从问题分类到模型部署的整个 AI 管道。 届时,人工智能的力量将完全掌握在业务团队手中,而对 IT 和开发团队的依赖将减少。 平台的简化和民主化将带来进一步的创新,我们将体验不仅使用而且每个人都构建的智能应用程序。
* GCP 将启用针对特定行业和企业的 AI 工具包,以提高各种规模企业的盈利能力和创新能力。 例如,谷歌已经在帮助零售商加速其数字和多渠道收入增长。 除此之外,Google 还帮助零售商变得完全由数据驱动,并提出建议(基于数据)以提高运营效率。 这可以通过利用 GCP,Chrome Enterprise 和 Android 上的 AI 工具以及整个连接的工具箱来实现。
* GCP 上的 AI 工具包还将促进需要大量数据和计算能力以及用于构建 AI 管道的过程和接口的研究项目。 例如,谷歌正在帮助 FDA MyStudies 利用现实世界的数据进行生物学研究。 Google Cloud 正在与 FDA 合作开发 MyStudies 应用程序,并提供了更好,适应性更强的保护和可配置的隐私权政策。 目的是为研究组织提供自动识别和保护个人身份信息的能力。 Google Cloud 将继续投资于各种研究和研究计划,以对该平台进行总体改进,扩大支持的评估数量,并允许与下游分析和可视化工具集成。
* GCP 上的 AI 工具包还将促进需要大量数据和计算能力以及用于构建 AI 管道的过程和接口的研究项目。 例如,谷歌正在帮助 FDA MyStudies 利用现实世界的数据进行生物学研究。 Google Cloud 正在与 FDA 合作开发 MyStudies 应用程序,并提供了更好,适应性更强的保护和可配置的隐私权策略。 目的是为研究组织提供自动识别和保护个人身份信息的能力。 Google Cloud 将继续投资于各种研究和研究计划,以对该平台进行总体改进,扩大支持的评估数量,并允许与下游分析和可视化工具集成。
* AI Hub 是即将加入 GCP 的另一个非常有用的功能。 AI Hub 是用于构建最复杂的 ML 管道的一站式设施。 可以使用预配置的笔记本使用一些预训练的模型来构建 AI 应用程序,以及轻松地训练新模型。 AI Hub 还确保以一致的方式访问相关事件数据集。 还可以在模型开发上进行协作,并利用基于通用框架(例如 TensorFlow)构建的模型。 这极大地促进了在 GCP 上训练和部署模型。
开发发电机有点棘手。 回想一下,我们需要首先将输入的一维噪声整形为三维图像,以启用转置卷积。 我们知道,由于两个网络的对称性,第三维是 256。 那么,前两个维度是什么? 它们是`2 x 2`,在第一个转置的卷积层之后变为`4 x 4`,第二个之后的为`8 x 8`,第三个之后的为`16 x 16`,如果它是`3 x 3`,则与我们的`28 x 28`的目标相去甚远。 同样,它在第三个转置的卷积层之后变为`24 x 24`,这又不够大。 如果它是`4 x 4`,则在第三个转置的卷积层之后变为`32 x 32`。 因此,将线性输入重塑为`4 x 4`图像就足够了。 请注意,现在生成的图像输出的大小为`32 x 32`,这与我们的真实图像的大小`4 x 4`不同。要确保对判别器的输入恒定,我们只需要在真实图像上填充零即可。 在`load_dataset`函数的顶部实现了实图像的零填充:
开发生成器有点棘手。 回想一下,我们需要首先将输入的一维噪声整形为三维图像,以启用转置卷积。 我们知道,由于两个网络的对称性,第三维是 256。 那么,前两个维度是什么? 它们是`2 x 2`,在第一个转置的卷积层之后变为`4 x 4`,第二个之后的为`8 x 8`,第三个之后的为`16 x 16`,如果它是`3 x 3`,则与我们的`28 x 28`的目标相去甚远。 同样,它在第三个转置的卷积层之后变为`24 x 24`,这又不够大。 如果它是`4 x 4`,则在第三个转置的卷积层之后变为`32 x 32`。 因此,将线性输入重塑为`4 x 4`图像就足够了。 请注意,现在生成的图像输出的大小为`32 x 32`,这与我们的真实图像的大小`4 x 4`不同。要确保对判别器的输入恒定,我们只需要在真实图像上填充零即可。 在`load_dataset`函数的顶部实现了实图像的零填充:
数据收集,本质上是用户交互以及他们如何与基于 Web 的应用程序交互的日志,处理这些数据以生成绩效指标,然后最终确定公司可以采取的措施来改善他们的 Web 应用程序统称为 Web 分析。
数据收集,本质上是用户交互以及他们如何与基于 Web 的应用程序交互的日志,处理这些数据以生成表现指标,然后最终确定公司可以采取的措施来改善他们的 Web 应用程序统称为 Web 分析。
自从互联网发明以来,当今的 Web 应用程序每时每刻都会生成大量日志。 即使将鼠标指针闲置在网页上,也可能会报告给 Google Analytics(分析)仪表板,从该站点上,网站管理员可以查看用户正在查看哪些页面以及他们在页面上花费了多少时间。 同样,用户在页面之间采取的流量将是一个非常有趣的指标。