机器学习数学基础--(3)方向导数
3.1 为什么要引入方向导数?
在多元函数中,偏导数告诉我们函数沿坐标轴方向(比如 x x x 轴或 y y y 轴)的变化率。但实际中,我们常常需要知道函数沿任意给定方向的变化率。例如:
- 在一座山上,你站在某点,想知道沿某个方向爬坡的坡度。
- 在温度场中,想知道沿某个方向温度下降的快慢。
这就需要方向导数的概念。
3.2 方向导数的直观理解
想象一个二元函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 的曲面。在曲面上一点 P P P,我们想沿某个方向(用单位向量 u \mathbf{u} u 表示)移动一小步,函数值变化了多少?方向导数就是函数在该点沿方向 u \mathbf{u} u 的瞬时变化率。
类比一元函数的导数:沿 x x x 轴正方向的变化率就是 d f d x \frac{df}{dx} dxdf。方向导数就是把这个“方向”推广到任意方向。
3.3 方向导数的定义
设二元函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 在点 P 0 ( x 0 , y 0 ) P_0(x_0, y_0) P0(x0,y0) 的某邻域内有定义。给定一个方向,用从 P 0 P_0 P0 出发的射线方向上的单位向量 u = ( cos α , cos β ) \mathbf{u} = (\cos\alpha, \cos\beta) u=(cosα,cosβ) 表示(其中 α , β \alpha, \beta α,β 是方向与 x x x 轴、 y y y 轴正向的夹角,且 cos 2 α + cos 2 β = 1 \cos^2\alpha + \cos^2\beta = 1 cos2α+cos2β=1,在三维中还有 cos γ \cos\gamma cosγ)。
在 P 0 P_0 P0 处沿方向 u \mathbf{u} u 取一点 P ( x 0 + t cos α , y 0 + t cos β ) P(x_0 + t\cos\alpha, y_0 + t\cos\beta) P(x0+tcosα,y0+tcosβ),其中 t > 0 t > 0 t>0 是沿方向的位移长度。函数增量 Δ f = f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) \Delta f = f(x_0 + t\cos\alpha, y_0 + t\cos\beta) - f(x_0, y_0) Δf=f(x0+tcosα,y0+tcosβ)−f(x0,y0)。如果极限
lim t → 0 + Δ f t = lim t → 0 + f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) t \lim_{t \to 0^+} \frac{\Delta f}{t} = \lim_{t \to 0^+} \frac{f(x_0 + t\cos\alpha, y_0 + t\cos\beta) - f(x_0, y_0)}{t} t→0+limtΔf=t→0+limtf(x0+tcosα,y0+tcosβ)−f(x0,y0)
存在,则称此极限为函数 f f f 在点 P 0 P_0 P0 处沿方向 u \mathbf{u} u 的方向导数,记作 ∂ f ∂ u ∣ P 0 \frac{\partial f}{\partial \mathbf{u}}\big|_{P_0} ∂u∂f
P0 或 D u f ( P 0 ) D_{\mathbf{u}} f(P_0) Duf(P0)。
注意:
- 方向导数是变化率,所以 t t t 趋于 0(就像导数中的 Δ x → 0 \Delta x \to 0 Δx→0)。
- 如果方向取 x x x 轴正向, u = ( 1 , 0 ) \mathbf{u} = (1,0) u=(1,0),则方向导数就是 f x f_x fx;如果取 y y y 轴正向,就是 f y f_y fy。但方向可以是任意角度。
3.4 如何计算方向导数?
如果函数 f ( x , y ) f(x, y) f(x,y) 在点 P 0 P_0 P0 处可微(即存在切平面,或者说偏导数连续等),那么方向导数可以通过偏导数方便地计算。
公式:
D u f ( x 0 , y 0 ) = f x ( x 0 , y 0 ) cos α + f y ( x 0 , y 0 ) cos β , D_{\mathbf{u}} f(x_0, y_0) = f_x(x_0, y_0) \cos\alpha + f_y(x_0, y_0) \cos\beta, Duf(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ,
其中 cos α , cos β \cos\alpha, \cos\beta cosα,cosβ 是方向 u \mathbf{u} u 的方向余弦。
对于三元函数 f ( x , y , z ) f(x, y, z) f(x,y,z) 沿方向 u = ( cos α , cos β , cos γ ) \mathbf{u} = (\cos\alpha, \cos\beta, \cos\gamma) u=(cosα,cosβ,cosγ):
D u f ( x 0 , y 0 , z 0 ) = f x cos α + f y cos β + f z cos γ . D_{\mathbf{u}} f(x_0, y_0, z_0) = f_x \cos\alpha + f_y \cos\beta + f_z \cos\gamma. Duf(x0,y0,z0)=fxcosα+fycosβ+fzcosγ.
这个公式可以理解为:方向导数等于梯度向量与方向向量的点积。梯度 ∇ f = ( f x , f y ) \nabla f = (f_x, f_y) ∇f=(fx,fy),所以
D u f = ∇ f ⋅ u . D_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}. Duf=∇f⋅u.
推导思路:利用全微分,当沿方向移动 t t t 时,函数增量近似为 d f = f x d x + f y d y df = f_x dx + f_y dy df=fxdx+fydy,而 d x = t cos α dx = t\cos\alpha dx=tcosα, d y = t cos β dy = t\cos\beta dy=tcosβ,所以 Δ f ≈ ( f x cos α + f y cos β ) t \Delta f \approx (f_x \cos\alpha + f_y \cos\beta) t Δf≈(fxcosα+fycosβ)t,除以 t t t 取极限即得。
3.5 例子
例1:求 f ( x , y ) = x 2 + 3 x y f(x, y) = x^2 + 3xy f(x,y)=x2+3xy 在点 P ( 1 , 2 ) P(1, 2) P(1,2) 处沿方向 u = ( 1 2 , 1 2 ) \mathbf{u} = (\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}) u=(21,21)(即与 x x x 轴成45°角)的方向导数。
解:
- 先求偏导数: f x = 2 x + 3 y f_x = 2x + 3y fx=2x+3y, f y = 3 x f_y = 3x fy=3x。
- 在点 ( 1 , 2 ) (1, 2) (1,2): f x ( 1 , 2 ) = 2 ⋅ 1 + 3 ⋅ 2 = 2 + 6 = 8 f_x(1,2) = 2\cdot 1 + 3\cdot 2 = 2 + 6 = 8 fx(1,2)=2⋅1+3⋅2=2+6=8; f y ( 1 , 2 ) = 3 ⋅ 1 = 3 f_y(1,2) = 3\cdot 1 = 3 fy(1,2)=3⋅1=3。
- 方向余弦: cos α = 1 2 \cos\alpha = \frac{1}{\sqrt{2}} cosα=21, cos β = 1 2 \cos\beta = \frac{1}{\sqrt{2}} cosβ=21。
- 方向导数: D u f = 8 ⋅ 1 2 + 3 ⋅ 1 2 = 11 2 = 11 2 2 D_{\mathbf{u}} f = 8 \cdot \frac{1}{\sqrt{2}} + 3 \cdot \frac{1}{\sqrt{2}} = \frac{11}{\sqrt{2}} = \frac{11\sqrt{2}}{2} Duf=8⋅21+3⋅21=211=2112。
例2:求 f ( x , y , z ) = e x y + sin z f(x, y, z) = e^{xy} + \sin z f(x,y,z)=exy+sinz 在点 ( 0 , 1 , π / 2 ) (0, 1, \pi/2) (0,1,π/2) 处沿方向 v = ( 1 , 2 , 2 ) \mathbf{v} = (1, 2, 2) v=(1,2,2) 的方向导数。
解:
- 首先将方向 v \mathbf{v} v 单位化: ∥ v ∥ = 1 2 + 2 2 + 2 2 = 3 \|\mathbf{v}\| = \sqrt{1^2 + 2^2 + 2^2} = 3 ∥v∥=12+22+22=3,所以单位向量 u = ( 1 3 , 2 3 , 2 3 ) \mathbf{u} = (\frac{1}{3}, \frac{2}{3}, \frac{2}{3}) u=(31,32,32)。
- 偏导数: f x = y e x y f_x = y e^{xy} fx=yexy, f y = x e x y f_y = x e^{xy} fy=xexy, f z = cos z f_z = \cos z fz=cosz。
- 在点 ( 0 , 1 , π / 2 ) (0,1,\pi/2) (0,1,π/2): f x = 1 ⋅ e 0 = 1 f_x = 1 \cdot e^{0} = 1 fx=1⋅e0=1, f y = 0 ⋅ e 0 = 0 f_y = 0 \cdot e^{0} = 0 fy=0⋅e0=0, f z = cos ( π / 2 ) = 0 f_z = \cos(\pi/2) = 0 fz=cos(π/2)=0。
- 方向导数: D u f = 1 ⋅ 1 3 + 0 ⋅ 2 3 + 0 ⋅ 2 3 = 1 3 D_{\mathbf{u}} f = 1 \cdot \frac{1}{3} + 0 \cdot \frac{2}{3} + 0 \cdot \frac{2}{3} = \frac{1}{3} Duf=1⋅31+0⋅32+0⋅32=31。
3.6 方向导数与梯度的关系
梯度向量 ∇ f = ( f x , f y ) \nabla f = (f_x, f_y) ∇f=(fx,fy) 是一个非常重要的概念,它与方向导数有密切关系:
- 梯度方向是方向导数最大的方向:在所有方向中,沿梯度方向的方向导数最大,且最大值等于梯度的模 ∣ ∇ f ∣ |\nabla f| ∣∇f∣。
- 沿梯度相反方向的方向导数最小(负的最大值)。
- 垂直于梯度方向的方向导数为零(函数在该方向变化率为零,即等值线方向)。
解释:方向导数 D u f = ∇ f ⋅ u = ∣ ∇ f ∣ cos θ D_{\mathbf{u}} f = \nabla f \cdot \mathbf{u} = |\nabla f| \cos\theta Duf=∇f⋅u=∣∇f∣cosθ,其中 θ \theta θ 是 ∇ f \nabla f ∇f 与 u \mathbf{u} u 的夹角。显然,当 θ = 0 \theta = 0 θ=0(同向)时最大; θ = π \theta = \pi θ=π 时最小; θ = π / 2 \theta = \pi/2 θ=π/2 时为零。
3.7 几何意义
- 在二元函数中,方向导数表示曲面沿该方向的倾斜程度(斜率)。
- 在等值线(等高线)图中,方向导数的大小反映了垂直等高线方向的陡峭程度。
3.8 方向导数的存在性与可微
需要注意的是,方向导数的定义不要求函数可微,只要极限存在即可。但若函数在某点可微,则沿任何方向的方向导数都存在,且可用梯度点积公式计算。反之,即使所有方向的方向导数都存在,函数也不一定可微(反例存在)。因此,梯度公式是建立在可微条件下的简便计算方法。
3.9 应用
- 最速下降法:在优化问题中,为了最快找到函数的最小值,我们沿着负梯度方向(即方向导数最小的方向)搜索,因为这是函数下降最快的方向。
- 物理中的方向导数:如温度梯度、电势梯度等,方向导数表示沿某方向的变化率。
- 几何中求某方向上的斜率。
上一章 机器学习数学基础–(2)偏导数
下一章 机器学习数学基础–(4)梯度
更多推荐
所有评论(0)