스트라이드(보폭) (Stride)
쉽게 풀면
합성곱 신경망은 작은 필터(커널)를 이미지 위에서 조금씩 움직이며 특징을 뽑아내는데, 이때 한 번에 몇 칸씩 이동할지를 정하는 값이 스트라이드예요. 스트라이드가 1이면 필터가 한 칸씩 촘촘하게 움직이고, 스트라이드가 2이면 두 칸씩 건너뛰며 움직입니다. 스트라이드를 크게 하면 결과로 나오는 특징 맵의 크기가 작아지고 계산량도 줄어들지만, 그만큼 세밀한 정보를 놓칠 위험도 커져요. 풀링 층 없이도 스트라이드만으로 특징 맵 크기를 줄이는 구조도 많이 쓰입니다.
왜 중요한가
스트라이드는 합성곱 신경망의 계산량과 메모리 사용량, 그리고 각 층이 입력의 어느 범위를 바라보는지(수용 영역)를 동시에 결정하는 요소이기 때문에 경량화 모델이나 실시간 처리를 목표로 하는 컴퓨터 비전 논문에서 자주 언급됩니다. 풀링 층 없이 스트라이드만으로 특징 맵 크기를 줄이는 설계가 늘어나면서, 모델 구조를 소개하는 논문에서 스트라이드 값 선택 자체가 하나의 설계 결정으로 다뤄지는 경우도 많습니다.
논문에서는 이렇게 쓰입니다
필터가 두 칸씩 건너뛰며 이동하는 합성곱을 사용해 출력 특징 맵의 크기를 줄였다는 뜻이다.
별도의 풀링 연산 없이 스트라이드 값을 조절하는 것만으로 특징 맵 크기를 줄이고 계산 부담을 낮췄다는 뜻이다.
이미지 분할이나 초해상도 복원 같은 작업에서는 반대로 스트라이드를 이용해 작아진 특징 맵을 다시 키우는 방식으로도 활용된다는 뜻이다.
조금 더 깊게 보면
스트라이드는 필터 크기, 패딩과 함께 출력 특징 맵의 크기를 결정하는 세 가지 하이퍼파라미터 중 하나이며, 이 값들의 조합에 따라 출력 크기를 계산하는 공식이 정해져 있습니다. 스트라이드를 키우면 계산량이 줄어드는 대신 인접한 필터 적용 영역 사이의 겹침이 줄어들어 세밀한 공간 정보를 잃기 쉬운데, 이를 보완하기 위해 다중 스케일 특징을 함께 활용하는 구조가 자주 채택됩니다.
주의할 점
스트라이드를 너무 크게 설정하면 필터가 겹치는 영역이 줄어들어 중요한 지역 정보를 놓칠 수 있다.