14.3 합성곱층(Convolutional Layer)의 구조

14.3 합성곱층(Convolutional Layer)의 구조

합성곱층은 합성곱 신경망의 핵심 구성 요소로서, 학습 가능한 합성곱 필터를 입력 텐서에 적용하여 특징 맵(feature map)을 산출하는 층이다. 이 절에서는 합성곱층의 학술적 정의, 매개 변수, 출력 크기 계산, 다중 채널 처리, 학술적 특성을 학습 순서에 따라 기술한다.

1. 학술적 정의

2차원 합성곱 연산은 입력 텐서의 한 채널 X \in \mathbb{R}^{H \times W}와 학습 가능한 필터 K \in \mathbb{R}^{k_h \times k_w}의 슬라이딩 윈도우 곱-합 연산이다. 출력 Y의 한 위치 (i, j)의 값은 다음과 같이 정의된다.

Y_{i, j} = \sum_{u=0}^{k_h - 1} \sum_{v=0}^{k_w - 1} K_{u, v} \cdot X_{i + u, j + v}

여기서 k_hk_w는 각각 필터의 높이와 너비이다. 위 정의는 엄밀한 의미의 상호 상관(cross-correlation) 연산이며, 학술적으로 합성곱과 약간의 차이가 있지만 심층 학습에서는 두 용어가 혼용되어 사용된다.

14.3.2 매개 변수

합성곱층의 학습 가능 매개 변수는 다음과 같다.

  • 필터의 가중치: 모든 필터의 모든 원소
  • 편향: 각 필터에 대응하는 단일 편향(선택적)

매개 변수의 수는 입력 채널 수, 출력 채널 수, 필터의 높이와 너비에 의하여 결정된다. 입력 채널 수가 C_{\text{in}}, 출력 채널 수가 C_{\text{out}}, 필터 크기가 k_h \times k_w인 경우 매개 변수의 수는 다음과 같이 표현된다.

\#\text{params} = C_{\text{out}} \cdot C_{\text{in}} \cdot k_h \cdot k_w + C_{\text{out}}

여기서 마지막 항은 편향에 해당한다.

2. 합성곱층의 하이퍼파라미터

합성곱층의 동작은 다음의 하이퍼파라미터에 의하여 결정된다.

  • 필터 크기 k_h \times k_w: 일반적으로 1×1, 3×3, 5×5 등이 사용된다.
  • 스트라이드(stride) s: 필터가 입력 위에서 미끄러질 때의 이동 간격
  • 패딩(padding) p: 입력의 경계에 추가되는 0의 수
  • 입력 채널 수 C_{\text{in}}
  • 출력 채널 수 C_{\text{out}} (필터의 수)
  • 팽창률(dilation) d: 필터의 원소 사이에 삽입되는 간격(팽창 합성곱의 경우)
  • 그룹 수 g: 그룹 합성곱의 경우 그룹의 수

3. 출력 크기의 계산

스트라이드 s, 패딩 p, 필터 크기 k, 입력 크기 L_{\text{in}}이 주어졌을 때 출력 크기 L_{\text{out}}은 다음과 같이 계산된다.

L_{\text{out}} = \left\lfloor \frac{L_{\text{in}} + 2p - k}{s} \right\rfloor + 1

이 식은 1차원 합성곱에 대한 것이며, 2차원 합성곱에서는 높이와 너비에 각각 적용된다. 팽창 합성곱의 경우 필터 크기를 다음의 유효 크기로 대체한다.

k_{\text{eff}} = (k - 1) \cdot d + 1

4. 다중 채널 처리

실제 합성곱층은 단일 채널이 아닌 다중 채널 입력에 대하여 동작한다. 입력 텐서가 X \in \mathbb{R}^{C_{\text{in}} \times H \times W}이고 필터가 K \in \mathbb{R}^{C_{\text{out}} \times C_{\text{in}} \times k_h \times k_w}인 경우, 출력 텐서 Y \in \mathbb{R}^{C_{\text{out}} \times H_{\text{out}} \times W_{\text{out}}}의 한 위치는 다음과 같이 계산된다.

Y_{c, i, j} = \sum_{c' = 0}^{C_{\text{in}} - 1} \sum_{u=0}^{k_h - 1} \sum_{v=0}^{k_w - 1} K_{c, c', u, v} \cdot X_{c', i + u, j + v} + b_c

여기서 b_c는 출력 채널 c에 대응하는 편향이다. 즉, 각 출력 채널의 한 위치는 모든 입력 채널의 가중 합으로 계산된다.

14.3.6 합성곱의 학술적 특성

합성곱층의 주요 학술적 특성은 다음과 같다.

  • 가중치 공유: 동일한 필터가 입력의 모든 위치에 적용된다.
  • 지역 연결: 각 출력 단위가 입력의 작은 지역에만 의존한다.
  • 평행 이동 등변성: 입력의 평행 이동이 출력의 평행 이동으로 표현된다.
  • 매개 변수 효율성: 매개 변수의 수가 입력의 크기와 무관하다.
  • 다중 채널 지원: 입력과 출력 모두 다중 채널을 가질 수 있다.

14.3.7 합성곱의 변형

합성곱층의 학술적 변형은 다음과 같다.

  • 1×1 합성곱: 필터 크기가 1×1인 합성곱으로, 채널 수의 변환과 비선형 결합에 사용된다. Lin, Chen, Yan의 Network in Network (2014)에서 학술적으로 도입되었다.
  • 팽창 합성곱(dilated 또는 atrous convolution): 필터의 원소 사이에 간격을 두어 수용 영역을 확장한 합성곱. Yu와 Koltun의 Multi-Scale Context Aggregation by Dilated Convolutions (2016)에서 학술적으로 정형화되었다.
  • 그룹 합성곱(group convolution): 입력과 출력 채널을 그룹으로 분할하여 각 그룹 내에서만 연산을 수행한다.
  • 깊이별 분리 합성곱(depthwise separable convolution): 채널별 합성곱과 점별 합성곱(1×1)으로 분해된 합성곱. MobileNet 등의 효율적 모형에서 학술적으로 사용되었다.
  • 전치 합성곱(transposed convolution): 출력의 공간 차원을 입력보다 크게 만드는 합성곱. 디코더와 분할 모형에서 사용된다.

14.3.8 출처 및 버전 정보

  • LeCun, Y., Bottou, L., Bengio, Y., Haffner, P., Gradient-based learning applied to document recognition, Proceedings of the IEEE, 1998
  • Lin, M., Chen, Q., Yan, S., Network in Network, International Conference on Learning Representations, 2014
  • Yu, F., Koltun, V., Multi-Scale Context Aggregation by Dilated Convolutions, International Conference on Learning Representations, 2016
  • Howard, A. G., 외, MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, arXiv:1704.04861, 2017
  • Goodfellow, I., Bengio, Y., Courville, A., Deep Learning, MIT Press, 2016