머신러닝·딥러닝 학습 알고리즘
sol-commits Sep 30, 2025
요약
- learning은 task를 잘 수행하기 위해
data(experience)를 이용해
성능지표를 최대화하도록 모델 파라미터를 찾는 과정
- 딥러닝은 복잡한 신경망 모델을 쓰고 미분 가능한 목적함수를 경사하강법(SGC/미니배치)으로 최적화 → 목표는 암기(memorize)가 아니라 일반화
- data augmentation은 label은 유지하면서 입력만 살짝 바꿔 가상 데이터를 대량 생성하는 기법 → 일반화에 결정적
- 고급 증강:
Mixup,Cutout,CutMix,Label Smoothing,Adversarial Training
Learning의 구성요소: Task, Data, Metric
| Task | 분류/회귀/예측/생성 등 “무엇을 할 것인가”를 명확히 정의 |
| Experience | = Dataset |
| Performance Measure | task에 맞춰 정확도/오차 등으로 정의 |
최적화의 기본: ERM → (미니배치) SGD
- ERM(Empirical Risk Minimization)의 직관
- 이상적으로는 “세상 모든 데이터”에 대한 평균 오차를 줄이고 싶지만 불가능
- 대신 훈련 데이터 평균 오차(경험적 위험)을 최소화
- 정규화(Regularization): 과적합을 막기 위해 손실 함수에 Regularization Term을 추가하는 방법
- L2 정규화(Weight Decay): 가중치 제곱합을 줄임
- L1 정규화(Lasso): 가중치 절댓값 합을 줄임
경험적 위험(ERM) = 훈련 데이터 손실→ 학습의 기본 원리이며, 실제로는 SGD/미니배치로 최적화
- 경사하강법과 미니배치
- 경사하강법: 손실의 기울기(gradient) 방향으로 파라미터를 갱신
Batch GD: 한 번 파라미터를 업데이트할 때 전체 데이터셋에 대해 기울기를 모두 계산 → 연산량이 매우 크고 시간이 오래 걸림SGD(Stochastic Gradient Descent): 한 번의 업데이트에 한 샘플만 사용미니배치 SGD: 전 데이터 대신 매번 일부 샘플(미니배치)로 근사해 계산- 장점
연산량 감소랜덤성(노이즈) 효과
SGD
→ 1 스텝 업데이트당 연산량이 크게 줄어든다.
→ 데이터셋이 아무리 커도 업데이트 속도는 일정하게 유지됨
: 전체 데이터셋으로 기울기를 계산하는 배치 GD는 어무 무거움. 미니배치로 근사하면 연산이 가벼워지고, GPU 메모리 사용도 감소
: 미니배치마다 샘플 구성이 달라서 기울기 추정치에 노이즈가 섞임. 이 랜덤성이 지역 최적점(local minima)이나 안장점(saddle point)에 갇히지 않고 더 좋은 해로 갈 수 있도록 도와줌
데이터는 부족하고 세상은 넓다: 증강의 필요성과 원칙
- 왜 증강인가?
- 현실의 훈련셋은
전체 분포의 작은 표본일 뿐 - 증강은 원본 근처에 가상 샘플을 생성해 분포를 더 잘 근사하게 도움
- 가장 중요한 규칙 =
레이블 불변성(Label Invariance) - 입력을 변형해도 정답의 의미가 바뀌지 않아야 함
고급 증강 기법
VRM(Vicinal Risk Minimization)
- ERM은 훈려 데이터 평균 손실만 최소화
→ 데이터가 부족할 경우 분포를 제대로 근사하지 못할 수도..
- VRM은 원본 데이터 근방(vicinity)의 가상 샘플을 만들어 학습시켜, 실제 분포에 더 가까운 근사를 하도록 도움
- 데이터 증강 기법들을 VRM의 대표적인 구현 사례
| Mixup | • 두 샘플 (x₁,y₁), (x₂,y₂) 를 비율 λ 로 선형 혼합(linearly mix) → 입력과 레이블을 같이 섞음 • 경계가 스무스해져 과도한 확신/경계 과적합을 줄임. 모호한 경우를 더 그럴듯하게 다룸 |
| Cutout | • 입력의 일부 영역을 가림 → 특정 부위에만 의존하는 학습 방지 • 이미지 전체의 맥락을 학습 |
| CutMix | • 이미지를 영역 단위로 섞고 레이블도 같은 비율로 섞음(Mixup + Cutout의 장점 결합) • 이미지 일부를 잘라내고, 그 부분을 다른 이미지의 패치로 채워 넣음 • 라벨도 패치 비율만큼 가중 합해서 섞음 • 60%는 고양이, 40%는 강아지 패치 → 라벨도 0.6*고양이 + 0.4*고양이 |
| Label Smoothing | • 레이블을 100% 한 클래스로 두지 않고 조금 분산 → 오탈자·다중객체·라벨 오류에 견고하고 과신을 줄임 |
| Adversarial Training | • 인간 눈엔 거의 동일하지만 모델을 속이는 미세 노이즈( perturbation)에 대비해 학습 단계에서 의도적 노이즈를 포함시켜 강건성을 높임 |
딥러닝 학습 루프
- 데이터 불러오기(미니배치)
- 전처리/증강 적요
- 모델 추론(forward pass)
- 손실 계산(loss function)
- 역전파(backward pass) → 기울기 꼐산
- 파라미터 업데이트(optimizer step)
손실함수
| 분류문제 | • 출력 확률 분포(Softmax 결과)와 정답 라벨(원-핫 벡터) 사이의 차이를 측정하기 위해 교차 엔트로피 손실을 가장 많이 사용 • 교차 엔트로피는 모델이 정답 클래스에 높은 확률을 할당하도록 유도 |
| 회귀문제 | • 보통 Mean Squared Error 사용 |
| ㅤ | ㅤ |