概念
梯度的數值逼近是一種用于驗證梯度計算正確性的方法,它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用,但它可以用來檢查手動或自動求導的實現是否正確。
代碼實現
import numpy as np# 定義函數 f(x) = x^2
def function(x):return x**2# 計算梯度的數值逼近
def numerical_gradient(f, x):h = 1e-5grad = np.zeros_like(x)for i in range(x.shape[0]):tmp_val = x[i]# f(x + h)x[i] = tmp_val + hfxh1 = f(x)# f(x - h)x[i] = tmp_val - hfxh2 = f(x)grad[i] = (fxh1 - fxh2) / (2 * h)x[i] = tmp_valreturn grad# 計算 x = 3 處的梯度
x = np.array([3.0, 4.0])
gradient = numerical_gradient(function, x)
print("Numerical Gradient:", gradient)