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를 판단하는데 중요한 정보만을 골라와서 그렸다고 볼 수 있다
그랬더니 실제로 제일 깔끔한 결과가 나왔다
경험적으로 해본건데 결과가 좋았다고 한다
'딥러닝 > Computer Vision' 카테고리의 다른 글
CNN visualization6 - grad CAM - (0) | 2023.06.24 |
---|---|
CNN visualization5 - Class Activation Map(CAM) - (0) | 2023.06.24 |
CNN visualization3 - occlusion map & backpropagation saliency map (0) | 2023.06.21 |
CNN visualization2 - layer activation & class visualization (0) | 2023.06.20 |
CNN visualization1 - First filter visualization (0) | 2023.06.18 |