机器学习数学基础:5.梯度

一、梯度的基本概念

在多元函数的分析中,梯度是一个核心概念,它为我们提供了一种描述函数在不同方向上变化情况的有力工具。

对于二元函数 z = f ( x , y ) z = f(x, y) z=f(x,y),假设它在平面区域内具有连续的一阶偏导数,这是一个重要的前提条件,因为只有在这个条件下,我们才能使用梯度的概念来准确地描述函数的变化特性。

那么,对于平面区域内的任意一点 P ( x , y ) P(x, y) P(x,y),梯度 g r a d f ( x , y ) grad f(x, y) gradf(x,y) 被定义为向量 ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ \frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} xfi +yfj 。这里的 i ⃗ \vec{i} i x x x 轴正方向的单位向量, j ⃗ \vec{j} j y y y 轴正方向的单位向量。

(一)偏导数的直观理解

  • x x x 的偏导数 ∂ f ∂ x \frac{\partial f}{\partial x} xf

    • 想象一下,你站在一个由函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 所描述的曲面上,如果你只沿着 x x x 轴的方向移动,而保持 y y y 的值不变,函数值 z z z x x x 的变化率就是 ∂ f ∂ x \frac{\partial f}{\partial x} xf
    • 例如,对于函数 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2,当我们对 x x x 求偏导数时,根据求导的基本规则(对于 x n x^n xn 的导数是 n x n − 1 nx^{n - 1} nxn1,对于 a x ax ax 的导数是 a a a,其中 a a a 是常数),将 y y y 看作常数,我们得到:
    • ∂ f ∂ x = 2 x + 2 y \frac{\partial f}{\partial x}=2x + 2y xf=2x+2y。这意味着当你站在曲面上,仅在 x x x 方向移动时,函数值的变化速度由 2 x + 2 y 2x + 2y 2x+2y 决定。
  • y y y 的偏导数 ∂ f ∂ y \frac{\partial f}{\partial y} yf

    • 类似地,当你只沿着 y y y 轴的方向移动,而保持 x x x 的值不变时,函数值 z z z y y y 的变化率就是 ∂ f ∂ y \frac{\partial f}{\partial y} yf
    • 对于函数 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2,对 y y y 求偏导数,将 x x x 看作常数,得到:
    • ∂ f ∂ y = 2 x + 2 y \frac{\partial f}{\partial y}=2x + 2y yf=2x+2y

二、梯度的推导过程

(一)梯度向量的构成

  • 梯度将 x x x y y y 方向上的变化信息结合起来,形成一个向量。对于函数 z = f ( x , y ) z = f(x, y) z=f(x,y),它的梯度 g r a d f ( x , y ) grad f(x, y) gradf(x,y) 就是由 x x x 方向的变化率 ∂ f ∂ x \frac{\partial f}{\partial x} xf y y y 方向的变化率 ∂ f ∂ y \frac{\partial f}{\partial y} yf 共同构成的向量,即:
    • g r a d f ( x , y ) = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ grad f(x, y)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} gradf(x,y)=xfi +yfj
    • 继续以 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2 为例,在任意一点 ( x , y ) (x, y) (x,y) 的梯度为:
    • g r a d f ( x , y ) = ( 2 x + 2 y ) i ⃗ + ( 2 x + 2 y ) j ⃗ grad f(x, y)=(2x + 2y)\vec{i}+(2x + 2y)\vec{j} gradf(x,y)=(2x+2y)i +(2x+2y)j

(二)梯度的计算示例

  • 让我们更具体地计算函数 f ( x , y ) = 3 x 2 − 4 x y + 5 y 2 f(x, y)=3x^{2}-4xy + 5y^{2} f(x,y)=3x24xy+5y2 在点 ( 2 , 3 ) (2, 3) (2,3) 处的梯度:
    • 首先,对 x x x 求偏导数: ∂ f ∂ x = 6 x − 4 y \frac{\partial f}{\partial x}=6x - 4y xf=6x4y
    • 然后,对 y y y 求偏导数: ∂ f ∂ y = − 4 x + 10 y \frac{\partial f}{\partial y}=-4x + 10y yf=4x+10y
    • 在点 ( 2 , 3 ) (2, 3) (2,3) 处:
      • ∂ f ∂ x ∣ ( 2 , 3 ) = 6 × 2 − 4 × 3 = 12 − 12 = 0 \frac{\partial f}{\partial x}\big|_{(2,3)}=6\times2 - 4\times3=12 - 12 = 0 xf (2,3)=6×24×3=1212=0
      • ∂ f ∂ y ∣ ( 2 , 3 ) = − 4 × 2 + 10 × 3 = − 8 + 30 = 22 \frac{\partial f}{\partial y}\big|_{(2,3)}=-4\times2 + 10\times3=-8 + 30 = 22 yf (2,3)=4×2+10×3=8+30=22
    • 所以 g r a d f ( 2 , 3 ) = 0 i ⃗ + 22 j ⃗ grad f(2, 3)=0\vec{i}+22\vec{j} gradf(2,3)=0i +22j

三、梯度的几何意义

(一)方向的含义

  • 梯度的方向具有重要的几何意义。它是函数在该点处方向导数取得最大值的方向,简单来说,就是函数在该点增长最快的方向。
    • 想象你站在一个由函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 所描绘的三维曲面上,就像站在一座山上,梯度的方向就是从你所在位置出发,最陡峭的上山路径的方向。
    • f ( x , y ) = x 2 + y 2 f(x, y)=x^{2}+y^{2} f(x,y)=x2+y2 为例,在点 ( 1 , 2 ) (1, 2) (1,2) 处,梯度为 g r a d f ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad f(1, 2)=2\vec{i}+4\vec{j} gradf(1,2)=2i +4j 。这个向量所指的方向就是从点 ( 1 , 2 ) (1, 2) (1,2) 出发,让函数值增加最快的方向。

(二)模的含义

  • 梯度的模 ∣ g r a d f ( x , y ) ∣ = ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 \vert grad f(x, y)\vert=\sqrt{(\frac{\partial f}{\partial x})^{2}+(\frac{\partial f}{\partial y})^{2}} gradf(x,y)=(xf)2+(yf)2 表示函数在梯度方向上的变化速率。
    • 对于上面 f ( x , y ) = x 2 + y 2 f(x, y)=x^{2}+y^{2} f(x,y)=x2+y2 在点 ( 1 , 2 ) (1, 2) (1,2) 的例子,梯度的模为:
    • ∣ g r a d f ( 1 , 2 ) ∣ = 2 2 + 4 2 = 4 + 16 = 20 = 2 5 \vert grad f(1, 2)\vert=\sqrt{2^{2}+4^{2}}=\sqrt{4 + 16}=\sqrt{20}=2\sqrt{5} gradf(1,2)=22+42 =4+16 =20 =25
    • 这意味着,如果你沿着梯度方向走一小段距离 h h h,函数值大约会增加 2 5 h 2\sqrt{5}h 25 h。这就像你沿着最陡峭的山路走一小段距离,高度的增加量大约是 2 5 h 2\sqrt{5}h 25 h

四、梯度与方向导数的关系

(一)方向导数的定义

  • 方向导数是用来描述函数在某一指定方向上的变化率的。设 e ⃗ = cos ⁡ φ i ⃗ + sin ⁡ φ j ⃗ \vec{e}=\cos\varphi\vec{i}+\sin\varphi\vec{j} e =cosφi +sinφj 是一个单位向量,表示一个方向 L L L φ \varphi φ 是这个方向与 x x x 轴正方向的夹角),函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 在点 ( x , y ) (x, y) (x,y) 处沿方向 L L L 的方向导数为 ∂ f ∂ l \frac{\partial f}{\partial l} lf

(二)关系推导

  • 根据向量的点积公式 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ \vec{a}\cdot\vec{b}=\vert\vec{a}\vert\vert\vec{b}\vert\cos\theta a b =a ∣∣b cosθ(这里 a ⃗ \vec{a} a b ⃗ \vec{b} b 是两个向量, θ \theta θ 是它们之间的夹角),我们可以推导出方向导数与梯度的关系。
    • 首先, ∂ f ∂ l \frac{\partial f}{\partial l} lf 可以表示为:
    • ∂ f ∂ l = ∂ f ∂ x cos ⁡ φ + ∂ f ∂ y sin ⁡ φ \frac{\partial f}{\partial l}=\frac{\partial f}{\partial x}\cos\varphi+\frac{\partial f}{\partial y}\sin\varphi lf=xfcosφ+yfsinφ(这是因为我们将 x x x y y y 方向上的变化率根据方向向量的分量 cos ⁡ φ \cos\varphi cosφ sin ⁡ φ \sin\varphi sinφ 进行了组合)。
    • 又因为 g r a d f ( x , y ) = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ grad f(x, y)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} gradf(x,y)=xfi +yfj e ⃗ = cos ⁡ φ i ⃗ + sin ⁡ φ j ⃗ \vec{e}=\cos\varphi\vec{i}+\sin\varphi\vec{j} e =cosφi +sinφj ,所以:
    • ∂ f ∂ l = g r a d f ( x , y ) ⋅ e ⃗ \frac{\partial f}{\partial l}=grad f(x, y)\cdot\vec{e} lf=gradf(x,y)e
    • 由于 e ⃗ \vec{e} e 是单位向量, ∣ e ⃗ ∣ = 1 \vert\vec{e}\vert = 1 e =1,根据向量点积公式可得:
    • ∂ f ∂ l = ∣ g r a d f ( x , y ) ∣ cos ⁡ θ \frac{\partial f}{\partial l}=\vert grad f(x, y)\vert\cos\theta lf=gradf(x,y)cosθ,其中 θ \theta θ 是梯度向量 g r a d f ( x , y ) grad f(x, y) gradf(x,y) 和方向向量 e ⃗ \vec{e} e 的夹角。

(三)方向导数的计算示例

  • 继续以 f ( x , y ) = x 2 + y 2 f(x, y)=x^{2}+y^{2} f(x,y)=x2+y2 在点 ( 1 , 2 ) (1, 2) (1,2) 为例,我们已经知道 g r a d f ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad f(1, 2)=2\vec{i}+4\vec{j} gradf(1,2)=2i +4j ,现在求在与 x x x 轴正方向夹角为 π 3 \frac{\pi}{3} 3π 的方向上的方向导数(此时 cos ⁡ π 3 = 1 2 \cos\frac{\pi}{3}=\frac{1}{2} cos3π=21 sin ⁡ π 3 = 3 2 \sin\frac{\pi}{3}=\frac{\sqrt{3}}{2} sin3π=23 ):
    • ∂ f ∂ l = g r a d f ( 1 , 2 ) ⋅ e ⃗ \frac{\partial f}{\partial l}=grad f(1, 2)\cdot\vec{e} lf=gradf(1,2)e
    • 这里 g r a d f ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad f(1, 2)=2\vec{i}+4\vec{j} gradf(1,2)=2i +4j e ⃗ = 1 2 i ⃗ + 3 2 j ⃗ \vec{e}=\frac{1}{2}\vec{i}+\frac{\sqrt{3}}{2}\vec{j} e =21i +23 j
    • 所以 ∂ f ∂ l = ( 2 i ⃗ + 4 j ⃗ ) ⋅ ( 1 2 i ⃗ + 3 2 j ⃗ ) = 2 × 1 2 + 4 × 3 2 = 1 + 2 3 \frac{\partial f}{\partial l}=(2\vec{i}+4\vec{j})\cdot(\frac{1}{2}\vec{i}+\frac{\sqrt{3}}{2}\vec{j})=2\times\frac{1}{2}+4\times\frac{\sqrt{3}}{2}=1 + 2\sqrt{3} lf=(2i +4j )(21i +23 j )=2×21+4×23 =1+23

五、案例分析

(一)案例:山坡高度函数

  • 假设我们用函数 h ( x , y ) = x 2 + y 2 h(x, y)=x^{2}+y^{2} h(x,y)=x2+y2 来表示一个山坡的高度( x x x y y y 是平面上的位置坐标, h h h 是高度)。

(二)计算梯度

  • 首先求偏导数:

    • ∂ h ∂ x = 2 x \frac{\partial h}{\partial x}=2x xh=2x
    • ∂ h ∂ y = 2 y \frac{\partial h}{\partial y}=2y yh=2y
  • 考虑在点 ( 3 , 4 ) (3, 4) (3,4) 处的梯度:

    • 在点 ( 3 , 4 ) (3, 4) (3,4) 处, ∂ h ∂ x ∣ ( 3 , 4 ) = 2 × 3 = 6 \frac{\partial h}{\partial x}\big|_{(3,4)}=2\times3 = 6 xh (3,4)=2×3=6 ∂ h ∂ y ∣ ( 3 , 4 ) = 2 × 4 = 8 \frac{\partial h}{\partial y}\big|_{(3,4)}=2\times4 = 8 yh (3,4)=2×4=8
    • 所以 g r a d h ( 3 , 4 ) = 6 i ⃗ + 8 j ⃗ grad h(3, 4)=6\vec{i}+8\vec{j} gradh(3,4)=6i +8j

(三)几何解释

  • 梯度方向:梯度向量 6 i ⃗ + 8 j ⃗ 6\vec{i}+8\vec{j} 6i +8j 的方向就是从点 ( 3 , 4 ) (3, 4) (3,4) 出发,最陡峭的上山方向。

  • 梯度模长 ∣ g r a d h ( 3 , 4 ) ∣ = 6 2 + 8 2 = 36 + 64 = 10 \vert grad h(3, 4)\vert=\sqrt{6^{2}+8^{2}}=\sqrt{36 + 64}=10 gradh(3,4)=62+82 =36+64 =10。这意味着在这个最陡峭的上山方向上,高度的变化率是 10 10 10。也就是说,如果你沿着这个方向走一小段距离 d d d,高度大约会增加 10 d 10d 10d

  • 方向导数:假设你想知道在与 x x x 轴正方向夹角为 π 4 \frac{\pi}{4} 4π 的方向上的山坡陡峭程度(即方向导数), cos ⁡ π 4 = sin ⁡ π 4 = 2 2 \cos\frac{\pi}{4}=\sin\frac{\pi}{4}=\frac{\sqrt{2}}{2} cos4π=sin4π=22

    • 则方向导数为:
    • ∂ h ∂ l = g r a d h ( 3 , 4 ) ⋅ e ⃗ \frac{\partial h}{\partial l}=grad h(3, 4)\cdot\vec{e} lh=gradh(3,4)e
    • 这里 g r a d h ( 3 , 4 ) = 6 i ⃗ + 8 j ⃗ grad h(3, 4)=6\vec{i}+8\vec{j} gradh(3,4)=6i +8j e ⃗ = 2 2 i ⃗ + 2 2 j ⃗ \vec{e}=\frac{\sqrt{2}}{2}\vec{i}+\frac{\sqrt{2}}{2}\vec{j} e =22 i +22 j
    • 所以 ∂ h ∂ l = ( 6 i ⃗ + 8 j ⃗ ) ⋅ ( 2 2 i ⃗ + 2 2 j ⃗ ) = 6 × 2 2 + 8 × 2 2 = 7 2 \frac{\partial h}{\partial l}=(6\vec{i}+8\vec{j})\cdot(\frac{\sqrt{2}}{2}\vec{i}+\frac{\sqrt{2}}{2}\vec{j})=6\times\frac{\sqrt{2}}{2}+8\times\frac{\sqrt{2}}{2}=7\sqrt{2} lh=(6i +8j )(22 i +22 j )=6×22 +8×22 =72

六、更多维度的梯度

(一)三元函数的梯度

  • 对于三元函数 u = f ( x , y , z ) u = f(x, y, z) u=f(x,y,z),梯度的概念可以自然地推广。其梯度为 g r a d f ( x , y , z ) = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ + ∂ f ∂ z k ⃗ grad f(x, y, z)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j}+\frac{\partial f}{\partial z}\vec{k} gradf(x,y,z)=xfi +yfj +zfk ,其中 k ⃗ \vec{k} k z z z 轴正方向的单位向量。
    • 例如,对于函数 f ( x , y , z ) = x 2 + y 2 + z 2 f(x, y, z)=x^{2}+y^{2}+z^{2} f(x,y,z)=x2+y2+z2
    • x x x 求偏导数: ∂ f ∂ x = 2 x \frac{\partial f}{\partial x}=2x xf=2x
    • y y y 求偏导数: ∂ f ∂ y = 2 y \frac{\partial f}{\partial y}=2y yf=2y
    • z z z 求偏导数: ∂ f ∂ z = 2 z \frac{\partial f}{\partial z}=2z zf=2z
    • 所以 g r a d f ( x , y , z ) = 2 x i ⃗ + 2 y j ⃗ + 2 z k ⃗ grad f(x, y, z)=2x\vec{i}+2y\vec{j}+2z\vec{k} gradf(x,y,z)=2xi +2yj +2zk

七、梯度的实际应用

(一)物理学中的应用:电场强度

  • 在静电场中,电势 U ( x , y , z ) U(x, y, z) U(x,y,z) 是一个三元函数,电场强度 E ⃗ \vec{E} E 与电势的关系是 E ⃗ = − g r a d U \vec{E}=-grad U E =gradU
    • 例如,对于简单的电势函数 U ( x , y , z ) = x 2 + y 2 + z 2 U(x, y, z)=x^{2}+y^{2}+z^{2} U(x,y,z)=x2+y2+z2,根据上述梯度公式可得:
    • g r a d U = 2 x i ⃗ + 2 y j ⃗ + 2 z k ⃗ grad U = 2x\vec{i}+2y\vec{j}+2z\vec{k} gradU=2xi +2yj +2zk
    • 那么电场强度 E ⃗ = − 2 x i ⃗ − 2 y j ⃗ − 2 z k ⃗ \vec{E}=-2x\vec{i}-2y\vec{j}-2z\vec{k} E =2xi 2yj 2zk 。这意味着电场强度的方向是电势下降最快的方向,其大小反映了电势下降的速率,这对于理解电场的分布和电荷在电场中的运动至关重要。

(二)机器学习中的应用:梯度下降算法

  • 在机器学习中,我们常常需要最小化一个代价函数 J ( θ ) J(\theta) J(θ)(这里 θ \theta θ 可以是多个参数组成的向量)。
    • 梯度下降算法的核心思想是沿着代价函数的负梯度方向更新参数,因为梯度的反方向是函数下降最快的方向。
    • 假设我们有代价函数 J ( θ ) = θ 1 2 + θ 2 2 J(\theta)=\theta_{1}^{2}+\theta_{2}^{2} J(θ)=θ12+θ22,它的梯度为 g r a d J ( θ ) = 2 θ 1 i ⃗ + 2 θ 2 j ⃗ grad J(\theta)=2\theta_{1}\vec{i}+2\theta_{2}\vec{j} gradJ(θ)=2θ1i +2θ2j
    • 在迭代过程中,我们会根据公式 θ n e w = θ o l d − α g r a d J ( θ ) \theta^{new}=\theta^{old}-\alpha grad J(\theta) θnew=θoldαgradJ(θ) 更新参数( α \alpha α 是学习率,是一个很小的正数,用于控制更新的步长)。
    • 例如,初始参数 θ = ( 1 , 2 ) \theta=(1, 2) θ=(1,2),学习率 α = 0.1 \alpha = 0.1 α=0.1
    • 首先计算梯度 g r a d J ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad J(1, 2)=2\vec{i}+4\vec{j} gradJ(1,2)=2i +4j
    • 然后更新参数:
    • θ n e w = ( 1 , 2 ) − 0.1 × ( 2 i ⃗ + 4 j ⃗ ) = ( 1 − 0.2 , 2 − 0.4 ) = ( 0.8 , 1.6 ) \theta^{new}=(1, 2)-0.1\times(2\vec{i}+4\vec{j})=(1 - 0.2, 2 - 0.4)=(0.8, 1.6) θnew=(1,2)0.1×(2i +4j )=(10.2,20.4)=(0.8,1.6)
    • 通过多次迭代,我们可以逐步找到使代价函数最小的参数值,从而优化模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值