[3주차 / 김희준 / 논문리뷰] Visualizing and Understanding Convolutional Networks
작성자: 17기 김희준
본 논문은 Image classification에서 우수한 성능을 보이는 Convolutinal Networks Model이 어떻게 좋은 성능을 보일 수 있는지 이해를 돕는다. 흔히 이런 딥러닝 네트워크를 ‘블랙박스’와 같다고도 말할 정도로 내부 동작을 이해하기란 쉬운 일이 아닌데, 모델 내부의 각 layer, filter 등을 시각화함으로써 효과적으로 이해해보고자 한다.
Convolutonal network가 내부적으로 어떻게 작동하고, 겹겹이 쌓은 layer들이 어떤 의미를 갖는지에 대해서 궁금증을 해소할 필요가 있다. 본 논문은 각 layers들에 포함된 feature map이 어떻게 생겼는지 시각화를 시도한다. 이 때 사용한 기법이 바로 multi-layered Deconvolutional Network(deconvnet)이다. deconvnet은 input으로 들어온 픽셀에 feature activation을 project(사영)한다.
또한 이미지에서 특정 부분을 masking한 후 output이 얼마나 민감하게 반응하는지 sensitivity analysis를 진행하기도 했다. 이로써 이미지의 어떤 부분이 classification에 중요하게 작용하는지 알 수 있다.
본 논문 이전에도 netwrok에 대한 직관을 얻기 위한 시도들이 있었다. 다만 이전의 연구들은 모두 분석이 쉬운 첫 번째 layer에 대해서만 분석을 진행했다.
higher layer를 분석하는 방법으론 gradient descent를 계산하는 방법과 Hessian이 계산되는 방식을 보여주는 두 가지 방법이 있다. 하지만 두 방법 모두 unit invariance에 대한 정보가 불확실하다는 점에서 한계를 지닌다.
본 논문은 invariance 자체를 non parametric하게 바라보며 선행 연구와 차별점을 마련했다.
본 논문은 가장 일반적인 AlexNet을 baseline model로 사용했다. AlexNet은 인풋으로 2D color image를 받으면, 이를 C개의 class에 대한 확률 벡터로 반환하는 모델이다. 이 때 각 레이어는 이전 layer를 convolution시킨 것과 relu 함수, max pooling, activation 등의 과정으로 세분화된다.
Deconvnet은 기존의 convolutional network가 수행하는 과정을 역으로 수행하는 방식이다. 다시 말해, convnet을 통해 만들어진 feature map이 deconvent의 input으로 들어가서 1) unpooling 2) rectify 3) filtering의 과정을 수행한다.
convnet에서 max pooling은 근처 픽셀 중 최댓값을 다음 layer로 전달하는 방식이다. 이를 역으로 수행하려면, 최댓값이 어느 위치에 있었는지 기억해두어야 한다. switch라는 변수에서 이 위치 정보를 기억함으로써 pooling의 역인 Unpooling을 수행할 수 있게 되었다.
unpooled map을 활성화 함수로 보내줘야 한다. 이를 rectify 과정이라고 하는데, 이 때 convnet과 마찬가지로 relu함수를 사용한다.
deconvnetd에서 filtering은 간단하다. convnet에서 사용한 filter를 transpose하여 그대로 적용하면 된다.
모델은 1000개 class로 나뉘는 130만 개 이미지인 ImageNet2012 데이터로 학습이 된다. 이미지는 256*256 크기로 전처리되고, 224*224 크기로 sub cropping된다. 이것을 128 mini batch size로 만든 후 SGD(경사하강법)으로 학습 시킨다. learning rate는 0.01을 사용한다. 또한 Dropout layer는 0.5 rate로 사용된다.
간혹 first layer에서 특정 구역만 dominate한 것을 볼 수 있다. 이를 해결하기 위해 filter들을 renormalize하는 과정도 거친다.
layer1,2는 corner와 edge에 집중하고, layer3는 invariance나 texture에 집중하고 있다. layer4는 object의 특정 일부분에 집중하고 있고, layer5는 object의 위치와 자세 변화 등 더 세밀한 특징을 잡아낸다.
낮은 layer들은 적은 epoch로도 금방 converge된다. 예컨대 layer1,2,3이 각각 1,2,5 epoch만으로 학습된다. 하지만 높은 layer들은 더 세밀한 특징을 추출해내기 때문에 40~50 epoch가 소모된다.
논문에선 invariance에도 주목한다. invariance란 input이 바뀌어도 output이 유지되어 바뀌지 않는 정도를 뜻한다.
위 사진에서 a는 input을 vertical tranlation한 경우이다. 사진을 잘 보면 각 사진의 위치가 조금씩 변하고 있다. b는 input을 scaling한 경우이다. 사진 크기가 점점 확대되는 것을 볼 수 있다. c는 input을 lotating한 경우이다. 사진이 여러 방면으로 회전하는 것을 볼 수 있다.
2열은 layer1에서 원본 input과 tranlation된 input의 유클리디안 거리를 나타낸 것이다. 3열은 layer7에서 이 유클리디안 거리를 나타낸 것이다. 각 선의 색깔은 5개 각각의 object를 나타낸다. x축이 translation, scaling, lotating을 가한 정도를 나타내고 y축이 유클리디안 거리를 나타낸다. 4열은 각 변화가 생길 때마다 이미지를 제대로 분류할 확률을 나타낸다.
그래프를 해석해보면, 작은 transformation이더라도 layer1에선 dramatic한 변화를 보여주는 반면, layer7에서는 다소 완만한 변화를 보이고 있다. 따라서 layer를 거듭할수록 더 안정적으로 원본 이미지를 식별하게 된다.
또한 output의 변화가 translation이나 scaling에는 완만하게 나타나지만, rotation의 경우 output의 변화가 커지므로 invariance가 낮다는 것을 확인할 수 있다.
위 사진에서 b, d는 각각 기존 AlexNet의 first layer, second layer에서 추출한 feature map이고, c, e는 본 논문의 first layer, second layer에서 추출한 feature map이다. b, d에서는 aliasing artifacts라는 문제점이 드러나는데, 이는 feature가 적은 정보량을 가지는 문제이다.
본 논문에서는 이 점을 해결하고자 first layer의 filter 크기를 11*11에서 7*7로 축소시켰고, stride size 역시 4에서 2로 줄였다. 이로써 c, e에서 feature의 정보가 더 다양해진 결과를 눈으로 확인할 수 있다. 그뿐만 아니라 classification 성능도 향상되었다.
본 논문은 이미지에서 특정 부분을 회색 박스로 가려서 classification을 진행했다. 이 경우 object를 제대로 분류할 확률이 떨어지게 된다.
위 사진은 포메라니안 사진을 input으로 넣고, 특정 부분을 회색 박스로 masking할 때 어떤 변화가 있는지를 나타낸 것이다. b는 특정 부분을 가렸을 경우 activation이 얼만큼 잘 되는지를 나타낸 heat map이다. 빨간색일수록 강한 activation, 파란색일수록 약한 activation이다. 즉, 포메라니안의 얼굴 부분이 파란 것으로 보아, 얼굴을 masking할 경우 가장 낮은 activation을 보여줌을 알 수 있다.
d는 특정 부분을 가렸을 경우 object를 제대로 분류할 확률을 히트맵으로 나타낸 것이다. 역시나 얼굴 부분을 가릴 때 확률이 가장 낮아진다. e는 특정 부분을 가렸을 때 무엇으로 분류하는지를 나타낸 히트맵이다. 대부분의 경우 포메라니안(남색)으로 잘 분류하지만, 얼굴을 masking하면 테니스 공, 다른 개의 품종으로 잘못 분류하는 경향을 보인다.
본 논문은 correspond analysis도 진행했다. 서로 다른 개 사진 5장을 준비한다. 5장 모두 동일하게 왼쪽 눈을 masking할 경우, 결과가 비슷하다. 마찬가지로 오른쪽 눈을 masking하는 경우, 코를 masking하는 경우가 각각 비슷한 결과를 내고 있다. 즉, input으로 여러 다른 사진이 들어오더라도 object가 같은 경우엔 유사한 feature를 잘 추출하고 있음을 알 수 있다.
기존의 AlexNet에 비해 본 논문이 제시한 모델의 우수성을 검토하는 실험이다.
layer 3,4,5의 feature map 크기를 수정함으로써 더 나은 성능을 얻게 되었다.
ImageNet으로 pretrained된 본 논문의 모델을 Caltech-101, Caltech-256, PASCAL VOC 2012 등 다른 데이터셋으로도 성능 검증을 해보도록 했다. 선행연구와의 차이점은 softmax classifier를 사용한다는 것이었다. 여태껏 linear SVM을 많이 사용해왔지만, softmax가 훨씬 파라미터 수가 적기 때문에 빠른 학습이 가능했다. 속도 뿐 아니라 val score 역시 기존의 AlexNet보다 월등히 좋은 성능을 보였다.
기존 모델들보다 본 논문의 ImageNet pretrained model이 더 나은 accuracy를 보이고 있다.
[4주차/강민채/논문리뷰] Generative Adversarial Nets (0) | 2023.07.31 |
---|---|
[3주차/이서연/논문리뷰] Style Transfer (0) | 2023.07.26 |
[3주차/강민채/논문리뷰] Saliency Maps (0) | 2023.07.24 |
[2주차 / 강민채 / 논문리뷰] YOLOv1 (1) | 2023.07.19 |
[2주차/ 문성빈 / 논문리뷰] YOLO(You Only Look Once) (1) | 2023.07.19 |
댓글 영역