数值梯度 (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
$$