# 零、前言 一次学习一直是许多科学家的活跃研究领域,他们试图找到一种在学习方面尽可能接近人类的认知机器。 关于人类如何实现一次学习的理论多种多样,从非参数模型和深度学习架构到概率模型,可以采用多种方法来实现这一功能。 《Python 一次学习实用指南》将专注于设计和学习可以从一个或几个训练示例中学习与对象有关的信息的模型。 本书将首先为您简要介绍深度学习和一次学习,以帮助您入门。 然后,您将学习实现此目标的不同方法,包括非参数模型,深度学习架构和概率模型。 精通核心原理后,您将探索一些实用的实际示例和使用 scikit-learn 和 PyTorch 的一次学习的实现。 到本书结尾,您将熟悉单发和少发的学习方法,并能够通过单发学习来加速深度学习过程。 # 这本书是给谁的 人工智能研究人员以及希望应用一次学习以减少其模型的总体训练时间的机器学习和深度学习专家,将发现本书是非常好的入门学习资源。 # 本书涵盖的内容 第 1 章,“一次学习简介”告诉我们什么是单次学习及其工作原理。 它还告诉我们有关人脑的工作原理以及它如何转换为机器学习。 第 2 章,“基于度量的方法”通过将核心保持为基本的 k 最近邻,探索了使用不同形式的嵌入和评估度量的方法。 第 3 章,“基于模型的方法”探索了两种架构,其内部架构有助于训练 K 次学习模型。 第 4 章,“基于优化的方法”探索了各种形式的优化算法,即使数据量很少,它们也有助于提高准确率。 第 5 章,“基于生成模型的方法”探索了一种用概率模型表示对象类别的贝叶斯学习框架的开发。 第 6 章,“结论和其他方法”仔细研究了架构,指标和算法的某些方面,以了解我们如何确定方法是否接近人脑的能力。 # 充分利用这本书 本书需要具备基本的机器学习和深度学习概念知识以及基础数学知识,以及对 Python 编程的一些了解。 | **本书涵盖的软件/硬件** | **操作系统要求** | | --- | --- | | 软件:Jupyter 笔记本,Anaconda 语言和库:Python 3.X 及更高版本,PyTorch 1.4,Scikit 学习。 | 任何操作系统(最好是 Linux 环境)。 | | 硬件:无。 但是如果您想提高训练速度。 您可以在 GPU 硬件上进行少量修改即可使用相同的代码。 | | **如果您使用的是本书的数字版本,建议您自己键入代码或通过 GitHub 存储库访问代码(下一节提供链接)。 这样做将帮助您避免任何与代码复制和粘贴有关的潜在错误。** # 下载示例代码文件 您可以从 [www.packt.com](http://www.packt.com) 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 [www.packt.com/support](http://www.packt.com/support) 并注册以将文件直接通过电子邮件发送给您。 您可以按照以下步骤下载代码文件: 1. 登录或注册 [www.packt.com](http://www.packt.com) 。 2. 选择支持选项卡。 3. 单击代码下载和勘误。 4. 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。 下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹: * Windows 的 WinRAR/7-Zip * Mac 版 Zipeg/iZip/UnRarX * 适用于 Linux 的 7-Zip/PeaZip [本书的代码包也托管在 GitHub 上](https://github.com/PacktPublishing/Hands-On-One-shot-Learning-with-Python)。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。 我们还从[这里](https://github.com/PacktPublishing/)提供了丰富的书籍和视频目录中的其他代码包。 去看一下! # 下载彩色图像 我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 [您可以在此处下载](https://www.packtpub.com/sites/default/files/downloads/9781838825461_ColorImages.pdf)。 # 使用约定 本书中使用了许多文本约定。 `CodeInText`:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“导入`iris`数据集。” 代码块设置如下: ```py # import small dataset iris = datasets.load_iris() X = iris.data y = iris.target ``` 当我们希望引起您对代码块特定部分的注意时,相关行或项目以粗体显示: ```py [2 1 2 1 2 0 1 0 0 0 2 1 1 0 0 0 2 2 1 2 1 0 0 1 2 0 0 2 0 0] ``` 任何命令行输入或输出的编写方式如下: ```py pip install -r requirements.txt ``` **粗体**:表示新术语,重要单词或您在屏幕上看到的单词。 例如,菜单或对话框中的单词会出现在这样的文本中。 这是一个示例:“我们可以使用称为**三重损失**的新损失函数,该函数可以帮助架构获得更好的结果。” 警告或重要提示如下所示。 提示和技巧如下所示。