导数,偏导数,方向导数,梯度的理解---微积分数学基础

文章目录

0 概述1. 导数的概念1.1 导数的定义1.2 导数的本质

2. 偏导数的概念2.1 偏导数定义2.2 偏导数的本质

3. 方向导数3.1 方向导数定义3.2 方向导数的最大值

4. 梯度4.1 梯度定义4.2 梯度生而最快

5. 总结参考:

0 概述

我们在ML week 1课程中了解到了单变量线性回归,这里使用了梯度下降法来不断更新

θ

0

,

θ

1

\theta_{0,} \theta_{1}

θ0,​θ1​以求得Cost Function的最优解,从而确定

h

θ

(

x

i

)

h_{\theta}\left(x_{i}\right)

hθ​(xi​)。 那这里就产生了一个疑问:为什么使用梯度下降法求解?为什么使用梯度下降法,就能够得到最优解(全局或者局部)? 下边我们将从导数,偏导数,方向导数最后引出梯度,进而讲解为什么梯度下降法能够做到求解最优解。

1. 导数的概念

1.1 导数的定义

增量定义:若

f

(

x

)

f(x)

f(x)在点

x

0

x_{0}

x0​的某个邻域内有定义,则当自变量

x

x

x 在

x

0

x_{0}

x0​处取得增量

Δ

x

\Delta x

Δx(点

x

0

+

Δ

x

x_{0}+\Delta x

x0​+Δx仍然在邻域内),相应的

y

y

y取得增量

Δ

y

=

f

(

x

0

+

Δ

x

)

f

(

x

0

)

\Delta y=f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)

Δy=f(x0​+Δx)−f(x0​),如果

Δ

y

\Delta y

Δy与

Δ

x

\Delta x

Δx在

Δ

x

0

\Delta x \rightarrow 0

Δx→0时极限存在,则称

y

=

f

(

x

)

y=f(x)

y=f(x)在

x

0

x_{0}

x0​处可导,这个极限就是

y

=

f

(

x

)

y=f(x)

y=f(x)在

x

0

x_{0}

x0​的导数,记为

f

(

x

0

)

f^{\prime}\left(x_{0}\right)

f′(x0​)。

f

(

x

0

)

=

lim

Δ

x

0

Δ

y

Δ

x

=

lim

Δ

x

0

f

(

x

0

+

Δ

x

)

f

(

x

0

)

Δ

x

f^{\prime}\left(x_{0}\right)=\lim _{\Delta x \rightarrow 0} \frac{\Delta y}{\Delta x}=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)}{\Delta x}

f′(x0​)=limΔx→0​ΔxΔy​=limΔx→0​Δxf(x0​+Δx)−f(x0​)​

极限定义:在定义域内,当变量

x

x

x趋近于

x

0

x_{0}

x0​时,

f

(

x

)

f

(

x

0

)

x

x

0

\frac{f(x)-f\left(x_{0}\right)}{x-x_{0}}

x−x0​f(x)−f(x0​)​有极限,则有

f

(

x

0

)

=

lim

x

x

0

f

(

x

)

f

(

x

0

)

x

x

0

f^{\prime}\left(x_{0}\right)=\lim _{x \rightarrow x_{0}} \frac{f(x)-f\left(x_{0}\right)}{x-x_{0}}

f′(x0​)=limx→x0​​x−x0​f(x)−f(x0​)​

1.2 导数的本质

对于一元函数而言,导数的几何意义是

f

(

x

)

f(x)

f(x)在点

x

0

x_{0}

x0​切线的斜率。物理角度上来看,路程对时间的导数叫速度,速度对时间的导数叫加速度。 我们可以理解为这是一种线性近似,当一个函数为曲线时,我们对某一点的斜率,就是通过导数这种线性近似求得的。 但是对于多元函数而言,由于其几何图形为一个曲面,这时候导数作为切线斜率的解释似乎不成立了,因此引入了偏导数的概念。

2. 偏导数的概念

2.1 偏导数定义

对于多元函数,求导数其实也是要求一个切线的斜率,但是由于曲面上的点的切线有无数条,那么取那条切线的斜率呢,这时候就引入了偏导数的概念。 偏导数其实就是选取比较特殊的切线,求其斜率而得,以二元函数

z

=

f

(

x

,

y

)

z=f(x, y)

z=f(x,y)为例,分为对

x

x

x的偏导数和对

y

y

y的偏导数。 如图所示: 对

x

x

x的偏导数:过点

(

x

0

,

y

0

,

z

0

)

\left(x_{0}, y_{0},z_{0}\right)

(x0​,y0​,z0​)垂直于

y

y

y轴的曲线,在该点切线的斜率。 此时,该曲线可表示为

z

=

f

(

x

,

y

)

z=f(x, y)

z=f(x,y)

x

=

t

x=t

x=t

y

=

a

+

0

×

t

y=a+0 \times t

y=a+0×t 因此,我们求对

x

x

x的偏导数,认为

y

y

y是常量是完全正确的。 用导数定义来表示

x

x

x的偏导数,

f

x

(

x

0

,

y

0

)

=

lim

Δ

x

0

f

(

x

0

+

Δ

x

,

y

0

)

f

(

x

0

,

y

0

)

Δ

x

f_{x}\left(x_{0}, y_{0}\right)=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x, y_{0}\right)-f\left(x_{0}, y_{0}\right)}{\Delta x}

fx​(x0​,y0​)=limΔx→0​Δxf(x0​+Δx,y0​)−f(x0​,y0​)​ 对

y

y

y的偏导数:过点

(

x

0

,

y

0

,

z

0

)

\left(x_{0}, y_{0},z_{0}\right)

(x0​,y0​,z0​)垂直于

x

x

x轴的曲线,在该点切线的斜率。 同上理解。

f

y

(

x

0

,

y

0

)

=

lim

Δ

y

0

f

(

x

0

,

y

0

+

Δ

y

)

f

(

x

0

,

y

0

)

Δ

y

f_{y}\left(x_{0}, y_{0}\right)=\lim _{\Delta y \rightarrow 0} \frac{f\left(x_{0}, y_{0}+\Delta y\right)-f\left(x_{0}, y_{0}\right)}{\Delta y}

fy​(x0​,y0​)=limΔy→0​Δyf(x0​,y0​+Δy)−f(x0​,y0​)​

2.2 偏导数的本质

偏导数几何意义也是切线斜率, 但是由于曲面上一点的切线有无数条(实际上是个切面),偏导数选取的是垂直于各坐标轴的几条特殊切线的斜率。 偏导数物理意义表示函数沿着某个坐标轴方向上的变化率。 但是如果我们想求任意一条曲线切线斜率怎么办呢?这时候就引入了方向导数,可以求出曲面上某一点沿着任意方向的切线斜率。

3. 方向导数

z

=

f

(

x

,

y

)

z=f(x, y)

z=f(x,y)为例,过曲面上任意一点

(

x

0

,

y

0

,

z

0

)

\left(x_{0}, y_{0},z_{0}\right)

(x0​,y0​,z0​)的所有切线,组成一个切面。偏导数仅仅选择了垂直于

x

x

x和

y

y

y轴方向的两条切线,计算斜率,方向导数则要求任意切向的斜率。 如下图所示

3.1 方向导数定义

x

x

x和

y

y

y平面上的一个方向向量,决定了一条过点

(

x

0

,

y

0

,

z

0

)

\left(x_{0}, y_{0},z_{0}\right)

(x0​,y0​,z0​)的唯一曲线,此时曲线函数可表示为:

z

=

f

(

x

,

y

)

z=f(x, y)

z=f(x,y)

x

=

x

0

+

t

cos

α

t

0

x=x_{0}+t \cos \alpha \quad t \geq 0

x=x0​+tcosαt≥0

y

=

y

0

+

t

cos

β

t

0

y=y_{0}+t \cos \beta \quad t \geq 0

y=y0​+tcosβt≥0

u

=

i

cos

α

+

j

cos

β

=

i

cos

α

+

j

sin

α

u=\vec{i} \cos \alpha+\vec{j} \cos \beta=\vec{i} \cos \alpha+\vec{j} \sin \alpha

u=i

cosα+j

​cosβ=i

cosα+j

​sinα 其中

α

\alpha

α和

β

\beta

β分别为该方向向量与

x

x

x轴和

y

y

y轴的夹角。 则该曲线的记为方向u的导数,定义:

D

u

f

(

x

,

y

)

D_{u} f(x, y)

Du​f(x,y)=

lim

t

0

f

(

x

0

+

t

cos

α

,

y

0

+

t

sin

α

)

f

(

x

0

,

y

0

)

t

\lim _{t \rightarrow 0} \frac{f\left(x_{0}+t \cos \alpha, y_{0}+t \sin \alpha\right)-f\left(x_{0}, y_{0}\right)}{t}

limt→0​tf(x0​+tcosα,y0​+tsinα)−f(x0​,y0​)​ 通过偏微分简化计算可得(这一步的数学证明,请自行搜索),

D

u

f

(

x

,

y

)

=

f

x

(

x

,

y

)

cos

α

+

f

y

(

x

,

y

)

sin

α

D_{u} f(x, y)=f_{x}(x, y) \cos \alpha+f_{y}(x, y) \sin \alpha

Du​f(x,y)=fx​(x,y)cosα+fy​(x,y)sinα

3.2 方向导数的最大值

设偏导向量:

A

=

(

f

x

(

x

,

y

)

,

f

y

(

x

,

y

)

)

\vec{A}=\left(f_{x}(x, y), f_{y}(x, y)\right)

A

=(fx​(x,y),fy​(x,y)) 方向向量:

u

=

(

cos

α

,

sin

α

)

\vec{u}=(\cos \alpha, \sin \alpha)

u

=(cosα,sinα) 则

D

u

f

(

x

,

y

)

=

A

u

D_{u} f(x, y)=\vec{A} * \vec{u}

Du​f(x,y)=A

∗u

=

A

u

cos

(

θ

)

|\vec{A}| *|\vec{u}| * \cos (\theta)

∣A

∣∗∣u

∣∗cos(θ) 其中

θ

\theta

θ 是偏导向量和方向向量之间的夹角。显而易见,当

θ

\theta

θ=0时,

D

u

f

(

x

,

y

)

D_{u} f(x, y)

Du​f(x,y)取得最大值。 换句话说,当方向

u

\vec{u}

u

和偏导向量同向时,方向导数取得正最大值,反向时,取得负最大值。 记住这个结论,接下来我们看梯度定义。

4. 梯度

4.1 梯度定义

对于函数

z

=

f

(

x

,

y

)

z=f(x, y)

z=f(x,y),在平面区域D内具有一阶连续偏导数,则对于每一点

(

x

0

,

y

0

)

D

\left(x_{0}, y_{0}\right) \in D

(x0​,y0​)∈D都可以定义出一个向量:

f

x

(

x

0

,

y

0

)

i

+

f

y

(

x

0

,

y

0

)

j

f_{x}\left(x_{0}, y_{0}\right) \vec{i}+f_{y}\left(x_{0}, y_{0}\right) \vec{j}

fx​(x0​,y0​)i

+fy​(x0​,y0​)j

这个向量称为函数

f

(

x

,

y

)

f(x, y)

f(x,y)在

(

x

0

,

y

0

)

\left(x_{0}, y_{0}\right)

(x0​,y0​)的梯度,记作

grad

f

(

x

0

,

y

0

)

\operatorname{grad} f\left(x_{0}, y_{0}\right)

gradf(x0​,y0​)或者

f

(

x

0

,

y

0

)

\nabla f\left(x_{0}, y_{0}\right)

∇f(x0​,y0​)。其中

=

x

i

+

y

j

\nabla=\frac{\partial}{\partial x} \vec{i}+\frac{\partial}{\partial y} \vec{j}

∇=∂x∂​i

+∂y∂​j

​称为向量微分算子或者Nabla算子。

4.2 梯度生而最快

到这里,发现梯度就定义为偏导向量的方向。而方向导数一节已经证明,沿着偏导向量方向的方向导数

D

u

f

(

x

,

y

)

D_{u} f(x, y)

Du​f(x,y)能够取得最大值。 因此在不断的迭代计算中,每一次沿着负梯度方向进行更新参数,就能够达到最低点。

5. 总结

通过导数,偏导数,方向导数的逐步讲解,最后给出梯度的定义,发现梯度天生定义就是变化最快的方向。 这是未来使用梯度下降法求解优化问题的数学基础。

参考:

https://www.zhihu.com/question/36301367 马同学和忆臻 的回答 https://github.com/halfrost/Halfrost-Field

热门