内容来自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