梯度下降法(Gradient descent)
标签: 机器学习
1.梯度下降法有什么用
梯度下降法用来求函数的极小值,且是一种迭代算法,由于计算效率高,在机器学习中常常使用。梯度下降法经常求**凸函数(convex function)**的极小值,因为凸函数只有一个极小值,使用梯度下降法求得的极小值就是最小值。
与其对应的有梯度上升法(Gradient ascent),用来求函数的极大值,两种方法原理一样,只是计算的过程中正负号不同而已。
2.什么是梯度
先看看维基百科:
标量场中某一点的梯度指向在这点标量场增长最快的方向。
感觉略微抽象,可以用山的高度来解释一下。假设有一个人站在山上的某一点,他通过观察发现了一条“最陡”的路,那么这条路的方向就是梯度所指的方向。
需要强调一下,梯度是一个矢量,方向导数是一个标量,梯度所指向的方向是方向导数最大的方向,且梯度的模和方向导数的最大值相等。
求梯度的方法很简单,对每一个自变量求偏导数,然后将其偏导数作为自变量方向的坐标即可。梯度的符号为 ∇ \nabla ∇,则函数 f ( x , y ) f(x,y) f(x,y)的梯度为:
∇ f ( x , y ) = ( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) \nabla f(x,y)=\left( \frac {\partial f(x,y)}{\partial x},\frac {\partial f(x,y)}{\partial y} \right) ∇f(x,y)=(∂x∂f(x,y),∂y∂f(x,y