101. 최대 풀링 (Max Pooling) vs 평균 풀링 (Average Pooling)
⚠️ 이 문서는 CNN(합성곱 신경망)에서 뽑아낸 거대하고 무거운 특성 맵(Feature Map)의 해상도를 반토막(압축) 내어 연산량을 확 줄이기 위해 가위질을 할 때, $2 \times 2$ 구역 안의 4개 픽셀 중 "가장 자극적인 1등만 뽑아 살릴 것인가(Max Pooling)" 아니면 "4명의 숫자를 둥글게 섞어 평균을 낼 것인가(Average Pooling)"를 결정하는 딥러닝 다운샘플링(Downsampling)의 양대 뼈대이자 철학의 대립을 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 이미지를 압축할 때 '정보를 버리는 방식'의 차이다. Max Pooling은 주변의 시시한 정보를 가차 없이 삭제하고 가장 뾰족한 특징(Edge, 선명함) 하나만 건져 올리는 '엘리트주의'고, Average Pooling은 주변의 정보를 조금씩 다 섞어서 뭉툭하게 보존하는 '공산주의'다.
- 가치: 강아지의 윤곽이나 테두리처럼 윤곽선(날카로움)이 생명인 중간 층(은닉층) 압축에서는 Max Pooling이 압도적으로 우수하여 CNN의 국룰로 자리 잡았다. 반면 Average Pooling은 특징이 뭉개지기 때문에 중간엔 버려졌으나, 맨 마지막 층에서 모델을 하나로 퉁칠 때(GAP) 기적처럼 부활하여 파라미터 폭발을 막는 구원투수가 된다.
- 기술 체계: 둘 다 학습해야 할 가중치(Weight) 파라미터가 단 1개도 없는 깡통(수학적 정적 함수) 연산이므로 오버피팅을 방지하며, 최근에는 이 두 가위질조차 버리고 합성곱 자체의 보폭을 넓히는 Strided Convolution으로 세대교체가 이루어지는 추세다.
Ⅰ. 엘리트의 생존: 최대 풀링 (Max Pooling)
무능한 3명은 죽어라. 1등만 다음 층으로 올라간다.
- 작동 원리 (가장 강한 신호 추출):
- $4 \times 4$ 특성 맵 위에 $2 \times 2$ 가위(커널)를 올려놓는다. 4칸 안의 픽셀 숫자가
[1, 5, 2, 9]다. - Max Pooling은 앞뒤 안 가리고 가장 큰 숫자(Max)인
9하나만 쏙 빼서 새 도화지에 적고,1, 5, 2는 영구적으로 쓰레기통에 폐기한다.
- $4 \times 4$ 특성 맵 위에 $2 \times 2$ 가위(커널)를 올려놓는다. 4칸 안의 픽셀 숫자가
- 왜 1등만 뽑는가? (특징의 극대화):
- 딥러닝에서 '숫자가 크다'는 것은 "앞단에 돋보기(필터)를 통과할 때, 이 픽셀 위치에 내가 찾는 '고양이 귀' 특징이 완벽하게 찰떡으로 존재한다!"라는 강력한 확신의 시그널이다.
- 반대로 숫자가 작은
1,2는 그냥 고양이 뒤에 있는 밋밋한 벽지(배경, 노이즈)일 뿐이다. - 따라서 Max Pooling은 배경의 잡음(Noise)은 다 죽여버리고, 우리가 찾고 싶은 가장 날카로운 테두리(Edge)나 특징 정보만 100% 진하게 압축해서 뇌(다음 층)로 쏴주는 미친 선명도를 자랑한다.
- 현재의 위상 (CNN의 절대 국룰):
- 이 선명함 덕분에 이미지 인식 모델(VGGNet, ResNet 등)의 중간중간 해상도를 반토막 낼 때 무조건 99% Max Pooling을 쓴다. CNN의 영원한 황금 표준이다.
📢 섹션 요약 비유: 서바이벌 오디션 프로그램(Max Pooling)입니다. 4명이 한 조(2x2 구역)를 이뤄 노래를 부릅니다. 심사위원은 조에서 목소리가 가장 크고 개성 있는(가장 큰 숫자 9) 1등만 합격(다음 층 진출)시키고 나머지 3명은 가차 없이 탈락시킵니다. 3명이 불렀던 화음(배경 정보)은 완전히 사라지지만, 대신 올라간 1명의 솔로 보컬(날카로운 특징)이 미친 듯이 귀에 꽂히기 때문에 다음 심사위원(다음 층 뉴런)이 "아 이 노래는 고양이 노래네!" 하고 특징을 귀신같이 판별할 수 있게 해주는 냉혹한 엘리트 선발법입니다.
Ⅱ. 둥글게 뭉개기: 평균 풀링 (Average Pooling)
대장이 없어도 좋다. 모두의 목소리를 섞어 부드럽게 만든다.
- 작동 원리 (부드러운 블러링):
- 똑같이 $2 \times 2$ 가위를 올려놓는다.
[1, 5, 2, 9]가 있다. - Average Pooling은 4명을 모두 더해 $4$로 나눈다. $(1+5+2+9)/4 =$
4.25 - 1등의 뾰족한
9라는 개성은 깎여나가고, 바닥에 깔려있던 노이즈(1,2)들이 섞여 들어오면서 전체적인 값이 부드럽고 뭉툭해진다.
- 똑같이 $2 \times 2$ 가위를 올려놓는다.
- 몰락과 버림받음 (특징 소실):
- 이미지 인식의 중간 층에서 이 짓을 하면 대참사가 일어난다.
- AI가 힘들게 고양이 수염(날카로운 9)을 찾아놨는데, 이걸 평균 풀링에 넣어버리면 배경 픽셀들과 섞이면서 수염이 흐릿해져(Blur 효과) AI가 수염을 알아보지 못하게 시력이 박살 나버린다.
- 그래서 일반적인 합성곱 층(Hidden Layer) 사이사이의 압축용으로는 거의 퇴출당해 안 쓴다.
📢 섹션 요약 비유: 공산주의식 합창(Average Pooling)입니다. 4명이 조를 이루면 1등이 너무 튀지 못하게 4명의 목소리를 기계로 섞어버려 완벽하게 똑같은 평범한 목소리(4.25) 하나로 뭉개서 출력합니다. 결과적으로 아주 부드럽고 잔잔한 합창이 되지만, 노래의 찌르는 듯한 킬링 파트(고양이 수염 픽셀)가 완전히 죽어버려, 다음 층에서 이 뭉툭한 소리만 듣고는 "이게 도대체 무슨 노래(형체)지?" 하고 구별하기 힘들어지는 심각한 정보의 열화 현상(Blurring)이 터집니다.
Ⅲ. Average Pooling의 화려한 부활: GAP (Global Average Pooling)
쓸모없던 뭉개기가, 파라미터 1억 개를 줄이는 마법의 구원투수로 진화하다.
- 기존 모델(FC Layer)의 끔찍한 결말:
- VGGNet 같은 옛날 모델은, 마지막 층에서 남은 $7 \times 7$ 크기의 지도 512장을 모조리 1차원 국수 가락(Flatten)으로 쭉 펴서 수만 개의 뇌세포(Fully Connected Layer)에 쑤셔 넣었다.
- 이때 신경망이 얽히고설키며 계산해야 할 가중치(Weight)가 무려 1억 개가 폭발하며, 여기서 오버피팅(암기)이 터지고 컴퓨터 램(RAM)이 다 타버렸다.
- GAP (전역 평균 풀링)의 기적 (ResNet, Inception):
- 학자들은 맨 마지막 층의 이 미친 연산량을 부수기 위해 'Average Pooling'을 극한으로 뻥튀기한 GAP를 도입했다.
- $7 \times 7$ 크기 지도 1장이 있다. 가위를 $2 \times 2$가 아니라, 아예 도화지 크기만 한 거대한 $7 \times 7$ 통째 가위로 설정한다.
- 그럼 49칸의 픽셀 숫자를 몽땅 다 더해서 하나의 평균을 낸다. $7 \times 7$ 지도가 단 하나의 점(숫자 1개)으로 뭉개진다! 512장의 지도가 고작 숫자 512개짜리 짧은 선 하나로 극한의 압축이 일어난다.
- 가중치 $0$의 무결점 연산:
- 이 GAP 과정은 그저 더하고 나누는 덧셈 기계일 뿐, AI가 학습해야 할 가중치(W) 파라미터가 단 0개다!
- VGGNet에서 1억 개나 필요했던 마지막 층의 가중치가, ResNet에서는 이 GAP 마법 덕분에 0개로 소멸하며, 가볍고 빠르고 오버피팅에도 완벽히 방어되는 기적의 아키텍처 혁명을 이룩했다. 여기서 Average Pooling은 딥러닝 역사상 가장 위대한 반전을 이뤄냈다.
📢 섹션 요약 비유: 학교 시험을 봅니다. 옛날(Flatten+FC Layer)엔 512과목의 49페이지짜리 시험지를 대학 입학처(다음 층)에 박스째로 다 갖다 주느라 서류가 1억 장(가중치 폭발)이 넘었습니다. 입학처장이 서류 더미에 깔려 죽을 맛이었죠. GAP의 등장입니다. 49페이지짜리 국어 시험지 1장을 몽땅 퉁쳐서 "국어 평균 85점" 숫자 하나로 압축해버립니다. 수학 시험지도 "수학 평균 90점" 1개로 압축합니다. 입학처장에게는 고작 [국어 85, 수학 90...] 적힌 아주 얇은 성적표 딱 1장(숫자 512개)만 제출하면 되므로, 일처리가 수만 배 가벼워지고(파라미터 0개) 서류 암기(오버피팅)의 폐해마저 싹 사라지는 기적의 전과목 평균 내기(Global Average Pooling) 마법입니다.