딥러닝 모델 성능 향상 기법 정리 (Autoencoder & CNN 실습 기반)
딥러닝 모델 성능 향상 기법 정리
이 문서는 학습 안정성, 효율성, 일반화 성능을 높이는 핵심 기법들을 Autoencoder/CNN 실습 관점에서 정리한 요약입니다.
1. Depthwise Separable Convolution
- 역할: 연산량/파라미터 수 감소
- 동작:
- Depthwise: 채널별 독립 합성곱으로 공간 특징 추출
- Pointwise(1x1): 채널 결합/변환
- 활용: 경량 CNN, Autoencoder encoder/decoder
2. Batch Normalization
- 역할: 학습 안정화, 수렴 가속, 일반화 개선
- 특징:
- Internal Covariate Shift 완화
- 보통
Conv -> BatchNorm -> Activation순서
3. Dropout
- 역할: 과적합 방지
- 특징:
- 학습 시 일부 뉴런 무작위 비활성화
- 추론 시 전체 뉴런 사용
p(drop 비율) 튜닝 중요
4. Skip Connection (Residual)
- 역할: 기울기 소실 완화, 정보 보존
- 특징:
- 이전 출력을 더하거나(
+) 연결(torch.cat)해 전달 - 필요 시
1x1 Conv/업샘플링으로 채널/크기 맞춤
- 이전 출력을 더하거나(
5. 활성화 함수
- ReLU: 빠르고 기울기 소실 완화
- Sigmoid: 0~1 출력 매핑(출력층에서 자주 사용)
- Tanh: -1~1 매핑, Sigmoid 대비 중심화
6. 가중치 초기화
- 역할: 안정적 시작점, 수렴 개선
- Xavier: Sigmoid/Tanh 계열에 적합
- He: ReLU 계열에 적합
7. 옵티마이저
- SGD: 기본 경사하강, 모멘텀 확장 가능
- Adam: 적응형 학습률 + 모멘텀, 실무에서 널리 사용
- NAdam: Adam 변형
8. 학습률 (Learning Rate)
- 너무 큼: 발산/불안정
- 너무 작음: 수렴 지연
- 전략: 초반 크게, 후반 감소(
LR Scheduler)
9. Mini-batch & DataLoader
- 미니배치: 안정적 업데이트 + 연산 효율
- DataLoader: 배치/셔플 관리
shuffle=True: 데이터 순서 편향 완화
10. 데이터 증강 (Data Augmentation)
- 역할: 데이터 다양성 증가, 과적합 완화
- 방법: 회전/반전/크롭/밝기 조절 등
- 주의: 훈련 데이터에만 적용
11. Padding
- 역할: 출력 크기 제어, 경계 정보 보존
- Valid: 패딩 없음(출력 축소)
- Same: 입력/출력 크기 유지
12. Pooling
- 역할: 공간 축소, 연산량 절감, 불변성 강화
- Max Pooling: 대표 특징 강조
- Average Pooling: 평균 기반 요약
- Global Avg Pooling: FC 대체, 과적합 완화
13. 네트워크 구조
CNN
- 지역 특징 추출
- 가중치 공유로 파라미터 절감
- 계층적 특징 학습(엣지 -> 고수준 패턴)
RNN/LSTM/GRU
- 시퀀스 데이터 전용
- LSTM: 장기 의존성 학습에 강함
- GRU: 더 단순하고 빠름
요약
Autoencoder/CNN 실습에서는 특히 아래 조합이 실효성이 높습니다.
- BatchNorm
- Dropout
- Skip Connection
- Data Augmentation
- Learning Rate Scheduler
한눈 정리 표
| 구분 | 기법 | 역할 | 동작 방식 / 특징 | 비고 |
|---|---|---|---|---|
| 합성곱 효율화 | Depthwise Separable Conv | 연산량 감소, 파라미터 절약 | 채널별 합성곱 + 1x1 채널 결합 | MobileNet 계열 |
| 정규화 | Batch Normalization | 학습 안정화, 가속화 | 입력 분포 정규화 | Conv->BN->ReLU |
| 정규화 | Dropout | 과적합 방지 | 학습 시 뉴런 일부 제거 | 추론 시 비활성화 안 함 |
| 네트워크 연결 | Skip Connection | 기울기 소실 완화 | 이전 출력 add/concat | ResNet, U-Net |
| 비선형성 | 활성화 함수 | 표현력 강화 | ReLU/Sigmoid/Tanh | 출력층 함수 선택 중요 |
| 가중치 설정 | 초기화 | 안정적 수렴 | Xavier, He | 초기 학습 품질 좌우 |
| 최적화 | 옵티마이저 | 손실 최소화 | SGD/Adam/NAdam | Adam 실무 빈도 높음 |
| 학습 속도 | Learning Rate | 업데이트 보폭 | 크면 발산, 작으면 지연 | Scheduler 권장 |
| 데이터 공급 | Mini-batch/DataLoader | 효율/안정성 | 배치 학습 + 셔플 | GPU 활용 최적화 |
| 데이터 확장 | Data Augmentation | 일반화 향상 | 회전/반전/크롭/밝기 | 훈련 데이터만 |
| 출력 크기 | Padding | 크기 유지/조절 | Valid/Same | 경계 정보 보존 |
| 차원 축소 | Pooling | 크기 축소 | Max/Avg/Global Avg | FC 대체 가능 |
| 구조 | CNN | 이미지 처리 | 지역성/가중치 공유 | 고전적 비전 모델 |
| 구조 | RNN/LSTM/GRU | 시퀀스 처리 | 장기 의존성 모델링 | NLP/시계열 |