딥러닝과 모델 아키텍처(1/7)
딥러닝

딥러닝 기초 - 핵심 개념 총정리

딥러닝의 기본 개념, 학습 과정, CNN과 Transformer의 차이, 주요 용어를 정리한다.

2025-02-10
7 min read
#딥러닝#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한 번에 처리하는 묶음한 번에 푸는 문제 수
Iterationbatch 1회 학습문제 1묶음 풀기
Learning Rate가중치 수정 폭보폭 크기

데이터 10,000장, batch_size=100이면 1 epoch = 100 iterations이다.


손실 함수 (Loss Function)

손실 함수용도
CrossEntropyLoss기본 분류
FocalLoss불균형 분류 (어려운 샘플에 집중)
SmoothL1Loss바운딩 박스 좌표 예측
TverskyLoss소수 클래스에 집중하는 세그멘테이션
LovaszLossIoU 직접 최적화
GDLoss회전 박스 간 거리 계산

옵티마이저 (Optimizer)

옵티마이저특징
SGD가장 기본, 단순하지만 안정적
AdamSGD + 모멘텀 + 적응적 학습률
AdamWAdam + Weight Decay 개선. 현재 표준

학습률 스케줄러

학습이 진행되면서 학습률을 조정하는 전략이다.

스케줄러동작
Step특정 epoch에서 계단식 감소
Poly다항식 곡선으로 부드럽게 감소
Cosine코사인 곡선을 따라 감소
Warmup처음에 천천히 올리고 이후 스케줄러 적용

CNN vs Transformer

딥러닝 비전 모델의 두 축이다.

CNN

작은 필터(커널)를 이미지 위에서 슬라이딩하며 패턴을 찾는다.

[이미지] ← 3x3 필터가 슬라이딩
           → "여기에 모서리가 있다"
           → "여기에 직선이 있다"

Transformer

모든 위치가 다른 모든 위치와의 관계(Attention)를 계산한다.

위치A ←─관계 계산─→ 위치B
위치A ←─관계 계산─→ 위치C
... (모든 조합)

비교

항목CNNTransformer
연산 방식Convolution (슬라이딩)Attention (전체 비교)
시야 범위지역적 (커널 크기만큼)전역적 (전체 이미지)
계산 효율빠름느림
메모리적음많음
대표 모델ResNet, ConvNeXtViT, SwinTransformer

최근에는 두 계열의 장점을 합치는 연구가 활발하다. ConvNeXt는 "Transformer 설계를 CNN에 적용", Swin Transformer는 "CNN처럼 효율적인 Transformer"이다.


Pretrained Model (사전 학습)

처음부터 학습하면 오래 걸리고 데이터가 많이 필요하다. ImageNet 같은 대규모 데이터에서 미리 학습된 가중치를 가져와 미세 조정(Fine-tuning)한다.

1단계: ImageNet 1400만장으로 "일반 이미지 이해" 학습
2단계: 우리 데이터로 "도메인 전문가"로 추가 학습
버전클래스 수이미지 수
ImageNet-1K1,000~130만
ImageNet-21K/22K21,841~1,400만

평가 지표

탐지

지표의미
Precision예측한 것 중 맞은 비율
Recall실제 정답 중 찾아낸 비율
mAP모든 클래스의 AP 평균
IoU예측 박스와 정답 박스의 겹침 비율

세그멘테이션

지표의미
mIoU모든 클래스 IoU 평균
Pixel Accuracy올바르게 분류된 픽셀 비율

Data Augmentation (데이터 증강)

학습 데이터를 인위적으로 변형해서 모델의 일반화 능력을 높이는 기법이다.

기법설명
RandomFlip좌우/상하 반전
RandomRotate랜덤 각도 회전
RandomCrop이미지 일부분 잘라 사용
Resize크기 랜덤 조절
PhotoMetricDistortion밝기/대비/채도 랜덤 변경
Normalize픽셀 값 정규화

시리즈: 딥러닝과 모델 아키텍처

  1. 딥러닝 기초 ← 현재 글
  2. 모델 구조: Backbone - Neck - Head
  3. Backbone: SwinTransformer
  4. Backbone: ConvNeXt
  5. Neck: FPN, ChannelMapper, FarSegNeck
  6. 모델: RINO
  7. 모델: UPerNet