前言
本书解释元学习的基本原理,并帮助你理解“学会学习”(learning to learn)的概念。你将学习各种单样本学习算法,例如孪生网络(siamese network)、原型网络(prototypical network)、关系网络(relation network)和记忆增强网络(memory-augmented network),并在TensorFlow与Keras中实现它们;了解先进的元学习算法,如模型无关元学习(model-agnostic meta learning, MAML)、Reptile和元学习的上下文适应(context adaptation via meta learning, CAML);探索如何使用元随机梯度下降法(meta stochastic gradient descent, Meta-SGD)来快速学习,以及如何使用元学习来进行无监督学习。
本书读者
本书主要写给那些想了解元学习并将其作为先进方法来训练机器学习模型的机器学习爱好者、人工智能研究人员和数据科学家。读者应当具备机器学习实战经验和坚实的Python编程知识。
本书内容
第1章,元学习简介,帮助你理解什么是元学习,并介绍它的不同类型。我们将研究元学习如何通过学习少量数据点来进行少样本学习,然后熟悉梯度下降(gradient descent)以及少样本学习的模型优化。
第2章,使用孪生网络进行人脸识别与音频识别,首先解释什么是孪生网络,以及如何在单样本学习中使用孪生网络,然后研究孪生网络的架构及其一些应用,以及如何使用孪生网络来建立人脸识别模型与音频识别模型。
第3章,原型网络及其变体,解释什么是原型网络以及如何在少样本学习中使用它。我们将建立一个对omniglot字符集进行分类的原型网络,并学习原型网络的不同变体,如高斯原型网络和半原型网络。
第4章,使用TensorFlow构建关系网络与匹配网络,帮助你理解关系网络的架构,及其在单样本、少样本和零样本学习中的用途。我们将介绍如何使用TensorFlow构建关系网络并将学习匹配网络及其架构,还将探索完整的上下文嵌入,以及如何使用TensorFlow构建匹配网络。
第5章,记忆增强神经网络,介绍神经图灵机(NTM)的概念,以及NTM如何利用外部存储空间存储和检索信息。我们将研究NTM中使用的不同寻址机制,并了解记忆增强神经网络(MANN)及其与NTM架构的区别。
第6章,MAML及其变种,介绍一种流行的元学习算法——MAML。我们将探索什么是MAML,如何在监督和强化学习环境中使用它,以及如何从头构建它。此外还会学习对抗性元学习和CAML,其中后者用于元学习中的快速上下文适应。
第7章,Meta-SGD和Reptile,解释如何使用Meta-SGD学习梯度下降算法的所有内容,如初始权重、学习率和更新方向。我们将了解如何从头开始构建Meta-SGD;学习Reptile算法,它可以被视为MAML的改进版;掌握如何使用Reptile算法进行正弦曲线回归。
第8章,梯度一致作为优化目标,介绍如何在元学习环境中使用梯度一致作为优化目标。我们将学习什么是梯度一致及其如何增强元学习算法,还将学习如何从头构建梯度一致算法。
第9章,新进展与未来方向,首先解释什么是任务无关元学习;然后介绍如何在模仿学习中使用元学习,以及如何使用CACTUs算法将MAML应用到无监督学习中;最后在概念空间中探索一种叫作“学会学习”的深度元学习算法。
如何充分利用本书
你需要安装下列软件:
❑ Python
❑ Anaconda
❑ TensorFlow
❑ Keras
下载示例代码
你可以用你的账户从www.packtpub.com下载已购买的Packt图书的示例代码文件。如果你是从其他地方购买的本书,可以访问www.packtpub.com/support并注册,我们将通过电子邮件把文件发送给你。
你可以通过以下步骤下载本书示例代码:
(1) 在www.packtpub.com登录或注册;
(2) 选择SUPPORT标签;
(3) 点击Code Downloads & Errata;
(4) 在Search框输入书名并遵循屏幕上的指示。
下载完文件后,确保使用如下软件的最新版本来解压或提取文件夹。
❑ Windows上建议使用WinRAR/7-Zip。
❑ Mac上建议使用Zipeg/iZip/UnRarX。
❑ Linux上建议使用7-Zip/PeaZip。
本书的代码包也可在GitHub上获取,在GitHub网站搜索Hands-On-Meta-Learning-with-Python即可。如果代码更新了,也会在现有的GitHub仓库上更新。
GitHub网站PackPublishing页面上也列出了我们所出版的各类图书和视频的代码包。欢迎查看!
排版约定
本书采用如下排版约定。
文本中的代码采用等宽字体,例如:“read_image函数将一张图片作为输入,并返回一个NumPy数组。”
代码块的格式如下:
import re import numpy as np from PIL import Image
黑体字:表示新术语、重要的词,或界面上显示的内容。
此图标表示警告或重要信息。
此图标表示提示或诀窍。
保持联系
我们始终欢迎读者的反馈。
一般反馈:如果你对本书有任何疑问,请通过questions@packtpub.com联系我们,并在邮件主题中注明书名。
勘误:虽然我们已经竭尽全力来确保本书内容的准确性,但错误在所难免。如果你发现书中有错,请告知我们,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择图书,点击勘误提交表单链接,并输入详细信息。
反盗版:如果你在网上发现以任何形式复制我们作品的非法行为,请立即将地址或网站名称告知我们,我们将不胜感激。请联系copyright@packtpub.com提供有盗版嫌疑的链接。
成为作者:如果你是某个领域的专家,并且有兴趣编写图书,请访问authors.packtpub.com。
评论
请留下你的评论。阅读并使用本书之后,为何不在购买网站上发表评论呢?其他读者可以参考你的评价来做出购买决定,Packt出版社可以了解你对我们产品的看法,作者也可以看到你对本书的反馈。谢谢!
想了解更多关于Packt的信息,请访问packt.com。
电子书
扫描如下二维码,即可购买本书中文版电子版。