본문으로 건너뛰기
실습하기

확률적 경사 하강법, 빠르고 효율적인 학습 방법

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 신경망이 학습할 때, 하나의 데이터 샘플을 무작위로 선택하여 매번 가중치를 업데이트합니다.

이 방식은 계산량이 적고 빠르게 수렴할 수 있어, 대규모 데이터셋을 학습할 때 많이 사용됩니다.


확률적 경사 하강법이 진행되는 과정

확률적 경사 하강법은 다음과 같은 단계를 반복하면서 학습을 진행합니다.

  1. 데이터 샘플 하나를 선택

  2. 손실 함수 계산

  3. 기울기(Gradient) 계산

  4. 가중치 업데이트

  5. 다음 샘플 선택 후 반복

이 과정을 반복하면서 모델이 최적의 가중치를 찾아가게 됩니다.


확률적 경사 하강법의 동작 방식

SGD는 다음과 같은 단계를 통해 학습을 진행합니다.


1. 샘플 선택 및 손실 함수 계산

데이터셋에서 무작위로 하나의 샘플 (x, y)을 선택한 후, 현재 가중치에서 손실을 계산합니다.

손실 함수 예제
입력 데이터: x = 2.0, 실제값 y = 5.0
모델 예측값: 4.2
손실(MSE) = (5.0 - 4.2)^2 = 0.64

2. 기울기 계산

손실 함수의 기울기를 계산하여, 현재 가중치가 얼마나 조정되어야 하는지 확인합니다.

기울기 계산 예제
현재 가중치: 0.5
기울기(Gradient): -0.3

3. 가중치 업데이트

기울기를 이용하여 가중치를 업데이트합니다. 이때 학습률(Learning Rate, α)을 곱하여 조정 속도를 조절합니다.

새로운 가중치=기존 가중치(학습률×기울기)\text{새로운 가중치} = \text{기존 가중치} - (\text{학습률} \times \text{기울기})
가중치 업데이트 예제
기존 가중치: 0.8
기울기: -0.2
학습률: 0.1
새로운 가중치: 0.8 - (0.1 * -0.2) = 0.82

이 과정을 모든 데이터 샘플에 대해 반복하여 가중치를 최적화합니다.

확률적 경사 하강법은 대규모 데이터셋에서 신속하게 학습할 수 있는 중요한 최적화 기법입니다.

다음 수업에서는 배치 경사 하강법(Batch Gradient Descent)에 대해 알아보겠습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!