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 모델들의 네트워크 초기값으로 사용
- 상대적으로 얕은 11-Layer의 모델 A를 우선적으로 학습
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 |