데브허브 | DEVHUB | [머신러닝+딥러닝 기초 강의] 10강. 확률적 경사 하강법[머신러닝+딥러닝 기초 강의] 10강. 확률적 경사 하강법
- 확률적 경사 하강법(SGD)은 복잡하거나 대규모 데이터 문제 해결에 사용되는 범용적인 최적화 방법이며, 특히 딥러닝의 핵심 알고리즘입니다. 🚀
- SGD는 기존 모델을 처음부터 다시 훈련하지 않고 추가 데이터로 점진적으로 학습(온라인 학습)할 수 있게 합니다. 📈
- SGD는 훈련 세트에서 샘플을 무작위로 하나씩 추출하여 모델을 훈련하고, 모든 샘플을 사용하면 1 에포크가 완료되며, 이를 반복하여 최적화합니다. 🎲
- 경사 하강법은 샘플 처리 방식에 따라 확률적(하나씩), 미니배치(여러 개씩, 딥러닝 주 사용), 배치(전체)로 구분됩니다. 📊
- SGD의 목표는 모델의 예측 오차를 나타내는 손실 함수(Loss Function)의 값을 최소화하는 것입니다. ⛰️
- 분류 문제에서는 정확도를 손실 함수로 직접 사용할 수 없으므로, 로지스틱 손실 함수(이진 크로스 엔트로피 손실 함수)와 같은 연속적인 대리 손실 함수를 사용합니다. 🎯
- 로지스틱 손실 함수는 예측 확률과 타깃 간의 차이를 로그를 이용해 계산하여, 예측이 타깃에 가까울수록 손실이 낮아지도록 설계됩니다. 📉
- 사이킷런의
SGDClassifier는 loss='log' 설정으로 로지스틱 회귀를 구현하며, partial_fit 메서드를 통해 점진적 학습을 지원합니다. 💻
- 에포크 횟수는 모델의 과소적합 또는 과대적합에 영향을 미치므로, 학습 곡선을 통해 최적의 에포크 횟수를 찾아야 합니다. 📉📈