梯度检查

梯度检查(Gradient Checking)中使用的双边逼近(Two-sided Approximation)方法,也称为中心差分法(Central Difference Method)

1. 梯度检查的目的

在深度学习中,我们使用反向传播算法(Backpropagation)来计算损失函数关于模型参数的梯度。然而,反向传播的实现复杂,容易出错。
梯度检查是一种数值方法,用于验证反向传播计算出的解析梯度(Analytical Gradient)是否正确。它通过使用函数值的微小变化来数值逼近梯度。

image

2. 为什么双边逼近更好?

双边逼近的主要优势在于其更高的准确性
  • 误差更小:双边逼近的误差项是𝑂(𝜖2)级别的(与𝜖的平方成正比)。这意味着,如果𝜖很小,双边逼近的误差比单边逼近小得多。
    • 例如,如果𝜖=0.01,单边误差约为0.01,而双边误差约为0.0001。
  • 对称性:它在θ(音theta)点周围对称地采样,更好地捕捉了该点的局部斜率。 
可使用泰勒公式加以证明。这里不再详述。

3.梯度检查的实现步骤

在实际应用中,梯度检查涉及将解析梯度与数值梯度进行比较:

1)计算解析梯度:使用反向传播算法计算模型的梯度𝑔analytic

2)计算数值梯度:对模型的每个参数𝜃𝑖,使用双边逼近公式计算其数值梯度𝑔numeric,𝑖

3)比较:计算解析梯度和数值梯度之间的相对差(Relative Difference)


Relative Difference = | 𝑔analytic − 𝑔numeric | / | 𝑔analytic | + | 𝑔numeric |

4)判断

    • 如果相对差小于10−7或10−8,说明反向传播的实现很可能是正确的。
    • 如果相对差大于10−5,通常意味着你的反向传播实现可能存在错误(Bug)。
 
 
posted @ 2025-11-12 15:17  PKICA  阅读(4)  评论(0)    收藏  举报