본문 바로가기
딥러닝/이론

Computer Vision - 02. Advanced CNN Models(VGG16)

by devmin67 2024. 9. 30.

VGGNet

 

- VGG16의 주요 특징은 심층적인 네트워크 구조에 있습니다. 이 모델의 이름에서 16총 16개의 계층(레이어)을 가지고 있음을 나타냅니다. 여기서 13개는 Convolutional Layer이고, 나머지 3개는 Fully Connected Layer입니다.

 

VGG16의 주요 구조:

  1. Conv Layers: VGG16은 3x3 필터를 사용하는 Convolution Layer로 구성되어 있습니다. 이 작은 필터 크기를 사용하면서 깊은 계층을 쌓음으로써, 복잡한 특성을 학습할 수 있습니다. 모든 Convolution Layer는 Stride 1을 사용하고, Padding을 통해 출력 이미지의 크기가 유지되도록 합니다.
  2. Max Pooling: Convolution Layer 뒤에는 2x2 Max Pooling Layer가 붙어, 이미지의 크기를 절반으로 줄이면서 중요한 정보를 추출합니다. Pooling은 각 특징 맵에서 가장 중요한 정보를 남겨 계산을 효율적으로 하고 과적합을 방지하는 역할을 합니다.
  3. Fully Connected Layers: 마지막으로 3개의 Fully Connected Layer가 있습니다. 이 층에서는 이미지의 특징을 바탕으로 각 클래스에 대한 최종 결정을 내리게 됩니다.
  4. Activation Functions: VGG16은 각 레이어 뒤에 ReLU 활성화 함수가 사용되며, 이는 비선형성을 모델에 도입하여 더 복잡한 관계를 학습할 수 있도록 합니다.
  5. Softmax: 마지막 Fully Connected Layer 이후에는 Softmax 함수를 통해 각 클래스에 대한 확률을 계산하게 됩니다.

 

VGG16에서 3x3 필터를 사용하는 이유:

  1. 국소적 정보 추출의 효율성:
    • 3x3 필터는 이미지의 작은 영역에서 국소적인 특징을 잘 잡아냅니다. 작은 필터 크기는 세밀한 패턴을 학습하는 데 유리하며, 다양한 크기의 물체를 인식할 수 있도록 합니다.
    • 예를 들어, 5x5 또는 7x7 필터는 더 넓은 영역을 한 번에 볼 수 있지만, 필터 크기가 커지면 계산량이 크게 증가하고, 더 많은 파라미터가 필요하게 됩니다. 반면, 3x3 필터는 국소적으로 더 효율적으로 연산을 처리하면서도 충분한 정보를 추출할 수 있습니다.
  2. 연속적인 3x3 필터의 조합 효과:
    • VGG16에서는 여러 층을 쌓으면서 연속적으로 3x3 필터를 사용합니다. 예를 들어, 두 개의 연속된 3x3 필터를 사용하는 것은 하나의 5x5 필터를 사용하는 것과 비슷한 효과를 낼 수 있습니다. 실제로 두 개의 3x3 필터는 더 작은 연산량으로 더 넓은 리셉티브 필드를 커버할 수 있게 해줍니다.
    • 이 방식은 필터를 점진적으로 사용하여 더 복잡한 특징을 학습할 수 있게 하며, 큰 필터 하나로 한꺼번에 처리하는 것보다 학습 과정에서 더 많은 비선형성을 추가할 수 있습니다.
  3. 연산 효율성:
    • 계산량 측면에서도 3x3 필터는 효율적입니다. 필터 크기가 커지면 연산량이 제곱 비율로 증가하기 때문에, 큰 필터를 사용하면 학습과 추론에 많은 시간이 소요됩니다. 반면 3x3 필터는 연산량을 최소화하면서도 성능을 유지할 수 있도록 합니다.
    • 예를 들어, 5x5 필터는 3x3 필터보다 파라미터 수가 거의 두 배 이상 많아집니다. 연산량의 증가 없이 네트워크가 깊어질 수 있도록 하기 위해서는 3x3 필터가 이상적입니다.
  4. 설계의 단순화:
    • VGG16은 모델 설계를 단순화하기 위해 모든 Convolution Layer에서 동일한 필터 크기(3x3)를 사용합니다. 필터 크기를 일정하게 유지함으로써 모델의 일관성을 높이고, 과적합을 방지하며, 코드 구현과 실험적인 튜닝을 용이하게 할 수 있습니다.
    • 이 단순화된 설계는 성능 향상뿐만 아니라 재현성을 높이는 장점이 있습니다. 개발자와 연구자는 네트워크 구조를 더 직관적으로 이해하고 조정할 수 있습니다.
  5. 실제 성능 검증:
    • 연구를 통해 3x3 필터 크기가 성능 면에서 매우 뛰어나다는 것이 검증되었습니다. 단순히 작은 필터 크기라고 해서 성능이 떨어지지 않으며, 충분히 깊은 네트워크를 구성할 경우, 3x3 필터로도 매우 높은 정확도를 달성할 수 있다는 것이 실험적으로 증명되었습니다. VGG16의 높은 성능은 이 설계의 효율성을 입증한 사례입니다.

 

VGG16에서 ReLU를 사용하는 이유

  1. 비선형성 도입: Convolution 연산은 선형 변환을 수행합니다. ReLU는 이 선형 변환 뒤에 비선형성을 추가하여 네트워크가 더 복잡한 관계를 학습할 수 있도록 합니다. 이를 통해 단순한 선형 모델보다 훨씬 더 강력한 표현 능력을 갖출 수 있습니다.
  2. 기울기 소실 문제 해결: 과거에는 시그모이드 함수나 하이퍼볼릭 탄젠트(tanh) 같은 활성화 함수가 많이 사용되었지만, 이들은 기울기 소실(vanishing gradient) 문제를 야기할 수 있었습니다. ReLU는 양수 입력에 대해 선형 관계를 유지하면서 음수 입력에 대해서는 출력을 0으로 만들어, 기울기 소실 문제를 완화하고 빠른 학습을 가능하게 합니다.
  3. 계산 효율성: ReLU는 다른 활성화 함수에 비해 계산이 매우 간단합니다. 음수일 경우 0을 반환하고, 양수일 경우 그대로 값을 반환하는 방식이므로, 추가적인 복잡한 계산이 필요하지 않기 때문에 연산 속도가 빠르고 메모리 요구 사항이 적습니다.
  4. Sparse Activation: ReLU는 음수 값을 모두 0으로 만들기 때문에 네트워크에서 희소한 표현(sparse activation)을 유도합니다. 이는 모델이 덜 중요한 정보는 무시하고, 중요한 정보만을 학습하는 데 집중할 수 있게 도와줍니다. 이로 인해 학습이 더 효율적으로 이루어질 수 있습니다.

'딥러닝 > 이론' 카테고리의 다른 글

NLP 이론 정리  (0) 2024.10.08
Computer Vision - 02. Advanced CNN Models(Inception)  (0) 2024.09.30
1. 퍼셉트론  (0) 2024.09.26