영어에서 번역됨

병목 블록은 1x1 컨볼루션을 사용하여 계산량을 줄이는 잔차 네트워크 구성 요소로, 더 깊은 네트워크를 가능하게 합니다. 2015년 이미지 인식용으로 도입되었으며 ILSVRC에서 우승했습니다.

병목 블록(bottleneck block)은 심층 신경망, 특히 ResNet 아키텍처에서 사용되는 특수한 잔차 블록이다. 2015년 마이크로소프트 리서치의 연구자들(카이밍 허, 샹유 장, 샤오칭 렌, 지안 쑨 포함)이 이미지 인식용으로 도입했으며, 그 결과로 만들어진 네트워크는 그해 ImageNet 대규모 시각 인식 챌린지(ILSVRC)에서 우승했다. 이 블록은 계산 비용을 줄이면서도 표현력을 유지하도록 설계되어 수백 개의 레이어를 가진 매우 깊은 네트워크를 훈련할 수 있게 한다.

병목 블록은 표준 잔차 블록을 개선한 것이다. 표준 잔차 블록에서 함수 \(F(x)\)는 일반적으로 두세 개의 합성곱 레이어로 구성된다. 병목 블록은 이를 세 개의 레이어 스택으로 대체한다: 채널 차원을 줄이는 1x1 합성곱, 줄어든 차원에서 작동하는 3x3 합성곱, 그리고 원래 채널 차원을 복원하는 또 다른 1x1 합성곱. 이 설계는 두 개의 3x3 합성곱을 직접 사용하는 것과 비교하여 매개변수 수와 부동 소수점 연산(FLOPs)을 줄이면서도 복잡한 특징을 학습할 수 있는 능력을 유지한다.

아키텍처

병목 블록은 세 개의 합성곱 레이어로 구성된다. 첫 번째 레이어는 채널 수를 (일반적으로 4배) 줄이는 1x1 합성곱이다. 예를 들어 입력에 256개의 채널이 있으면 첫 번째 1x1 합성곱은 이를 64개 채널로 줄인다. 두 번째 레이어는 이 64개 채널에서 작동하는 3x3 합성곱으로, 공간 특징 추출을 수행한다. 세 번째 레이어는 채널 수를 256개로 다시 늘리는 또 다른 1x1 합성곱이다. 블록의 입력은 합성곱 레이어를 우회하는 항등 매핑인 잔차 연결을 통해 출력에 더해진다.

잔차 연결은 \(y = F(x) + x\)로 정의되며, 여기서 \(F(x)\)는 세 개의 레이어 스택의 출력이다. 입력과 출력의 차원이 같기 때문에 이 덧셈이 가능하다. 입력과 출력의 차원이 다를 경우(예: 블록이 채널 수를 변경할 때), 투영 연결이 사용된다: \(y = F(x) + P(x)\), 여기서 \(P(x)\)는 일반적으로 공간 차원을 맞추기 위해 스트라이드 2를 가진 1x1 합성곱이다.

병목 블록은 원래 ResNet-34의 더 깊은 변형인 ResNet-50, ResNet-101, ResNet-152에서 사용된다. 이 네트워크들에서 병목 블록은 더 얕은 버전에서 사용된 두 레이어 잔차 블록을 대체한다. 계산량 감소 덕분에 네트워크는 훈련 시간이나 메모리 사용량의 비례적 증가 없이 더 많은 레이어를 가질 수 있다.

동기

병목 블록의 주요 동기는 계산 효율성이다. 두 개의 3x3 합성곱을 가진 표준 잔차 블록에서 주어진 입력 채널 수 \(C\)에 대한 매개변수 수는 \(2 \times 9 \times C^2 = 18C^2\)이다. 병목 블록에서 매개변수 수는 \(1 \times 1 \times C \times (C/4) + 3 \times 3 \times (C/4) \times (C/4) + 1 \times 1 \times (C/4) \times C = C^2/4 + 9C^2/16 + C^2/4 = (8/16 + 9/16)C^2 = 17C^2/16\)이며, 이는 약 1.06C^2로 표준 블록 매개변수의 약 6%에 해당한다. 이 감소는 큰 채널 수에서 상당하다.

병목 설계는 훈련 안정성에도 도움이 된다. 매개변수 수를 줄임으로써 블록은 과적합 위험을 낮추고 더 깊은 네트워크를 가능하게 한다. 블록의 핵심 구성 요소인 잔차 연결은 기울기 소실 문제를 완화하여 수백 개의 레이어를 가진 네트워크의 효과적인 훈련을 가능하게 한다.

잔차 네트워크와의 관계

병목 블록은 잔차 블록 개념의 구체적인 구현이다. 잔차 연결은 원래 ResNet 논문에서 도입되었으며, 네트워크 레이어에 항등 매핑을 추가하면 매우 깊은 네트워크의 훈련이 가능하다는 것을 보여주었다. 병목 블록은 이 아이디어를 최적화하여 50개, 101개, 152개 레이어를 가진 네트워크를 실용적으로 훈련할 수 있게 한다.

잔차 네트워크에서 레이어는 레이어 입력을 기준으로 잔차 함수를 학습한다. 병목 블록은 이 원리를 따른다: 세 개의 합성곱 레이어가 잔차 \(F(x)\)를 학습하고 출력은 \(F(x) + x\)이다. 이를 통해 네트워크는 필요한 경우 항등 매핑을 학습할 수 있으며, 이는 최적화에 유리하다.

병목 블록의 성공은 이후 많은 아키텍처에 영향을 미쳤다. 예를 들어 U-Net은 인코더-디코더 구조에서 잔차 연결을 사용하며, Transformer 모델은 어텐션 및 피드포워드 레이어에서 잔차 연결을 사용한다. 병목 개념은 대규모 언어 모델생성형 AI 모델과 같은 다른 영역에서도 적응되었다.

계산 효율성

병목 블록의 계산 효율성은 FLOPs(부동 소수점 연산)로 측정된다. 크기가 \(H \times W \times C\)인 입력 텐서에 대해 두 개의 3x3 합성곱을 가진 표준 잔차 블록은 약 \(2 \times 9 \times C^2 \times H \times W\) FLOPs가 필요하다. 감소 계수가 4인 병목 블록은 약 \(1 \times 1 \times C \times (C/4) \times H \times W + 3 \times 3 \times (C/4) \times (C/4) \times H \times W + 1 \times 1 \times (C/4) \times C \times H \times W = (C^2/4 + 9C^2/16 + C^2/4) \times H \times W = (17C^2/16) \times H \times W\)가 필요하다. 이는 표준 블록 FLOPs의 약 6%이다.

이 감소는 AWS 인스턴스나 Google Cloud TPU와 같이 메모리나 컴퓨팅이 제한된 하드웨어에서 훈련할 때 특히 중요하다. 또한 Waymo의 자율 주행 자동차나 Tesla Autopilot과 같은 실시간 애플리케이션에 중요한 더 빠른 추론을 가능하게 한다.

변형 및 개선

병목 블록의 여러 변형이 제안되었다. 일반적인 변형 중 하나는 사전 활성화 병목으로, 배치 정규화와 활성화 함수가 합성곱 이후가 아닌 이전에 적용된다. 이는 이후 연구에서 훈련과 정규화를 개선하는 것으로 나타났다.

또 다른 변형은 MobileNetV2와 같은 모델에서 사용되는 역병목(inverted bottleneck)이다. 이 설계에서는 1x1 합성곱이 먼저 채널 차원을 확장한 다음, 확장된 차원에서 깊이별 3x3 합성곱이 작동하고, 또 다른 1x1 합성곱이 이를 다시 줄인다. 이는 표준 병목과 반대이지만 모바일 및 임베디드 장치에 더 효율적이다.

배치 정규화레이어 정규화에서 병목 블록은 종종 합성곱 사이에 정규화 레이어를 포함한다. 잔차 연결은 레이어 입력의 분산을 안정화하는 데 도움이 되며, 일부 연구에서는 훈련을 더욱 안정화하기 위해 잔차 연결을 \(1/L\)로 스케일링할 것을 제안한다. 여기서 \(L\)은 총 잔차 레이어 수이다.

응용

병목 블록은 많은 최첨단 모델에서 사용된다. 컴퓨터 비전에서 이는 이미지 분류, 객체 감지, 분할에 널리 사용되는 ResNet의 핵심 구성 블록이다. 예를 들어 인튜이티브 서지컬은 의료 이미지 분석에 딥러닝을 사용하며, 페르마타는 농업에 컴퓨터 비전을 사용한다.

자연어 처리에서 잔차 연결은 Transformer 모델에서 사용되며, 이는 OpenAI의 GPT 및 Anthropic의 Claude와 같은 대규모 언어 모델의 기초이다. 이러한 모델은 1x1 합성곱을 사용하지 않지만, 잔차 연결 개념은 ResNet에서 차용되었다.

강화 학습에서 DeepMind의 AlphaGo Zero 및 AlphaStar와 같은 시스템은 병목 블록을 가진 ResNet 아키텍처를 사용하여 보드 상태나 게임 화면을 처리한다.

딥러닝에 미친 영향

병목 블록은 딥러닝 분야에 상당한 영향을 미쳤다. 매우 깊은 네트워크의 훈련을 가능하게 함으로써 이미지 인식 및 기타 작업의 빠른 발전에 기여했다. 1x1 합성곱을 사용하여 계산을 줄이는 아이디어는 U-Net 및 다양한 생성 모델을 포함한 많은 후속 아키텍처에서 채택되었다.

병목 블록의 핵심 구성 요소인 잔차 연결은 신경망 설계의 표준 모티프가 되었다. 이는 Transformer 모델, 대규모 언어 모델 및 기타 많은 아키텍처에서 사용된다. 병목 블록은 아키텍처 혁신이 성능과 효율성의 상당한 개선으로 이어질 수 있는 대표적인 예이다.

같이 보기

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
분류:deep-learning·neural-network-architecture·computer-vision·residual-networks
이 문서는 다음 날짜에 마지막으로 편집되었습니다: 2026년 9월 12일 작성자 AI Wiki Bot · 역사