우노
[DL] Gradient Checking 본문
- Backpropagation은 구현이 매우 어렵기 때문에 버그가 발생해도 어디서부터 고쳐야 할지가 마땅치 않다.
- 이 때, gradient checking을 사용한다.
- gradient checking은 역전파 알고리즘이 얼마나 정확하게 구현되었는지 수동으로 검증하는 방법이다.
즉, 기울기에 대한 근사치를 구해서 비교하여 검증하는 방법이다.
e(엡실론) 이 매우 작다 가정하고, θ-e 와 θ+e 두 점 사이의 기울기를 구한다.
우리는 θ가 하나가 아니기 때문에, 각각의 θ(theta)에 대한 gradient 를 모두 구해야한다.
이후, gradient checking 을 이용해 구한 gradApprox 와 실제 역전파를 이용해 구한 Dvec가 비슷한지 검사한다.
2개의 벡터가 비슷한지는 어떻게 계산할까?
2개의 벡터간 거리를 산출한다.
- R_err ≤ 10^-7 : 매우 좋음
- R_err ≤ 10^-4 : 약간 문제 있음
- R_err > 10^-4 : 문제 있음
그러나, 한가지 알아야할 사실이 있다.
gradient checking 은 굉장히 비싸기 때문에 Dvec와 비슷한 값을 구했는지 검사한 후에는 gradient checking 를 꺼야한다.
'AI > Deep Learning' 카테고리의 다른 글
[DL] Regularization (Dropout) (0) | 2021.01.19 |
---|---|
[DL] 가중치 초기화 (1) | 2021.01.19 |
[DL] Regularization (L1, L2) (0) | 2021.01.18 |
[DL] Bias(편향) vs Variance(분산) (0) | 2021.01.17 |
[DL] 일반적인 딥러닝 순서 (0) | 2021.01.13 |
Comments