Study/Deep Learning

VGGNet

볘찌 2025. 1. 13. 22:32

1. VGGNet 이란?

  • ILSVRC에서 2014년 준우승(2위)을 한 CNN모델로, 백만개 이상의 이미지 데이터로 미리 학습 되어있는 사전학습모델
    • ILSVRC (ImageNet Large Scale Visual Recognitoion Challenge) : 2010년부터 시작된 컴퓨터 비전 분야 대회
    • 사전학습모델 : 모델 구축부터 학습까지 모두 되어있는 상태 (보충 설명 필요)
  • 2012년 ILSVRC에서 딥러닝을 활용한 AlexNet이 우승하면서 CNN 모델에 관심이 집중되기 시작하였고, 이를 더 발전시키기 위한 여러 시도들 중 하나로 VGGNet이 등장하였음
  • 당시 1위를 한 GoogLeNet에 비해 간단한 구조로 이루어져있음에도 불구하고 성능에서 큰 차이를 보이지 않아 많은 인기를 얻었음
  • 신경망의 깊이 (레이어 수)에 따라 뒤에 붙는 숫자가 달라지며, 총 6개의 모델 중 VGG16, VGG19가 자주 활용됨

2. VGGNet의 특징

1. 가중치 초기화 (Pre-initialisation)

  • 딥러닝에서 신경망 가중치의 초기화가 잘못될 경우, 학습 속도 및 안정성에 좋지 않은 영향을 끼칠 수 있음.
  • 이러한 문제를 보완하고자 VGG는 다음과 같은 가중치 초기화를 진행하였음
    • 상대적으로 얕은 11-Layer의 모델 A를 우선적으로 학습
      • 얕은 네트워크의 A는 random initialization로도 충분히 성능을 낼 수 있음
    • 학습이 완료된 A모델의 처음 4개 Conv Layer와 마지막 3개의 Fully connected layer의 가중치 값들을 다음 B, C, D, E 모델들의 네트워크 초기값으로 사용

2. 작은 사이즈의 3x3 필터 사용

  • 기존 CNN 모델들은 5x5, 또는 더 큰 사이즈의 필터를 사용했지만, VGGNet은 기존 모델들과 달리 3x3 필터를 사용한것이 큰 특징임. 이로써 얻을 수 있는 효과는 아래와 같음.

1. 모델의 비선형성 증가

  • 보통 필터의 크기가 클수록 이미지의 크기가 빠르게 줄어들어 레이어를 깊게 쌓을 수 없음
  •  VGG는 작은 사이즈의 3x3필터를 사용함으로써, 레이어를 깊게 쌓아 비선형함수인 ReLU를 더 많이 사용할 수 있게 되었음
💡 비선형함수를 적용하면 모델의 비선형성이 증가하고, 입력 데이터의 복잡한 패턴을 더 정확하게 학습할수 있어 신경망의 성능이 높아짐

 

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

  • 7x7필터 1개에 대한 학습 파라미터 수는 7x7=49개
  •  3x3필터 3개에 대한 학습 파라미터 수는 3x3x3=27개
  • 학습 파라미터 수가 적다는 것은 훈련시켜야 할 대상의 갯수가 적어진다는 뜻으로, 모델 학습 속도에 영향을 미침

3. VGG16의 구조

  • VGGNet은 신경망 네트워크의 깊이가 모델 성능에 주는 영향을 연구하기 위해 설계된 모델
  • VGG 연구팀은 총 6개의 모델(A~E)을 만들어 성능을 비교하였음 (VGG16은 D모델 참고)
  • 모든 구성은 기존 설계를 따르고 깊이만 다르며, depth의 영향을 체크하기 위해 동일한 환경을 세팅함
    •  Convolution 필터를 3x3으로 통일하고, Convolution 레이어의 개수를 늘리는 방식으로 테스트
  • VGG19 이상으로 레이어를 쌓을 경우 오버피팅의 가능성으로 성능이 더 나빠질 수 있음

각 모델의 총 학습 파라미터 수 (백만단위)

 

  • Input
    •  224x224 RGB 이미지
  • Convolution
    •  3x3필터, stride=1, padding=1
Conv2D(kernel_size=(3,3),
 padding='same', activation='relu',
 input_shape=(224,224,3))

 

  • Max Pooling 
    • 2x2 max pooling, stride=2  → 사이즈가 반으로 줄어듬
MaxPool2D(2x2, stride=2)

 

  • Fully Connected Layers
    • 마지막 출력층은 1000개의 softmax값 (1000개의 클래스에 대해 예측한 확률값)
Dense(4096, activation='relu')
Dense(4096, activation='relu')
Dense(1000, activation='softmax')

 

 

4. VGGNet 의 한계

  • VGGNet은 여러개의 3x3 필터를 중첩시켜 계산 비용은 줄이고 성능은 향상시켰음
  • 이런 구조 덕에 VGGNet은 Semantic segmentation, Object detection 등의 모델의 Back-bone network로써 활용되었음
  • 그러나 VGG16 네트워크의 중요한 단점 중 하나는 네트워크가 거대하다는 것임
    • 네트워크가 거대하다는 것은 그만큼 훈련하는데 많은 시간이 걸린다는 의미
  • 이러한 이유로 VGG16은 여러 딥러닝 이미지 분류에 많이 사용되지만, GoogLeNet이나 SqueezeNet과 같은 소규모 네트워크 아키텍처가 선호되기도 함

'Study > Deep Learning' 카테고리의 다른 글

자연어 처리(2) - Word2Vex  (1) 2025.06.11
자연어 처리(1) - 단어의 분산표현  (0) 2025.06.05
스타일 전이(Style Transfer)  (0) 2025.01.15
전이 학습 (Transfer Learning)  (0) 2025.01.14