Chapter 1 预备知识——深度学习中的导数

本文介绍了深度学习中导数的重要性,包括标量、向量和矩阵的导数计算规则,以及向量链式法则的应用。重点讲解了如何通过计算图和PyTorch的autograd模块实现自动求导,展示了从简单示例到实际应用的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深度学习中的导数


在深度学习的训练过程中,我们经常需要计算导数。导数是函数在某一点的切线斜率,它可以告诉我们函数在某一点的变化率。在深度学习中,我们经常需要计算损失函数对模型参数的导数,以便调整模型参数,使得模型的预测值更接近真实值。在这个notebook中,我们将总结深度学习中常用的一些导数计算规则。在此之前,我们应该具有微积分的基本知识,基本掌握简单的标量求导和链式法则。主要目标是要能够清楚求导过程中的张量形状变化。


1 向量导数

在深度学习中,我们最常使用的数据结构就是张量,因此,我们需要从标量的导数去泛化,推广到向量和矩阵的导数,进而理解张量的导数。在这里,我们总结一些常用的向量导数计算规则,也作为张量导数的引入。

1.1 向量与标量间的导数

  • 标量对向量求导
    y y y是一个标量, x x x是一个向量,我们规定 y y y x x x的导数是一个行向量,它的第 i i i个元素是 y y y x i x_i xi的偏导数(具体原因到后面就可以理解了)。如图:
    图片来源于李沐《动手学习深度学习》

  • ** 向量对标量求导**
    y y y是一个向量, x x x是一个标量,我们规定 y y y x x x的导数是一个列向量,它的第 i i i个元素是 y i y_i yi x x x的偏导数。如图:
    图片来源于李沐《动手学习深度学习》

1.2 向量与向量、矩阵间的导数

  • ** 向量对向量求导**
    y y y是一个向量, x x x是一个向量,我们规定 y y y x x x的导数是一个矩阵,它的第 i i i行第 j j j列的元素是 y i y_i yi x j x_j xj的偏导数。
    我们可以把向量对向量的导数先看作是标量对向量的导数,即 y y y的各个分量对 x x x求导,这样我们就先得到了一个列向量。该列向量的各个元素再对 x x x求导,由于这是标量对向量的导数,所以每一行就得到了一个行向量,把这些行向量排列起来,就得到了一个矩阵。
  • 向量对矩阵求导、矩阵对矩阵求导
    可以想象,我们会得到一个高阶张量。
    图片来源于李沐《动手学习深度学习》

2 向量链式法则

在深度学习中,我们经常需要计算复合函数的导数,这就需要用到链式法则。在这里,我们总结一下向量链式法则。
其实向量的链式法则和标量的链式法则是一样的,只是在求导的过程中不再是从前的标量对标量的求导,而是出现了有向量参与的求导,即链式求导法则同样适用于向量,只是需要考虑向量与标量和向量间的求导,我们可以举一个例子来说明:

x , w x,w x,w ∈ R n \in \mathbb{R}^{n} Rn y y y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值