数值梯度 (Numerical Gradient)

$$ \frac{\mathrm{d}f(x)}{\mathrm{d}x}=\lim_{\Delta x\rightarrow 0}\frac{f(x+\Delta x)-f(x)}{\Delta x}\\\\ \frac{\mathrm{d}f(x)}{\mathrm{d}x}\approx\frac{f(x+\epsilon)-f(x-\epsilon)}{2\epsilon} $$

根据上式, 当 $\epsilon$ 取得足够小时, 就可以近似的认为其是梯度. 这样的方法求梯度非常方便, 但是并不是完全精确 (总是存在误差) , 这就是数值梯度.

解析梯度 (Analytical Gradient)

解析梯度即利用求导法则, 精确的求出其梯度, 推导一般比较麻烦, 但是如果推导出来, 那么求梯度的速度和精确度会好于数值梯度

例子

比如说我们要求 $f(x)=x^2$ 这个函数在 $x=2$ 时的梯度.

数值梯度

$$ \left.\frac{\mathrm{d}f(x)}{\mathrm{d}x}\right|_{x=2}\approx \left.\frac{f(x+\epsilon)-f(x-\epsilon)}{2\epsilon}\right|_{x=2,\epsilon=0.0001}=4.000000000004 $$

解析梯度

$$ \left.\frac{\mathrm{d}f(x)}{\mathrm{d}x}\right|_{x=2}=2x|_{x=2}=4 $$