상세 컨텐츠

본문 제목

[3주차 / 김희준 / 논문리뷰] Visualizing and Understanding Convolutional Networks

2023 Summer Session/CV Team 1

by heestogram 2023. 7. 25. 15:47

본문

 

작성자: 17기 김희준

 

본 논문은 Image classification에서 우수한 성능을 보이는 Convolutinal Networks Model이 어떻게 좋은 성능을 보일 수 있는지 이해를 돕는다. 흔히 이런 딥러닝 네트워크를 블랙박스와 같다고도 말할 정도로 내부 동작을 이해하기란 쉬운 일이 아닌데, 모델 내부의 각 layer, filter 등을 시각화함으로써 효과적으로 이해해보고자 한다.

 

1. Introduction

Convolutonal network가 내부적으로 어떻게 작동하고, 겹겹이 쌓은 layer들이 어떤 의미를 갖는지에 대해서 궁금증을 해소할 필요가 있다. 본 논문은 각 layers들에 포함된 feature map이 어떻게 생겼는지 시각화를 시도한다. 이 때 사용한 기법이 바로 multi-layered Deconvolutional Network(deconvnet)이다. deconvnetinput으로 들어온 픽셀에 feature activationproject(사영)한다.

 

또한 이미지에서 특정 부분을 masking한 후 output이 얼마나 민감하게 반응하는지 sensitivity analysis를 진행하기도 했다. 이로써 이미지의 어떤 부분이 classification에 중요하게 작용하는지 알 수 있다.

 

 

1.1 Related Work

본 논문 이전에도 netwrok에 대한 직관을 얻기 위한 시도들이 있었다. 다만 이전의 연구들은 모두 분석이 쉬운 첫 번째 layer에 대해서만 분석을 진행했다.

 

higher layer를 분석하는 방법으론 gradient descent를 계산하는 방법과 Hessian이 계산되는 방식을 보여주는 두 가지 방법이 있다. 하지만 두 방법 모두 unit invariance에 대한 정보가 불확실하다는 점에서 한계를 지닌다.

 

본 논문은 invariance 자체를 non parametric하게 바라보며 선행 연구와 차별점을 마련했다.

 

 

2. Approach

본 논문은 가장 일반적인 AlexNetbaseline model로 사용했다. AlexNet은 인풋으로 2D color image를 받으면, 이를 C개의 class에 대한 확률 벡터로 반환하는 모델이다. 이 때 각 레이어는 이전 layerconvolution시킨 것과 relu 함수, max pooling, activation 등의 과정으로 세분화된다.

 

 

2.1. Visualization with a Deconvnet

Deconvnet은 기존의 convolutional network가 수행하는 과정을 역으로 수행하는 방식이다. 다시 말해, convnet을 통해 만들어진 feature mapdeconventinput으로 들어가서 1) unpooling 2) rectify 3) filtering의 과정을 수행한다.

 

 

deconvnet의 구조를 도식화한 것

 

convnet에서 max pooling은 근처 픽셀 중 최댓값을 다음 layer로 전달하는 방식이다. 이를 역으로 수행하려면, 최댓값이 어느 위치에 있었는지 기억해두어야 한다. switch라는 변수에서 이 위치 정보를 기억함으로써 pooling의 역인 Unpooling을 수행할 수 있게 되었다.

 

unpooled map을 활성화 함수로 보내줘야 한다. 이를 rectify 과정이라고 하는데, 이 때 convnet과 마찬가지로 relu함수를 사용한다.

 

deconvnetd에서 filtering은 간단하다. convnet에서 사용한 filtertranspose하여 그대로 적용하면 된다.

 

 

3. Training Details

모델은 1000class로 나뉘는 130만 개 이미지인 ImageNet2012 데이터로 학습이 된다. 이미지는 256*256 크기로 전처리되고, 224*224 크기로 sub cropping된다. 이것을 128 mini batch size로 만든 후 SGD(경사하강법)으로 학습 시킨다. learning rate0.01을 사용한다. 또한 Dropout layer0.5 rate로 사용된다.

 

간혹 first layer에서 특정 구역만 dominate한 것을 볼 수 있다. 이를 해결하기 위해 filter들을 renormalize하는 과정도 거친다.

 

 

4. Convnet Visualization

 

학습을 통해 얻은 각 layer의 features

 

layer1,2corneredge에 집중하고, layer3invariancetexture에 집중하고 있다. layer4object의 특정 일부분에 집중하고 있고, layer5object의 위치와 자세 변화 등 더 세밀한 특징을 잡아낸다.

 

낮은 layer들은 적은 epoch로도 금방 converge된다. 예컨대 layer1,2,3이 각각 1,2,5 epoch만으로 학습된다. 하지만 높은 layer들은 더 세밀한 특징을 추출해내기 때문에 40~50 epoch가 소모된다.

 

논문에선 invariance에도 주목한다. invarianceinput이 바뀌어도 output이 유지되어 바뀌지 않는 정도를 뜻한다.

 

 

위 사진에서 ainputvertical tranlation한 경우이다. 사진을 잘 보면 각 사진의 위치가 조금씩 변하고 있다. binputscaling한 경우이다. 사진 크기가 점점 확대되는 것을 볼 수 있다. cinputlotating한 경우이다. 사진이 여러 방면으로 회전하는 것을 볼 수 있다.

 

2열은 layer1에서 원본 inputtranlationinput의 유클리디안 거리를 나타낸 것이다. 3열은 layer7에서 이 유클리디안 거리를 나타낸 것이다. 각 선의 색깔은 5개 각각의 object를 나타낸다. x축이 translation, scaling, lotating을 가한 정도를 나타내고 y축이 유클리디안 거리를 나타낸다. 4열은 각 변화가 생길 때마다 이미지를 제대로 분류할 확률을 나타낸다.

 

그래프를 해석해보면, 작은 transformation이더라도 layer1에선 dramatic한 변화를 보여주는 반면, layer7에서는 다소 완만한 변화를 보이고 있다. 따라서 layer를 거듭할수록 더 안정적으로 원본 이미지를 식별하게 된다.

 

또한 output의 변화가 translation이나 scaling에는 완만하게 나타나지만, rotation의 경우 output의 변화가 커지므로 invariance가 낮다는 것을 확인할 수 있다.

 

 

4.1. Architecture Selection

 

 

 

위 사진에서 b, d는 각각 기존 AlexNetfirst layer, second layer에서 추출한 feature map이고, c, e는 본 논문의 first layer, second layer에서 추출한 feature map이다. b, d에서는 aliasing artifacts라는 문제점이 드러나는데, 이는 feature가 적은 정보량을 가지는 문제이다.

 

본 논문에서는 이 점을 해결하고자 first layerfilter 크기를 11*11에서 7*7로 축소시켰고, stride size 역시 4에서 2로 줄였다. 이로써 c, e에서 feature의 정보가 더 다양해진 결과를 눈으로 확인할 수 있다. 그뿐만 아니라 classification 성능도 향상되었다.

 

 

4.2. Occlusion Sensitivity

본 논문은 이미지에서 특정 부분을 회색 박스로 가려서 classification을 진행했다. 이 경우 object를 제대로 분류할 확률이 떨어지게 된다.

 

 

위 사진은 포메라니안 사진을 input으로 넣고, 특정 부분을 회색 박스로 masking할 때 어떤 변화가 있는지를 나타낸 것이다. b는 특정 부분을 가렸을 경우 activation이 얼만큼 잘 되는지를 나타낸 heat map이다. 빨간색일수록 강한 activation, 파란색일수록 약한 activation이다. , 포메라니안의 얼굴 부분이 파란 것으로 보아, 얼굴을 masking할 경우 가장 낮은 activation을 보여줌을 알 수 있다.

 

d는 특정 부분을 가렸을 경우 object를 제대로 분류할 확률을 히트맵으로 나타낸 것이다. 역시나 얼굴 부분을 가릴 때 확률이 가장 낮아진다. e는 특정 부분을 가렸을 때 무엇으로 분류하는지를 나타낸 히트맵이다. 대부분의 경우 포메라니안(남색)으로 잘 분류하지만, 얼굴을 masking하면 테니스 공, 다른 개의 품종으로 잘못 분류하는 경향을 보인다.

 

 

4.3. Correspondence Analysis

 

 

본 논문은 correspond analysis도 진행했다. 서로 다른 개 사진 5장을 준비한다. 5장 모두 동일하게 왼쪽 눈을 masking할 경우, 결과가 비슷하다. 마찬가지로 오른쪽 눈을 masking하는 경우, 코를 masking하는 경우가 각각 비슷한 결과를 내고 있다. , input으로 여러 다른 사진이 들어오더라도 object가 같은 경우엔 유사한 feature를 잘 추출하고 있음을 알 수 있다.

 

 

5. Experiments

 

기존의 AlexNet에 비해 본 논문이 제시한 모델의 우수성을 검토하는 실험이다.

 

 

layer 3,4,5feature map 크기를 수정함으로써 더 나은 성능을 얻게 되었다.

 

ImageNet으로 pretrained된 본 논문의 모델을 Caltech-101, Caltech-256, PASCAL VOC 2012 등 다른 데이터셋으로도 성능 검증을 해보도록 했다. 선행연구와의 차이점은 softmax classifier를 사용한다는 것이었다. 여태껏 linear SVM을 많이 사용해왔지만, softmax가 훨씬 파라미터 수가 적기 때문에 빠른 학습이 가능했다. 속도 뿐 아니라 val score 역시 기존의 AlexNet보다 월등히 좋은 성능을 보였다.

 

 

기존 모델들보다 본 논문의 ImageNet pretrained model이 더 나은 accuracy를 보이고 있다.

관련글 더보기

댓글 영역