ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [딥러닝 학습 팁] Gradient checking
    Data miner 2020. 12. 12. 20:58
    728x90

    • Gradinet checking은 Forward propagation, Backward propagation 이후, backward propagation으로 구해진 역전파값이 정확한지 점검하는 과정이다.
    • 학습 단계에서 사용하는 것이 아니라 디버깅 단계에서 사용한다. 왜냐하면, 한 번 학습할 때마다 Gradient checking할 경우 시간이 너무 오래 소요되기 때문이다. 
    • 수식으로 정의된 Derivative(혹은 Gradient)값과 Backward progation으로 구해진 값이 동일하거나 근소한 차이를 보이는지 확인한다. 
    • 구체적으로, delta에 속하는 여러가지 파라미터들(W,b...)들을 각 레이어에 속한 각 뉴런값들을 n by 1차원의 메트릭스로 표현한다. (n=전체 모델이 학습시켜야 하는 파라미터의 총 개수)
    • 여러 파라미터의 각 값의 grad, gradapprox, grad-gradapprox의 노름값을 numpy의 np.linalg.norm함수를 사용하여 구한다. 
    • 만약, gradient checking시 문제가 생겼다면, 순차적으로 레이어를 훑으면서 어느 값이 잘못되었는 찾아본다. 
    • Regularization을 적용하였을 때, 이 부분을 반영하여 gradient checking해야 한다.
    • Drop-out을 적용하여 학습했을 때에는 Gradient checking을 실행할 수 없다. Dropout을 끈 상태에서 Gradient checking을 먼저 해보고, 이상이 없다면 drop-out시에도 이상이 없는 것으로 편의상 간주한다. 

     

Designed by Tistory.