본문 바로가기
논문 리뷰/Classification

[논문 리뷰] VGGNet

by 쑤스토리 2022. 3. 30.

Very Deep Convolutional Networks for Large-Scale Image Recognition

https://arxiv.org/pdf/1409.1556.pdf 논문을 바탕으로 요약/정리


Abstract

VGGNet은 CNN 모델로 네트워크의 깊이가 모델 성능에 중요한 역할을 한다는 것을 보여줬다. VGGNet의 필터 크기는 3, stride는 1, zero padding 1의 convolution layer로 이루어져 있으며, max-pooling layer로는 필터 크기 2, 패딩 없음을 사용한다.

비록 GoogLeNet 보다 이미지 분류 성능은 낮지만, 다른 연구에서는 좋은 성능을 보이며 이미지 특징을 추출하는 데 이용되는 등 기본 네트워크 모델로 활용되고 있다. 그러나 많은 메모리를 이용하여 연산한다는 단점을 지닌다.

 

Introduction

본 논문에서는 CNN 구조의 깊이에 따라서 성능 차이 결과에 대해 설명한다.

 

ConvNet configurations

VGGNet 모델은 밑그림과 같이 8 layer AlexNet(2012) 모델보다 2배가량 더 깊은 네트워크 학습에 성공하였으며 이 모델을 바탕으로 AlexNet의 오차를 절반으로 줄여나갔다.

 

VGG 모델은 크기가 3x3인 필터를 모든 합성곱 층에서 사용했기에 16-19 layer에 달하는 깊은 신경망을 학습할 수 있었다.

 

AlexNet과 VGGNet 모델 구조

VGGNet-16의 구조는 아래 그림과 같이 13개의 convolutional layer 와 3개의 fully connected layer로 이루어져 있으며 각 Conv layer의 필터 크기는 3x3, stride는 1, padding은 1이다. Max pooling의 필터 크기는 2x2, stride는 2이고 Relu함수를 사용한다.

VGGNet 구조

아래 표는 본 논문에서 실험을 한 6가지 깊이 구조를 보여준다.

 

입력값의 사이즈는 224x224 크기의 컬러 영상을 사용하고, 1개 또는 여러개의 Conv 층과 Max-Pooling 층이 반복되는 구조를 가지며, 최종 단계에는 Fully Connected layer가 구성되어 있다.

 

전처리 단계에서 학습 데이터 셋 전체의 채널 평균 값을 입력 영상의 각 화소마다 빼주고 입력을 zero-centered 되게 한다. VGGNet은 3x3 크기의 필터를 사용하기 때문에 여러 개의 ReLU non-linearity의 사용을 증가시킬 수 있다. ㅡ리고 기존의 7x7 사이즈보다 작은 크기의 필터를 사용함으로써 상당수의 파라미터 수를 줄일 수 있었다. 그러나 마지막 FC layer로 인하여 상당수의 파라미터가 다시금 증가함을 알 수 있다.

 

Q. FC layer가 3개나 필요한 이유?

 

VGGNet의 단점은 마지막 FC layer로 인해 파라미터 개수가 매우 많다는 것이다. Table2에 따르면, 거의 133백만 개가 존재한다.

파라미터 개수


※ NOTICE

 

3x3 filter 의 장점

 

VGG 모델 이전 모델들은 비교적 큰 Receptive Field를 가지는 11x11 또는 7x7 필터를 사용하였다. 그러나 VGG에서는 3x3필터를 사용하였는데도 이미지 분류 정확도를 개선시켰다.

 

여기서 Receptive Field란?

 

영상에서 특정 위치에 존재하는 pixel들은 그 주변에 있는 일부 pixel들 하고만 상관관계가 높고 거리가 멀어질수록 그 영향은 희미해진다. 따라서 영상 전체 영역에 대해 서로 동일한 중요도를 부여하여 처리하는 대신, 특정 범위를 한정하여 처리를 하면 훨씬 효과적일 것이라 짐작할 수 있는데 이를 영상뿐만 아니라 locality를 갖는 모든 신호들에 유사하게 적용할 수 있다는 아이디어에 기반하여 출현한 것이 CNN이다.

 

7x7 필터와 3x3 필터로 각각 Convolution을 수행한 것의 차이를 그림으로 살펴보자.

 

 

7x7 Filter
3x3 Filter

7x7 Filter를 이용하여 Convolution 했을 경우에 출력 feature map의 각 픽셀 당 receptive field는 7x7이다.

3x3 Filter를 이용할 경우 3-layer Convolution을 반복했을 때 원본 이미지의 7x7 영역을 수용할 수 있으며 stride가 1 일 때, 3 차례의 3x3 Conv 필터링을 반복한 feature map은 한 픽셀이 원본 이미지의 7x7 receptive field 효과를 볼 수 있다.

 

또한 7x7 filter와 3x3 filter의 효과 차이로는 다음과 같다.

 

  • 결정 함수의 비선형성(non-linearity)의 증가
  • 학습 파라미터 수의 감소

각 Convolution 연산은 ReLU 함수를 포함하는데, 1-layer 7x7 filter 보다 3-layer 3x3 filter를 사용했을 때 3배가량 non-linearity가 증가하여 적용된 것을 알 수 있다. 따라서 layer가 증가함에 따라 비선형성은 증가하고, 이것은 모델 특징 식별성 증가로 이어지게 된다.

 

Convolutional Network 구조 학습 시, 학습 대상인 가중치(weight)는 필터 크기에 해당된다.

 

따라서 7x7 필터 1개에 대한 학습 파라미터 수는 7x7 = 49이고, 3x3 필터 3개에 대한 학습 파라미터 수는 3x3x3 = 27이 된다. 따라서 49 → 27로 많이 감소한 것을 알 수 있다.

 

Q. 그렇다면 왜 layer를 19에서 멈췄을까? 더 깊게 하면 성능이 떨어지나? 왜?

 


Classification Framework

 

본 논문은 training과 testing에 많은 공을 들여 좋은 성능을 이끌어내고자 했다.

 

가중치 초기화

딥러닝 신경망 가중치 초기화는 학습 속도 및 안정성에 큰 영향을 줄 수 있기 때문에 어떤 방식으로 초기화할지는 굉장히 중요한 문제 중 하나이다. 이제는 훈련 없이 가중치 초기화가 가능하기에 넘어가겠다. 논문에서는 이런 방법이 알려지기 전에 초기화 전략을 세웠기 때문에 궁금하면 논문을 참고하기 바란다.

 

학습 이미지 크기 조정

학습 이미지 scale을 조정함으로써 multi-scale을 고려하였고, 이를 통해 한정적인 데이터 수를 늘릴 수 있었으며 (Data Augmentation) 하나의 object에 대한 다양한 측면을 학습하였기 때문에 object에 대한 더 섬세한 정보를 얻을 수 있었다. 이는 모두 overfitting을 방지하는데 도움이 된다.

 

Conclusion

VGGNet은 구조가 간단하여 이해나 변형이 쉽다는 장점을 지니지만, 파라미터 수가 엄청나게 많기 때문에 학습 시간이 굉장히 오래 걸린다는 약점을 가지고 있다. 본 요약 내용에는 없지만, 논문 experiment 부분에서 VGG-19까지만 실험을 한 이유는 이후 더 많은 layer를 추가하여도 오차율이 떨어지지 않았기 때문이다. 더 깊은 모델 구조를 위해서는 어떠한 작업이 필요할까..

 

 

reference : https://codebaragi23.github.io/machine%20learning/1.-VGGNet-paper-review/

 

 

'논문 리뷰 > Classification' 카테고리의 다른 글

[논문 리뷰] MobileNetV1 & MobileNetV2  (0) 2022.04.02
[논문 리뷰] ResNet  (0) 2022.03.31

댓글