논문 리뷰

[논문 리뷰] VGG (VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)

독립성이 강한 ISFP 2024. 6. 21. 11:15
728x90
반응형

Abstract

이 연구는 합성곱 신경망의 깊이가 대규모 이미지 인식 정확도에 미치는 영향을 조사합니다. 저자들은 3x3 크기의 매우 작은 합성곱 필터를 사용하여 네트워크 깊이를 증가시키는 여러 아키텍처를 평가했습니다. 16~19개의 가중치 층을 가진 네트워크가 이전 모델들보다 성능이 우수하다는 것을 발견했습니다. 


1. Introduction

컴퓨터 비전 분야에서 AlexNet 등의 원래 아키텍처를 개선하려는 여러 시도가 이루어졌습니다. 예를 들어, ILSVRC-2013의 최우수 제출물들은 첫 번째 합성곱 층의 receptive field와 stride를 줄였습니다. 또 다른 개선 방향은 이미지 전체와 여러 스케일에 걸쳐 밀도 있게 네트워크를 학습하고 테스트하는 것이었습니다.

 

이 논문에서는 VGG 아키텍처 설계의 또 다른 중요한 측면인 깊이에 대해 다룹니다. 이를 위해 다른 아키텍처 매개변수는 고정하고, 모든 층에서 매우 작은 (3x3) 합성곱 필터를 사용하여 네트워크의 깊이를 점진적으로 증가시켰습니다. 그 결과, ILSVRC 분류 및 로컬라이제이션 작업에서 최첨단 정확도를 달성할 뿐만 아니라, 다른 이미지 인식 데이터셋에서도 우수한 성능을 보이는 더욱 정확한 VGG 아키텍처를 개발했습니다. 추가 연구를 촉진하기 위해 두 가지 최고 성능 모델(VGG16, VGG19)을 공개했습니다.


 VGG16과 VGG19

- VGG16: 총 16개의 가중치 층 (13개의 합성곱 층 + 3개의 완전 연결 층)
- VGG19: 총 19개의 가중치 층 (16개의 합성곱 층 + 3개의 완전 연결 층)

두 모델은 다음과 같은 특징을 가지고 있습니다.
- 작은 3x3 합성곱 필터 사용: 깊이를 증가시키면서도 파라미터 수를 효율적으로 유지하기 위해 모든 합성곱 층에서 3x3 필터를 사용합니다.
- 깊은 네트워크 구조: VGG16은 16개의 가중치 층을, VGG19는 19개의 가중치 층을 가지고 있어 이전의 네트워크보다 훨씬 깊습니다.
- ImageNet Challenge 2014에서 우수한 성과: 이 두 모델은 ImageNet Challenge 2014에서 우수한 성과를 거두었으며, 분류 및 위치 추적 트랙에서 각각 1위와 2위를 차지했습니다.

요약

VGG 모델은 AlexNet과 같은 초기 모델들을 개선하며, 작은 3x3 필터를 사용하여 깊이를 증가시킴으로써 뛰어난 성능을 보입니다. VGG16과 VGG19 모델은 ImageNet Challenge 2014에서 탁월한 성과를 거두었습니다. 이를 통해 VGG 모델은 컴퓨터 비전 분야에서 중요한 기여를 했으며, 후속 연구를 촉진하고 있습니다.


2.ConvNet Configurations

2.1 Architecture

- 입력: 훈련 시 VGG의 입력은 고정 크기 224 × 224 RGB 이미지입니다. 사전 처리로 각 픽셀에서 훈련 세트의 평균 RGB 값을 뺍니다.
- Conv layer: 작은 3 × 3 수용 필드를 가진 필터를 사용합니다. 일부 구성에서는 1 × 1 합성곱 필터도 사용합니다. stride 1로 고정, padding도 1 픽셀로 설정됩니다.
- Max pooling:다섯 개의 Max pooling 이 일부 합성곱 층 뒤에 배치됩니다. Max pooling 은 2 × 2 픽셀과 stride 2로 수행됩니다.
- Fully connected layer: 세 개의 fully connected layer 이 있으며, 처음 두 개는 각각 4096 채널을 가지고, 세 번째는 1000-클래스 ILSVRC 분류를 위해 1000 채널을 가집니다. 마지막 층은 Softmax 층입니다.
- 비선형성: 모든 은닉 층은 ReLU 비선형성을 사용합니다. 대부분의 네트워크에서는 LRN 정규화를 사용하지 않습니다.

2.2 Configureations

표1
표2

- 구성 소개: 표 1에 나열된 A부터 E까지의 구성은 깊이만 다릅니다. A는 11개의 가중치 층(8개의 합성곱 층 + 3개의 완전 연결 층), E는 19개의 가중치 층(16개의 합성곱 층 + 3개의 완전 연결 층)을 가집니다.
- 채널 수: 합성곱 층의 채널 수는 처음 층에서 64로 시작하여, 각 최대 풀링 층 뒤에서 2배씩 증가하여 512에 도달합니다.
- 파라미터 수: 표 2는 각 구성의 파라미터 수를 나타냅니다. 깊이가 깊지만, 넓은 합성곱 층과 큰 수용 필드를 가진 얕은 네트워크의 가중치 수보다 적습니다.

2.3 Discussion

VGG 모델의 합성곱 신경망(ConvNet) 구성은 ILSVRC-2012와 ILSVRC-2013 대회의 상위 모델들과 상당히 다릅니다. 주로 첫 번째 합성곱 층에서 큰 수용 필드를 사용하는 대신, VGG는 전체 네트워크에서 매우 작은 3 × 3 수용 필드를 사용합니다. 예를 들어, 두 개의 3 × 3 합성곱 층을 쌓으면 5 × 5의 유효 수용 필드를 가지며, 세 개를 쌓으면 7 × 7의 유효 수용 필드를 갖게 됩니다. (아래 그림 참고)


위와 같이 단일 7x7 합성곱 층 대신 세 개의 3x3 합성곱 층을 사용하는 경우 어떤 이점이 있을까요?


1. 비선형성 증가
3x3 층을 여러 개 쌓으면, 각 층마다 비선형성을 추가할 수 있어 더 복잡한 패턴을 학습할 수 있습니다.


2. 파라미터 수 감소
세 개의 3x3 합성곱 층을 사용하는 경우, 각 층은 C 채널의 입력과 출력을 가지고 있을 때 총 27 C²개의 파라미터가 필요합니다. 반면, 하나의 7x7 합성곱 층을 사용하는 경우 49 C²개의 파라미터가 필요합니다.


또한, 비선형성을 증가시키기 위해 1x1 합성곱 층을 추가할 수 있습니다. 이는 수용 필드에는 영향을 주지 않으면서도 신경망의 복잡성을 높이는 데 도움이 됩니다.


3. Classification Framework

3.1 Training 

훈련 방법

  - 미니배치 경사 하강법을 사용하여 손실 함수를 최소화합니다.
   - 배치 크기는 256모멘텀은 0.9로 설정됩니다.
   - 가중치 규제(L2 페널티)와 드롭아웃 정규화(첫 두 개의 완전 연결 층에 적용)로 훈련을 정규화합니다.
   - 초기 학습률은 10^-2이며, 검증 세트 정확도가 향상되지 않으면 10배씩 감소시킵니다. 총 3번 감소시키며, 370,000회 반복(74 에포크) 후에 학습을 중단합니다.

 

가중치 초기화

   - 얕은 구성 A를 먼저 랜덤 초기화로 훈련하고, 더 깊은 네트워크의 첫 4개의 합성곱 층과 마지막 3개의 완전 연결 층을 구성 A에서 훈련된 가중치로 초기화합니다. 중간층은 랜덤으로 초기화합니다.
   - 사전 초기화된 층(첫 4개의 합성곱 층과 마지막 3개의 완전 연결 층)의 학습률은 낮추지 않고, 학습 중에도 변경될 수 있도록 했습니다.
   - 랜덤 초기화는 평균 0, 분산 10^-2의 정규 분포에서 샘플링했으며, 바이어스는 0으로 초기화했습니다.

 

데이터 증강 및 전처리

  - 고정 크기 224 ×224 입력 이미지를 얻기 위해 재조정된 훈련 이미지에서 무작위로 크롭 합니다.
   - 무작위 수평 뒤집기와 무작위 RGB 색상 변화를 통해 훈련 세트를 추가로 증강합니다.

 

성능 향상의 요인

네트워크의 깊이와 작은 합성곱 필터 크기가 암시적으로 정규화를 제공하여 과적합을 방지하고 일반화 성능을 높입니다.

    - 깊이: 네트워크의 깊이가 깊어질수록, 여러 층을 통해 데이터가 처리되면서 네트워크가 더 복잡한 패턴을 학습할 수 있게 됩니다. 이는 네트워크가 과적합을 방지하고 일반화 능력을 높이는 데 도움이 됩니다.
    - 작은 합성곱 필터 크기: 3x3 크기의 작은 합성곱 필터를 사용하면, 큰 필터를 사용하는 것보다 파라미터 수가 줄어들어 모델의 복잡성이 감소합니다. 이는 과적합을 방지하는 데 도움이 됩니다. 작은 필터를 여러 층에 걸쳐 쌓으면 큰 필터를 사용하는 것과 유사한 수용 필드를 얻을 수 있으면서도 모델의 복잡성을 낮출 수 있습니다.

 

사전 초기화된 특정 층 덕분에 학습이 더 빠르게 수렴하여 에포크 수를 줄일 수 있습니다.

    - 사전 초기화: 구성 A에서 학습된 가중치를 사용하여 깊은 네트워크의 초기 가중치를 설정하면, 학습 초기 단계에서 네트워크가 안정적으로 시작할 수 있습니다. 이는 랜덤 초기화에 비해 더 빠르게 수렴할 수 있도록 돕습니다.
    - 수렴: 사전 초기화된 가중치는 이미 일부 패턴을 학습했기 때문에, 새로운 데이터에 맞춰 학습하는 데 필요한 조정이 적습니다. 따라서, 학습이 더 빠르게 수렴하고, 에포크 수를 줄일 수 있습니다.

훈련 이미지 크기 설정

훈련 이미지의 가장 짧은 변의 길이를 \( S \)로 설정하고, 이 크기에서 입력 이미지를 224 × 224 크기로 크롭 합니다. \( S \)는 224보다 크거나 같은 값을 가질 수 있습니다. (예를 들어, 원본 이미지가 256 x 300인 경우, 값이 256이므로 이미지를 256 x 256으로 재조정한 후 224 x 224 크기로 크롭 합니다.)

 

훈련 스케일 S를 설정하는 데에는 두 가지 방법이 있습니다.


    -  단일 스케일 훈련
      - 특정 고정된 \( S \) 값을 사용하여 모델을 훈련합니다.
      - \( S = 256 \)과 \( S = 384 \)를 사용하여 모델을 훈련하고 평가했습니다.
      - \( S = 256 \)으로 훈련한 후, \( S = 384 \)로 훈련할 때는 \( S = 256 \)으로 사전 훈련된 가중치를 사용하여 초기화하고 학습률을 낮춥니다.

    - 다중 스케일 훈련
      - \( S_{\text {min}} = 256 \)과 \( S_{\text {max}} = 512 \) 범위에서 무작위로 샘플링된 \( S \) 값을 사용하여 각 훈련 이미지를 재조정합니다.
      - 이렇게 다양한 스케일의 이미지를 사용하여 훈련하면 모델이 더 다양한 크기의 객체를 인식할 수 있습니다.
      - 고정된 \( S = 384 \)에서 사전 훈련된 단일 스케일 모델을 미세 조정하여 다중 스케일 모델을 훈련합니다.

3.2 Testing

테스트 이미지 크기

  - Q로 설정되며, 이는 훈련 스케일 S와 다를 수 있습니다.

 

테스트 이미지 적용 방식

  - 네트워크는 Sermanet et al. (OverFeat-객체 탐지 모델)과 유사한 방식으로 재조정된 테스트 이미지에 적용됩니다.

 

완전 연결 층을 합성곱 층으로 변환

   - 완전 연결 층 (FC 층): 각 뉴런이 이전 층의 모든 뉴런과 연결되어 있으며, 입력의 공간적 구조를 무시하고 1차원 벡터로 처리합니다.
   - 합성곱 층 (Conv 층): 국소적으로 연결된 필터를 사용하여 입력의 공간적 구조를 유지하며, 입력의 작은 영역(수용 필드)을 슬라이딩하며 특징을 추출합니다.
   - 변환 이점:
     - 공간적 구조 유지: Conv 층은 이미지의 공간적 구조를 유지하면서 특징을 추출할 수 있어, 네트워크가 이미지의 위치 정보를 더 잘 활용할 수 있습니다.
     - 효율성: Conv 층으로 변환하면 네트워크를 전체 이미지에 한 번에 적용할 수 있어 계산 효율성이 높아집니다.
   - 변환 과정:
     1. 첫 번째 FC 층을 7 × 7 Conv 층으로 변환.
     2. 마지막 두 개의 FC 층을 1 × 1 Conv 층으로 변환.

 

결과

   - 클래스 수와 동일한 채널 수를 가진 클래스 점수 맵이 생성되며, 이는 공간적으로 합계 풀링됩니다.
   - 테스트 세트는 수평 뒤집기를 통해 증강됩니다.

 

여러 크롭 샘플링

   - 입력 이미지를 더 세밀하게 샘플링하여 더 높은 정확도를 얻을 수 있지만, 계산 시간이 증가합니다.


 평가 방법

   - 스케일당 50개의 크롭(5 × 5 정규 그리드와 2번 뒤집기) 사용.
   - 이는 Szegedy et al. (2014)에서 사용된 4개의 스케일에 걸친 144개의 크롭과 비교 가능합니다.


4. 분류 실험

4.1 단일 스케일 평가

1. 단일 스케일에서 ConvNet 모델 성능 평가:
   - 테스트 이미지 크기 설정: 고정된 S의 경우 Q = S, 스케일 지터링의 경우 Q = 0.5(Smin + Smax).

2. 지역 응답 정규화 (LRN):
   - A-LRN 네트워크가 정규화 층이 없는 A 모델보다 성능이 향상되지 않음.
   - 더 깊은 아키텍처(B-E)에서는 정규화를 사용하지 않음.

3. 네트워크 깊이 증가에 따른 분류 오류 감소:
   - A (11층)에서 E (19층)까지 깊이가 증가함에 따라 오류 감소.
   - C 구성 (1 × 1 합성곱 층 포함)이 D 구성 (3 × 3 합성곱 층 사용)보다 성능이 떨어짐.
   - 이는 추가적인 비선형성이 도움이 되지만, 공간적 컨텍스트를 포착하는 것이 중요함을 나타냄.
   - 깊이가 19층(VGG19)에 도달하면 오류율이 포화 상태에 이름. 

4. 얕은 네트워크와의 비교:
   - B 네트워크와 각 쌍의 3 × 3 합성곱 층을 단일 5 × 5 합성곱 층으로 대체한 얕은 네트워크 비교.
   - 얕은 네트워크의 top-1 오류는 B보다 7% 높게 측정됨.
   - 이는 작은 필터를 가진 깊은 네트워크가 큰 필터를 가진 얕은 네트워크보다 우수함을 확인시켜 줌.

5. 스케일 지터링의 효과:
   - 훈련 시 스케일 지터링을 사용하면, 단일 스케일로 훈련한 것보다 더 나은 결과를 제공합니다.
   - 스케일 지터링: 이미지 크기를 [256, 512] 범위 내에서 무작위로 조정하여 훈련.
   - 단일 스케일 훈련: 고정된 크기 (예: 256 또는 384)로만 훈련.
   - 이는 스케일 지터링이 다양한 크기의 이미지를 학습하도록 도와주어, 모델이 더 많은 정보를 학습하고 성능이 향상됩니다.

 

4.3 다중 크롭 평가

* 밀집 평가 (Dense Evaluation): 테스트 이미지 전체를 한 번에 네트워크에 입력하여 평가하는 방법.

* 다중 크롭 평가 (Multi-Crop Evaluation): 테스트 이미지를 여러 크롭으로 나누어 각 크롭을 개별적으로 네트워크에 입력하여 평가하는 방법.

 

위 결과를 보면, 다중 크롭 평가가 밀집 평가보다 약간 더 나은 성능을 보였습니다. 또한, 두 평가 방법의 소프트맥스 출력을 평균하여 결합하면 각각의 방법보다 더 좋은 성능을 보였습니다. 이는 두 평가 방법이 상호 보완적임을 나타냅니다.

모든 실험에서 훈련 스케일 S는 [256; 512] 범위에서 샘플링되었으며, 세 가지 테스트 스케일 Q(256, 384, 512)가 고려되었습니다.

 

4.4 VGG 결합 (앙상블)


- 7개의 네트워크로 구성된 앙상블은 7.3%의 ILSVRC 테스트 오류를 기록했습니다.

- 제출 후, 성능이 가장 좋은 두 개의 다중 스케일 모델(D 및 E 구성)의 앙상블을 고려했으며, 이를 통해 밀집 평가에서는 테스트 오류를 7.0%로, 밀집 평가와 다중 크롭 평가를 결합하면 6.8%로 줄였습니다. 
-> 7개의 모델을 앙상블 하여 7.3%의 테스트 오류를 기록했습니다. 제출 후, 2개의 모델(D-VGG16, E-VGG19)을 앙상블하여 오류율을 6.8%로 줄였습니다.

 



- 우리의 매우 깊은 ConvNet 모델은 이전 세대의 모델들을 크게 능가합니다.
- GoogLeNet(오류율 6.7%)과 경쟁할 만한 성능을 보였으며, Clarifai(외부 데이터 사용 시 11.2%, 사용하지 않을 시 11.7%)를 크게 능가합니다.
두 개의 모델만 결합하여 6.8%의 오류율을 달성한 것은 놀라운 성과입니다.
- 단일 네트워크 성능에서는 7.0%의 테스트 오류로 최고의 결과를 기록하며, 단일 GoogLeNet을 0.9% 초과합니다.
- LeCun et al. (1989)의 고전적인 ConvNet 아키텍처에서 크게 벗어나지 않고 깊이를 증가시켜 성능을 개선했습니다.


5. Conclusion

- 연구 내용: 대규모 이미지 분류를 위해 최대 19개의 가중치 층을 가진 매우 깊은 VGG 모델을 평가.
- 주요 발견: 
  - 깊은 네트워크가 분류 정확도에 유익함.
  - 전통적인 LeNet 아키텍처에 깊이를 크게 증가시켜 ImageNet 챌린지 데이터셋에서 최첨단 성능을 달성할 수 있음.

- 결론: 깊이는 시각적 표현에서 매우 중요함을 재확인.



728x90
반응형