| 작업 | 입출력 | 예시 | 주요 응용 |
|---|---|---|---|
| 이미지 분류 | 이미지 → 클래스 1개 | 이 사진은 '고양이' | 이미지 검색, 필터링 |
| 객체 탐지 | 이미지 → 클래스 + 위치(여러 개) | '고양이'(120,80), '개'(300,50) | 자율주행, CCTV |
| 시맨틱 분할 | 이미지 → 픽셀별 클래스 | 모든 픽셀에 레이블 부여 | 의료 영상, 위성 사진 |
10 CNN 학습 전략과 컴퓨터 비전 응용
10.1 뉴럴 네트워크의 학습 전략
10.1.1 성능 진단 흐름
Ch07에서 다양한 CNN 아키텍처를 배웠다. 어떤 아키텍처를 선택하더라도, 학습 후에는 두 가지 질문으로 성능을 진단한다.
- 학습 데이터 성능이 낮다 → 모델 용량이 부족 = 과소적합 → 더 큰/깊은 아키텍처 사용
- 학습은 좋지만 테스트 성능이 낮다 → 과적합 → 더 많은 데이터 확보
이 진단은 Ch04에서 배운 것과 정확히 같은 것이다 — 두 번째 상황이 바로 러닝커브에서 훈련·검증 손실의 간격이 벌어지는 그 지점이다. Ch04에서는 조기 종료·모형 축소 같은 대응을 배웠고, 이 장에서는 가장 확실한 대응이었던 “데이터 늘리기”의 구체적인 방법 세 가지를 배운다.
테스트 성능을 높이기 위해 데이터를 늘리는 세 가지 방법을 살펴보자.
10.2 데이터 증강 (Data Augmentation)
10.2.1 기본 아이디어
CNN은 이미지에서 특성을 뽑아내는 방법이다. 같은 이미지에 변형을 가하면 모델 입장에서는 다른 데이터처럼 보인다. 변형된 이미지도 원래 이미지의 핵심 특성을 보존하므로, 데이터를 늘리는 효과가 있다.
10.2.2 증강 방법
| 변환 유형 | 설명 | 예시 |
|---|---|---|
| 이동(Shift) | 이미지를 좌/우/상/하로 이동 | 새가 프레임 왼쪽/오른쪽에 위치 |
| 반전(Flip) | 좌우 또는 상하 반전 | 거울에 비친 것처럼 |
| 회전(Rotation) | 일정 각도로 회전 | 10°, 20° 기울어진 이미지 |
| 색상 변환 | 밝기, 대비, 채도 등 조정 | 어두운 조명, 밝은 조명 시뮬레이션 |
| 잘라내기(Crop) | 이미지의 일부 영역만 사용 | 확대 효과 |
원본 1장으로 수십 장의 변형 이미지를 만들 수 있으므로, 적은 데이터로도 효과적인 학습이 가능해진다.
눈치챘겠지만, 증강이 흉내 내는 것이 바로 Ch05의 촬영 난관들(시점, 크기, 조명, 배경)이다. 다만 증강은 진짜 다양성의 보조 수단이지 대체재가 아니다 — 같은 각도에서 찍은 사진 200장을 아무리 회전시켜도 새로운 시점은 생기지 않는다. 팀 프로젝트에서 촬영을 다양하게 해야 하는 이유가 여기서도 확인된다.
10.3 데이터 합성 (Data Synthesis)
데이터 증강이 기존 데이터에 노이즈나 변형을 가하는 것이라면, 데이터 합성은 새롭게 합성된 이미지를 만들어 데이터를 생성하는 것이다.
예를 들어, OCR(광학 문자 인식) 학습에서:
- 실제 데이터: 다양한 간판, 표지 사진에서 촬영한 글자 이미지
- 합성 데이터: 다양한 폰트, 배경, 노이즈를 조합하여 컴퓨터로 생성한 글자 이미지
합성 데이터는 실제 데이터를 보완하여 학습 데이터의 다양성을 크게 확장할 수 있다.
10.4 전이 학습 (Transfer Learning)
10.4.1 사전 학습된 모델 활용
대규모 데이터셋(예: ImageNet 100만 장)으로 학습된 모델은 이미지의 일반적인 특성(에지, 코너, 기본 형태 등)을 이미 잘 파악하고 있다.
10.4.2 전이 학습 절차
10.4.3 동결이냐, 전체 미세 조정이냐
그림의 Option 1이 바로 특성 추출기 동결이다. 학습 파라미터 수를 직접 계산해 보자.
예: ResNet-50(전체 약 2,500만 파라미터)을 가져와 분류기를 5개 클래스로 교체하는 경우. 마지막 층의 입력 특성은 2,048개이므로:
| 전략 | 학습되는 파라미터 | 계산 |
|---|---|---|
| Option 1: 특성 추출기 동결 | 10,245개 | 새 분류기만: \(2{,}048 \times 5 + 5\) |
| Option 2: 전체 미세 조정 | 약 2,500만 개 | 모든 층 |
동결하면 학습 파라미터가 전체의 0.04%로 줄어든다. Ch04의 원리 그대로 — 학습할 파라미터가 적으면 적은 데이터로도 과적합 없이 학습할 수 있다.
| 상황 | 권장 전략 |
|---|---|
| 내 데이터 수백 장 | Option 1 (동결) — 과적합 위험 최소화 |
| 내 데이터 수만 장 이상, 사전학습 도메인과 다름 | Option 2 (전체 미세 조정) |
10.4.4 왜 전이 학습이 작동하는가?
CNN의 앞쪽 층들은 이미지의 공통적인 패턴을 학습한다:
| 층 위치 | 학습하는 특성 |
|---|---|
| 앞쪽 층 (Low-level) | 에지(Edge), 밝기 변화 |
| 중간 층 (Mid-level) | 코너(Corner), 기본 형태 |
| 뒤쪽 층 (High-level) | 곡선, 복잡한 패턴 |
이러한 저수준~중수준 특성은 이미지 종류에 관계없이 공통적으로 유용하다. 따라서 대규모 데이터로 학습된 특성 추출기를 재활용하고, 내 데이터에 특화된 분류기만 새로 학습하면 된다.
전이 학습 덕분에 소량의 데이터(수백~수천 장)만으로도 높은 분류 정확도를 달성할 수 있다.
이 절차가 그대로 과제다: 직접 촬영한 사진(클래스 2~3개 × 50장)으로, 사전 학습 모델의 분류기를 교체하고 동결 전략으로 학습한다. 50장이라는 적은 데이터로도 되는 이유를 방금 배웠다. 데이터 증강까지 적용해 성능 변화를 관찰해 보라 — 이 경험이 팀 프로젝트의 예행연습이다.
10.5 이미지 분류를 넘어서
지금까지 배운 CNN은 주로 이미지 분류(Image Classification) — 이미지 전체에 하나의 레이블을 부여하는 작업에 초점을 맞추었다. 하지만 컴퓨터 비전에는 분류를 넘어선 다양한 응용이 있다.
10.5.1 객체 탐지 (Object Detection)
객체 탐지는 하나의 이미지에 여러 객체가 있을 때 각각을 구분한다.
객체 탐지는 9주차에 사전 학습된 YOLO 모델로 직접 다루며, 팀 프로젝트의 과업이기도 하다. 탐지 성능을 재는 지표(IoU 등)도 그때 손계산으로 배운다. 여기서는 개념만 잡아두면 된다.
| 비교 | 이미지 분류 | 객체 탐지 |
|---|---|---|
| 출력 | 클래스 1개 | 클래스 + 위치 (여러 개) |
| 예시 | “택시” | “택시: (120,80,200,150), 사람: (300,50,80,200)” |
| 활용 | 이미지 검색, 태깅 | 자율주행, CCTV 분석 |
10.5.2 시맨틱 분할 (Semantic Segmentation)
시맨틱 분할은 객체의 정확한 경계까지 파악한다.
| 비교 | 객체 탐지 | 시맨틱 분할 |
|---|---|---|
| 출력 단위 | 바운딩 박스 (사각형) | 픽셀 단위 |
| 정밀도 | 대략적 위치 | 정확한 경계 |
| 활용 | 자율주행 차량 감지 | 의료 영상에서 종양 경계 추출 |
10.5.3 CV 응용의 비교
10.5.4 의료 영상에서의 시맨틱 분할
시맨틱 분할은 의료 영상 분석(Biomedical Image Analysis)에서 특히 중요하다.
- 뇌종양 탐지: MRI 영상에서 종양 영역을 픽셀 단위로 분리
- 말라리아 감염: 현미경 이미지에서 감염된 세포를 분할
- 병변 경계 추출: CT/X-ray에서 정상 조직과 비정상 조직의 경계 표시
이러한 의료 응용에서 정확한 경계 정보는 진단과 치료 계획 수립에 핵심적이다.
10.6 정리
이 챕터에서 학습한 내용을 요약하면:
| 개념 | 핵심 내용 |
|---|---|
| 학습 전략 | 학습 성능 진단 → 아키텍처 또는 데이터 조정 |
| 데이터 증강 | 이동, 반전, 회전, 색상 변환 등으로 학습 데이터 확장 |
| 데이터 합성 | 컴퓨터로 새로운 합성 이미지를 생성 |
| 전이 학습 | 사전 학습 모델의 특성 추출기를 재활용, 분류기만 재학습 |
| 객체 탐지 | 이미지에서 여러 객체의 클래스 + 위치(바운딩 박스)를 출력 |
| 시맨틱 분할 | 모든 픽셀에 클래스를 부여, 의료 영상 등에 활용 |
딥러닝과 컴퓨터 비전 파트 정리: Ch05~Ch08에서 이미지 데이터(Ch05) → 콘볼루션 연산(Ch06) → CNN 구조와 아키텍처(Ch07) → 학습 전략과 응용(Ch08)까지, 이미지를 입력으로 받아 자동으로 특성을 추출하고 판단을 내리는 전체 과정을 학습했다.