sol’s blog

머신러닝·딥러닝 학습 알고리즘

sol-commits
sol-commits Sep 30, 2025
Callout icon'

요약

  • 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)의 직관
    • 이상적으로는 “세상 모든 데이터”에 대한 평균 오차를 줄이고 싶지만 불가능
    • 대신 훈련 데이터 평균 오차(경험적 위험)을 최소화
    • 경험적 위험(ERM) = 훈련 데이터 손실

      → 학습의 기본 원리이며, 실제로는 SGD/미니배치로 최적화

    • 정규화(Regularization): 과적합을 막기 위해 손실 함수에 Regularization Term을 추가하는 방법
      • L2 정규화(Weight Decay): 가중치 제곱합을 줄임
      • L1 정규화(Lasso): 가중치 절댓값 합을 줄임
  • 경사하강법과 미니배치
    • 경사하강법: 손실의 기울기(gradient) 방향으로 파라미터를 갱신
    • Callout icon'

      SGD

      • Batch GD : 한 번 파라미터를 업데이트할 때 전체 데이터셋에 대해 기울기를 모두 계산 → 연산량이 매우 크고 시간이 오래 걸림
      • SGD(Stochastic Gradient Descent) : 한 번의 업데이트에 한 샘플만 사용
        • → 1 스텝 업데이트당 연산량이 크게 줄어든다.

          → 데이터셋이 아무리 커도 업데이트 속도는 일정하게 유지됨

    • 미니배치 SGD: 전 데이터 대신 매번 일부 샘플(미니배치)로 근사해 계산
      • 장점
          1. 연산량 감소
            1. : 전체 데이터셋으로 기울기를 계산하는 배치 GD는 어무 무거움. 미니배치로 근사하면 연산이 가벼워지고, GPU 메모리 사용도 감소

          1. 랜덤성(노이즈) 효과
            1. : 미니배치마다 샘플 구성이 달라서 기울기 추정치에 노이즈가 섞임. 이 랜덤성이 지역 최적점(local minima)이나 안장점(saddle point)에 갇히지 않고 더 좋은 해로 갈 수 있도록 도와줌

 

데이터는 부족하고 세상은 넓다: 증강의 필요성과 원칙

  • 왜 증강인가?
    • 현실의 훈련셋은 전체 분포의 작은 표본 일 뿐
    • 증강은 원본 근처에 가상 샘플을 생성해 분포를 더 잘 근사하게 도움
  • 가장 중요한 규칙 = 레이블 불변성(Label Invariance)
    • 입력을 변형해도 정답의 의미가 바뀌지 않아야 함
 

고급 증강 기법

Callout icon'

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)에 대비해 학습 단계에서 의도적 노이즈를 포함시켜 강건성을 높임

딥러닝 학습 루프

  1. 데이터 불러오기(미니배치)
  1. 전처리/증강 적요
  1. 모델 추론(forward pass)
  1. 손실 계산(loss function)
  1. 역전파(backward pass) → 기울기 꼐산
  1. 파라미터 업데이트(optimizer step)
 

손실함수

분류문제
• 출력 확률 분포(Softmax 결과)와 정답 라벨(원-핫 벡터) 사이의 차이를 측정하기 위해 교차 엔트로피 손실을 가장 많이 사용
• 교차 엔트로피는 모델이 정답 클래스에 높은 확률을 할당하도록 유도
회귀문제
• 보통 Mean Squared Error 사용

추천 글

BlogPro logo
Made with BlogPro

태그