본문 바로가기
Stay Hungry Stay Foolish/논문 정리

[논문 정리] Very Deep Convolutional Networks For Large-Scale Image Recognition

by HANNI하니 2021. 3. 16.

참고자료는 밑에 첨부했습니다!

VGG.pdf
0.19MB

Very Deep Convolutional Networks For Large-Scale Image Recognition

1. Introduction

"Much Deeper Network, Much Smaller Filters"

2014년 처음으로 훨씬 더 깊은 deeper 네트워크 등장

from oxford

VGG : Visual Geometry Group

16 : 레이어수

 

ImageNet에서 AlexNet의 오차율을 절반으로 줄임

Localization 1위 & Classification 2위

Top-5 테스트 정확도 92.7%

 

=> 어떻게 VGG 16~19 레이어와 같이 깊은 신경망 모델의 학습을 성공했을까?

그 이유는 모든 conv layer에서 3*3 filter를 사용했기 때문이다! 이어서 설명하겠다.

 

2. Convet Configuartions

13 Convolutional Layer + 3-Fully Connected Layer + Softmax

Input : 224*224*RGB

3*3 Convolution Filters (좌우, 위아래, 중앙의 정보를 구별할 수 있는 가장 작은 형태)

stride : 1

padding : 1 -> 사이즈 줄지 않게!

5번의 2*2 max pooiling(stride : 2)로 이미지 줄이기

RELU for nonlinearlity

Conv3 3*3 필터

Conv1 1*1 필터

Conv3-N에서 N은 필터의 개수

Conv3-64 : 64개의 3*3 필터를 학습 매개변수로 사용했다는 의미

 

신경망의 마지막 3Fully Connected Layer는 각각 4096, 4096, 1000개의 유닛으로 구성돼 있으며, 출력층은 classification을 위한 softmax 함수를 사용한다,

cs231n

 

3. Discussion - 3*3 filter effect

VGG 모델 이전에 Convolutional Network를 활용하여 이미지 분류에서 좋은 성과를 보였던 모델들은 비교적 큰 Receptive Field를 갖는 11*11 필터나 7*7 필터를 포함한다.

그러나 VGG 모델은 오직 3*3 크기의 작은 필터만 사용했음에도 이미지 분류 정확도를 비약적으로 개선시켰다.

 

3*3 conv layer 2개 = 5*5 conv layer 효과

3*3 conv layer 3개 = 7*7 conv layer 효과

그림처럼 5*5 이미지가 있다고 했을 때, 3*3 filter를 먼저 적용하려면(stride : 1) 3*3 feature map이 생성되고, 3*3을 3*3 kernel을 또 한번 통과하면 처음 이미지에서 5*5 filter를 한번 통과시킨 것과 같은 결과를 볼 수 있다.

 

stride가 1일 때, 3차례의 3*3 Conv 필터링을 반복한 특징맵은 한 픽셀이 원본 이미지의 7*7 Receptive filed의 효과를 볼 수 있다.

 

7*7 필터로 1번 VS 3*3 필터로 3번 Conv

1. 결정함수의 비선형성 증가

 각 convolution은 Relu 함수 포함한다.

레이어 증가 -> 비선형성 증가 -> 모델의 특징 식별성 증가로 이어진다.

2. 학습 파라미터 수의 감소

 7*7 필터 1개에 대한 학습 파라미터 수는 49(7*7)

 3*3 필터 3개에 대한 학습 파라미터 수는 27(3*3*3) -> 45% 절약 가능 !

 

4. 알고리즘 - 학습 이미지 크기

Training시 입력 이미지의 크기는 모두 224*224로 고정하였다.

학습 이미지는 각 이미지에 대해 256*256 ~ 512*512 내에서 임의의 크기로 변환하고, 크기가 변환된 이미지에서 개체의 일부가 포함된 224*224 이미지를 Crop하여 사용하였다.

 

 

학습 데이터를 다양한 크기로 변환하고 그 중 일부분을 샘플링해 사용함으로써

1. 한정적인 데이터의 수를 늘릴 수 있다. Data Augmentation

2. 하나의 오브젝트에 대한 다양한 측면을 학습 시 반영시킬 수 있다.

 

실제로 VGG 연구팀의 실험 결과에 따르면 다양한 스케일로 변환한 이미지에서 샘플링하여 학습 데이터로 사용한 경우가 단일 스케일 이미지에서 샘플링한 경우보다 분류 정확도가 좋았다.

 

5. 결론

다양한 type의 VGG들의 성능은 확실히 19 layer를 가지고 있는 E type으로 갈수록 좋다.
앙상블을 사용하지 않은 단일 모델의 성능으로만 보면, VGG가 더 좋다.

VGG 연구팀의 실험 결과를 통해 네트워크의 깊이가 깊어질수록 이미지 분류 정확도가 높아지는 것을 확인할 수 있었다.

실험에서 네트워크의 깊이를 최대 19 레이어(VGG-19)까지만 사용한 이유는 해당 실험의 데이터에서는 분류 오차율이 VGG-19에서 수렴했기 때문이다. 학습 데이터 세트가 충분히 많다면 더 깊은 모델이 더 유용할 수도 있다.

 

 

 

 

 

 


참고자료

  • 논문 한글 해석

wikidocs.net/118514

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

  • 논문 리뷰 블로그

medium.com/@msmapark2/vgg16-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-very-deep-convolutional-networks-for-large-scale-image-recognition-6f748235242a

 

VGG16 논문 리뷰 — Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG-16 모델은 ImageNet Challenge에서 Top-5 테스트 정확도를 92.7% 달성하면서 2014년 컴퓨터 비전을 위한 딥러닝 관련 대표적 연구 중 하나로 자리매김하였다.

medium.com

www.stand-firm-peter.me/2020/09/05/vgg/

 

Stand firm Peter

Peter's playground.

www.stand-firm-peter.me

 

댓글