105. $1 \times 1$ 합성곱 (1x1 Convolution) 연산

⚠️ 이 문서는 딥러닝 이미지 인식(CNN)에서 "$3 \times 3$이나 $5 \times 5$ 돋보기로 주변 픽셀을 넓게 훑어야 고양이의 모양(특징)을 알지, 고작 점 하나($1 \times 1$)짜리 돋보기로 찍어봤자 주변 그림 정보도 못 얻는데 대체 무슨 쓸모가 있나?"라는 초보자들의 흔한 오해를 박살 내고, 이 점 하나짜리 돋보기가 상하좌우(공간)가 아닌 데이터의 '두께(채널)'를 송곳처럼 관통하며 압축해 버림으로써, 무시무시한 파라미터(용량) 폭발을 막아내고 ResNet 152층의 기적을 가능케 한 '1x1 합성곱(보틀넥/차원 축소)'의 마법을 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 가로세로 공간(Spatial) 방향의 특징(테두리, 눈코입)을 추출하는 일반 필터와는 핏줄이 다르다. 공간은 건드리지 않은 채, 1,000장이나 겹쳐있는 뚱뚱한 특성 맵 뭉치의 두께(Channel)만을 송곳으로 푹 찔러 하나의 얇은 장으로 뭉개버리는 '채널 압축기'다.
  2. 가치: 256장의 두꺼운 지도를 $3 \times 3$ 필터로 연산하려면 컴퓨터 램이 터진다. 연산하기 '직전'에 $1 \times 1$ 필터 가위를 써서 지도를 64장으로 다이어트(차원 축소)시켜 주어 연산량을 $1/10$로 파괴적으로 줄여버리는 보틀넥(Bottleneck) 구조의 심장이다.
  3. 기술 체계: 구글의 **GoogLeNet(인셉션 모듈)**에서 처음으로 이 압축 기술을 극대화하여 무식한 VGGNet을 무너뜨렸고, 이후 ResNet에서 모래시계 모양의 보틀넥 블록($1 \times 1 \rightarrow 3 \times 3 \rightarrow 1 \times 1$)을 완성하며 현대 딥러닝의 절대 국룰로 등극했다.

Ⅰ. $1 \times 1$ 필터의 오해: 점 하나로 뭘 본다고?

가로세로(공간)를 보지 마라. Z축(깊이)으로 꽂히는 꼬치구이를 보라.

  1. 일반 필터($3 \times 3$)의 목적:
    • $3 \times 3$ 돋보기는 주변 픽셀 9개를 아우르며 "아, 여기 테두리 선이 휘어져 있네(귀 모양이네)!"라고 공간의 형태를 파악한다.
    • 그런데 $1 \times 1$ 돋보기는 딱 자기 점 1개만 본다. 점 1개는 그냥 점일 뿐, 테두리인지 곡선인지 1%도 알 수 없다.
  2. $1 \times 1$ 연산의 진실 (채널 융합):
    • 이전 층을 거쳐서 들어온 데이터가 $10 \times 10$ 크기에 두께(채널)가 무려 256장짜리 두꺼운 벽돌이라고 치자.
    • $1 \times 1$ 필터 하나를 올린다는 것은, 256장의 맵에 있는 똑같은 (X:1, Y:1) 좌표 위치의 픽셀 256개를 닭꼬치처럼 꼬챙이로 위아래로 한방에 푹 찌르는 것이다.
    • 그리고 그 꼬치에 꽂힌 256개의 숫자를 하나로 뭉개버려(선형 결합) 단 1개의 숫자로 압축(Projection)해 낸다.
  3. 결과 (차원 축소):
    • 만약 이 $1 \times 1$ 필터(꼬챙이)를 64개 썼다면?
    • 원본 데이터의 크기($10 \times 10$)는 그대로 유지된 채, 두께(채널)만 256장 $\rightarrow$ 64장으로 1/4 토막으로 콱 찌그러든 얇은 새 데이터 블록이 탄생한다! (이것이 채널 차원 축소의 마법이다.)

📢 섹션 요약 비유: $1 \times 1$ 필터는 종이의 그림(공간)을 읽는 돋보기가 아닙니다. A4 용지 256장(채널)이 쌓인 뚱뚱한 책을 위에서 아래로 뚫어버리는 **'송곳(꼬챙이)'**입니다. 256장의 맨 왼쪽 구석에 적힌 숫자들을 송곳으로 푹 찔러 하나로 뽑아내서 1개의 숫자로 뭉갭니다. 이 송곳을 64개만 쓰면, 256장짜리 두꺼운 전공 서적이 내용물(가로세로 해상도)은 하나도 안 깎인 채 두께만 64장짜리 얇은 요약본으로 미친 듯이 다이어트되어 튀어나오는 차원 압축기입니다.


Ⅱ. 연산량(파라미터) 다이어트의 기적: 보틀넥(Bottleneck) 구조

무식하게 곱하면 컴퓨터가 터진다. 얇게 깎고 곱한 뒤 다시 부풀려라.

  1. 압축 없이 그냥 $3 \times 3$ 연산을 때렸을 때의 비극:
    • $256$장의 두꺼운 블록을 출력 256장으로 뽑기 위해 그냥 $3 \times 3$ 필터로 계산하면?
    • 필요 파라미터(가중치) = $3 \times 3 \times 256 \times 256 = \textbf{589,824}$ 개.
    • 그래픽 카드가 58만 번 곱셈을 하느라 뜨거운 연기를 뿜고 메모리가 작살난다.
  2. $1 \times 1$ 필터를 끼워 넣은 보틀넥(모래시계) 연산:
    • 256장을 256장으로 뽑는 똑같은 결과물을 원하더라도 길을 3단계로 쪼갠다.
    • Step 1 (압축): 256장을 $1 \times 1$ 필터 64개로 푹 찔러서 얇은 64장으로 확 쪼그라뜨린다. (파라미터: $1 \times 1 \times 256 \times 64 = 16,384$)
    • Step 2 (핵심 특징 추출): 가장 얇아진(가벼워진) 상태인 64장을 대상으로 아까 하고 싶었던 진짜 돋보기 작업인 $3 \times 3$ 연산을 한다. (파라미터: $3 \times 3 \times 64 \times 64 = 36,864$)
    • Step 3 (팽창 복구): 다 쓴 64장을 다시 $1 \times 1$ 필터 256개로 찔러서 원래 두께인 256장으로 뻥 튀겨서 복구해 준다. (파라미터: $1 \times 1 \times 64 \times 256 = 16,384$)
  3. 충격적인 결과 비교:
    • 3단계를 다 더해도 필요 파라미터 = $16K + 36K + 16K = \textbf{약 70,000}$ 개.
    • 무식하게 한 방에 때렸던 58만 개에 비해 연산량이 1/8 수준(약 12%)으로 기적처럼 폭락했다! 결과물의 규격(두께)은 완전히 동일한데 말이다!

📢 섹션 요약 비유: 무거운 냉장고(두꺼운 256장 데이터)를 들고 에베레스트산(3x3 연산)을 넘어야 합니다. 바보(기존 방식)는 냉장고를 통째로 등에 짊어지고 산을 오르다 허리가 부러져 죽습니다(58만 파라미터 과부하). 천재($1 \times 1$ 보틀넥)는 산을 오르기 전 냉장고를 분해해 핵심 부품만 아주 작은 배낭(64장 압축)에 담아 가벼운 발걸음으로 산을 휙 넘습니다. 그리고 산을 넘은 뒤 도착지에서 1x1 조립기로 원래 냉장고 모양(256장 복구)으로 다시 뚝딱 합체해 버립니다. 운반 노력(연산량)이 8분의 1로 줄어드는 위대한 모래시계(Bottleneck) 건축술입니다.


Ⅲ. 신들의 무기: Inception과 비선형성의 축복

다이어트만 되는 게 아니다. 뇌세포가 꼬이면서 더 똑똑해진다.

  1. GoogLeNet의 인셉션(Inception) 모듈:
    • 구글은 층을 한 번 통과할 때 $1 \times 1$, $3 \times 3$, $5 \times 5$ 필터를 병렬로 다 쏴서 결과를 합치는 '인셉션' 구조를 짰다. (특징을 여러 크기로 잡으려고)
    • 근데 $5 \times 5$ 필터를 돌리려니 연산량이 미쳐 날뛰었다. 구글은 이 병렬 렌즈들 바로 앞단에 무조건 $1 \times 1$ 꼬챙이 필터를 방패막이로 세워두어 들어오는 데이터 두께를 확 깎아버린 뒤(차원 축소) 연산시켜 파라미터 뚱땡이화를 완벽히 방어했다.
  2. 은밀한 부가 효과 (비선형성의 증가):
    • 연산량만 줄여주는 게 아니다. $1 \times 1$ 필터(꼬챙이) 연산이 끝날 때마다, 뒤에 무조건 ReLU 활성화 함수(음수는 다 0으로 죽여버리는 물감)가 한 번 발라진다.
    • 무식하게 3x3 한 번만 때리면 ReLU가 1번 발리지만, 모래시계(1x1 $\rightarrow$ 3x3 $\rightarrow$ 1x1) 구조를 거치면 ReLU가 무려 3번이나 발린다.
    • 비선형 함수(ReLU)를 많이 바를수록 신경망은 구불구불한 뇌 주름이 많아져 훨씬 더 고차원적이고 똑똑한 사고(판단력)를 할 수 있게 된다.
    • 결국 $1 \times 1$ 합성곱은 "컴퓨터 밥(연산량)은 10분의 1로 줄이면서, 뇌 주름(비선형성)은 3배로 늘려버리는" 딥러닝 아키텍처 역사의 궁극의 치트키가 된 것이다.

📢 섹션 요약 비유: $1 \times 1$ 필터는 다이어트 약일 뿐만 아니라 뇌 영양제이기도 합니다. 데이터를 얇게 썰어 연산 짐(파라미터)을 확 줄여주면서도, 얇게 써는 과정 중간중간에 꼬박꼬박 ReLU라는 강력한 '천재 물약(비선형성)'을 세 번이나 먹입니다. 결과적으로 모델은 홀쭉하고 얇아져(연산 축소) 152층까지 날아갈 수 있게 된 반면, 뇌의 주름(판단력)은 더 꼬불꼬불하게 진화하여 이미지 인식의 신(ResNet)으로 군림하게 된 일석이조의 사기 템입니다.