# 零、前言

随着世界朝着数字化和自动化的方向发展，作为技术专家/程序员，保持自我更新并学习如何利用这些工具和技术非常重要。 本书《Python 迁移学习实用指南》旨在帮助从业人员熟悉并准备好在各自领域中使用这些进步。 本书大致分为三个部分：

*   深度学习基础
*   迁移学习的要点
*   迁移学习案例研究

迁移学习是一种**机器学习**（**ML**）技术，其中在训练一组 ML 问题中获得的知识可以用于训练其他类似类型的问题。

这本书的目的是双重的。 我们将专注于深度学习和迁移学习的详细介绍，并通​​过易于理解的概念和示例将两者进行比较和对比。 第二个重点领域是使用 TensorFlow，Keras 和 Python 生态系统（带动手实例）的实际示例和研究问题。

本书从 ML 和深度学习的核心基本概念开始，然后是一些重要的深度学习架构的描述和覆盖，例如 CNN，DNN，RNN，LSTM 和胶囊网络。 然后，我们的重点转移到迁移学习概念和经过训练的*高级网络*，例如 VGG，Inception 和 ResNet。 我们还将学习如何利用这些系统来改善我们的深度学习模型的表现。 最后，我们重点关注**计算机视觉**，**音频分析**和**自然语言处理**（**NLP**）。

到本书结尾，您将准备好在自己的系统中既实现深度学习又实现迁移学习的原则。

# 这本书是给谁的

《Python 迁移学习实用指南》适用于对数据感兴趣并应用最先进的迁移学习方法来解决实际难题的数据科学家，ML 工程师，分析师和开发人员。

需要具备 ML 和 Python 的基本知识。

# 本书涵盖的内容

第 1 章“机器学习基础”介绍了 CRISP-DM 模型，该模型为任何数据科学，ML 或深度学习项目提供了行业标准框架/工作流程。 我们还将涉及涵盖 ML 领域基础知识的各种重要概念，例如探索性数据分析，特征提取和工程，评估指标等。

第 2 章“深度学习基础知识”提供了深度学习基础知识的旋风之旅，概述了神经网络的基本组成部分以及如何训练深度神经网络。 从单个神经单元工作原理的基础开始，涵盖了重要的概念，例如激活函数，损失函数，优化器和神经网络超参数。 还特别强调建立本地和基于云的深度学习环境。

第 3 章“了解深度学习架构”着重于理解当今在深度学习中使用的各种标准模型架构。 自 1960 年代的传统人工神经网络以来，我们已经走了很长一段路，而基本模型架构，例如完全连接的**深层神经网络**（**DNN**），**卷积神经网络**（**CNN**），**循环神经网络**（**RNN**），**长期记忆**（**LSTM**）网络， 仅举几例，将介绍最新的**胶囊网络**。

第 4 章“迁移学习基础”着眼于与迁移学习概念相关的核心概念，术语和模型架构。 将详细讨论与预训练模型有关的概念和架构。 我们还将把迁移学习与深度学习进行比较和对比，并讨论迁移学习的类型和策略。

第 5 章“释放迁移学习的力量”，以来自 Kaggle 的数据集为例，利用深度学习模型和少量数据点，使读者了解我们面临的挑战，以及迁移学习如何释放其真正的力量和潜力，以在这些情况下为我们提供出色的模型。 在这里，我们将通过较少的数据可用性约束来解决非常受欢迎的猫猫分类任务。

第 6 章“图像识别和分类”是在本书的前两部分中详细讨论的概念的一系列实际应用/案例研究中的第一篇。 本章首先介绍了图像分类的任务，然后继续讨论并实现了针对各种图像分类问题的一些流行的，最新的深度学习模型。

第 7 章“文本文档分类”讨论了迁移学习在非常流行的自然语言处理问题文本文档分类中的应用。 本章从高层次介绍多类别文本分类问题，传统模型，基准文本分类数据集（例如 20 个新闻组）和表现开始。 随后，它介绍了用于文本分类的深度学习文档模型及其相对于传统模型的优势。 我们将学习使用密集向量的单词特征表示，以及如何在文本分类问题中如何利用相同特征来应用迁移学习，从而使源域和目标域可能有所不同。 还描述了其他无监督的任务，例如文档摘要。

第 8 章“音频识别和分类”解决了识别和分类非常短的音频剪辑的难题。 在这里，我们利用一些创新技术来利用迁移学习，这些创新技术将来自计算机视觉领域的预训练深度学习模型的功能应用于完全不同的音频识别领域。

第 9 章“DeepDream”着重介绍了生成型深度学习的领域，这是真正人工智能最前沿的核心思想之一。 我们将重点研究卷积神经（CNN）如何通过迁移学习来思考或梦想和形象化图像中的模式。 由 Google 于 2015 年首次发布，由于深层网络开始从图像中产生有趣的模式，仿佛自己在思考和做梦，它引起了轰动。

第 10 章“风格迁移”利用来自深度学习，迁移学习和生成学习的概念，通过动手实例在不同内容和样式的图像上展示艺术图像神经风格迁移。

第 11 章“自动图像字幕生成器”涵盖了计算机视觉以及自然语言生成中最复杂的问题之一-图像字幕。 虽然将图像分类为固定类别具有挑战性但并非不可能，但这是一个稍微复杂的任务，涉及为任何照片或场景生成类似于人类的自然语言文本说明。 利用迁移学习，自然语言处理和生成模型的功能，您将学习如何从头开始构建自己的自动图像字幕系统。

第 12 章“图像着色”提供了一个独特的案例研究，其任务是为黑白或灰度图像着色。 本章向读者介绍各种色标的基础知识，以及为什么图像着色是一项如此困难的任务。

# 充分利用这本书

1.  如果您精通 ML 和 Python，那就太好了。
2.  对数据分析，机器学习和深度学习的浓厚兴趣将是有益的。

# 使用约定

本书中使用了许多文本约定。

`CodeInText`：指示文本，数据库表名称，文件夹名称，文件名，文件扩展名，路径名，虚拟 URL，用户输入和 Twitter 句柄中的代码字。 这是一个示例：“完成后，请记住使用您喜欢的编辑器（我们使用`vim`）在`~/.bashrc`的末尾添加以下行。”

代码块设置如下：

```py
import glob 
import numpy as np 
import os 
import shutil 
from utils import log_progress 

np.random.seed(42) 
```

当我们希望引起您对代码块特定部分的注意时，相关的行或项目以粗体显示：

```py
preprocessor = Preprocess()
corpus_to_seq = preprocessor.fit(corpus=corpus)

holdout_corpus = test_df['review'].values
holdout_target = test_df['sentiment'].values
holdout_corpus_to_seq = preprocessor.transform(holdout_corpus)
```

任何命令行输入或输出的编写方式如下：

```py
ubuntu@ip:~$ mkdir ssl
ubuntu@ip:~$ cd ssl
ubuntu@ip:~/ssl$
```

**粗体**：表示新术语，重要单词或您在屏幕上看到的单词。 例如，菜单或对话框中的单词会出现在这样的文本中。 这是一个示例：“启动实例后，您可以签出“实例”部分并尝试连接到实例。”

警告或重要提示如下所示。

提示和技巧如下所示。
