카테고리 없음

Inception v1 네트워크에서 1x1 Conv 사용의 이유

jangkimo 2024. 9. 27. 16:22

 

Inception v1은 2014년 구글이 발표한 GoogLeNet 구조에서 처음 도입된 혁신적인 네트워크 아키텍처입니다. 이 네트워크는 여러 크기의 필터(1x1, 3x3, 5x5)를 병렬로 사용해 이미지에서 다양한 크기의 특징을 추출하는 것이 핵심입니다. 그 중에서 특히 **1x1 convolution(컨볼루션)**의 사용은 매우 중요한 역할을 합니다. 이번 글에서는 Inception v1에서 1x1 Conv를 사용하는 이유를 설명하고, 그 이점을 예시와 함께 살펴보겠습니다.


1. 1x1 Conv란?

일반적으로 convolutional layer는 특정 크기의 필터(예: 3x3, 5x5)를 이용하여 입력 이미지에서 지역적인 특징을 추출합니다. 그러나 Inception 네트워크에서는 1x1 필터도 함께 사용됩니다. 1x1 Conv는 다음과 같이 작동합니다:

  • 필터 크기가 1x1이므로, 하나의 픽셀만을 곱셈 연산에 사용합니다.
  • 하지만 여러 개의 필터를 적용하여 채널 방향으로 연산을 수행하게 됩니다. 즉, 입력 채널을 줄이거나 늘리는 역할을 하게 됩니다.

2. 1x1 Conv의 주요 역할

2.1. 차원 축소(Dimensionality Reduction)

CNN에서 계산량은 주로 채널 수와 필터 크기에 의존합니다. 필터 크기를 늘리면 당연히 연산량도 증가합니다. Inception 네트워크는 1x1 Conv를 사용하여 채널 수를 줄임으로써 연산량을 크게 줄일 수 있습니다. 이를 차원 축소라고 부릅니다.

예시:

예를 들어, 3x3 Conv 필터를 사용하여 채널 수가 256인 입력에 대해 연산을 한다고 가정해봅시다. 계산량을 비교해볼까요?

  • 3x3 Conv 필터 연산량:
    • 입력 채널 수 = 256
    • 출력 채널 수 = 512
    • 한 번의 3x3 필터 연산에 필요한 계산량: 3×3×256=2,304 
    • 만약 512개의 3x3 필터를 사용한다면, 총 연산량은: 2,304×512=1,179,648

하지만, 만약 1x1 Conv를 사용하여 먼저 입력 채널 수를 64로 줄인 다음 3x3 Conv를 적용한다면 어떻게 될까요?

  • 1x1 Conv로 차원 축소 후 3x3 Conv 적용:
    • 1x1 Conv로 채널을 256에서 64로 줄인 후 3x3 Conv를 적용: 1×1×256×64=16,384
    • 그다음 3x3 Conv 필터를 적용: 3×3×64×512=294,912
    • 전체 연산량은: 16,384+294,912=311,296

이를 통해 1x1 Conv를 사용함으로써 전체 연산량을 약 4배 이상 줄일 수 있습니다!

2.2. 비선형성 추가

Inception 모듈에서 1x1 Conv는 단순히 차원 축소 역할만 하지 않습니다. 각 1x1 Conv 뒤에는 비선형 활성화 함수(ReLU)가 적용됩니다. 이는 신경망에 비선형성을 추가하여 더 복잡한 특징을 학습할 수 있도록 돕습니다.

2.3. 특징 추출 강화

1x1 Conv는 공간적으로는 입력 이미지를 줄이지 않지만, 채널 방향으로 연산을 적용하여 다양한 특징을 추출할 수 있습니다. 이를 통해 각 입력 픽셀에 대해 채널별로 다양한 특징을 학습하는 데 기여합니다.


3. Inception v1 모듈 구조

Inception 모듈은 다음과 같은 구조로 이루어져 있습니다:

  • 1x1 Conv
  • 3x3 Conv
  • 5x5 Conv
  • MaxPooling

이 중에서 1x1 Conv차원 축소 역할을 하면서 전체 모델의 효율성을 높여줍니다. 또한 1x1 Conv는 다른 필터 크기와 병렬적으로 사용되어 여러 크기의 특징을 추출할 수 있게 해줍니다.


4. 결론

Inception v1에서 1x1 Conv는 다음과 같은 이점을 제공합니다:

  • 차원 축소를 통해 연산량을 크게 줄인다.
  • 비선형성을 추가하여 네트워크가 더 복잡한 패턴을 학습할 수 있게 한다.
  • 다양한 특징을 추출하며, 3x3 및 5x5 Conv와 결합되어 더 풍부한 표현력을 얻는다.

이로 인해 Inception 네트워크는 더 효율적이고 강력한 모델로 자리 잡게 되었으며, 이는 현대 CNN 아키텍처에서 널리 사용되고 있습니다.


참고 자료

  • Szegedy et al., "Going Deeper with Convolutions," CVPR, 2015.

이 글이 Inception v1에서 1x1 Conv 사용의 이유를 이해하는 데 도움이 되었길 바랍니다!