数值梯度与解析梯度
数值梯度 (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 $$本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 云玩家!