CNN 구조
합성곱 신경망(CNN)은 영상 같은 입력에서 무엇을 계산하고, ResNet과 U-Net은 어떻게 다른가?
합성곱 연산
합성곱 층은 작은 커널을 입력 위에서 한 셀씩 밀며, 덮은 셀마다 입력과 가중치를 곱해 모두 더한다. 그 합이 출력(feature map)의 한 셀이다. 딥러닝 라이브러리의 "합성곱"은 커널을 뒤집지 않는 상호상관(cross-correlation)이라서, 커널을 뒤집는 신호 및 시스템의 합성곱과 다르다.
5 × 5 입력은 가운데에 표적이 있는 RD 맵의 작은 조각을 흉내 낸 값이고, 커널은 정해 둔 3 × 3 가중치이다. 셀의 밝기와 색이 값이고, 숫자는 그림 아래 계산 줄에 있다.
해 보기
- 출력의 첫 셀을 계산하라.
관찰
윈도우가 왼쪽 위 3 × 3을 덮고, 아홉 곱의 합 가 출력의 첫 셀이 된다.
- 윈도우가 입력의 가운데를 덮을 때 출력의 다섯째 셀 값을 계산하라.
관찰
윈도우가 입력의 가운데, 표적이 있는 자리를 덮는다. 이다.
- 출력 3 × 3을 모두 채우고 가장 큰 셀과 출력 크기를 확인하라.
관찰
출력 3 × 3이 다 찼다. 오른쪽 아래 가 가장 크다. 출력 크기는 이다.
합성곱 층의 주요 파라미터는 넷이다.
- 필터 수(채널 수): 서로 다른 무늬를 몇 가지 배우는지이다. 깊어질수록 16 → 32 → 64 → 128처럼 늘린다.
- 커널 크기: 3 × 3이 계산 효율과 표현력의 균형이 좋아 가장 흔하다.
- 스트라이드(stride): 커널이 옮겨 가는 간격이다. stride = 2이면 출력 크기가 절반이 되어 down-sampling 역할을 한다.
- 패딩(padding): 경계의 셀을 어떻게 다루는지이다.
padding=1(same padding)이면 3 × 3 커널의 출력 크기가 입력과 같다.
CNN의 기본 블록
Conv → BN → ReLU → Pool을 되풀이하면 공간 해상도는 줄고 채널(특징) 수는 늘어난다. 층이 깊어질수록 출력 셀 하나가 보는 입력 영역인 수용 영역(receptive field)이 빠르게 넓어진다.
그림은 이 블록 둘로 된 작은 CNN에 64 × 64 RD 맵 조각을 넣는다. ▶를 누를 때마다 층 하나를 지나며, feature map 묶음을 해상도의 실제 비율로 그린다. 입력 위의 사각형은 지금 층의 출력 셀 하나가 보는 수용 영역이다.
입력은 표적 둘이 있는 가상의 RD 맵 조각이다(색은 dB, 계산은 선형 크기). 묶음의 앞면은 정해 둔 3 × 3 평활 커널로 실제 계산한 채널 하나이고, 뒤에 겹친 판 한 장이 4채널을 나타낸다.
Conv 층은 패딩 1로 크기를 지키며 채널을 16, 32로 늘리고, 2 × 2 max pooling이 해상도를 절반씩 줄인다. 그동안 수용 영역은 3, 4, 8, 10셀로 넓어진다. 마지막 16 × 16 × 32 = 8192개 값을 펼쳐 FC 층(256개)을 지나 출력 2개로 보내면, 출력 하나가 입력 전체를 본다.
ResNet: skip connection
깊은 신경망의 기울기 소실을 풀기 위해 ResNet은 층의 입력을 출력에 바로 더하는 skip connection을 둔다. 덧셈이 있으므로 층은 원래 입력 와의 **잔차(residual) **만 배우면 된다.
이 구조 덕분에 수십에서 수백 층을 안정적으로 학습할 수 있다. 21장의 micro-Doppler 행동 인식 사례는 ResNet-18을 backbone(입력에서 특징을 뽑는 앞부분 신경망)으로 쓴다.
U-Net: 인코더-디코더와 skip connection
U-Net은 픽셀 단위 예측(segmentation)을 위해 설계한 구조이다. 인코더는 공간 정보를 압축하면서 세밀한 위치 정보를 잃는데, U-Net은 이 정보를 skip connection으로 디코더에 바로 넘겨 되살린다. 20장의 RD 맵 탐지 사례가 이 구조를 쓰고, 층마다의 텐서 크기를 적은 U-Net 구조 그림은 20장의 U-Net 구현 절에 있다.
| 구조 | 주요 특징 | 사례 |
|---|---|---|
| 기본 CNN | Conv + Pool 반복, FC 헤드 | 레이다 지도 작성 사례(도래각과 점유 격자 지도(occupancy grid map), 22장)의 바탕 |
| ResNet-18 | skip connection, 18층, ImageNet 사전학습 가능 | micro-Doppler 행동 인식 사례(21장) |
| U-Net | 인코더-디코더 + skip, 픽셀 단위 출력 맵 | RD 맵 탐지 사례(20장) |
강의 노트