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

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 应用于图像分类问题——特别是那些涉及小型训练数据集的问题,如果您不是大型科技公司,这通常是最常见的应用场景。

阅读全文 »

第七章 深入了解 Keras

A deep dive on Keras

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 创建 Keras 模型的不同方法:Sequential类、函数式 API 和模型子类化
  • 如何使用 Keras 内置的训练和评估循环,包括如何使用自定义指标和自定义损失函数。
  • 使用 Keras 回调函数进一步自定义训练过程
  • 使用 TensorBoard 来监控您的训练和评估指标随时间的变化
  • 如何从零开始编写自己的训练和评估循环

你已经开始积累一些使用 Keras 的经验了。你熟悉Sequential模型、Dense层以及用于训练、评估和推理的内置 API——trainevaluatecompile()``fit()catch``evaluate()catch predict()。你甚至在第 3 章中学习了如何继承 TrainingLayer来创建自定义层,以及如何使用 TensorFlow、JAX 和 PyTorch 中的梯度 API 来实现逐步训练循环。

在接下来的章节中,我们将深入探讨计算机视觉、时间序列预测、自然语言处理和生成式深度学习(computer vision, timeseries forecasting, natural language processing, and generative deep learning)。这些复杂的应用需要的远不止Sequential架构和默认fit()循环。所以,首先让我们把你培养成 Keras 专家!在本章中,你将全面了解使用 Keras API 的关键方法:你需要掌握的所有内容,足以应对接下来遇到的各种高级深度学习用例。

阅读全文 »

第六章 机器学习的通用工作流程

The universal workflow of machine learning

本章内容

  • 构建机器学习问题
  • 开发工作模型
  • 在生产环境中部署和维护您的模型

我们之前的例子都假设我们已经有了一个带标签的数据集,可以立即开始训练模型。但在现实世界中,情况往往并非如此。你不是从数据集开始,而是从问题开始。

阅读全文 »

第五章 机器学习基础

Fundamentals of machine learning

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 理解泛化和优化之间的张力( Understanding the tension between generalization and optimization ),这是机器学习中的一个根本问题
  • 机器学习模型的评估方法
  • 提高模型拟合度的最佳实践
  • 实现更好泛化的最佳实践

读完第四章的三个实例后,你应该开始熟悉如何使用神经网络解决分类和回归问题,并且已经了解了机器学习的核心问题:过拟合(overfitting)。本章将把你对机器学习的一些新理解形式化为一个坚实的理论框架,重点强调准确评估模型的重要性以及训练和泛化之间的平衡。

阅读全文 »

第四章 分类与回归

Classification and regression

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 您的第一个真实世界机器学习工作流程示例
  • 处理二元分类和类别分类问题
  • 处理连续回归问题

本章旨在引导你开始使用神经网络解决实际问题。你将巩固从第 2 章和第 3 章中获得的知识,并将所学知识应用于三个新任务,这三个任务涵盖了神经网络的三种最常见应用场景——二元分类、类别分类和标量回归(binary classification, categorical classification, and scalar regression):

  • 将电影评论分类为正面或负面(二元分类)
  • 按主题对新闻稿进行分类(类别分类)
  • 利用房地产数据估算房屋价格(标量回归)

这些示例将是您首次接触端到端机器学习工作流程:您将了解数据预处理、基本模型架构原则和模型评估(data preprocessing, basic model architecture principles, and model evaluation.)。

学完本章后,你将能够使用神经网络处理向量数据的简单分类和回归任务。之后,你将准备好在第五章中开始构建更系统、更具理论基础的机器学习理解。

阅读全文 »

第三章 TensorFlow、PyTorch、JAX 和 Keras 简介

Introduction to TensorFlow, PyTorch, JAX, and Keras

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 深入了解所有主要的深度学习框架及其关系
  • 概述深度学习核心概念如何在所有框架中转化为代码

本章旨在为您提供开始实践深度学习所需的一切。首先,您将熟悉三种可与 Keras 配合使用的常用深度学习框架:

  • TensorFlow(https://tensorflow.org
  • PyTorch ( https://pytorch.org/ )
  • JAX(https://jax.readthedocs.io/)

然后,在第 2 章中你第一次接触 Keras 的基础上,我们将回顾神经网络的核心组件以及它们如何转换为 Keras API。

读完本章,你就可以开始学习实际的、现实世界的应用了——这将从第 4 章开始。

阅读全文 »

第二章 神经网络的数学基础

The mathematical building blocks of neural networks

运行代码

在 Colab 上运行

在 GitHub 上查看

本章内容

  • 神经网络的第一个例子
  • 张量和张量运算( Tensors and tensor operations)
  • 神经网络如何通过反向传播和梯度下降进行学习

理解深度学习需要熟悉许多简单的数学概念:张量张量运算微分梯度下降(tensors, tensor operations, differentiation, gradient descent)等等。本章的目标是在不涉及过多技术细节的情况下,帮助你建立对这些概念的直觉。特别是,我们将避免使用数学符号,因为这些符号可能会给没有数学基础的人造成不必要的障碍,而且对于清晰地解释概念也并非必要。对数学运算最精确、最明确的描述就是它的可执行代码。

为了充分理解张量和梯度下降的概念,本章将以一个神经网络的实际例子作为开篇。然后,我们将逐一讲解引入的每一个新概念。请记住,这些概念对于理解后续章节中的实际例子至关重要!

读完本章后,你将对深度学习背后的数学理论有一个直观的理解,并准备好在第 3 章中开始深入学习现代深度学习框架。

阅读全文 »

第一章 什么是深度学习?

本章内容

  • 基本概念的高级定义
  • 对机器学习原理的浅显介绍
  • 深度学习日益普及及其未来潜力

过去十年,人工智能(AI)一直是媒体热议的话题。机器学习、深度学习和人工智能频频出现在无数文章中,甚至在科技类刊物之外也屡见不鲜。我们被许诺一个充满智能聊天机器人、自动驾驶汽车和虚拟助手的未来——这个未来有时被描绘得阴暗,有时又被描绘成乌托邦,人类工作岗位将变得稀少,大部分经济活动将由机器人或人工智能代理完成。对于机器学习从业者而言,能够在纷繁的信息中识别出真正有价值的信号至关重要,这样才能区分真正具有变革意义的进展和过度炒作的新闻稿。我们的未来岌岌可危,而你也将在其中扮演积极的角色:读完本书后,你将成为开发这些人工智能系统的一员。那么,让我们来探讨以下问题:深度学习迄今为止取得了哪些成就?它的意义有多重大?我们未来的发展方向是什么?你是否应该相信这些炒作?

阅读全文 »

花了一个半月的时间,终于把《Introduction to Probability》(《概率导论》)读完。机翻并核对后(R部分未核对)的md文件见“书籍翻译”分类。

前段时间集中看一些文学类书籍,把自己变得太感性了,故而决心转到技术类书籍上来。之前看了很多关于深度学习、大语言模型、统计、数据类的书籍,过程中发现自己对很多概率的基本概念及各类分布处于一知半解和零零碎碎了解的层面,故找到了这本经典的《概率导论》。看完之后,才明白一本数学类的书籍可以编写得这么引人入胜,相比大学期间教材的劝退,这本书通过日常生活的例子和故事,逐渐引入了各种概率概念和分布,让人印象深刻和爱不释手。

阅读全文 »
0%