경사하강법은 모델의 예측 오차를 나타내는 손실함수를 줄이기 위해 가중치를 조금씩 수정하는 알고리즘입니다. 현재 위치에서 손실이 가장 빠르게 증가하는 방향의 반대쪽으로 이동하면서 더 나은 해를 찾습니다.
📌 핵심 5줄 요약
1. 모델은 가중치를 이용해 입력값을 예측하고, 실제값과의 차이를 손실함수로 계산합니다.
2. 손실함수의 기울기는 각 가중치를 어느 방향으로 얼마나 바꿔야 하는지 알려줍니다.
3. 경사하강법은 기울기의 반대 방향으로 가중치를 이동시켜 손실을 줄입니다.
4. 학습률은 한 번에 이동하는 크기이며, 너무 크거나 작으면 학습이 제대로 진행되지 않습니다.
5. 배치 크기와 옵티마이저 선택에 따라 학습 속도와 안정성이 달라집니다.
📌 목차
01 | 경사하강법이 필요한 이유
02 | 모델의 예측과 가중치
03 | 손실함수의 역할
04 | 기울기와 미분의 의미
05 | 경사하강법의 업데이트 공식
06 | 학습률이 결과에 미치는 영향
07 | 실제 학습 과정
08 | 배치·확률적·미니배치 방식
09 | 선형회귀로 보는 간단한 예시
10 | 신경망에서의 역전파
11 | 지역 최솟값과 안장점
12 | 옵티마이저의 발전
13 | 학습이 잘되지 않을 때 점검할 항목
14 | 경사하강법의 한계와 정리
01 | 경사하강법이 필요한 이유
머신러닝 모델은 입력을 받아 예측값을 출력하지만, 처음부터 정답을 정확히 맞히지는 못합니다. 모델이 얼마나 틀렸는지 측정하고, 그 오차를 줄이는 방향으로 내부 설정을 바꿔야 합니다.
이때 모델이 조정할 수 있는 내부 숫자를 매개변수 또는 가중치라고 합니다. 가능한 가중치 조합은 매우 많기 때문에 모든 경우를 직접 확인하기보다, 현재 위치에서 손실이 감소하는 방향을 계산해 조금씩 이동하는 방법이 효율적입니다.
02 | 모델의 예측과 가중치
가장 단순한 모델은 입력값에 가중치를 곱하고 편향을 더해 예측값을 만듭니다. 선형 모델이라면 다음처럼 표현할 수 있습니다.
예측값 = 가중치 × 입력값 + 편향
가중치가 바뀌면 같은 입력에 대한 예측값도 달라집니다. 따라서 학습이란 데이터를 보고 가중치와 편향을 적절한 값으로 조정하는 과정이라고 이해할 수 있습니다.
딥러닝에서는 가중치가 수천 개에서 수십억 개까지 늘어날 수 있습니다. 경사하강법은 이렇게 많은 매개변수를 한꺼번에 다루면서도 각 값이 어느 방향으로 바뀌어야 하는지 계산합니다.
03 | 손실함수의 역할
손실함수는 모델의 예측이 실제 정답과 얼마나 다른지를 하나의 값으로 나타내는 함수입니다. 손실이 작을수록 예측이 정답에 가깝다는 뜻입니다.
대표적인 손실함수
| 손실함수 | 주로 사용하는 상황 |
|---|---|
| 평균제곱오차 | 연속적인 값을 예측하는 회귀 문제 |
| 평균절대오차 | 오차의 절댓값을 기준으로 평가하는 회귀 문제 |
| 교차엔트로피 | 범주를 분류하는 문제 |
손실함수는 단순한 평가표가 아니라 학습 방향을 결정하는 기준입니다. 어떤 손실함수를 선택하느냐에 따라 모델이 중요하게 반응하는 오차의 특성이 달라집니다.
04 | 기울기와 미분의 의미
기울기는 가중치를 아주 조금 바꿨을 때 손실이 어느 방향으로 얼마나 변하는지를 나타냅니다. 손실이 증가하는 방향을 알면, 그 반대 방향으로 이동해 손실을 줄일 수 있습니다.
가중치가 하나라면 미분으로 기울기를 구할 수 있습니다. 가중치가 여러 개라면 각 가중치에 대한 편미분을 모아 기울기 벡터를 만듭니다. 이 벡터는 손실함수가 가장 가파르게 증가하는 방향을 가리킵니다.
경사하강법은 이 방향의 반대로 움직입니다. 그래서 이름에 ‘하강’이라는 표현이 붙습니다.
05 | 경사하강법의 업데이트 공식
가중치 업데이트는 일반적으로 다음과 같이 표현합니다.
새 가중치 = 현재 가중치 − 학습률 × 기울기
현재 가중치에서 기울기를 빼는 이유는 기울기가 손실이 증가하는 방향을 나타내기 때문입니다. 기울기가 양수라면 가중치를 줄이고, 음수라면 가중치를 늘리는 방식으로 손실 감소를 시도합니다.
이 계산을 한 번 수행하는 것만으로는 충분하지 않습니다. 여러 데이터에 대해 예측, 손실 계산, 기울기 계산, 가중치 업데이트를 반복해야 모델이 점차 적절한 값을 찾습니다.
06 | 학습률이 결과에 미치는 영향
학습률은 가중치를 한 번 업데이트할 때 이동하는 크기를 결정합니다. 경사하강법의 안정성과 학습 속도에 직접적인 영향을 주는 핵심 설정입니다.
| 학습률 상태 | 나타날 수 있는 현상 |
|---|---|
| 너무 작음 | 손실 감소가 매우 느리고 학습에 오랜 시간이 걸림 |
| 적절함 | 손실이 비교적 안정적으로 감소하며 수렴에 접근함 |
| 너무 큼 | 최솟값을 지나치거나 손실이 커지고 학습이 발산할 수 있음 |
학습 초기에 손실이 크게 흔들리거나 줄지 않는다면 학습률을 우선 점검할 수 있습니다. 다만 데이터 전처리, 손실함수, 모델 구조도 함께 영향을 주므로 학습률 하나만으로 원인을 단정해서는 안 됩니다.
07 | 실제 학습 과정
경사하강법을 이용한 한 번의 학습 흐름은 다음과 같습니다.
- 학습 데이터를 모델에 입력합니다.
- 모델이 예측값을 계산합니다.
- 예측값과 실제값의 차이로 손실을 계산합니다.
- 손실을 각 가중치로 미분해 기울기를 구합니다.
- 학습률을 적용해 가중치를 업데이트합니다.
- 같은 과정을 여러 데이터와 여러 차례 반복합니다.
전체 학습 데이터를 한 번 모두 사용한 단위를 에포크라고 부릅니다. 에포크가 늘어날수록 학습 손실은 줄어들 수 있지만, 검증 데이터의 성능이 오히려 나빠지면 과적합을 의심해야 합니다.
08 | 배치·확률적·미니배치 방식
경사하강법은 한 번의 업데이트에 몇 개의 데이터를 사용할지에 따라 구분할 수 있습니다.
| 방식 | 특징 |
|---|---|
| 배치 경사하강법 | 전체 데이터를 사용해 기울기를 계산하므로 방향이 안정적이지만 한 번의 계산량이 큼 |
| 확률적 경사하강법 | 데이터 한 개씩 업데이트해 빠르게 움직이지만 손실 변동이 큼 |
| 미니배치 경사하강법 | 데이터 일부를 묶어 계산하며 속도와 안정성의 균형을 추구함 |
실제 신경망 학습에서는 미니배치 방식이 널리 사용됩니다. 배치 크기가 너무 크면 메모리 사용량이 늘고, 너무 작으면 업데이트가 불안정해질 수 있습니다.
09 | 선형회귀로 보는 간단한 예시
주택의 면적을 입력해 가격을 예측하는 선형회귀 모델을 생각해 보겠습니다. 모델이 예측한 가격이 실제 가격보다 낮다면 손실이 발생합니다.
이때 손실함수의 기울기가 가중치를 더 키우는 방향을 가리키면, 경사하강법은 해당 가중치를 증가시키는 쪽으로 업데이트합니다. 반대로 가중치를 키울수록 손실이 커지는 상황이라면 가중치를 줄입니다.
한 번의 조정으로 정답을 찾는 것이 아니라, 여러 주택 데이터를 반복해서 확인하면서 평균적으로 오차가 줄어드는 방향을 찾는 것이 핵심입니다.
10 | 신경망에서의 역전파
신경망은 여러 층이 연결되어 있어 출력층의 오차가 앞쪽 층의 가중치에도 영향을 줍니다. 역전파는 연쇄법칙을 이용해 출력에서 입력 방향으로 오차의 기울기를 전달하는 계산 과정입니다.
역전파가 각 가중치에 대한 기울기를 계산하면, 경사하강법 또는 다른 옵티마이저가 그 기울기를 이용해 가중치를 업데이트합니다. 즉 역전파는 기울기를 구하는 방법이고, 경사하강법은 구한 기울기로 매개변수를 바꾸는 방법입니다.
두 개념은 함께 설명되는 경우가 많지만 같은 의미는 아닙니다.
11 | 지역 최솟값과 안장점
이론적으로는 손실이 가장 작은 지점을 찾는 것이 목표지만, 손실함수의 지형이 항상 단순한 그릇 모양인 것은 아닙니다. 여러 개의 낮은 지점, 평평한 구간, 안장점이 존재할 수 있습니다.
지역 최솟값은 주변보다 손실이 낮지만 전체에서 가장 낮다는 보장은 없습니다. 안장점은 어떤 방향에서는 올라가고 다른 방향에서는 내려가는 지점으로, 기울기가 작아 학습이 느려질 수 있습니다.
현대의 신경망에서는 단순히 지역 최솟값만이 문제가 되는 것이 아니라, 기울기 소실과 폭주, 평평한 영역, 데이터의 노이즈 등이 학습에 더 큰 영향을 줄 수 있습니다.
12 | 옵티마이저의 발전
기본 경사하강법은 모든 가중치에 동일한 학습률을 적용합니다. 이를 개선하기 위해 과거의 업데이트 방향이나 가중치별 기울기 크기를 활용하는 다양한 옵티마이저가 등장했습니다.
대표적인 방법
모멘텀은 이전 이동 방향을 일부 기억해 지그재그 움직임을 줄이고, 일관된 방향으로 더 빠르게 이동하도록 돕습니다.
적응형 학습률 방식은 가중치마다 학습률을 다르게 조정합니다. 기울기가 자주 크게 변하는 매개변수와 거의 변하지 않는 매개변수를 같은 방식으로 다루지 않는 것이 특징입니다.
아담 옵티마이저는 모멘텀 계열의 아이디어와 적응형 학습률의 특성을 결합한 방식으로 널리 알려져 있습니다. 다만 어떤 옵티마이저가 항상 최선인 것은 아니며, 데이터와 모델 구조에 맞춰 검증해야 합니다.
13 | 학습이 잘되지 않을 때 점검할 항목
손실이 줄지 않거나 검증 성능이 나빠질 때는 다음 항목을 순서대로 확인하는 것이 좋습니다.
- 입력 데이터와 정답의 대응이 올바른지 확인합니다.
- 입력 특성의 값 범위가 지나치게 다르지 않은지 살펴봅니다.
- 학습률을 낮추거나 높여 손실 변화가 안정적인지 비교합니다.
- 손실함수가 문제 유형과 맞는지 확인합니다.
- 기울기 폭주나 소실이 발생하지 않는지 점검합니다.
- 학습 데이터 성능과 검증 데이터 성능의 차이를 비교합니다.
- 에포크를 무작정 늘리기보다 조기 종료나 정규화를 검토합니다.
학습 손실과 검증 손실을 함께 기록하면 원인을 구분하기 쉽습니다. 두 손실이 모두 높으면 학습 부족이나 설정 문제일 수 있고, 학습 손실만 낮고 검증 손실이 높으면 과적합 가능성이 큽니다.
14 | 경사하강법의 한계와 정리
경사하강법은 손실함수의 기울기를 계산할 수 있어야 하며, 계산량이 큰 모델에서는 반복적인 기울기 계산에 많은 자원이 필요합니다. 또한 학습률과 배치 크기에 민감하고, 데이터가 적절히 전처리되지 않으면 학습이 불안정해질 수 있습니다.
그럼에도 경사하강법은 머신러닝과 딥러닝에서 모델을 학습시키는 기본 원리입니다. 손실함수는 얼마나 틀렸는지를 알려주고, 기울기는 어느 방향으로 수정할지를 알려주며, 학습률은 한 번에 얼마나 움직일지를 결정합니다.
☑ 체크리스트
- 모델이 해결하려는 문제가 회귀인지 분류인지 구분했는가
- 문제 유형에 맞는 손실함수를 선택했는가
- 기울기의 방향과 학습률의 역할을 구분했는가
- 학습 손실과 검증 손실을 함께 확인했는가
- 학습률과 배치 크기를 한 번에 하나씩 비교했는가
- 과적합과 학습 부족을 구분했는가
📖 자주하는 질문 Q&A
경사하강법은 손실을 항상 줄이나요?
항상 그렇지는 않습니다. 학습률이 지나치게 크거나 데이터와 손실함수의 조건이 적절하지 않으면 손실이 오히려 증가하거나 크게 흔들릴 수 있습니다.
학습률과 기울기는 어떻게 다른가요?
기울기는 손실을 줄이기 위해 어느 방향으로 움직여야 하는지를 나타내고, 학습률은 그 방향으로 한 번에 얼마나 이동할지를 결정합니다.
역전파와 경사하강법은 같은 것인가요?
같지 않습니다. 역전파는 신경망의 각 가중치에 대한 기울기를 계산하는 과정이고, 경사하강법은 계산된 기울기를 사용해 가중치를 업데이트하는 최적화 방법입니다.
손실이 줄면 모델 성능도 반드시 좋아지나요?
학습 데이터의 손실이 줄어도 새로운 데이터에 대한 성능이 좋아진다는 보장은 없습니다. 검증 데이터의 손실과 실제 평가 지표를 함께 확인해야 과적합 여부를 판단할 수 있습니다.
📝 마무리
경사하강법은 손실함수의 기울기를 이용해 모델의 가중치를 손실이 줄어드는 방향으로 반복 조정하는 학습 방법입니다. 학습률, 배치 방식, 손실함수, 옵티마이저가 함께 작동하므로 학습 결과를 해석할 때는 이 요소들을 종합적으로 확인해야 합니다.
