0. Abstract
- AlexNet부터 Large Convolutional Network models들이 ImageNet에서 상당히 안정적인 성능을 보임
- 그러나, 왜 모델들이 잘 동작하는지, 어떻게 개선이 된건지에 대해 명확한 이해가 없음
- 해당 paper를 통해 새로운 visualization techinique을 제시하여 intermediate feature layer들과 분류기의 operation에 대한 함수의 통찰력을 제공함
- 서로 다른 layer들이 미치는 performance contribution을 측정하기 위해, 하나씩 제거해보는 연구를 수행
- 추가적으로, ImageNet model의 다른 dataset들을 이용해서 일반화 특성을 파악함
1. Introduction
- 1990년대 초반, LeCun의 연구에서는 CNN이 손글씨 인식이나, face detection등에 우수한 성능을 보인다고 소개됨
- 2012년도 ImageNet 대회에서 AlexNet이 PASCAL VOC 데이터 셋에 대해 error가 16.4%로 1등을 함(2등 model은 26.1%)
- → 성능 향상 요인
- 레이블링된 수백만개의 샘플 학습 데이터 셋
- 강력한 GPU 파워가 제공되어 큰 규모의 모델들의 practical한 학습 가능
- Dropout과 같은 모델의 regulation 전략이 발전됨
- → 성능 향상 요인
- 이러한 계속되는 발전에도 불구하고, 이런 복잡한 모델들의 내부 operation과 behavior들에 대한 인사이트가 거의 없음 → trial-and-error가 시행됨
- 해당 논문의 제안
- 각각의 feature map들을 자극하는 입력 stimuli를 나타내기 위해 visualization techinique을 제안
- 시각화는 training동안 feature들의 진화를 관찰할 수 있게 해줌
- 모델의 잠재적인 문제를 진단 가능하게 함
- 제안한 visualization technique는 Zeiler라는 사람이 제안한 Deconvolutional Network(deconvnet)을 사용함
- input pixel 공간에 feature activation을 투영시킴
- classification할 때 어느 부분이 중요한지 분석함
- 각각의 feature map들을 자극하는 입력 stimuli를 나타내기 위해 visualization techinique을 제안
- 해당 논문에 활용지점
- 해당 tool을 사용해서 ImageNet에서 1등한 Alexnet을 탐구함
- 모델의 일반화 능력을 위해 다른 데이터로도 탐험함
1) Related Work
- 기존 Visualizing feature
- 현실에서 network를 파악하기 위해, 시각화 방법을 많이 사용함 → 대부분 pixel공간으로 projection이 가능한 1번째 레이어로 제한됨
- 상위 Layer를 시각화 하는 방법 중 하나인 unit activation을 최대화 하기 위해 이미지 공간의 gradient descent를 수행하며 각 unit의 최적의 stimuli를 찾는 방법
- unit? CNN의 뉴런, 예를 들어 Convolutional Layer의 필터의, Fully Connected Layer의 뉴런 등..)
- 조심스러운 initialization이 필요하며, unit들의 불변성(invariance)에 대해 어떠한 정보도 받지 못하는 어려움 존재
Unit’s Invariance
- Invariance한 뉴런은 입력이 특정 변환을 거치더라도 해당 feature로 high response를 유지하는 것
- 예를 들어, 얼굴 특징을 탐지하는 뉴런의 경우 얼굴이 rotate되더라도 recognition을 잘 하는 것
- 해당 논문에서 제시하는 Visualizing techinique
- 학습 데이터셋에 대해 어떤 패턴이 feature map을 activation시키는지 보기 위해 invariance(불변성)을 non-paramatric한 view에서 제공한 기법을 제안
- 본 논문에서 사용하는 Convolution layer대신 Convet의 Fully Connected layer로부터 투영하게 saliency map을 얻는 기법과 상당히 유사함
- input image를 crop하지 않고,각 feature map에 top-down structure에 투영함
2. Approach
- 본 논문은 표준 fully supervised convnet model인 Alexnet을 사용
Alexnet
- 8개의 layer로 구성 → 5개의 Conv layer, 3개의 FC layer
1) Visualization with a Deconvnet
- CNN의 동작을 이해하기 위해, 중간의 hidden layer들의 feature activity에 대한 해석이 필요함
- input space로 다시 mapping 시키는 Deconvolutional Network에 기반한 새로운 방법을 제시
- 이러한 mapping을 Deconvolutional Network(deconvnet)등을 사용함
- 네트워크, 즉 pixel의 mapping 되는 과정에 정반대라고 생각하면 됨
- convnet을 진단하기 위해, deconvnet은 각 layer들에 부착됨
- Image pixel들까지 다시 되돌아오는 경로가 제공됨
- 시각화 방법
- 입력 Image가 주어지면, convnet에 제공되고 feature가 각 layer를 통과하며 계산함
- 주어진 convnet의 activation을 진단하기 위해, layer내에 다른 모든 activation을 0으로 setting하고, feature map에 통과하게 함으로써, deconvnet layer의 입력이 되도록 함
- unpool 수행
- rectification을 수행
- filter을 수행하여 layer아래의 activation들을 restruct해줌 → 선택된 activation를 시각화
Unpooling
- convnet에서 maxpooling 연산은 non-invertible(역을 계산할 수 없는) 연산
- maxpooling을 가장 큰 값만을 가지고 나머지는 버리는 연산이기 때문
- maxima값의 location 정보를 저장한 것을 switch variables 기록하며, inverse를 근사하는 값을 얻을 수 있음
- switch layer로 reconstruction하는 과정에서 적절한 위치를 잡게함으로써 stimulus의 구조를 보존함
Rectification
- Rectification? ReLU의 활성화함수 적용
- f(x)=max(0,x)
- 해당 논문에서 convnet은 Relu(비선형) 함수를 사용함
- feature map들이 rectifiy되며 feature map들이 항상 positive한 상태를 보장받음
- Relu를 거치면 양수인 부분은 그대로라서 상관이 없지만, 음수 부분은 아예 0이 되어버려서 살릴 수 있는 방법이 없음 → 해당 논문에서 음수부분은 우리가 원하는 stimulus를 찾는데는 영향을 끼치지 않아 문제가 되지 않다고함
Filtering
- convolution연산을 inverse 하기위해 같은 filter들의 transpose하고, 연산된 결과와 곱함
- 참고 : https://medium.com/apache-mxnet/transposed-convolutions-explained-with-ms-excel-52d13030c7e8
3. Training Details
- ImageNet dataset의 classfication 수행을 위해 AlexNet model 사용
- 3, 4, 5번째의 layer의 sparse connection을 dense connection으로 대체
- AlexNet의 training할 때는 GPU를 분리해서 병렬 수행했기 때문
- 3, 4, 5번째의 layer의 sparse connection을 dense connection으로 대체
- 학습 데이터
- 해당 모델은 ImageNet 2012 dataset으로 학습(1.3 milion image, 1000개의 class)
- 입력 크기는 256x256으로 cropping한 후, 224x224로 sub cropping을 수행
- hyperparameters
- 128 mini batch size, learning rate 0.01
- 학습하는 도중 첫 번째 layer의 시각화는 일부가 dominant한 것을 확인 가능함
- 이를 위해, convolutional layer의 각 filer를 renormalize함
- 학습
- 70 epoch 이후 학습을 멈추고, 12일간 GTX 580로 학습 진행
4. Convnet Visualization Result
1) Feature Visualization
- training된 model의 feature들을 시각화한 결과
- deconvnet을 사용해서 ImageNet의 validation set에 대해서, feature activation을 시각화함
- Results
- layer1, 2는 edge, corner와 같은 low level의 feature들을 추출함
- layer3의 경우, 좀 더 깊어진 high level의 feature, 사물의 texture나 어느정도의 물체를 추출함
- layer4는 사물이나 개체의 일부분의 feature를 시각화
- layer5는 사물이나 개체의 위치 및 자세 변화를 포함하는 전체모습을 시각화함
- layer가 더 깊어질 수록 더 세밀한 특징을 잡아냄
2) Feature Evolution during Training
- 각 feature들을 학습하는데 1, 2, 5, 10, 20, 30, 40, 64 epoch가 소요됨
- epoch가 커짐에 따라 특징을 제대로 추출 가능함
3) Feature Invariance
- invariance
- 함수의 입력이 바뀌어도 출력은 그대로 유지되는 것
- 그림에서 행
- a는 사진을 translation했을 때
- b는 scale 했을 때
- c는 rotation 했을 때를 의미
- Results
- a,b, c2와 a, b,c3은 layer1과 layer7에서 원본과 변형된 이미지의 feature vector 사이의 Euclidean distance를 나타낸 그래프
- a, b, c4는 각 이미지에 변형됨에 따라각 이미지를 옳게 분류할 확률을 나타냄
- layer1에서는 작은 변화에도 민감하게 변하지만, layer7에서는 불변성이 얻어지는 것을 확인
4) Architecture Selection
- Alexnet을 visualization하면서, 더 좋은 모델을 만들기 위해 노력함
- Layer 1: 11x11 filter를 7x7 filter로 줄임
- Layer 2: Stride size를 4에서 2로 줄임
- 더 선명하고, 다양한 filter를 얻을 수 있었음
5) Occlusion Sensitivity
- 해당 paper의 저자들은 input image에 특정 부분을 가리면, 분류가 어떻게 동작되는지 확인하는 실험을 함
- 이를 확인하기 위해 obejction의 일부분을 회색 박스로 가리고 학습을 진행
- 결과로, 물체를 가리면 그 물체를 제대로 분류할 가능성이 떨어진다는 것을 확인함
- 사진 예시
- (c)는 최상단인 feature map에서 deconvent을 이용한 결과 → 강아지 얼굴이 가장 강력한 feature로 추출됨
- (d)는 가린 부분을 옮겨가며, feature map의 활성도 결과를 보여줌 → activation이 확 떨어지는 것을 확인
- (e)는 가린 부분을 옮겨가며, 분류에 대한 결과
- 아래 실험은 강아지의 location(오른쪽 눈, 왼쪽눈, 코, 랜덤선택)을 회색박스로 가린 후 original 사진과 feature vector의 오차값을 계산했음
- 해당 차이값으로 서로 다른 이미간에 Hamming distance로 계산해서, 그 값이 작다면 서로 다른 이미지들에서 feature가 달라진 방식이 유사하다는 것을 의미
- 실험 결과 5번째 레이어에서 낮은 점수를 기록함→ CNN모델이 특정 물체를 구성하는 부분간의 대응을 계산함
5. Experimental
- 우리는 AlexNet model을 구조를 거의 복제하고, Image Net의 data를 이용해서 training
- 거의 error rate가 비슷함
1) Varying ImageNet Model Sizes
- Layer 3, 4, 5의 크기를 각각 384, 1024, 512로 변경했을 때 더 나은 성능을 보였음
- middle layers들의 size를 변형하면 performance가 좋아짐
- FC layer인 Layer 6, 7의 size를 늘렸을 경우 오히려 Overfitting이 발생해 더 낮은 성능을 보였음
- fully connected layers들의 size를 변형하면 눈에 띄게 performance가 안 좋아짐
2) Feature Generalization
- 다른 data set(Caltech-101, Caltech-256, PASCAL VOC 2012)를 이용해 해당 모델의 generalizaiton한 feature 탐구
- Alexnet 기반에서 위에서 성능이 좋다고 평가된 모델 구조로 new training data를 가지고 학습
- Caltech-101, Caltech-102는 ImageNet dataset 결과와 비슷, PASCAL은 다름
- PASCAL은 아마 data bias가 있음…
6. Discussion
- 해당 논문에서 제시한 Visualizing Techinique으로 각 Layer의 feature map의 분포를 살폈음
- 각 layer들의 feature map을 디버깅하며 더 좋은 성능을 보여주는 모델의 구조를 찾음
- 여러 occlusion 실험을 통해 local structure에는 매우 민감하다는 것을 알게됨
- layer를 하나씩 제거해보면서, 적은 depth를 갖는 네트워크 모델은 performance에 치명적이라는 것을 알게됨
- ImageNet으로 pretraining된 model을 다른 데이터셋에 적용해보면서 generalization feature를 알아봄
'AI > papers' 카테고리의 다른 글
[AI] Deep Residual Learning for Image Recognition (7) | 2024.09.16 |
---|---|
[AI] MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications 논문 리뷰 (0) | 2024.09.15 |