===== 경사하강법 (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)'로 나눈다. 각 미니배치 단위로 경사를 계산하고 모수를 업데이트 \\