学习----梯度知识

内容来自CSDN--作者为zsffuture

https://blog.csdn.net/weixin_42398658/article/details/83017995

什么是梯度?

以二元函数为例,如果一个函数为f(x,y),某点(x0,y0)的梯度为:

 

由定义可以看出,梯度为一个向量。

要进一步介绍梯度要从泰勒级数开始 

泰勒级数:解释为什么极值点处导数等于0.

当x为标量时,根据泰勒公式,若在x=xk处有极大值点,不管δ>0,或,δ<0都有满足,所以就有δ>0,一阶导数>0,δ<0,一阶导数<0,又因为

要同时满足,所以要求一阶导数=0。

变成多元函数,x为向量时,根据泰勒公式变成如下,

为了找极值,我们选取一个合适的方向,使f(x)增长或减小最快。由向量內积的性质,令向量δ与共线,且δ=

此时这个向量δ就是多元函数的一阶偏导数,并且指向增长最快的方向。

在TensorFlow使用梯度

w=tf.constant(1.)
x=tf.constant(2.)
with tf.GradientTape() as tape:
        tape.watch([w])
        y2=w*x
grad2=type.gradient(y2,[w])

对函数y=wx+b求梯度。

 

δ>0

posted @ 2020-06-29 09:16  猫七的blog  阅读(323)  评论(0编辑  收藏  举报