导数,微分,梯度其实是很相似的东西。分别在初中高中以及大学学习。
导数针对一元函数y=f(x)
微分和梯度都是针对多元函数y=f(x1,x2,x3...)
导数用df(x)表示
微分用f(x)表示
梯度用f(x)表示
前两者都表示函数对于自变量变化的速率!!!在某点大于零就是增大的速率,反之
导数和微分是标量没有方向,而梯度是一个多元函数的所有自变量的微分组成的向量,是具有方向的,而且指向函数增大的方向!!
梯度下降法常用于寻找多元函数中的极小值点
公式:x’=x-a*f(x)
之前说了梯度指向函数增大的方向,所以x的更新当然要与梯度方向相反,所以用“减”。
但是梯度是个向量不是没值嘛,所以在更新自变量x时其实是计算多元函数对于每个自变量xi
的微分!!!!分别对每个自变量进行更新:
xi’=xi-a*f(xi)
同时,因为微分值其实只指明了方向,所以一般加一个很小的参数a对梯度步长进行限制。
最后,这个公式其实对一元函数也同样适用,把微分改为导数即可,比如可以试下y=x^2