[선형 회귀] Stochastic Gradient Descent

연두·2021년 3월 3일
0

Python for ML

목록 보기
34/34
post-thumbnail

Linear Regression :: Stochastic Gradient Descent


Full-batch GD

  • GD는 1개의 데이터를 기준으로 미분
  • 그러나 일반적으로 GD = (full) batch GD 라고 가정
  • 모든 데이터셋으로 학습
  • 업데이트 감소 --> 계산상 효율적(속도) 가능
  • 안정적인 cost 함수 수렴
  • 지역 최적화 가능
  • 메모리 문제 (ex - 30억개의 데이터를 한번에?)
  • 대규모 dataset --> 모델/파라미터 업데이트가 느려짐

Stochastic GD

  • 원래 의미는 데이터셋에서 random하게 training sample을 뽑은 후 학습할 때 사용함
  • 데이터를 넣기 전에 shuffle
  • 빈번한 업데이트 모델 성능 및 개선 속도 확인 가능
  • 일부 문제에 대해 더 빨리 수렴
  • 지역 최적화 회피
  • 대용량 데이터시 시간이 오래걸림
  • 더이상 cost가 줄어들지 않는 시점의 발견이 어려움

Mini-batch (stochastic) gradient descent

  • 한번에 일정량의 데이터를 랜덤하게 뽑아서 학습
  • SGD와 Batch GD를 혼합한 기법
  • 가장 일반적으로 많이 쓰이는 기법


Epoch & Batch-size

  • 전체 데이터가 training 데이터에 들어갈 때 카운팅
  • Full-batch를 n번 실행하면 n epoch
  • Batch-size 한번에 학습되는 데이터의 개수


https://www.boostcourse.org/ai222/lecture/24518

0개의 댓글