CNN visualization4 - guided backpropagation -

1. motivation

 

CNN에서 일반적으로 ReLU를 사용하여 forward pass를 한다

 

ReLU는 음수 부분을 0으로 만드는 성질이 있다

 

이것의 backpropagation은 input단에서 음수부분은 gradient가 존재하지 않는다는 것을 기억한다면

 

gradient map이 가더라도 gradient가 음수인 부분은 input에서 0으로 masking되어 구해진다

 

 

 

파란색 부분은 input단에서 양수인 부분이라 gradient map에서 gradient 값이 들어올 수 있음

 

 

2. Zeiler의 deconvolution

 

앞에서 backpropagation이 input단의 음수인 부분에서 gradient가 흐르지 않게 만들었는데

 

input으로 들어오는 gradient map에서 음수인 gradient를 0으로 masking해버리자

 

 

deconvolution은 input으로 들어오는 gradient map에서 음수인 gradient를 없애버리자

 

처음에 수식이 $\frac{\partial L}{\partial h^{l+1}} = ~~~~ \frac{\partial L}{\partial h^{l}}$이어야 하는줄 알았는데

 

기존 MLP에서 낮은층 가중치 미분 $\frac{\partial L}{\partial W}$을 chain rule로 직접 상상해보면 쉽게 이해가능

 

근데 사실 이것은 gradient라고 보기도 어렵고 backpropagation이라고 보기도 어렵고 그냥 인위적으로 만들어진 개념 느낌인데

 

한발 더 나아가 두 방법을 혼용한 guided backpropagation이란

 

input단에서 음수인 부분은 gradient가 안들어온다고 생각하여 0으로 masking하고

 

input으로 들어오는 gradient map에서 음수 gradient는 들어오지 않는다고 생각하여 0으로 masking

 

일반적인 backpropagation과 deconvolution을 혼용했다

 

수식만 보면 gradient도 아니고 수학적으로도 이상하고 이해하기 힘든데 saliency map 결과를 보면 재밌는 부분이 있다

 

 

input의 어디를 보고 고양이라고 판단했을지 saliency map을 그림

 

guided backpropagation saliency map이 제일 깔끔하다

 

guided backpropagation map은 backpropagation map과 deconvolution map을 그리는 두 방식을 혼합했다

 

backpropagation map은 forward pass에서 음수인 부분을 없애버리고 긍정적으로 영향을 미치는 양수부분을 참조했다

 

deconvolution map은 backward pass에서 음수인 부분을 없애버리고 gradient가 강화하는 방향으로 움직이는 것을 골랐다

 

guided backpropagation map은 forward, backward 양방향에서 class를 판단하는데 중요한 정보만을 골라와서 그렸다고 볼 수 있다

 

그랬더니 실제로 제일 깔끔한 결과가 나왔다

 

경험적으로 해본건데 결과가 좋았다고 한다

 

 

TAGS.

Comments