【深度学习-Day 3】搞懂微积分关键:导数、偏导数、链式法则与梯度详解

Langchain系列文章目录

01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
07-【深度解析】从GPT-1到GPT-4:ChatGPT背后的核心原理全揭秘

PyTorch系列文章目录

机器学习系列文章目录

深度学习系列文章目录

01-【深度学习-Day 1】为什么深度学习是未来?一探究竟AI、ML、DL关系与应用
02-【深度学习-Day 2】图解线性代数:从标量到张量,理解深度学习的数据表示与运算
03-【深度学习-Day 3】搞懂微积分关键:导数、偏导数、链式法则与梯度详解



前言

大家好!欢迎来到深度学习系列专栏的第三篇文章。在上一篇【深度学习-Day 2】中,我们一起学习了线性代数的核心知识,掌握了处理数据的基本“砖块”——向量和矩阵。今天,我们将继续深入数学基础的另一大支柱——微积分

你可能会问,为什么深度学习也需要微积分?简单来说,深度学习模型的训练过程本质上是一个优化问题:我们希望找到一组模型参数,使得模型的预测误差(损失)最小。而微积分,特别是其中的导数梯度概念,正是帮助我们找到这个最小值的关键工具。此外,神经网络中误差反向传播的核心机制,也离不开微积分中的链式法则

本篇文章将带你:

  • 理解导数和偏导数的基本概念及其几何意义。
  • 掌握复合函数求导的关键——链式法则。
  • 认识梯度及其在优化中的核心作用。

掌握这些微积分的关键概念,将为你后续理解神经网络的训练原理(如梯度下降、反向传播)扫清障碍。让我们一起开始吧!

一、为什么深度学习需要微积分?

想象一下,你正在一个连绵起伏的山谷中,目标是找到山谷的最低点(代表模型的最小损失)。但你被浓雾笼罩,只能感知到脚下地面的坡度。你会怎么做?最直观的方法是:沿着当前位置最陡峭的下坡方向走一小步,然后重复这个过程,直到走到一个相对平坦的地方(可能是最低点)。

这个“寻找最低点”的过程,在深度学习中被称为优化,而我们用来描述“坡度”和“最陡峭下坡方向”的工具,就是微积分中的导数梯度

  • 导数/偏导数:告诉我们函数在某一点沿着某个方向的变化率(坡度)。在深度学习中,它衡量了模型参数(如权重、偏置)的微小变动对损失函数的影响程度。
  • 梯度:由各个参数的偏导数组成的向量,指向函数值增长最快的方向。因此,负梯度方向就是函数值下降最快的方向,也就是我们“下山”要走的方向。
  • 链式法则:神经网络通常是层层嵌套的复杂函数。当我们计算损失函数关于网络深层参数的梯度时,需要链式法则来将误差从输出层逐层反向传播,计算出每一层参数对最终误差的贡献。

因此,微积分是理解和实现模型优化(尤其是梯度下降法)以及神经网络核心算法(反向传播)的必备基础。

二、导数与微分:理解变化率的基础

2.1 什么是导数?

2.1.1 定义与直观理解

导数(Derivative)描述了函数值随自变量变化的瞬时变化率。通俗地讲,就是函数在某一点上的“斜率”或者“坡度”。

对于单变量函数 y = f ( x ) y = f(x) y=f(x),它在点 x 0 x_0 x0 处的导数记作 f ′ ( x 0 ) f'(x_0) f(x0) d y d x ∣ x = x 0 \frac{dy}{dx}|_{x=x_0} dxdyx=x0 d f d x ( x 0 ) \frac{df}{dx}(x_0) dxdf(x0)。它表示当 x x x x 0 x_0 x0 附近发生极其微小的变化时, y y y 值相应变化的速率。

数学上的严格定义是:
f ′ ( x 0 ) = lim ⁡ Δ x → 0 f ( x 0 + Δ x ) − f ( x 0 ) Δ x f'(x_0) = \lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} f(x0)=Δx0limΔxf(x0+Δx)f(x0)
这个公式计算的是当自变量的增量 Δ x \Delta x Δx 趋近于 0 时,函数增量 Δ y = f ( x 0 + Δ x ) − f ( x 0 ) \Delta y = f(x_0 + \Delta x) - f(x_0) Δy=f(x0+Δx)f(x0) 与自变量增量 Δ x \Delta x Δx 之比的极限。

2.1.2 几何意义

导数的几何意义是函数 y = f ( x ) y = f(x) y=f(x) 在点 ( x 0 , f ( x 0 ) ) (x_0, f(x_0)) (x0,f(x0))切线的斜率

  • 如果 f ′ ( x 0 ) > 0 f'(x_0) > 0 f(x0)>0,表示函数在该点处是增加的(切线向上倾斜)。
  • 如果 f ′ ( x 0 ) < 0 f'(x_0) < 0 f(x0)<0,表示函数在该点处是减少的(切线向下倾斜)。
  • 如果 f ′ ( x 0 ) = 0 f'(x_0) = 0 f(x0)=0,表示函数在该点处可能达到极值(局部最大或最小,切线是水平的)。这对于我们寻找损失函数的最小值至关重要。

2.1.3 示例

考虑函数 f ( x ) = x 2 f(x) = x^2 f(x)=x2。我们来求它在 x = 2 x=2 x=2 处的导数。
根据定义:
f ′ ( 2 ) = lim ⁡ Δ x → 0 ( 2 + Δ x ) 2 − 2 2 Δ x = lim ⁡ Δ x → 0 4 + 4 Δ x + ( Δ x ) 2 − 4 Δ x = lim ⁡ Δ x → 0 4 Δ x + ( Δ x ) 2 Δ x = lim ⁡ Δ x → 0 ( 4 + Δ x ) = 4 \begin{aligned} f'(2) &= \lim_{\Delta x \to 0} \frac{(2 + \Delta x)^2 - 2^2}{\Delta x} \\ &= \lim_{\Delta x \to 0} \frac{4 + 4\Delta x + (\Delta x)^2 - 4}{\Delta x} \\ &= \lim_{\Delta x \to 0} \frac{4\Delta x + (\Delta x)^2}{\Delta x} \\ &= \lim_{\Delta x \to 0} (4 + \Delta x) \\ &= 4 \end{aligned} f(2)=Δx0limΔx(2+Δx)222=Δx0limΔx4+x+(Δx)24=Δx0limΔxx+(Δx)2=Δx0lim(4+Δx)=4
所以,函数 f ( x ) = x 2 f(x) = x^2 f(x)=x2 x = 2 x=2 x=2 处的导数是 4 4 4,意味着该点切线的斜率是 4 4 4

2.2 基本求导法则

记住一些常见的求导法则可以大大简化计算:

  • 常数法则: ( C ) ′ = 0 (C)' = 0 (C)=0 (常数的导数为0)
  • 幂函数法则: ( x n ) ′ = n x n − 1 (x^n)' = nx^{n-1} (xn)=nxn1 (例如 ( x 2 ) ′ = 2 x (x^2)' = 2x (x2)=2x, ( x 3 ) ′ = 3 x 2 (x^3)' = 3x^2 (x3)=3x2)
  • 和/差法则: ( f ( x ) ± g ( x ) ) ′ = f ′ ( x ) ± g ′ ( x ) (f(x) \pm g(x))' = f'(x) \pm g'(x) (f(x)±g(x))=f(x)±g(x)
  • 乘积法则: ( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) + f ( x ) g ′ ( x ) (f(x)g(x))' = f'(x)g(x) + f(x)g'(x) (f(x)g(x))=f(x)g(x)+f(x)g(x)
  • 商法则: ( f ( x ) g ( x ) ) ′ = f ′ ( x ) g ( x ) − f ( x ) g ′ ( x ) [ g ( x ) ] 2 \left(\frac{f(x)}{g(x)}\right)' = \frac{f'(x)g(x) - f(x)g'(x)}{[g(x)]^2} (g(x)f(x))=[g(x)]2f(x)g(x)f(x)g(x) (其中 g ( x ) ≠ 0 g(x) \neq 0 g(x)=0)

对于深度学习,我们更常遇到的是复合函数的求导,这就需要用到链式法则。

2.3 Python 求导示例 (使用 SymPy)

Python 的 sympy 库可以帮助我们进行符号计算,包括求导。

import sympy

# 定义符号变量 x
x = sympy.symbols('x')

# 定义函数 f(x) = x^2
f = x**2

# 计算导数
f_prime = sympy.diff(f, x)

print(f"函数 f(x) = {f}")
print(f"导数 f'(x) = {f_prime}")

# 计算在 x=2 处的导数值
derivative_at_2 = f_prime.subs(x, 2)
print(f"在 x=2 处的导数值 f'(2) = {derivative_at_2}")

# 另一个例子:f(x) = x^3 + 2*x + 1
g = x**3 + 2*x + 1
g_prime = sympy.diff(g, x)
print(f"\n函数 g(x) = {g}")
print(f"导数 g'(x) = {g_prime}")

运行结果:

函数 f(x) = x**2
导数 f'(x) = 2*x
在 x=2 处的导数值 f'(2) = 4

函数 g(x) = x**3 + 2*x + 1
导数 g'(x) = 3*x**2 + 2

三、偏导数:处理多变量函数

3.1 从单变量到多变量

深度学习模型中的损失函数通常依赖于多个参数(权重 w 1 , w 2 , . . . , w n w_1, w_2, ..., w_n w1,w2,...,wn 和偏置 b 1 , b 2 , . . . , b m b_1, b_2, ..., b_m b1,b2,...,bm)。例如,一个简单的线性回归损失可能是 L ( w , b ) = ∑ i = 1 N ( y i − ( w x i + b ) ) 2 L(w, b) = \sum_{i=1}^N (y_i - (wx_i + b))^2 L(w,b)=i=1N(yi(wxi+b))2,这里的损失 L L L 同时是 w w w b b b 的函数。

当函数有多个自变量时,我们想知道函数值沿着某一个自变量方向的变化率,这时就需要引入偏导数(Partial Derivative)的概念。

3.2 偏导数的概念与计算

偏导数是指多元函数对其中一个自变量求导,而将其他所有自变量视为常数。

对于函数 z = f ( x , y ) z = f(x, y) z=f(x,y)

  • f f f x x x 的偏导数记作 ∂ f ∂ x \frac{\partial f}{\partial x} xf f x f_x fx。计算时,将 y y y 看作常数,然后对 x x x 求导。
  • f f f y y y 的偏导数记作 ∂ f ∂ y \frac{\partial f}{\partial y} yf f y f_y fy。计算时,将 x x x 看作常数,然后对 y y y 求导。

3.2.1 示例

考虑函数 f ( x , y ) = x 2 + 3 x y + y 2 f(x, y) = x^2 + 3xy + y^2 f(x,y)=x2+3xy+y2

  • ∂ f ∂ x \frac{\partial f}{\partial x} xf:将 y y y 视为常数。
    ∂ f ∂ x = ∂ ∂ x ( x 2 ) + ∂ ∂ x ( 3 x y ) + ∂ ∂ x ( y 2 ) = 2 x + 3 y ⋅ ∂ ∂ x ( x ) + 0 (因为  y 2  被视为常数) = 2 x + 3 y \begin{aligned} \frac{\partial f}{\partial x} &= \frac{\partial}{\partial x}(x^2) + \frac{\partial}{\partial x}(3xy) + \frac{\partial}{\partial x}(y^2) \\ &= 2x + 3y \cdot \frac{\partial}{\partial x}(x) + 0 \quad \text{(因为 } y^2 \text{ 被视为常数)} \\ &= 2x + 3y \end{aligned} xf=x(x2)+x(3xy)+x(y2)=2x+3yx(x)+0(因为 y2 被视为常数)=2x+3y

  • ∂ f ∂ y \frac{\partial f}{\partial y} yf:将 x x x 视为常数。
    ∂ f ∂ y = ∂ ∂ y ( x 2 ) + ∂ ∂ y ( 3 x y ) + ∂ ∂ y ( y 2 ) = 0 + 3 x ⋅ ∂ ∂ y ( y ) + 2 y (因为  x 2  被视为常数) = 3 x + 2 y \begin{aligned} \frac{\partial f}{\partial y} &= \frac{\partial}{\partial y}(x^2) + \frac{\partial}{\partial y}(3xy) + \frac{\partial}{\partial y}(y^2) \\ &= 0 + 3x \cdot \frac{\partial}{\partial y}(y) + 2y \quad \text{(因为 } x^2 \text{ 被视为常数)} \\ &= 3x + 2y \end{aligned} yf=y(x2)+y(3xy)+y(y2)=0+3xy(y)+2y(因为 x2 被视为常数)=3x+2y

3.3 几何意义

对于二元函数 z = f ( x , y ) z = f(x, y) z=f(x,y),其图像是一个三维空间中的曲面。

  • 偏导数 ∂ f ∂ x ( x 0 , y 0 ) \frac{\partial f}{\partial x}(x_0, y_0) xf(x0,y0) 表示在点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 处,沿着 x x x 轴方向(保持 y = y 0 y=y_0 y=y0 不变)曲面切线的斜率。
  • 偏导数 ∂ f ∂ y ( x 0 , y 0 ) \frac{\partial f}{\partial y}(x_0, y_0) yf(x0,y0) 表示在点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 处,沿着 y y y 轴方向(保持 x = x 0 x=x_0 x=x0 不变)曲面切线的斜率。

四、链式法则:复合函数的求导利器

神经网络本质上是一个巨大的复合函数:输入数据经过第一层变换得到结果,这个结果又作为第二层的输入,依此类推,直到最终输出。要计算损失函数关于网络内部参数(比如第一层的权重)的导数,就必须使用链式法则(Chain Rule)。

4.1 复合函数回顾

如果一个变量 y y y 是变量 u u u 的函数 ( y = f ( u ) y=f(u) y=f(u)),而 u u u 又是变量 x x x 的函数 ( u = g ( x ) u=g(x) u=g(x)),那么 y y y 间接是 x x x 的函数,称为复合函数,记作 y = f ( g ( x ) ) y = f(g(x)) y=f(g(x))

例如, y = sin ⁡ ( x 2 ) y = \sin(x^2) y=sin(x2) 就是一个复合函数,可以看作 y = sin ⁡ ( u ) y = \sin(u) y=sin(u) u = x 2 u = x^2 u=x2 的复合。

4.2 单变量链式法则

单变量链式法则指出,复合函数 y = f ( g ( x ) ) y=f(g(x)) y=f(g(x)) x x x 的导数等于 y y y u u u 的导数乘以 u u u x x x 的导数:
d y d x = d y d u ⋅ d u d x \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} dxdy=dudydxdu
或者写成 ( f ( g ( x ) ) ) ′ = f ′ ( g ( x ) ) ⋅ g ′ ( x ) (f(g(x)))' = f'(g(x)) \cdot g'(x) (f(g(x)))=f(g(x))g(x)

直观理解 x x x 的微小变化 Δ x \Delta x Δx 导致 u u u 变化约 d u d x Δ x \frac{du}{dx}\Delta x dxduΔx,而 u u u 的这个变化又导致 y y y 变化约 d y d u ( d u d x Δ x ) \frac{dy}{du} (\frac{du}{dx}\Delta x) dudy(dxduΔx)。所以 y y y 相对于 x x x 的变化率就是两者的乘积。

示例:求 y = sin ⁡ ( x 2 ) y = \sin(x^2) y=sin(x2) 的导数。
u = x 2 u = x^2 u=x2,则 y = sin ⁡ ( u ) y = \sin(u) y=sin(u)
我们知道 d y d u = cos ⁡ ( u ) \frac{dy}{du} = \cos(u) dudy=cos(u) d u d x = 2 x \frac{du}{dx} = 2x dxdu=2x
根据链式法则:
d y d x = d y d u ⋅ d u d x = cos ⁡ ( u ) ⋅ 2 x \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} = \cos(u) \cdot 2x dxdy=dudydxdu=cos(u)2x
u = x 2 u=x^2 u=x2 代回:
d y d x = cos ⁡ ( x 2 ) ⋅ 2 x = 2 x cos ⁡ ( x 2 ) \frac{dy}{dx} = \cos(x^2) \cdot 2x = 2x \cos(x^2) dxdy=cos(x2)2x=2xcos(x2)

4.3 多变量链式法则 (核心!)

当涉及多个变量和多个中间函数时,链式法则会变得更复杂,但思想是相同的:最终输出对某个输入变量的偏导数,等于输出对所有直接依赖的中间变量的偏导数,乘以这些中间变量对该输入变量的偏导数,然后加起来(如果有多条路径)。

假设 z = f ( u , v ) z = f(u, v) z=f(u,v),而 u = g ( x , y ) u = g(x, y) u=g(x,y) v = h ( x , y ) v = h(x, y) v=h(x,y)。我们想求 z z z x x x 的偏导数 ∂ z ∂ x \frac{\partial z}{\partial x} xz
x x x 的变化会通过两条路径影响 z z z

  1. x → u → z x \rightarrow u \rightarrow z xuz
  2. x → v → z x \rightarrow v \rightarrow z xvz

根据链式法则,我们需要将这两条路径的影响加起来:
∂ z ∂ x = ∂ z ∂ u ∂ u ∂ x + ∂ z ∂ v ∂ v ∂ x \frac{\partial z}{\partial x} = \frac{\partial z}{\partial u} \frac{\partial u}{\partial x} + \frac{\partial z}{\partial v} \frac{\partial v}{\partial x} xz=uzxu+vzxv
同样地,求 z z z y y y 的偏导数:
∂ z ∂ y = ∂ z ∂ u ∂ u ∂ y + ∂ z ∂ v ∂ v ∂ y \frac{\partial z}{\partial y} = \frac{\partial z}{\partial u} \frac{\partial u}{\partial y} + \frac{\partial z}{\partial v} \frac{\partial v}{\partial y} yz=uzyu+vzyv

4.4 在神经网络中的体现

这正是**反向传播(Backpropagation)**算法的核心!神经网络的训练目标是最小化损失函数 L L L。损失 L L L 是网络最后一层输出的函数,而最后一层的输出又是前面一层输出的函数,以此类推,直到网络的输入和参数。

当我们想计算损失 L L L 关于网络中某个参数 w w w (可能在很深的层)的偏导数 ∂ L ∂ w \frac{\partial L}{\partial w} wL 时,就需要利用链式法则,将梯度的计算从输出层开始,一层一层地向后传递,直到计算出 L L L 关于 w w w 的偏导数。这个过程就是反向传播。我们将在后续文章中详细讲解反向传播。

五、梯度:指向最快上升的方向

5.1 什么是梯度?

对于多元函数 f ( x 1 , x 2 , . . . , x n ) f(x_1, x_2, ..., x_n) f(x1,x2,...,xn),其梯度(Gradient)是一个向量,由该函数对所有自变量的偏导数构成:
∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . , ∂ f ∂ x n ) \nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, ..., \frac{\partial f}{\partial x_n} \right) f=(x1f,x2f,...,xnf)
其中, ∇ \nabla 是梯度算子(Nabla)。

梯度的重要特性

  1. 方向:梯度向量 ∇ f \nabla f f 指向函数 f f f 在该点增长最快的方向。
  2. 大小:梯度向量的模(长度) ∣ ∣ ∇ f ∣ ∣ ||\nabla f|| ∣∣∇f∣∣ 表示在这个最快增长方向上的变化率(即最大坡度)。

5.2 梯度与优化的关系

在深度学习中,我们的目标是最小化损失函数 L ( θ ) L(\theta) L(θ),其中 θ \theta θ 代表模型的所有参数(如权重和偏置)。

既然梯度 ∇ L ( θ ) \nabla L(\theta) L(θ) 指向损失函数增加最快的方向,那么负梯度 − ∇ L ( θ ) -\nabla L(\theta) L(θ) 就指向损失函数减少最快的方向。

这启发了梯度下降法(Gradient Descent):从一个初始参数 θ 0 \theta_0 θ0 开始,我们不断地沿着负梯度方向更新参数,以期望逐步逼近损失函数的最小值点:
θ n e w = θ o l d − η ∇ L ( θ o l d ) \theta_{new} = \theta_{old} - \eta \nabla L(\theta_{old}) θnew=θoldηL(θold)
其中:

  • θ o l d \theta_{old} θold 是当前的参数。
  • θ n e w \theta_{new} θnew 是更新后的参数。
  • ∇ L ( θ o l d ) \nabla L(\theta_{old}) L(θold) 是损失函数在当前参数下的梯度。
  • η \eta η学习率(Learning Rate),一个小的正数,控制每次更新的步长。

这个迭代过程就像我们前面描述的“下山”过程:每次都朝着当前位置最陡峭的下坡方向走一小步。

5.3 Python 计算梯度示例 (使用 SymPy)

我们继续使用之前的函数 f ( x , y ) = x 2 + 3 x y + y 2 f(x, y) = x^2 + 3xy + y^2 f(x,y)=x2+3xy+y2

import sympy

# 定义符号变量 x, y
x, y = sympy.symbols('x y')

# 定义函数
f = x**2 + 3*x*y + y**2

# 计算偏导数
df_dx = sympy.diff(f, x)
df_dy = sympy.diff(f, y)

print(f"函数 f(x, y) = {f}")
print(f"偏导数 ∂f/∂x = {df_dx}")
print(f"偏导数 ∂f/∂y = {df_dy}")

# 计算在点 (1, 2) 处的梯度
grad_at_point = {
    'df_dx': df_dx.subs({x: 1, y: 2}),
    'df_dy': df_dy.subs({x: 1, y: 2})
}

print(f"\n在点 (1, 2) 处的梯度:")
print(f"  ∂f/∂x = {grad_at_point['df_dx']}")
print(f"  ∂f/∂y = {grad_at_point['df_dy']}")
# 使用 $...$ 将梯度向量表示为内联公式
print(f"  梯度向量 $\nabla f(1, 2) = ({grad_at_point['df_dx']}, {grad_at_point['df_dy']})$")

# 使用 $...$ 将负梯度向量表示为内联公式
neg_grad_vector = (-grad_at_point['df_dx'], -grad_at_point['df_dy'])
print(f"  负梯度向量 $-\nabla f(1, 2) = {neg_grad_vector}$")

运行结果:

函数 f(x, y) = x**2 + 3*x*y + y**2
偏导数 ∂f/∂x = 2*x + 3*y
偏导数 ∂f/∂y = 3*x + 2*y

在点 (1, 2) 处的梯度:
  ∂f/∂x = 8
  ∂f/∂y = 7
  梯度向量 $\nabla f(1, 2) = (8, 7)$
  负梯度向量 $-\nabla f(1, 2) = (-8, -7)$

这意味着在点 ( 1 , 2 ) (1, 2) (1,2) 处,函数 f f f ( 8 , 7 ) (8, 7) (8,7) 方向上增长最快。如果我们要最小化 f f f,梯度下降法会建议我们沿着 ( − 8 , − 7 ) (-8, -7) (8,7) 方向移动。

六、总结

本篇文章我们重点学习了深度学习中至关重要的微积分基础知识,回顾一下核心要点:

  1. 导数:描述单变量函数在某点的瞬时变化率,几何意义是切线斜率
  2. 偏导数:处理多变量函数,表示函数沿着某一个坐标轴方向的变化率,计算时将其他变量视为常数。
  3. 链式法则:计算复合函数导数的关键工具,是神经网络反向传播算法的数学基础,用于计算损失函数对网络内部参数的梯度。
  4. 梯度:由所有偏导数构成的向量,指向函数值增长最快的方向。
  5. 负梯度:指向函数值下降最快的方向,是梯度下降优化算法的核心依据。

理解这些微积分概念,特别是它们在优化和神经网络训练中的作用,是深入学习深度学习的必要前提。在后续的文章中,我们将看到这些概念如何应用于梯度下降法、反向传播以及更复杂的优化算法中。

希望这篇文章能帮助你打下坚实的微积分基础!下一篇,我们将继续数学之旅,探讨深度学习所需的概率与统计知识。敬请期待!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴师兄大模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值