경사 하강법(Gradient Descent)란?

손실 함수의 기울기(각 파라미터에 대한 편미분)를 구하고, 기울기와 반대 방향으로 파라미터를 조금씩 움직이는 것을 반복하여 손실이 작아지는 파라미터를 찾는 최적화 방법. 갱신은 w ← w − η∇L로 나타내며, η를 학습률이라고 부른다. 데이터의 일부(미니배치)로 구한 기울기를 사용하는 확률적 경사 하강법(SGD)이나, 그 개량판인 모멘텀이나 Adam이 신경망 학습에 널리 사용된다.

일본어 명칭: 勾配降下法

경사 하강법(Gradient Descent)은(는) 머신러닝의 기초 등 1개 분야의 연습 문제 1개에 나와요.

분야: 머신러닝의 기초

갱신 식과 학습률

손실 L을 가중치 w의 함수로 보면, 기울기 ∂L/∂w는 w를 조금 늘렸을 때 L이 늘어나는 방향과 크기를 나타냅니다. 그래서 w ← w − η × ∂L/∂w로, 기울기와 반대 방향으로 w를 움직입니다. 예를 들어 L = (w − 3)²에서 w = 0부터 시작하면 기울기는 2 × (0 − 3) = −6이므로, η = 0.1에서는 w가 0.6으로 나아갑니다. 이 예에서 η를 0.1로 하면 최소점 w = 3까지 남은 거리는 1회 갱신할 때마다 0.8배가 되어 줄어들지만, η를 1.1로 하면 갱신할 때마다 최소점을 뛰어넘어 거리가 1.2배씩 벌어지며 발산합니다.

배치, 미니배치, 확률적 경사 하강법

학습용 데이터 전체로 손실의 기울기를 정확히 구한 뒤 1회 갱신하는 방법을 배치 경사 하강법이라고 부르지만, 데이터가 많으면 1회 갱신에 시간이 걸립니다. 그래서 데이터에서 고른 일부(미니배치)만으로 기울기를 구해 갱신을 반복하는 확률적 경사 하강법이 사용됩니다. 기울기에 잡음이 섞이지만 갱신 횟수를 늘릴 수 있고, GPU로 병렬 계산하기 쉬운 크기로 묶을 수 있습니다. 학습용 데이터 전체를 한 차례 다 사용할 때까지를 1에폭이라고 부릅니다.

개량된 방법

단순한 SGD는 가늘고 긴 골짜기 같은 모양의 손실에서는 골짜기를 가로지르는 방향으로 왔다 갔다 하여 진행이 느려집니다. 모멘텀은 과거 갱신의 방향을 관성처럼 이어받아 이 진동을 억제합니다. Adam이나 RMSProp은 파라미터마다 기울기 크기의 이력으로부터 갱신 폭을 자동으로 조정합니다. 학습 초기에 학습률을 서서히 올리는 워밍업이나, 학습이 진행됨에 따라 학습률을 낮추는 스케줄도 자주 사용됩니다.

도전해 보기: 경사 하강법(Gradient Descent) 관련 문제

경사 하강법에서 가중치 w = 2.0에서의 손실의 기울기 ∂L/∂w가 0.5, 학습률이 0.1일 때, 1회 갱신 후의 가중치는?

  1. A1.5
  2. B1.95
  3. C2.05
정답과 해설 보기

정답: B. 1.95

경사 하강법에서는 손실이 작아지는 방향, 즉 기울기와 반대 방향으로 가중치를 움직여 w ← w − η × ∂L/∂w로 갱신합니다(η는 학습률). 이 문제에서는 w = 2.0 − 0.1 × 0.5 = 1.95입니다. 학습률이 너무 크면 손실의 골짜기를 뛰어넘어 진동하거나 발산하고, 너무 작으면 학습이 좀처럼 진행되지 않습니다. 실제 학습에서는 데이터의 일부(미니배치)로 구한 기울기로 갱신을 반복하는 확률적 경사 하강법(SGD)이나, 그 개량판인 Adam 등이 사용됩니다.

자주 묻는 질문

경사 하강법과 오차 역전파법은 어떻게 다른가요?

오차 역전파법은 신경망의 모든 가중치에 대해 손실의 기울기를 효율적으로 계산하는 방법입니다. 경사 하강법은 그 기울기를 사용하여 가중치를 갱신하는 방법입니다. 학습에서는 순전파로 손실을 구하고, 역전파로 기울기를 구하고, 경사 하강법으로 가중치를 갱신하는 흐름을 반복합니다.

경사 하강법으로 가장 좋은 해를 찾을 수 있나요?

손실 함수가 볼록(골짜기가 하나뿐)하다면 학습률을 적절히 고르면 최소점에 다가갈 수 있습니다. 신경망의 손실은 볼록하지 않으므로 찾아지는 것은 국소적인 해인 경우가 많지만, 파라미터가 많은 네트워크에서는 그래도 실용상 충분한 성능을 얻는 경우가 많다는 것이 경험적으로 알려져 있습니다.

해설 속 경사 하강법(Gradient Descent)

경사 하강법(Gradient Descent)이(가) 나오는 문제 (1)

  1. 경사 하강법에서 가중치 w = 2.0에서의 손실의 기울기 ∂L/∂w가 0.5, 학습률이 0.1일 때, 1회 갱신 후의 가중치는?

관련 용어

강화 학습(Reinforcement Learning) 과적합(Overfitting) 교차 검증(Cross-validation) 비지도 학습(Unsupervised Learning) 순환 신경망(RNN) 전이 학습(Transfer Learning) 정밀도와 재현율(Precision and Recall) 정칙화(Regularization) 주성분 분석(PCA) 지도 학습(Supervised Learning)

용어집으로 돌아가기