第七章 深入了解 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文件见“书籍翻译”分类。

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

阅读全文 »

第13章 泊松过程

Poisson processes

泊松过程是事件在时间或空间中发生的简单模型:在一维中,它可以是汽车经过公路检查站;在二维中,是草地上的花朵;在三维中,是星系某个区域内的恒星。泊松过程是更复杂的时间和空间过程的首要构建模块,而这些过程是统计学的一个分支——空间统计学(spatial statistics)的焦点。

泊松过程在概率论中也非常有用,因为它们将许多命名分布联系在一起,并为一些原本推导过程乏味的结果提供了富有洞察力的故事证明。这引出了一种我们将要展示的新解题策略:即使一个问题没有提到泊松过程,有时也可以通过假定随机变量来自某个泊松过程,从而利用便利的泊松过程性质来解题。

在本章中,我们将回顾已经熟悉的一维泊松过程定义,推导并讨论一维泊松过程的三个重要性质,然后将这些性质扩展到更高维度的泊松过程。

阅读全文 »

第12章 马尔可夫链蒙特卡罗

Markov chain Monte Carlo

贯穿本书,我们已经看到模拟是概率论中一项强大的技术。如果你无法说服你的朋友在三门问题(Monty Hall problem)中换门是一个好主意,你可以在一秒钟内模拟玩几千次这个游戏,你的朋友就会看到换门的成功率约为 2/3。如果你不确定如何计算随机变量 \(X\) 的期望和方差,但你知道如何从该分布中生成独立同分布(i.i.d.)的抽取值 \(X_1, X_2, \dots, X_n\),你可以使用模拟抽取值的样本均值和样本方差来近似真实的期望和真实的方差: \[ E(X) \approx \bar{X}_n = \frac{1}{n}(X_1 + \dots + X_n), \] \[ Var(X) \approx \frac{1}{n-1} \sum_{j=1}^{n} (X_j - \bar{X}_n)^2. \]

大数定律告诉我们,如果 \(n\) 很大,这些近似将会很好。通过增加 \(n\),即仅仅通过让计算机运行更长时间(而不是不得不挣扎于一个可能无法处理的求和或积分),我们可以得到越来越好的近似。正如第 10 章所讨论的,这种通过生成随机值来近似某个数值的模拟方法被称为蒙特卡罗方法(Monte Carlo method)

阅读全文 »
0%