머신러닝 모델의 학습은 예측과 정답의 차이를 나타내는 손실 함수(loss function)를 작게 만드는 매개변수를 찾는 과정입니다. 경사하강법(gradient descent)은 현재 위치에서 손실이 가장 빠르게 증가하는 방향인 기울기를 구한 뒤 그 반대쪽으로 조금 이동합니다. 기본 갱신식은 w←w−η∇L(w)입니다. w는 가중치 벡터, L은 손실 함수, ∇L은 각 가중치에 대한 편미분을 모은 기울기 벡터, η는 학습률입니다. 공식은 짧지만 제대로 이해하려면 왜 빼는지, 이동 폭은 어떻게 정하는지, 어떤 조건에서 최솟값에 가까워지는지를 나누어 봐야 합니다.
기울기는 손실이 증가하는 방향을 가리킨다
변수가 하나인 함수 L(w)에서 미분값 dL/dw가 양수라면 w를 조금 늘릴 때 손실이 증가하고, 음수라면 w를 늘릴 때 손실이 감소합니다. 손실을 낮추려면 미분값의 반대 방향으로 움직여야 하므로 w_new=w_old−η(dL/dw)가 됩니다. 변수가 여러 개이면 각 변수의 편미분을 세로로 모은 ∇L=[∂L/∂w₁, ∂L/∂w₂, …]를 사용합니다. 유클리드 거리 기준에서 기울기는 함수가 국소적으로 가장 빠르게 증가하는 방향입니다. 따라서 음의 기울기는 가장 빠른 감소 방향입니다. 다만 이는 현재 지점 주변의 1차 근사에 관한 설명이며 한 번에 전역 최솟값을 알려 주는 공식은 아닙니다.
가장 단순한 이차함수 예제
L(w)=(w−3)²을 최소화해 보겠습니다. 기울기는 dL/dw=2(w−3)입니다. 시작값 w=0, 학습률 η=0.1이면 기울기는 −6이고 새 값은 0−0.1×(−6)=0.6입니다. 다음 기울기는 2(0.6−3)=−4.8이므로 w는 1.08이 됩니다. 같은 계산을 반복하면 0, 0.6, 1.08, 1.464처럼 최솟값 w=3에 가까워집니다. 최솟값에 다가갈수록 기울기의 절댓값이 작아져 이동 폭도 자연스럽게 줄어듭니다. 이 예제에서는 함수가 매끄럽고 볼록하며 학습률도 안정 범위에 있어 단순한 수렴 모습을 보입니다.
학습률 η가 너무 작거나 너무 크면
학습률은 기울기에 곱하는 양의 수로 한 단계의 크기를 정합니다. 너무 작으면 손실은 줄더라도 많은 반복이 필요합니다. 너무 크면 골짜기의 반대편을 지나쳐 손실이 오르거나 양쪽을 오가며 발산할 수 있습니다. 앞의 L=(w−3)²에서 갱신 오차 e=w−3은 e_new=(1−2η)e가 됩니다. |1−2η|<1, 즉 0<η<1이면 오차의 크기가 줄어듭니다. η=1이면 오차의 부호만 바뀌며 같은 거리를 반복하고, η>1이면 오차가 커집니다. 이 범위는 해당 이차함수에 대한 결과이며 모든 손실 함수에 그대로 적용되는 보편 숫자는 아닙니다.
일반적인 매끄러운 볼록 함수에서는 기울기의 변화 속도를 제한하는 립시츠 상수 같은 함수의 성질과 학습률을 함께 보아 수렴 조건을 정합니다. 실제 신경망의 손실은 비볼록이고 차원이 매우 높으므로 하나의 고정 학습률이 처음부터 끝까지 가장 좋다고 보장되지 않습니다. 일정한 비율로 줄이는 스케줄, 성능이 정체될 때 줄이는 방식, 초기에 학습률을 서서히 올리는 워밍업 등이 사용됩니다. 중요한 점은 학습률이 단순한 속도 조절 손잡이가 아니라 안정성과 최종 도달 상태에 직접 영향을 미치는 매개변수라는 사실입니다.
선형회귀에서 편미분은 어떻게 나오나
입력 xᵢ와 정답 yᵢ에 대해 예측을 ŷᵢ=wxᵢ+b로 두고 평균제곱오차를 L=(1/2m)Σ(ŷᵢ−yᵢ)²로 정의하겠습니다. 연쇄법칙을 적용하면 ∂L/∂w=(1/m)Σ(ŷᵢ−yᵢ)xᵢ이고, ∂L/∂b=(1/m)Σ(ŷᵢ−yᵢ)입니다. 따라서 w와 b를 각각 이 편미분의 반대 방향으로 갱신합니다. 오차가 양수인 사례는 예측이 정답보다 크다는 뜻이고, 그 사례의 입력값이 기울기에 곱해져 w의 변화에 영향을 줍니다. 1/2을 넣는 이유는 제곱을 미분할 때 나오는 2와 상쇄해 식을 간단하게 하기 위한 것으로 최솟값의 위치는 바꾸지 않습니다.
배치, 확률적, 미니배치 경사하강법
배치 경사하강법은 전체 학습 데이터의 손실을 계산해 한 번 갱신합니다. 기울기가 안정적이지만 데이터가 매우 크면 한 단계의 계산 비용이 큽니다. 확률적 경사하강법(SGD)은 한 사례에서 구한 기울기로 즉시 갱신합니다. 계산이 빠르게 시작되지만 개별 사례의 영향 때문에 경로가 흔들립니다. 미니배치 방식은 여러 사례로 이루어진 작은 묶음의 평균 기울기를 사용합니다. 행렬 연산 장치를 효율적으로 쓰면서 전체 배치보다 자주 갱신할 수 있어 신경망 학습에서 널리 쓰입니다. 실무에서 SGD라는 이름을 미니배치 방식까지 포함해 부르는 경우도 있으므로 배치 크기를 함께 확인해야 합니다.
| 방식 | 한 번의 기울기에 쓰는 데이터 | 일반적 특성 |
|---|---|---|
| 배치 | 전체 데이터 | 안정적이지만 한 단계가 무거울 수 있음 |
| 확률적 | 한 사례 | 갱신이 빠르고 변동이 큼 |
| 미니배치 | 작은 데이터 묶음 | 병렬 계산과 갱신 빈도의 절충 |
볼록 함수와 비볼록 함수에서의 차이
볼록 함수는 두 점을 잇는 선분이 함수 그래프 위쪽에 놓이는 구조를 가지며, 미분 가능한 볼록 함수의 국소 최솟값은 전역 최솟값입니다. 적절한 학습률과 조건 아래 경사하강법의 수렴을 비교적 명확하게 분석할 수 있습니다. 신경망의 손실 함수는 보통 비볼록이어서 지역 최솟값, 안장점, 평평한 구간이 존재할 수 있습니다. 이때 기울기가 0이라고 해서 반드시 전역 최솟값인 것은 아닙니다. 경사하강법이 ‘항상 가장 좋은 답을 찾는다’고 말할 수 없는 이유입니다. 초기값, 모델 구조, 데이터, 최적화 설정에 따라 서로 다른 매개변수에 도달할 수 있습니다.
특성의 크기가 학습 경로를 바꾼다
한 특성은 0에서 1 사이이고 다른 특성은 수만 단위라면 손실 표면의 등고선이 길고 좁아질 수 있습니다. 같은 학습률을 모든 방향에 적용하면 경사가 큰 방향을 가로질러 지그재그로 움직이면서 작은 방향의 진행은 느려집니다. 입력을 표준화하거나 적절히 스케일링하면 조건수가 개선되어 안정적인 학습에 도움이 될 수 있습니다. 그러나 정규화가 어떤 데이터에도 무조건 같은 효과를 내는 것은 아니며, 범주형 입력과 희소 입력, 사전 학습 모델 등에서는 모델과 전처리 규약에 맞춰야 합니다. 핵심은 기울기의 크기가 단위와 스케일의 영향을 받는다는 점입니다.
모멘텀과 적응형 방법은 기본식을 어떻게 바꾸나
모멘텀은 이전 갱신 방향을 누적해 일관된 방향의 이동을 키우고 골짜기를 가로지르는 진동을 줄이는 방식입니다. AdaGrad, RMSProp, Adam 같은 적응형 방법은 과거 기울기 정보를 이용해 매개변수별 유효 학습률을 조정합니다. 이들은 모두 손실의 기울기를 사용하지만 w←w−η∇L이라는 가장 단순한 식과 갱신 경로가 다릅니다. 적응형 알고리즘을 쓴다고 학습률 선택이 사라지는 것도 아니며, 데이터와 목적에 따라 일반화 성능이나 수렴 특성이 달라질 수 있습니다. 어떤 방법이 항상 우월하다는 보편 규칙 대신 사용한 알고리즘, 기본 학습률, 스케줄과 정규화를 함께 기록해야 결과를 재현할 수 있습니다.
손실 감소를 확인하는 실용적인 계산
학습 과정에서는 훈련 손실을 단계별로 기록해 감소 추세와 발산 여부를 확인합니다. 손실이 갑자기 NaN이 되면 지나치게 큰 학습률, 0으로 나누기, 로그에 유효하지 않은 값 입력, 수치 범위 초과 등을 점검합니다. 기울기의 노름이 지나치게 커지는 폭주가 있다면 학습률 조정, 입력 스케일 확인, 기울기 클리핑을 검토합니다. 반대로 기울기가 거의 0인데 성능이 낮으면 포화된 활성함수, 좋지 않은 초기화, 평평한 영역 등을 확인할 수 있습니다. 훈련 손실이 줄어도 검증 손실이 오르면 최적화 실패가 아니라 과적합 문제일 수 있으므로 두 지표를 구별해야 합니다.
공식을 읽을 때 확인할 다섯 가지
- ∇L은 손실이 가장 빠르게 증가하는 방향이므로 최소화할 때는 빼줍니다.
- η는 이동 폭을 정하며 너무 크면 발산하고 너무 작으면 학습이 느릴 수 있습니다.
- 모든 가중치는 같은 시점의 기울기를 계산한 뒤 동시에 갱신하는 것이 기본입니다.
- 전체 데이터, 한 사례, 미니배치 중 무엇으로 기울기를 추정했는지 구별합니다.
- 볼록 함수의 수렴 성질을 비볼록 신경망에 조건 없이 그대로 적용하지 않습니다.
- 손실 최소화와 새로운 데이터에서의 일반화 성능은 같은 개념이 아닙니다.
경사하강법의 본질은 현재 지점 주변에서 손실이 커지는 방향을 미분으로 측정하고 그 반대쪽으로 제한된 한 걸음을 내딛는 것입니다. w←w−η∇L의 마이너스 부호는 방향을, 학습률 η는 거리의 배율을 담당합니다. 데이터 묶음의 선택, 손실 표면의 모양, 특성의 스케일과 학습률 스케줄이 실제 경로를 결정합니다. 이 조건들을 함께 보면 짧은 갱신식이 머신러닝 학습에서 어떻게 작동하는지 과장 없이 이해할 수 있습니다.
자동 미분이 해 주는 일과 해 주지 않는 일
현대 머신러닝 프레임워크는 계산 그래프와 연쇄법칙을 이용해 손실에서 각 가중치까지의 미분을 자동으로 계산합니다. 사용자가 모든 편미분 공식을 손으로 전개할 필요는 없지만, 손실을 스칼라로 만드는 방식과 미분 가능한 연산의 연결은 올바르게 정의해야 합니다. 조건문으로 그래프가 끊기거나 텐서를 미분 추적에서 분리하면 필요한 기울기가 전달되지 않을 수 있습니다. 자동 미분은 주어진 계산의 정확한 도함수를 효율적으로 구하는 도구이지, 선택한 손실이 목적에 적합한지 또는 학습률이 안정적인지를 판단해 주는 별도의 최적화 이론은 아닙니다.
유한차분으로 기울기를 점검할 수도 있습니다. 좌표 j에 작은 h를 더하고 뺀 손실을 이용해 [L(w+h eⱼ)−L(w−h eⱼ)]/(2h)를 계산하면 ∂L/∂wⱼ의 근삿값을 얻습니다. 자동 미분 결과와 비교하면 구현 오류를 찾는 데 도움이 됩니다. h가 너무 크면 근사 오차가 커지고, 너무 작으면 부동소수점 반올림 오차가 커질 수 있습니다. 또 모든 좌표를 검사하는 비용이 크므로 주로 작은 모델이나 일부 좌표의 디버깅에 사용합니다.
참고 자료
- Stanford CS229 Lecture Notes, gradient descent and learning rate: https://cs229.stanford.edu/notes2020fall/notes2020fall/cs229-notes1.pdf
- Stephen Boyd and Lieven Vandenberghe, Convex Optimization: https://web.stanford.edu/~boyd/cvxbook/
- Stanford CS229 archived notes, batch and stochastic gradient descent: https://cs229.stanford.edu/notes_archive/cs229-notes-all/cs229-notes1.pdf