什么是梯度,梯度有什么用

  • Post author:
  • Post category:其他




什么是梯度?梯度有什么用?

写此篇博客主要是从原理上理解一下梯度是什么,加深自己的理解,以及将来方便复习

首先我们先回顾一下数量积(内积或点积)及方向向量的内容,因为后续梯度的理解及定义和这两个知识点密切相关。


点积:

设向量



a

R

n

b

R

n

a\in R^n \quad b \in R^n






a














R










n











b














R










n












,则a和b的点积为,



a

b

=

a

T

b

=

a

1

b

1

+

a

2

b

2

+

.

.

.

+

a

n

b

n

a\cdot b=a^Tb=a_1b_1+a_2b_2+…+a_nb_n






a













b




=









a










T









b




=









a










1



















b










1




















+









a










2



















b










2




















+













+









a










n



















b










n





















方向向量:

举一个二维向量的例子



a

R

2

a \in R2






a













R


2






在这里插入图片描述

从图可以看出a的单位向量



e

=

(

c

o

s

α

,

c

o

s

β

)

T

e=(cos\alpha,cos\beta)^T






e




=








(


cos


α


,




cos


β



)










T












,我们称e为a的方向向量。

下面我们举一个三维函数的例子,设在定义域D,连续可导函数



f

(

x

,

y

)

f(x,y)






f


(


x


,




y


)





,令



z

=

f

(

x

,

y

)

z=f(x,y)






z




=








f


(


x


,




y


)





,用图示如下:

在这里插入图片描述

已知一点P



(

x

0

,

y

0

)

D

(x_0,y_0)\in D






(



x










0


















,





y










0


















)













D





,取一个方向变化向量



Δ

t

=

(

Δ

x

,

Δ

y

)

\Delta t=(\Delta x,\Delta y)






Δ


t




=








(


Δ


x


,




Δ


y


)





,假设



α

\alpha






α









Δ

t

\Delta t






Δ


t





和x轴的夹角,则



Δ

x

=

c

o

s

α

Δ

t

\Delta x=cos\alpha \Delta t






Δ


x




=








cos


α


Δ


t









Δ

x

=

c

o

s

β

Δ

t

\Delta x=cos\beta \Delta t






Δ


x




=








cos


β


Δ


t







所以在P点的任意方向的函数微分(或导数)



d

z

d

t

=

f

(

x

0

+

Δ

x

,

y

0

+

Δ

y

)

f

(

x

0

,

y

0

)

d

t

\frac{dz}{dt}=\frac{f(x_0+\Delta x,y_0+\Delta y)-f(x_0,y_0)}{dt}


















d


t
















d


z























=




















d


t
















f


(



x










0


















+


Δ


x


,



y










0


















+


Δ


y


)





f


(



x










0


















,



y










0


















)
























,根据定义分析

在这里插入图片描述

注:如果一个函数



f

(

x

)

f(x)






f


(


x


)





,它的微积分的奥秘是,无限运动接近。其误差变化量其实就是误差项的运动速度大于



Δ

x

\Delta x






Δ


x





的变化量,如果



f

(

x

)

=

x

2

f(x)=x^2






f


(


x


)




=









x










2












,其导数定义运算:





lim

Δ

x

0

x

2

+

2

Δ

x

x

+

Δ

x

2

x

2

Δ

x

=

2

x

+

Δ

x

\lim_{\Delta x \to 0} \frac{x^2+2\Delta xx+\Delta x^2-x^2}{\Delta x}=2x+\Delta x















Δ


x





0









lim






























Δ


x















x










2











+







xx




+




Δ



x










2

















x










2





























=








2


x




+








Δ


x







其中为什么



Δ

x

\Delta x






Δ


x





可以忽略掉,思考一下,以为2x是某点固定变化量,而



Δ

x

\Delta x






Δ


x





是运动变化的,也就是说当



d

y

=

2

x

Δ

x

+

Δ

x

Δ

x

dy=2x*\Delta x+\Delta x*\Delta x






d


y




=








2


x













Δ


x




+








Δ


x













Δ


x





,第一项的运动变化是随着



Δ

x

\Delta x






Δ


x





以比例或者说是线性变化或者理解为相对不变,而第二项的值和



Δ

x

\Delta x






Δ


x





是运动的,是随着



D

e

l

t

a

x

Delta x






De


lt


a


x





变小而变得更小,随着



Δ

x

\Delta x






Δ


x





变大而变大的速度更快。所以误差项记作



o

(

Δ

x

)

o(\Delta x)






o


(


Δ


x


)





而偏导数的奥秘,举一个例子,二元函数



f

(

x

,

y

)

=

x

2

y

2

f(x,y)=x^2y^2






f


(


x


,




y


)




=









x










2










y










2












,先计算x的偏导数,





lim

Δ

x

0

2

x

y

2

+

Δ

x

y

2

=

2

x

y

2

\lim_{\Delta x \to 0} 2xy^2+\Delta xy^2=2xy^2















Δ


x





0









lim



















2


x



y










2











+








Δ


x



y










2











=








2


x



y










2














我们可以看到y项依然对影响着函数变化率,但相对于



D

e

l

t

a

x

Delta x






De


lt


a


x





的运动项忽略掉。

同样对y求偏导数





lim

Δ

y

0

2

y

x

2

+

Δ

y

x

2

=

2

y

x

2

\lim_{\Delta y \to 0} 2yx^2+\Delta yx^2=2yx^2















Δ


y





0









lim



















2


y



x










2











+








Δ


y



x










2











=








2


y



x










2














所以以上二元偏导数,是把运动量



Δ

t

\Delta t






Δ


t





分解到x方向及y方向,任一方向的偏导数也有可能收当前点的其他方向影响,但是相对于



D

e

l

t

a

x

Delta x






De


lt


a


x





的运动项忽略掉,记作



o

(

Δ

t

)

o(\Delta t)






o


(


Δ


t


)





根据以上性质我们可以理解,当



Δ

x

\Delta x






Δ


x









Δ

y

\Delta y






Δ


y





无限趋近于0时,



f

(

x

+

Δ

x

,

y

+

Δ

y

)

f

(

x

,

y

)

=

f

x

(

x

,

y

)

Δ

x

+

f

y

(

x

,

y

)

Δ

y

+

o

(

Δ

t

)

f(x+\Delta x,y+\Delta y)-f(x,y)=f_x^{‘}(x,y)*\Delta x+f_y^{‘}(x,y)*\Delta y+o(\Delta t)






f


(


x




+








Δ


x


,




y




+








Δ


y


)













f


(


x


,




y


)




=









f










x

















































(


x


,




y


)













Δ


x




+









f










y

















































(


x


,




y


)













Δ


y




+








o


(


Δ


t


)





,其中



o

(

Δ

t

)

o(\Delta t)






o


(


Δ


t


)





是误差函数,

计算的时候可以忽略。然后求方向上的导数




f

(

x

+

Δ

x

,

y

+

Δ

y

)

f

(

x

,

y

)

Δ

t

=

f

x

(

x

,

y

)

Δ

x

+

f

y

(

x

,

y

)

Δ

y

Δ

t

\frac{f(x+\Delta x,y+\Delta y)-f(x,y)}{\Delta t}=\frac{f_x^{‘}(x,y)*\Delta x+f_y^{‘}(x,y)*\Delta y}{\Delta t}


















Δ


t
















f


(


x


+


Δ


x


,


y


+


Δ


y


)





f


(


x


,


y


)























=




















Δ


t

















f










x















































(


x


,


y


)





Δ


x


+



f










y















































(


x


,


y


)





Δ


y
























又因为



Δ

x

Δ

t

=

c

o

s

α

\frac{\Delta x}{\Delta t}=cos\alpha


















Δ


t
















Δ


x























=








cos


α









Δ

y

Δ

t

=

c

o

s

β

\frac{\Delta y}{\Delta t}=cos\beta


















Δ


t
















Δ


y























=








cos


β






所以在方向向量t上的导数



f

t

(

x

,

y

)

=

f

x

(

x

,

y

)

c

o

s

α

+

f

y

(

x

,

y

)

c

o

s

β

f_t^{‘}(x,y)=f_x^{‘}(x,y)cos\alpha+f_y^{‘}(x,y)cos\beta







f










t

















































(


x


,




y


)




=









f










x

















































(


x


,




y


)


cos


α




+









f










y

















































(


x


,




y


)


cos


β





我们把方向导数做一个变形令向量



m

=

(

f

x

(

x

,

y

)

,

f

y

(

x

,

y

)

)

T

m=(f_x^{‘}(x,y),f_y^{‘}(x,y))^T






m




=








(



f










x

















































(


x


,




y


)


,





f










y

















































(


x


,




y


)



)










T












,则



t

=

(

c

o

s

α

,

c

o

s

β

)

T

t=(cos\alpha,cos\beta)^T






t




=








(


cos


α


,




cos


β



)










T












,我们发现此处的t就是方向向量t,然后我们把方向向量t的导数换个形式





f

t

(

x

,

y

)

=

f

x

(

x

,

y

)

c

o

s

α

+

f

y

(

x

,

y

)

c

o

s

β

=

m

t

=

m

t

cos

θ

f_t^{‘}(x,y)=f_x^{‘}(x,y)cos\alpha+f_y^{‘}(x,y)cos\beta=m\cdot t=|m||t|\cos\theta







f










t

















































(


x


,




y


)




=









f










x

















































(


x


,




y


)


cos


α




+









f










y

















































(


x


,




y


)


cos


β




=








m













t




=











m


∣∣


t







cos




θ










θ

m

向量和

t

向量的夹角

\theta为m向量和t向量的夹角






θ





m


向量和


t


向量的夹角





,从上式中看出当



c

o

s

θ

cos\theta






cos


θ





值最大时,导数最大,也就是



θ

=

0

\theta=0






θ




=








0





时最大,

t向量和m向量重合时导数最大。我们函数在某点处的m向量





m

=

(

f

x

(

x

,

y

)

,

f

y

(

x

,

y

)

)

T

m=(f_x^{‘}(x,y),f_y^{‘}(x,y))^T






m




=








(



f










x

















































(


x


,




y


)


,





f










y

















































(


x


,




y


)



)










T













为此处的梯度。

梯度有什么用呢,我们应该经常听到一个名词,梯度下降。比如我们构建了一个误差函数,已知在某处,我们可以求出梯度,我们通过梯度找到推进的方向,依次迭代计算找到极值时就是我们找到的局部最小值。

以上例子用二元函数做例子,同样可以扩充到更高的次元。



版权声明:本文为weixin_41216002原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。