경사하강법 (Gradient Descent)
머신러닝 모델의 최적의 가중치를 찾기 위한 알고리즘
목표
모델의 성능을 측정하는 비용함수의 값이 최소가 되는 지점을 찾는 것
원리
비용함수 그래프에서 경사가 가파른곳의 반대 방향으로 가며 가장 낮은 골자기(최소값)에 도달하는 방법
공식
$ \theta_{\text{new}} = \theta_{\text{old}} - \alpha \cdot \frac{\partial J(\theta)}{\partial \theta} $
변수
$ \theta_{\text{new}} $: 새로운 모수 (New Parameter). 한 번의 업데이트 후 다음 단계에서 사용될 가중치와 y절편 값.
$ \theta_{\text{old}} $ : 현재 모수 (Old Parameter). 업데이트를 수행하기 전의 현재 가중치와 y절편 값.
$ \alpha $ : 학습률 (Learning Rate). 한 번 업데이트할 때 이동하는 보폭의 크기를 결정.
$ \frac{\partial J(\theta)}{\partial \theta} $ : 경사(Gradient). 현재 모수 지점에서 비용함수 ($J$)의 기울기를 나타냄.
$ J(\theta) $: 비용함수 (Cost Function). 경사 하강법이 최소화하려는 함수(예: 평균제곱오차).
$ \theta $: 모수(Parameter). 모델이 학습해야 할 가중치와 y절편을 통칭.
경사하강법 종류
배치경사하강법(Batch Gradient Descent, BGD)
방식 : 전체 학습 데이터셋(Full-batch)을 모두 사용하여 단 하나의 경사값을 계산하고, 이를 통해 모수를 한 번 업데이트.
확률적경사하강법 (Stochastic Gradient Descent, SGD)
방식: 전체 데이터셋에서 단 1개의 샘플을 무작위로 추출하여 경사를 계산하고, 즉시 모수를 업데이트
미니배치 경사 하강법 (Mini-batch Gradient Descent, MBGD)
전체 데이터셋을 적절한 크기(Batch size)(예: 32, 64, 128)의 작은 묶음, 즉 '미니배치(Mini-batch)'로 나눈다. 각 미니배치 단위로 경사를 계산하고 모수를 업데이트