딥러닝 기초 - 핵심 개념 총정리
딥러닝의 기본 개념, 학습 과정, CNN과 Transformer의 차이, 주요 용어를 정리한다.
딥러닝이란?
데이터를 보고 스스로 규칙을 배우는 기술이다.
전통 프로그래밍: [데이터] + [규칙(사람이 작성)] → [결과]
딥러닝: [데이터] + [결과(정답)] → [규칙(AI가 학습)]
"건물을 찾아라"를 전통 방식으로 풀면 "사각형이고 회색이면 건물"같은 규칙을 사람이 짜야 한다. 딥러닝은 수만 장의 이미지와 정답을 주면 컴퓨터가 패턴을 스스로 학습한다.
왜 "딥(Deep)"인가?
신경망의 층(Layer)이 깊다는 뜻이다.
얕은 신경망: 입력 → [층1] → [층2] → 출력
딥러닝: 입력 → [층1] → [층2] → ... → [층100+] → 출력
| 층 깊이 | 배우는 것 | 예시 |
|---|---|---|
| 얕은 층 (1~3) | 단순 패턴 | 선, 모서리, 색상 경계 |
| 중간 층 (4~20) | 부분 패턴 | 창문, 지붕, 바퀴 |
| 깊은 층 (20+) | 고차원 개념 | "건물", "자동차", "숲" |
학습 과정
1. 순전파 (Forward Pass)
이미지를 모델에 넣으면 예측 결과가 나온다.
2. 손실 계산 (Loss)
예측과 정답을 비교해 "얼마나 틀렸는지"를 숫자로 계산한다.
3. 역전파 (Backpropagation)
손실을 줄이기 위해 각 가중치를 어느 방향으로 수정할지 계산한다. 출력→입력 방향으로 거슬러 올라가며 계산하기 때문에 "역전파"라 부른다.
4. 가중치 업데이트 (Optimization)
계산된 방향으로 가중치를 수정한다. 이걸 수만~수십만 번 반복하면 모델이 점점 정확해진다.
새 가중치 = 기존 가중치 - (학습률 × 기울기)
핵심 용어
학습 단위
| 용어 | 의미 | 비유 |
|---|---|---|
| Epoch | 전체 데이터 1회 학습 | 교과서 1번 정독 |
| Batch | 한 번에 처리하는 묶음 | 한 번에 푸는 문제 수 |
| Iteration | batch 1회 학습 | 문제 1묶음 풀기 |
| Learning Rate | 가중치 수정 폭 | 보폭 크기 |
데이터 10,000장, batch_size=100이면 1 epoch = 100 iterations이다.
손실 함수 (Loss Function)
| 손실 함수 | 용도 |
|---|---|
| CrossEntropyLoss | 기본 분류 |
| FocalLoss | 불균형 분류 (어려운 샘플에 집중) |
| SmoothL1Loss | 바운딩 박스 좌표 예측 |
| TverskyLoss | 소수 클래스에 집중하는 세그멘테이션 |
| LovaszLoss | IoU 직접 최적화 |
| GDLoss | 회전 박스 간 거리 계산 |
옵티마이저 (Optimizer)
| 옵티마이저 | 특징 |
|---|---|
| SGD | 가장 기본, 단순하지만 안정적 |
| Adam | SGD + 모멘텀 + 적응적 학습률 |
| AdamW | Adam + Weight Decay 개선. 현재 표준 |
학습률 스케줄러
학습이 진행되면서 학습률을 조정하는 전략이다.
| 스케줄러 | 동작 |
|---|---|
| Step | 특정 epoch에서 계단식 감소 |
| Poly | 다항식 곡선으로 부드럽게 감소 |
| Cosine | 코사인 곡선을 따라 감소 |
| Warmup | 처음에 천천히 올리고 이후 스케줄러 적용 |
CNN vs Transformer
딥러닝 비전 모델의 두 축이다.
CNN
작은 필터(커널)를 이미지 위에서 슬라이딩하며 패턴을 찾는다.
[이미지] ← 3x3 필터가 슬라이딩
→ "여기에 모서리가 있다"
→ "여기에 직선이 있다"
Transformer
모든 위치가 다른 모든 위치와의 관계(Attention)를 계산한다.
위치A ←─관계 계산─→ 위치B
위치A ←─관계 계산─→ 위치C
... (모든 조합)
비교
| 항목 | CNN | Transformer |
|---|---|---|
| 연산 방식 | Convolution (슬라이딩) | Attention (전체 비교) |
| 시야 범위 | 지역적 (커널 크기만큼) | 전역적 (전체 이미지) |
| 계산 효율 | 빠름 | 느림 |
| 메모리 | 적음 | 많음 |
| 대표 모델 | ResNet, ConvNeXt | ViT, SwinTransformer |
최근에는 두 계열의 장점을 합치는 연구가 활발하다. ConvNeXt는 "Transformer 설계를 CNN에 적용", Swin Transformer는 "CNN처럼 효율적인 Transformer"이다.
Pretrained Model (사전 학습)
처음부터 학습하면 오래 걸리고 데이터가 많이 필요하다. ImageNet 같은 대규모 데이터에서 미리 학습된 가중치를 가져와 미세 조정(Fine-tuning)한다.
1단계: ImageNet 1400만장으로 "일반 이미지 이해" 학습
2단계: 우리 데이터로 "도메인 전문가"로 추가 학습
| 버전 | 클래스 수 | 이미지 수 |
|---|---|---|
| ImageNet-1K | 1,000 | ~130만 |
| ImageNet-21K/22K | 21,841 | ~1,400만 |
평가 지표
탐지
| 지표 | 의미 |
|---|---|
| Precision | 예측한 것 중 맞은 비율 |
| Recall | 실제 정답 중 찾아낸 비율 |
| mAP | 모든 클래스의 AP 평균 |
| IoU | 예측 박스와 정답 박스의 겹침 비율 |
세그멘테이션
| 지표 | 의미 |
|---|---|
| mIoU | 모든 클래스 IoU 평균 |
| Pixel Accuracy | 올바르게 분류된 픽셀 비율 |
Data Augmentation (데이터 증강)
학습 데이터를 인위적으로 변형해서 모델의 일반화 능력을 높이는 기법이다.
| 기법 | 설명 |
|---|---|
| RandomFlip | 좌우/상하 반전 |
| RandomRotate | 랜덤 각도 회전 |
| RandomCrop | 이미지 일부분 잘라 사용 |
| Resize | 크기 랜덤 조절 |
| PhotoMetricDistortion | 밝기/대비/채도 랜덤 변경 |
| Normalize | 픽셀 값 정규화 |