MLDL_정리/용어, 메모장

[DL] - CNN의 Stride, Padding, Pooling 특징

KimTory 2022. 3. 21. 22:54

🙋‍♂️ CNN - Convolutional Neural Networks의 핵심 요소: Stride, Padding, Pooling

Stride(스트라이드)

  • 정의: Stride는 컨볼루션 연산을 수행할 때 필터가 입력 데이터 위를 이동하는 간격을 의미합니다. 즉, 필터가 얼마나 멀리 뛰어넘어가며 정보를 추출하는지를 결정합니다.
  • 효과:
    • Stride = 1: 필터가 한 픽셀씩 이동하며, 입력 데이터의 정보를 놓치지 않고 잘 포착합니다.
    • Stride = 2 이상: 필터가 더 큰 간격으로 이동하여 출력 크기를 줄이고, 연산 속도를 향상시킵니다. 하지만 이 때, 특정 정보의 손실이 발생할 수 있습니다.
  • 최신 트렌드: 최근의 깊은 네트워크에서는 Stride를 조절하여 연산 효율성을 높이고, 깊은 레이어에서 정보의 손실을 최소화하는 방향으로 연구가 진행되고 있습니다.

🙋‍♂️ CNN, Padding이란??

Padding(패딩)

  • 목적: Convolution 연산을 수행하면서 출력 피처맵의 크기가 계속 줄어드는 것을 방지하기 위해 사용합니다.
  • 효과:
    • 'Same' Padding: 입력 피처맵과 동일한 크기의 출력을 얻기 위해 사용됩니다. 입력 데이터의 가장자리에 0을 추가하여 크기를 유지합니다.
    • 'Valid' Padding: 패딩을 사용하지 않고 순수한 입력 데이터만으로 연산을 수행합니다. 결과적으로 출력 크기가 줄어듭니다.
  • 주의점: 패딩은 모델의 학습에 영향을 미칠 수 있으므로, 적절한 패딩 전략을 선택하는 것이 중요합니다.

🙋‍♂️ CNN, Pooling이란??

Pooling(풀링)

  • 기능: 피처맵의 크기를 줄이고, 중요한 정보를 간추려 내는 역할을 합니다.
  • 종류:
    • Max Pooling: 주어진 영역에서 최대값을 추출하여 강한 특성을 강조합니다.
    • Average Pooling: 주어진 영역의 평균값을 계산하여 부드러운 특성을 추출합니다.
  • 최신 트렌드: 최근에는 풀링 레이어 대신 Stride를 조절하여 피처맵 크기를 줄이는 방법이 선호됩니다. 이는 정보 손실을 줄이면서도 효율적인 연산을 가능하게 합니다. 예를 들어, ResNet과 같은 깊은 네트워크에서는 풀링 레이어를 최소화하고 Stride를 사용하는 방식이 일반적입니다.

 

이렇게 Stride, Padding, Pooling은 CNN의 핵심 구성 요소로서, 각각의 역할과 특성에 따라 모델의 성능과 효율성에 큰 영향을 미칩니다. 이러한 요소들을 적절히 조절하고, 최적의 네트워크 구조를 설계하는 것이 중요합니다.