공부기록

[논문] VGGNet(2015) 리뷰 및 정리 (1) 본문

분석/논문

[논문] VGGNet(2015) 리뷰 및 정리 (1)

맘모스빵러버 2021. 3. 13. 23:44

 

 

안녕하세요! 첫번째로 리뷰할 논문은 바로

'VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION' 입니다! 

 

VGGNet은 2014년 ILSVRC에서 GoogleNet에 이어 2위를 차지한 Image Recognition Model입니다.

비록 2위를 차지하였지만 구조적인 측면에서 GoogleNet 보다 간단한 구조로 되어 있어 GoolgeNet 보다 많이 사용되고 있다고 합니다. 

VGGNet은 기본적인 CNN의 구조에 깊이를 증가시킨 형태로 신경망의 깊이를 깊게 하는데 중점을 두었습니다.

 

1. Introduction

 

ConvNets는 최근 large sacle 이미지나 비디오 인식에서 큰 성공을 보이고 있었습니다. 이것이 가능했던 것은 이미지넷과 같은 거대한 이미지 저장소, GPU 또는 거대한 분삭 클러스터로 인해서 였습니다. 이러한 ConvNets가 컴퓨터 비전 영역에서 점점 더 유용해지면서 조금 더 향상된 성능을 달성하기 위해 오리지널 구조를 개선한 모델이 나오기 시작했습니다. 

 

예를 들어, 작은 receptive window와 작은 스트라이드를 첫번째 conv layer에서 사용하거나 전체 이미지를 더 정밀하게 다루고 다양한 크기로 훑었습니다.  

 

이 논문에서는 ConvNet구조에서 깊이에 측면에 집중을 합니다. 그렇기 때문에 논문에서는 구조의 다른 파라미터들은 고정시켜 놓고 convolution 층을 증가시켜갑니다. (이것은 모든 층에 3*3의 작은 convolution 필터를 적용하기 때문에 가능)

 

그 결과, 이는 기존의 데이터셋 뿐만 아니라 다른 이미지 인식 데이터 셋에서도 좋은 성능을 발휘하며 상대적으로 단순한 파이프라인을 사용하더라도 훌륭한 성능을 발휘하게 되었습니다. 

 

 

2. ConvNet Configurations

- ① arcitecture

 

논문에서 사용한 ConvNets의 입력값은 224 *224 RGB의 크기로 고정되어있습니다.  논문에서 하는 유일한 사전 처리는 각 픽셀에서 훈련 세트에서 계산된 평균 RGB 값을 빼는 것입니다. 논문에서는 매우 작은 3*3의 receptive field를 사용합니다. (이는 위, 아래, 왼쪽, 오른쪽, 중앙을 인식하기 위한 가장 작은 크기 입니다.) 또한 스트라이드는 1픽셀로 고정되어 있습니다. conv 층의 spatial 패딩은 다음 층을 보호하는 부분적인 해결책이다.  ( 왜냐하면 패딩을 하지 않으면 스트라이드로 인해 이미지의 외곽부분은 반영이 잘 되지 않고 점점 image의 vanishing이 잃어 나기 때문에 패딩으로 이를 방지하는것이다. )

 

논문에서 사용한 conv layer는 3개의 FC layers를 가지고 오는데 첫번째와 두번째는 각각 4096개의 채널이 있고 세 번째 는 1000-way ILSVRC 분류를 수행하므로 1000개의 채널(각 클래스에 대해 하나씩)을 포함합니다. 또한 마지막 층은 soft max 층입니다.  

 

해당 논문에서는 어떠한 네트워크에서도 (한 층을 제외하고) Local Response Normalisation (LRN)을 포함하지 않았다고 합니다. 이러한 정규화는 ILSVRC dataset에서의 성능을 개선하지 않고 오히려 메모리 소비량을 증가시키기 때문이라고 합니다. 

 

- ② configurations

 

Table 1
Table 2

본 논문에서 평가된 ConvNet 구성은 열당 하나씩 Table 1에 요약되어 있습니다. 모든 구성은 arcitecture에 제시된 일반적인 설계를 따르며, 깊이에서만 다릅니다. 즉, 네트워크 A의 11개의 가중치 계층(8개의 컨볼루션과 3개의 FC 계층)에서 네트워크 E의 19개의 가중치 계층(16개의 컨볼루션과 3개의 FC 계층)까지로 구성됩니다. 더불어 채널의 수는 64로 시작하여 각각의 max-pooling층을 지날때마다 2배씩 증가하여 512까지 증가하게 됩니다. 

 

Table2에서는 각각의 네트워크에서 사용한 파라미터의 수를 나타내고 있습니다.

 

 

- ③ discussion

 

 

 

논문에서는 첫 번째 층에서 상대적으로 큰 receptive field 를 사용하는 대신 작은 3*3 receptive field를 전체 넷에서 사용하였습니다. 2개의 3*3 conv층을 사용하면 5*5의 receptive field의 성능을 가지고 3개는 7*7의 receprive field를 가집니다.

 

그렇다면 우리가 하나의 7*7 층을 사용하는 거보다 3개의 3*3층을 사용함으로서 얻게 되는 점은 무엇일까?

 

첫째, 단일 수정 계층 대신 세 개의 비선형 수정 계층을 통합하여 의사 결정 기능을 더욱 차별화할 수 있습니다.

둘째, 파라미터의 수를 줄입니다. 1 × 1 컨볼루션 레이어(구성 C, 표 1)의 통합은 컨볼루션 레이어의 수용 영역에 영향을 주지 않고 의사결정 기능의 비선형성을 증가시키는 방법입니다. 논문의 경우 1×1 컨볼루션은 본질적으로 동일한 차원(입력 및 출력 채널의 수는 동일)의 공간에 대한 선형 투영이지만, 수정 함수에 의해 추가 비선형성이 도입됩니다.

작은 사이즈의 convolution filter는 이전에도 사용된적이 있지만 해당 경우는 논문의 경우보다 층이 깊지 않고 large scale의 ILSVRC 데이터 셋을 평가하지 않았다고 합니다. 

ILSVRC-2014 classification task에서 가장 좋은 성능을 보인 GoogLeNet의 경우에도 VGG와 유사하게 매우 깊은 ConvNets를 사용하고 작은 필터를 사용한다는 점에서 유사하지만 GoogLeNet의 경우 VGG보다 더 복잡한 구조를 가지고 있습니다. 

 

 

VGGNet의 추가적인 이어지는 논문 리뷰는 다음 게시물에서 이어가겠습니다!

 

[출처] arxiv.org/abs/1409.1556

'분석 > 논문' 카테고리의 다른 글

Faster R-CNN 논문 리뷰  (4) 2021.04.06
FAST R-CNN 논문 리뷰  (0) 2021.04.06
R-CNN 논문 리뷰  (0) 2021.03.29
[논문] VGGNet(2015) 리뷰 및 정리 (3)  (1) 2021.03.16
[논문] VGGNet(2015) 리뷰 및 정리 (2)  (0) 2021.03.15