콘텐츠로 이동

5. 합성곱 신경망과 공간 구조

이 장의 질문

이미지처럼 공간에 놓인 데이터의 가까운 위치 관계를 모형에 어떻게 반영할까?

이미지를 일반 MLP에 넣으려면 모든 픽셀을 긴 벡터로 펼쳐야 한다. 이 과정에서 가까운 픽셀끼리 맺는 관계가 드러나지 않고 위치마다 별도의 가중치가 필요해진다. 합성곱 신경망(CNN)은 같은 연산을 여러 위치에 적용해 가까운 곳에서 반복되는 패턴을 찾는다. 이미지의 지역성(locality)과 이동에 따른 반복성을 모형 구조에 반영한 것이다.

CNN은 이미지에만 쓰이지 않는다. 규칙적인 격자에서 가까운 위치의 패턴이 중요한 음성, 시계열, 공간장, 3차원 체적 데이터에도 1차원 또는 3차원 합성곱을 적용할 수 있다. 합성곱 연산에서 출발해 수용 영역, 잔차 블록, 과제별 출력으로 차례로 이어가 보자.

읽기 수준과 선수지식 확인

읽기 전에 확인할 내용

핵심 개념

  • 이미지 텐서의 채널, 높이, 너비
  • 합성곱 커널, 특성 맵, 스트라이드, 패딩
  • 지역성, 가중치 공유, 이동 등변성
  • 수용 영역과 계층적 특성
  • 풀링, 잔차 블록, 과제별 출력 헤드
  • 데이터 증강과 전이 학습

이름과 위치를 알아둘 개념

  • LeNet, AlexNet, VGG, ResNet
  • 객체 검출, 의미 분할, U-Net
  • 1차원, 2차원, 3차원 합성곱

각 모형 구조의 층 수나 연도를 암기하는 것이 목표는 아니다. 어떤 문제를 해결하려고 어떤 구조가 추가되었는지 설명할 수 있으면 된다.

이해에 필요한 항목

  • 행렬과 텐서의 배열 모양
  • 가중합과 행렬 곱셈
  • 2차원 좌표와 이웃
  • 2장의 활성화와 역전파
  • 3장의 잔차 학습과 정규화

이미지 텐서는 공간 구조를 보존한다

색 이미지 한 장은 흔히 높이 \(H\), 너비 \(W\), 색상 채널 \(C\)를 가진 텐서로 표현한다. 프레임워크에 따라 배열 모양 순서는 \((C,H,W)\) 또는 \((H,W,C)\)일 수 있다. 미니배치 축 \(N\)이 추가되면 4차원 텐서가 된다.

각 채널은 반드시 사람이 바로 해석할 수 있는 색만 뜻하지 않는다. 첫 입력에서는 RGB 채널일 수 있지만 은닉 층의 채널은 모형이 학습한 서로 다른 특성 맵을 나타낸다. 배열 모양을 읽을 때 각 축이 샘플, 채널, 공간 좌표 중 무엇인지 확인해야 한다.

합성곱 커널은 국소 가중합을 반복한다

작은 커널 \(K\)를 이미지 \(X\)의 여러 위치에 적용해 출력 특성 맵을 만든다. 2차원 단일 채널의 단순한 형태는 다음과 같다.

\[ Y_{i,j}=\sum_u\sum_v K_{u,v}X_{i+u,j+v} \]

실제 CNN 층은 여러 입력 채널에서 값을 모아 여러 출력 채널을 만들고 편향과 활성화를 적용한다. 딥러닝 라이브러리에서 "합성곱"이라고 부르는 연산은 수학적으로 커널을 뒤집지 않는 교차상관인 경우가 많지만, 학습되는 커널이라는 관점에서는 보통 같은 이름으로 다룬다.

입력 가장자리에 패딩을 더한 뒤 합성곱 커널을 적용하는 과정
패딩을 두른 입력에 작은 커널을 반복 적용하는 합성곱. 출처: Dive into Deep Learning, CC BY-SA 4.0, 변경 없음.

커널이 학습하는 것

초기 층의 커널은 에지, 방향, 국소 대비처럼 작은 패턴에 반응할 수 있다. 뒤 층은 앞 층의 특성을 다시 조합해 더 넓고 복잡한 패턴을 나타낼 수 있다. 이 설명은 전형적인 직관이지 모든 채널이 사람이 이름 붙일 수 있는 검출기가 된다는 보장은 아니다.

지역성과 가중치 공유

CNN이 MLP와 다른 핵심 가정은 두 가지다.

  • 국소 연결성: 한 출력은 입력 전체가 아니라 가까운 이웃을 먼저 본다.
  • 가중치 공유: 같은 커널 가중치를 여러 공간 위치에 반복해 사용한다.

이 덕분에 이미지 크기에 비례해 위치마다 별도 가중치를 두지 않고도 국소 패턴을 탐지할 수 있다. 또한 왼쪽에서 유용한 에지 검출기를 오른쪽에도 적용할 수 있다.

이 가정이 언제나 맞는 것은 아니다. 이미지 절대 위치가 핵심이거나 멀리 떨어진 영역의 관계가 처음부터 중요한 문제에서는 합성곱만으로 충분하지 않을 수 있다. 깊은 층, 큰 커널, 팽창 합성곱, 어텐션 등으로 더 넓은 문맥을 다루게 된다.

핵심 흐름 펼쳐보기: 출력 크기, 수용 영역, 모델 계보

평행이동 등변성과 불변성

입력을 한 칸 이동했을 때 특성 맵도 같은 방식으로 이동하는 성질을 이동 등변성이라고 한다. 이상적인 합성곱은 이 성질을 가진다.

\[ f(Tx)=T f(x) \]

\(T\)가 이동 연산자라면 입력 변환 뒤 특성도 대응해 변한다는 뜻이다. 반면 이동 불변성은 입력 위치가 변해도 최종 출력이 같아지는 성질이다. 분류에서 객체의 위치와 무관한 범주를 원할 때 풀링과 전역 집계가 불변성에 가까운 결과를 만드는 데 도움을 준다.

패딩, 스트라이드, 이미지 경계, 풀링 때문에 실제 신경망이 완전한 이동 등변성을 항상 유지하는 것은 아니다. 등변성과 불변성을 동의어처럼 쓰지 않는 것이 중요하다.

스트라이드와 패딩이 출력 크기를 정한다

  • 스트라이드는 커널을 몇 픽셀씩 이동할지 정한다. 스트라이드가 커지면 공간 해상도가 줄어든다.
  • 패딩은 입력 경계 주변에 값을 추가한다. 적절한 패딩으로 스트라이드 1에서 출력의 높이와 너비를 유지할 수 있다.

한 축에서 입력 크기 \(n\), 커널 크기 \(k\), 패딩 \(p\), 스트라이드 \(s\)일 때 팽창을 생략한 출력 크기는 다음과 같다.

\[ \left\lfloor\frac{n+2p-k}{s}\right\rfloor+1 \]

공식을 암기하기보다 커널이 경계 안에 놓일 수 있는 시작 위치 수를 세는 과정으로 이해하면 된다. 배열 모양 오류는 CNN 구현에서 흔하므로 각 층 전후 텐서 배열 모양을 확인하는 습관이 중요하다.

패딩은 계산 편의만의 문제가 아니다. 영 패딩은 이미지 바깥이 0이라는 인공적 경계를 만들며, 작은 이미지나 경계에 민감한 과제에서는 예측에 영향을 줄 수 있다.

특성 맵과 채널

하나의 학습된 커널 집합은 하나의 출력 채널, 즉 특성 맵을 만든다. 여러 출력 채널은 서로 다른 국소 패턴을 나타낼 수 있다. 층이 깊어지면서 공간 크기는 줄고 채널 수는 늘어나는 모형 구조가 흔하다. 이는 위치별 세부 해상도를 줄이면서 더 다양한 특성 유형을 표현하는 설계다.

채널 수가 곧 의미 있는 개념의 수는 아니다. 정보가 여러 채널에 분산될 수 있고 하나의 채널이 여러 패턴에 반응할 수 있다. 특성 맵 시각화는 모형을 탐색하는 도구이지 완전한 설명은 아니다.

수용 영역과 계층적 표현

한 은닉 단위의 수용 영역은 그 단위 값에 영향을 줄 수 있는 원 입력 영역이다. 3×3 합성곱 하나는 가까운 3×3 영역을 보지만, 두 층을 연속하면 뒤 단위는 앞 특성을 통해 더 넓은 입력 영역의 영향을 받는다. 깊이, 커널, 스트라이드, 팽창률에 따라 수용 영역이 커진다.

이 구조는 작은 에지에서 질감과 형태로 점차 특성을 조합한다는 계층적 표현의 직관을 준다. 그러나 이론적 수용 영역 안의 모든 픽셀이 같은 영향력을 갖는 것은 아니다. 실제 유효 수용 영역은 매개변수와 활성화값에 따라 더 좁거나 비대칭일 수 있다.

풀링과 다운샘플링

풀링은 국소 영역을 하나의 값으로 요약한다.

  • 최댓값 풀링은 영역의 최댓값을 선택한다.
  • 평균 풀링은 평균을 계산한다.
  • 전역 평균 풀링은 각 채널의 전체 공간 위치를 평균해 분류 헤드에 연결할 수 있다.

풀링은 해상도와 계산량을 줄이고 작은 위치 변화에 덜 민감한 표현을 만드는 데 도움을 준다. 동시에 정확한 위치 정보를 잃는다. 분할처럼 조밀한 공간 출력이 필요한 과제에서는 인코더에서 줄인 해상도를 디코더와 건너뛰기 연결로 복원하는 설계가 중요하다.

스트라이드 합성곱도 학습된 다운샘플링 역할을 할 수 있다. 풀링이 필수라는 뜻은 아니며 과제와 모형 구조에 따라 선택한다.

깊은 CNN과 잔차 블록

신경망을 깊게 하면 더 넓은 수용 영역과 복합적인 변환을 만들 수 있지만 최적화가 어려워진다. 3장에서 본 잔차 블록은 변환 \(F(x)\)에 입력 \(x\)를 더한다.

\[ y=F(x)+x \]

ResNet은 잔차 블록을 반복해 매우 깊은 CNN을 안정적으로 학습하는 방향을 보여주었다. 입력과 출력 채널 또는 공간 크기가 다르면 항등 경로를 그대로 더할 수 없으므로 투영 지름길 같은 변환으로 배열 모양을 맞춘다.

잔차 연결이 깊이의 모든 문제를 해결하는 것은 아니다. 정규화 위치, 활성화 함수, 초기화, 다운샘플링과 계산 예산도 함께 설계된다. 핵심은 모델이 전체 변환을 새로 만들기보다 입력에 더할 변화인 잔차를 학습하고, 직접 경로로 신호를 전달한다는 점이다.

모델 구조의 변화는 어떤 문제를 해결했는가

  • LeNet은 손글씨 숫자 인식을 통해 합성곱과 하위 표본 추출을 결합한 초기 CNN 사례다.
  • AlexNet은 대규모 레이블 이미지 데이터셋, GPU 계산, ReLU, 데이터 증강 등을 결합해 심층 CNN의 가능성을 널리 보여주었다.
  • VGG는 작은 3x3 합성곱을 반복하는 규칙적인 깊은 모형 구조를 제시했다.
  • ResNet은 잔차 학습으로 깊이가 증가할 때의 최적화 성능 저하를 다루었다.
  • U-Net은 인코더와 디코더의 같은 해상도 특성을 건너뛰기 연결로 연결해 생의학 이미지 분할의 위치 정보를 복원했다.

이 계보를 "새 모델이 이전 모델을 완전히 폐기했다"고 읽지 않는다. 각 모형 구조가 사용한 데이터, 연산량, 목적 함수와 해결하려던 병목을 함께 본다.

과제에 따라 출력 헤드가 달라진다

이미지 분류

이미지 전체에 하나의 범주를 출력한다. 합성곱 기반망이 공간 특성을 만들고 전역 풀링 또는 평탄화 뒤 분류기가 범주 스코어를 출력한다. 정확도뿐 아니라 범주 불균형, 보정, 영역 변화를 평가해야 한다.

객체 검출

이미지 안의 여러 객체 위치와 범주를 함께 예측한다. 경계 상자 회귀, 객체성, 분류 등 여러 목적 함수가 결합될 수 있다. 단순 이미지 수준 레이블보다 주석 비용과 평가 방식이 복잡하다.

의미론적 분할

각 픽셀의 범주를 예측한다. 출력이 입력과 대응하는 공간 격자이므로 다운샘플링으로 잃은 위치 정보를 복원해야 한다. U-Net의 인코더-디코더와 건너뛰기 연결은 이 문제를 위한 대표 구조다.

같은 CNN 기반망을 사용해도 출력과 손실, 평가 지표는 과제에 따라 달라진다. 1장의 공통 질문을 되돌려 적용해야 한다.

데이터 증강과 전이학습

데이터 증강

자르기, 뒤집기, 색상 변화, 노이즈처럼 레이블 의미를 유지하는 변환으로 훈련 데이터의 다양성을 늘린다. 적절한 데이터 증강은 모형이 우연한 배경이나 픽셀 위치에 과도하게 의존하는 것을 줄일 수 있다. 그러나 의료 이미지의 좌우 방향, 현미경 크기, 결정 구조의 손대칭성처럼 변환이 목표값 의미를 바꾸는 영역에서는 전문가 검토가 필요하다.

사전 학습과 전이 학습

큰 데이터셋에서 학습된 기반망 매개변수를 새로운 과제의 시작점으로 사용할 수 있다. 특성 추출기를 고정하거나 일부 또는 전체 층을 미세 조정한다. 사전 학습 영역과 목표 영역이 충분히 다르면 전이가 항상 유리하지 않을 수 있으며, 정규화 통계와 이미지 채널 정의도 확인해야 한다.

자기지도 이미지 사전 학습은 사람이 붙인 범주 레이블 없이 이미지의 서로 다른 보기나 가린 부분에서 훈련 목표값을 만든다. 이는 1장의 자기지도 학습이 실제 표현 학습에 연결되는 사례다.

CNN을 다섯 질문으로 다시 보기

  • 입력과 출력: 격자 텐서를 받아 이미지·영역·픽셀 수준의 값을 낸다.
  • 귀납 편향: 국소 연결성과 공유된 커널로 이동에 따라 반복되는 구조를 반영한다.
  • 학습 신호와 목적 함수: 범주 레이블, 경계 상자, 마스크 등에 맞는 손실을 사용한다.
  • 기준 모델과 평가 지표: 작은 CNN, 사전 학습된 기반망, 전통적 이미지 특성과 비교하고 과제별 평가 지표를 사용한다.
  • 실패 조건: 배경 지름길, 크기 변화, 센서 변화, 적대적 섭동, OOD 이미지를 확인한다.
  • 계산 비용: 해상도, 채널, 층 수에 따라 메모리와 연산이 크게 달라진다.
자주 하는 혼동과 한계

자주 생기는 혼동과 한계

  • CNN은 이미지에만 쓴다고 생각한다: 핵심은 규칙 격자와 국소 패턴이며 1D 신호와 3D 부피에도 적용된다.
  • 합성곱이 자동으로 완전한 불변성을 만든다고 생각한다: 합성곱은 기본적으로 등변한 국소 연산이며 경계와 다운샘플링이 성질에 영향을 준다.
  • 커널 시각화를 완전한 의미 해석으로 본다: 은닉 표현은 여러 채널과 층에 분산될 수 있다.
  • 더 깊은 모형이 항상 더 좋다고 생각한다: 최적화, 데이터, 규제, 연산량과 과제 적합성이 함께 필요하다.
  • 데이터 증강은 많을수록 좋다고 생각한다: 레이블을 보존하지 않는 변환은 잘못된 훈련 신호를 만든다.
  • 사전 학습된 점수를 그대로 재현할 수 있다고 본다: 전처리, 해상도, 가중치 판본, 평가 절차를 맞춰야 한다.
  • 무작위 이미지 분할만으로 실제 일반화를 평가한다: 같은 환자, 시료, 촬영 조건의 유사 이미지가 분할 사이에 섞이면 누출이 생길 수 있다.

앞뒤 장과의 연결

4장에서는 표현이 무엇을 보존하는지 물었다. CNN은 국소 격자 구조를 반영해 표현 자체를 학습한다. 6장과 7장에서는 순서가 있는 언어 데이터와 멀리 떨어진 토큰 관계를 다루고, 8장에서는 불규칙 그래프의 이웃을 다룬다. U-Net과 트랜스포머 계열은 10장의 확산 잡음 제거기에서도 다시 등장한다. 15장의 원자 모델에서는 합성곱 대신 그래프와 3차원 기하 구조에 맞는 메시지 전달을 사용한다.

스스로 확인하기

  1. 국소성과 가중치 공유는 이미지를 펼친 MLP와 비교해 어떤 가정을 모형에 넣을까?
  2. 이동 등변성과 불변성은 입력이 이동했을 때 출력이 변하는 방식에서 어떻게 다를까?
  3. 이미지 분류와 분할은 원하는 출력의 공간 구조와 정보 보존 요구가 어떻게 다를까?

더 읽을 자료