神经网络框架 我们已经了解到,为了高效地训练神经网络,我们需要做两件事: 对张量进行操作,例如乘法、加法以及计算一些函数(如Sigmoid或Softmax) 计算所有表达式的梯度,以便执行梯度下降优化 课前测验 虽然 库可以完成第一部分的工作,但我们还需要某种机制来计算梯度。在我们在上一节中开发的我们自己的框架里,我们不得不手动编写所有导数函数,这些函数在执行反向传播的 方法内部。理想情况下,一个框架应该能够让我们计算任何我们定义的表达式的梯度。 另一个重要的方面是能够在GPU或其他专用计算单元(如TPU)上执行计算。深度神经网络训练需要大量的计算,能够在GPU上并行化这些计算非常重要。 ✅ "并行化"是指将计算分布在多个设备上。
我们已经了解到,为了高效地训练神经网络,我们需要做两件事:
虽然 numpy 库可以完成第一部分的工作,但我们还需要某种机制来计算梯度。在我们在上一节中开发的我们自己的框架里,我们不得不手动编写所有导数函数,这些函数在执行反向传播的 backward 方法内部。理想情况下,一个框架应该能够让我们计算任何我们定义的表达式的梯度。
另一个重要的方面是能够在GPU或其他专用计算单元(如TPU)上执行计算。深度神经网络训练需要大量的计算,能够在GPU上并行化这些计算非常重要。
✅ "并行化"是指将计算分布在多个设备上。
目前,最流行的两种神经网络框架是:TensorFlow 和 PyTorch。两者都提供了可以在CPU和GPU上操作张量的低级API。在低级API之上,还有高级API,分别称为Keras 和 PyTorch Lightning。
| 低级API | TensorFlow | PyTorch |
|---|---|---|
| 高级API | Keras | PyTorch Lightning |
低级API 在两个框架中都允许你构建所谓的计算图。这个图定义了给定输入参数时如何计算输出(通常是损失函数),并且可以在有GPU的情况下推送到GPU进行计算。有函数可以对这个计算图进行微分并计算梯度,然后这些梯度可以用于优化模型参数。
高级API 将神经网络视为一系列层,这使得构建大多数神经网络变得非常简单。训练模型通常需要准备数据,然后调用一个 fit 函数来完成任务。
高级API允许你快速构建典型的神经网络,而无需担心很多细节。同时,低级API提供了对训练过程的更多控制,因此它们在研究中被大量使用,当你处理新的神经网络架构时尤其如此。
重要的是要理解,你可以同时使用这两种API。例如,你可以使用低级API开发自己的网络层架构,然后将其嵌入到用高级API构建和训练的大网络中。或者,你可以使用高级API以层序列的形式定义网络,然后使用你自己的低级训练循环来进行优化。两种API都基于相同的底层概念,并且设计为能很好地协同工作。
在这门课程中,我们将提供大部分内容,既适用于PyTorch也适用于TensorFlow。你可以选择你偏好的框架,并只阅读相应的笔记本。如果你不确定选择哪个框架,请阅读一些关于PyTorch与TensorFlow的讨论。你也可以尝试使用两种框架,以便更好地理解它们。
在可能的情况下,我们将使用高级API来简化学习过程。然而,我们认为从头了解神经网络的工作原理非常重要,因此在开始时我们会先从低级API和张量入手。但是,如果你希望快速上手而不花太多时间在这些细节上,你可以跳过这些内容,直接进入高级API笔记本。
继续在以下笔记本中学习:
| 低级API | TensorFlow+Keras 笔记本 | PyTorch |
|---|---|---|
| 高级API | Keras | PyTorch Lightning |
掌握了框架后,让我们回顾一下过拟合的概念。
过拟合是机器学习中的一个重要概念,非常重要!
考虑以下问题:用5个点(由x表示)进行逼近:
![]() |
![]() |
|---|---|
| 线性模型,2个参数 | 非线性模型,7个参数 |
| 训练误差 = 5.3 | 训练误差 = 0 |
| 验证误差 = 5.1 | 验证误差 = 20 |
在模型的丰富性(参数数量)和训练样本数量之间找到正确的平衡非常重要。
从上面的图表可以看出,可以通过非常低的训练误差和较高的验证误差来检测过拟合。通常,在训练过程中,我们将会看到训练误差和验证误差开始下降,然后在某个时刻验证误差可能会停止下降并开始上升。这是过拟合的迹象,表明我们应该在此时停止训练(或至少保存模型的快照)。

如果你发现出现了过拟合,你可以采取以下措施之一:
过拟合实际上是一个更通用的统计问题,称为偏差-方差权衡。如果我们考虑模型中的潜在误差来源,我们可以看到两种类型的误差:
在训练过程中,偏差误差会减小(因为模型学会了近似数据),而方差误差会增加。重要的是在手动(当我们检测到过拟合时)或自动(通过引入正则化)停止训练,以防止过拟合。
在这节课中,你了解了两种最流行的AI框架TensorFlow和PyTorch的不同API。此外,你还学习了一个非常重要的主题——过拟合。
在配套的笔记本中,你会发现底部有一些“任务”;请完成这些任务。
研究以下主题:
问自己以下问题:
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。