type
Page
status
Invisible
date
Jan 8, 2026
slug
summary
动手深度学习v2课程
tags
机器学习
深度学习
category
icon
password
在深度学习中,我们“训练”模型,不断更新它们,使它们在看到越来越多的数据时变得越来越好。 通常情况下,变得更好意味着最小化一个损失函数(loss function), 即一个衡量“模型有多糟糕”这个问题的分数。 最终,我们真正关心的是生成一个模型,它能够在从未见过的数据上表现良好。 但“训练”模型只能将模型与我们实际能看到的数据相拟合。 因此,我们可以将拟合模型的任务分解为两个关键问题:
- 优化(optimization):用模型拟合观测数据的过程;
- 泛化(generalization):数学原理和实践者的智慧,能够指导我们生成出有效性超出用于训练的数据集本身的模型。
2.4.1. 导数和微分
在深度学习中,我们通常选择对于模型参数可微的损失函数。 简而言之,对于每个参数, 如果我们把这个参数增加或减少一个无穷小的量,可以知道损失会以多快的速度增加或减少,
假设我们有一个函数,其输入和输出都是标量。 如果的导数存在,这个极限被定义为
如果存在,则称在处是可微的。如果在一个区间内的每个数上都是可微(differentiable)的,则此函数在此区间中是可微的。因此可以将公式2.4.1中的导数解释为相对的瞬时(instantaneous)变化率。
接下来熟悉一下导数的几个等价符号。给定,其中和分别是函数的自变量和因变量。以下表达式是等价的:
其中符号和是微分运算符,表示微分操作。
下面是一些微分相关的法则
- 常数相乘法则
- 加法法则
- 乘法法则
- 除法法则
2.4.2. 偏导数
刚才只讨论了一个变量的函数的微分。将微分的思想推广到多元函数(multivariate function)上,就引出了偏导数。
设是一个具有个变量的函数。关于第个参数的偏导数(partial derivative)为:
为了计算,可以简单地将看作常数,并计算关于的导数。对于偏导数的表示,以下是等价的:
2.4.3. 梯度
我们可以连结一个多元函数对其所有变量的偏导数,以得到该函数的梯度(gradient)向量。具体而言,设函数的输入是一个维向量,并且输出是一个标量。函数相对于的梯度是一个包含个偏导数的向量:
其中通常在没有歧义时被取代。
假设为维向量,在微分多远函数时经常使用以下规则:
- 对于所有,都有
- 对于所有,都有
- 对于所有,都有
同样,对于任何矩阵,都有
2.4.4. 链式法则
在深度学习中,多元函数通常是复合(composite)的, 所以难以应用上述任何规则来微分这些函数。 幸运的是,链式法则可以被用来微分复合函数。
先考虑单变量函数。假设函数和都是可微的,根据链式法则:
接下来考虑函数具有任意数量的变量的情况。假设可微分函数有变量,其中每个可微分函数都有变量。注意是的函数。对于任意,链式法则给出:
2.4.5. 小结
- 微分和积分是微积分的两个分支,前者可以应用于深度学习中的优化问题。
- 导数可以被解释为函数相对于其变量的瞬时变化率,它也是函数曲线的切线的斜率。
- 梯度是一个向量,其分量是多变量函数相对于其所有变量的偏导数。
- 链式法则可以用来微分复合函数。
