第十七章 图像生成

Image generation

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 变分自编码器
  • 扩散模型
  • 使用预训练的文本到图像模型
  • 探索文本到图像模型学习到的潜在图像空间
  • Variational autoencoders
  • Diffusion models
  • Using a pretrained text-to-image model
  • Exploring the latent image spaces learned by text-to-image models

当今最流行、最成功的创意人工智能应用是图像生成:学习潜在的视觉空间并从中采样,从而创建全新的图像,这些图像是从真实图像中插值而来的——虚构的人物、虚构的地点、虚构的猫狗等等。

阅读全文 »

第十六章 文本生成

Text generation

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 生成模型简史
  • 从零开始训练一个微型 GPT 模型
  • 使用预训练的Transformer模型构建聊天机器人
  • 构建一个能够用自然语言描述图像的多模态模型
  • A brief history of generative modeling
  • Training a miniature GPT model from scratch
  • Using a pretrained Transformer model to build a chatbot
  • Building a multimodal model that can describe images in natural language

当我最初提出在不久的将来,我们所消费的大部分文化内容都将在人工智能的大力协助下创作时,我遭到了彻底的质疑,甚至连资深的机器学习从业者也对此表示怀疑。那是2014年。十年过去了,这种质疑以惊人的速度消散了。生成式人工智能工具如今已成为文字处理器、图像编辑器和开发环境中常见的组成部分。运用生成模型创作的文学和艺术作品也屡获殊荣——这引发了相当大的争议和辩论。[1]人工智能与艺术创作常常交织在一起的世界,如今已不再像是科幻小说里的情节。

阅读全文 »

第十五章 语言模型和Transformer

Language models and the Transformer

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 如何使用深度学习模型生成文本
  • 训练一个模型,用于将英语翻译成西班牙语
  • Transformer 是一种用于文本建模问题的强大架构
  • How to generate text with a deep learning model
  • Training a model to translate from English to Spanish
  • The Transformer, a powerful architecture for text modeling problems

上一章介绍了文本预处理(text preprocessing)和建模的基础知识,本章将探讨一些更复杂的语言问题,例如机器翻译。我们将深入理解Transformer模型,该模型为ChatGPT等产品提供支持,并引发了自然语言处理(NLP)领域的投资热潮。

阅读全文 »

第十四章 文本分类

Text classification

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 自然语言处理(NLP)领域简介
  • 预处理文本输入,将其转换为数值输入
  • 构建简单的文本分类模型
  • An introduction to the field of natural language processing (NLP)
  • Preprocessing text input into numeric input
  • Building simple text classification models

本章将为处理文本输入奠定基础,本书接下来的两章将在此基础上继续深入探讨。读完本章,你将能够以多种方式构建一个简单的文本分类器。这将为下一章构建更复杂的模型(例如 Transformer 模型)做好准备。

阅读全文 »

第十三章 时间序列预测

Timeseries forecasting

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 时间序列机器学习概述
  • 理解循环神经网络(RNN)
  • 将循环神经网络应用于温度预测示例
  • An overview of machine learning for timeseries
  • Understanding recurrent neural networks (RNNs)
  • Applying RNNs to a temperature forecasting example

本章探讨时间序列,其中时间顺序至关重要。我们将重点关注最常见且最有价值的时间序列任务:预测。利用近期数据预测未来趋势是一项强大的能力,无论您是想预测能源需求、管理库存,还是仅仅预测天气。

阅读全文 »

第十二章 目标检测

Object detection

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 理解目标检测问题
  • 两阶段和单阶段目标检测器
  • 从零开始训练一个简单的单阶段检测器
  • 使用预训练的目标检测器
  • Understanding the object detection problem
  • Two-stage and single-stage object detectors
  • Training a simple single-stage detector from scratch
  • Using a pretrained object detector

目标检测的核心在于绘制边界框(也称为边界框)(drawing boxes (called bounding boxes)),将图像中感兴趣的物体框起来(见图 12.1)。这不仅能让你知道图像中有哪些物体,还能让你知道它们的位置。它的一些最常见应用包括:

  • 计数——找出图像中某个物体的出现次数。
  • 跟踪——通过对电影的每一帧执行对象检测,跟踪场景中物体随时间推移的运动情况。
  • 裁剪——识别图像中包含感兴趣对象的区域,将其裁剪出来,并将图像块的更高分辨率版本发送到分类器或光学字符识别 (OCR) 模型。
  • Counting—Find out how many instances of an object are in an image.
  • Tracking—Track how objects move in a scene over time by performing object detection on every frame of a movie.
  • Cropping—Identify the area of an image that contains an object of interest to crop it and send a higher-resolution version of the image patch to a classifier or an Optical Character Recognition (OCR) model.
阅读全文 »

第十一章 图像分割

Image segmentation

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 计算机视觉的不同分支包括:图像分类、图像分割和目标检测。
  • 从零开始构建分割模型
  • 使用预训练的 Segment Anything 模型
  • The different branches of computer vision: image classification, image segmentation, and object detection
  • Building a segmentation model from scratch
  • Using the pretrained Segment Anything Model

第 8 章通过一个简单的用例——二值图像分类——初步介绍了计算机视觉中的深度学习。但计算机视觉远不止图像分类!本章将深入探讨计算机视觉的另一个重要应用——图像分割。

阅读全文 »

第十章 解读卷积神经网络的学习成果

Interpreting what ConvNets learn

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 解释卷积神经网络如何分解输入图像
  • 可视化卷积神经网络学习到的滤波器
  • 可视化图像中负责特定分类决策的区域
  • Interpreting how ConvNets decompose an input image
  • Visualizing the filters learned by ConvNets
  • Visualizing areas in an image responsible for a certain classification decision

构建计算机视觉应用时,一个根本性问题是可解释性为什么分类器会认为某张图像中包含冰箱,而你看到的明明是一辆卡车?这在深度学习用于辅助人类专业知识的应用场景中尤为重要,例如医学影像应用。本章将介绍一系列不同的可视化卷积神经网络学习内容和理解其决策的技术。

人们常说深度学习模型是“黑箱”:它们学习到的表征难以提取并以人类可读的形式呈现。虽然这种说法对某些类型的深度学习模型部分正确,但对卷积神经网络(ConvNets)而言则完全不成立。卷积神经网络学习到的表征非常易于可视化,这很大程度上是因为它们是 对视觉概念的表征(representations of visual concepts)。自 2013 年以来,人们开发了多种可视化和解释这些表征的技术。我们不会一一介绍,但会重点介绍其中三种最易于理解和使用的方法:

  • 可视化卷积神经网络的中间输出(中间激活值) ——有助于理解连续的卷积神经网络层如何转换其输入,并初步了解各个卷积神经网络滤波器的含义。
  • 可视化卷积神经网络的滤波器——有助于精确理解卷积神经网络中每个滤波器所响应的视觉模式或概念。
  • 可视化图像中类别激活的热图——有助于了解图像中哪些部分被识别为属于特定类别,从而帮助您定位图像中的对象。
  • Visualizing intermediate ConvNet outputs (intermediate activations) — Useful for understanding how successive ConvNet layers transform their input, and for getting a first idea of the meaning of individual ConvNet filters
  • Visualizing ConvNets filters — Useful for understanding precisely what visual pattern or concept each filter in a ConvNet is receptive to
  • Visualizing heatmaps of class activation in an image — Useful for understanding which parts of an image were identified as belonging to a given class, thus allowing you to localize objects in images

对于第一种方法——激活可视化——你将使用你在第 8 章中从头开始训练的用于解决猫狗分类问题的小型卷积神经网络。对于接下来的两种方法,你将使用预训练的 Xception 模型。

阅读全文 »

第九章 卷积神经网络架构模式

ConvNet architecture patterns

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 模型架构的模块化-层次-重用公式
  • 卷积神经网络构建标准最佳实践概述:残差连接、批量归一化和深度可分离卷积
  • 计算机视觉模型的持续设计趋势
  • The modularity-hierarchy-reuse formula for model architecture
  • An overview of standard best practices for building ConvNets: residual connections, batch normalization, and depthwise separable convolutions
  • Ongoing design trends for computer vision models

模型的“架构”是创建该模型时所有选择的总和:使用哪些层、如何配置它们、以及如何连接它们。这些选择定义了模型的假设空间:梯度下降可以搜索的可能函数空间,由模型的权重参数化。与特征工程类似,一个好的假设空间编码了你对当前问题及其解决方案的先验知识 。例如,使用卷积层意味着你预先知道输入图像中存在的相关模式是平移不变的。为了有效地从数据中学习,你需要对你要寻找的内容做出假设。

A model’s “architecture” is the sum of the choices that went into creating it: which layers to use, how to configure them, in what arrangement to connect them. These choices define the hypothesis space of your model: the space of possible functions that gradient descent can search over, parameterized by the model’s weights. Like feature engineering, a good hypothesis space encodes prior knowledge that you have about the problem at hand and its solution. For instance, using convolution layers means that you know in advance that the relevant patterns present in your input images are translation-invariant. To effectively learn from data, you need to make assumptions about what you’re looking for.

阅读全文 »

第八章 图像分类

Image classification

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 理解卷积神经网络(ConvNets)
  • 利用数据增强来缓解过拟合
  • 使用预训练的卷积神经网络进行特征提取
  • 对预训练卷积神经网络进行微调
  • Understanding convolutional neural networks (ConvNets)
  • Using data augmentation to mitigate overfitting
  • Using a pretrained ConvNet for feature extraction
  • Fine-tuning a pretrained ConvNet

计算机视觉是深度学习的第一个重大成功案例。它引领了深度学习在2011年至2015年间的初期发展。一种名为卷积神经网络的深度学习方法 在当时开始在图像分类竞赛中取得显著成果。首先是Dan Ciresan赢得了两项小众竞赛(2011年ICDAR汉字识别竞赛和2011年IJCNN德国交通标志识别竞赛),随后,更引人注目的是,在2012年秋季,Hinton的团队赢得了备受瞩目的ImageNet大规模视觉识别挑战赛。此后,在其他计算机视觉任务中,也涌现出了许多令人瞩目的成果。

有趣的是,这些早期的成功并不足以让深度学习在当时成为主流——这花了几年时间。计算机视觉研究界多年来一直致力于神经网络以外的方法,他们并不急于因为出现了一种新技术就放弃这些方法。在2013年和2014年,深度学习仍然面临着许多资深计算机视觉研究人员的强烈质疑。直到2016年,它才最终占据主导地位。一位作者回忆说,在2014年2月,他曾力劝一位前教授转向深度学习。“这是下一个重大突破!”他说道。“嗯,也许这只是一时的风潮,”教授回答道。到了2016年,他的整个实验室都在从事深度学习研究。一个时代到来的理念是无法阻挡的。

如今,你无时无刻不在与基于深度学习的视觉模型(vision models)互动——通过谷歌相册、谷歌图片搜索、手机摄像头、YouTube、OCR软件等等。这些模型也是自动驾驶、机器人、人工智能辅助医疗诊断、自助零售结账系统,甚至是自主农业等前沿研究的核心。

本章介绍卷积神经网络 (ConvNetsCNNs) ,这是一种被大多数计算机视觉应用广泛使用的深度学习模型。您将学习如何将 ConvNets 应用于图像分类问题——特别是那些涉及小型训练数据集的问题,如果您不是大型科技公司,这通常是最常见的应用场景。

阅读全文 »
0%