[Deep Learning] Gradient Descent: 왜 딥러닝은 '학습' 방식부터 다를까?

nomadicsoul·2026년 3월 19일

deeplearning

목록 보기
1/20

딥러닝의 핵심인 경사하강법(Gradient Descent)이 전통적인 머신러닝(Linear Regression 등)과 어떻게 궤를 달리하는지 3가지 관점에서 깊이 있게 정리해 드립니다.


1. 수학적 메커니즘: Backpropagation의 마법

전통적인 회귀 분석이 단 한 번의 계산(정규 방정식 등)으로 해를 찾으려 한다면, 딥러닝은 '실수하며 배우는' 방식을 취합니다. 그 핵심이 바로 역전파(Backpropagation)입니다.

  • Forward Pass: 입력 데이터를 넣고 층(Layer)을 통과시켜 예측값 y^\hat{y}를 구합니다.
  • Loss Function: 실제값 yy와 예측값 y^\hat{y}의 차이(오차)를 계산합니다.
  • Backward Pass (Backpropagation): 이 오차를 뒤에서부터 앞으로 전달하며, 각 가중치(ww)가 오차에 얼마나 기여했는지 미분(Gradient)을 통해 계산합니다.
  • Update: 계산된 기울기를 보고 "오차가 줄어드는 방향"으로 아주 조금씩 가중치를 업데이트합니다.
    • wnew=woldηLossww_{new} = w_{old} - \eta \cdot \frac{\partial Loss}{\partial w}

딥러닝의 GD는 "정답이 뭔지 모르니, 일단 아무 데나 서보고 낮은 곳으로 움직여보자"는 전략입니다.

  • 원리:처음에는 ww를 아무 숫자(예: 0.01)로 정합니다. (Initialization)
  • 현재 ww로 예측을 해보고 틀린 만큼 오차(LossLoss)를 계산합니다.
  • "지금 내 위치에서 ww를 아주 살짝 키우면 오차가 줄어들까, 줄이면 줄어들까?"를 미분(Lossw\frac{\partial Loss}{\partial w})으로 확인합니다.
  • 오차가 줄어드는 방향으로 ww를 조금 바꿉니다. (Update)

Backpropagation: 언제, 어떤 w를?

딥러닝 모델은 층(Layer)이 여러 개입니다. 입력층에 가까운 w1w_1이 있고, 출력층에 가까운 wlastw_{last}가 있죠. 어떤 ww를 언제 업데이트할까요?

  • 언제?: 데이터 한 묶음(Batch)이 모델을 통과해서 오차가 계산된 직후에 모든 ww를 동시에 업데이트합니다.
  • 어떤 ww를?: 모든 가중치를 다 업데이트합니다. 하지만 업데이트하는 양이 다릅니다.Backpropagation (역전파)은 출력층에서 발생한 오차를 거꾸로(Back) 전파하면서 각 가중치에게 책임을 묻는 과정입니다.
    • 출력층 가중치: "네가 예측을 이만큼 틀렸으니 너는 이만큼 고쳐!"
    • 중간층 가중치: "출력층이 틀린 이유 중 네 지분은 이만큼이야. 너도 이만큼 고쳐!" (Chain Rule 사용)
      • Update: wwlearning_rate×Gradient\text{Update: } w \leftarrow w - \text{learning\_rate} \times \text{Gradient}

2. 모델별 차이점: Closed-form vs Iterative

일반적인 Linear RegressionGradient Descent 기반 모델의 결정적인 차이는 "한 번에 끝내느냐, 여러 번 나눠서 하느냐"입니다.

비교 항목전통적 Regression (OLS)Gradient Descent 기반 (Deep Learning)
해를 찾는 법Closed-form Solution: 수학 공식으로 한 번에 최적의 ww를 찾음Iterative Method: 여러 번의 에포크(Epoch)를 거치며 최적점을 찾아감
데이터 양데이터가 적을 때 유리 (행렬 연산 가능 범위)빅데이터에 필수적: 데이터를 한 번에 메모리에 올릴 수 없을 때 유리
학습 속도 (Training)피처(dd)가 적을 때 매우 빠름. 하지만 피처가 많아지면 역행렬 연산(O(d3)O(d^3)) 때문에 급격히 느려짐상대적으로 느림. 수많은 반복(Iteration)과 오차 역전파 과정이 필요하며 GPU 연산이 필수적임
추론 속도 (Inference)매우 빠름. 학습된 latexwlatex w와 새로운 데이터 xx의 단순 곱셈 (wxw \cdot x)매우 빠름. 모델이 무거워도 결국 행렬 곱셈(WxW \cdot x) 기반이라 실시간 응답에 유리함
특징데이터가 너무 많으면 메모리(RAM) 부족으로 연산 자체가 불가능할 수 있음Mini-batch 단위를 사용하여 메모리 효율적으로 거대한 데이터를 나누어 학습 가능

예시) Regression (Closed-form)

"수학 공식으로 한 번에 답 찾기"전통적인 선형 회귀(OLS)는 마치 방정식 x+3=5x + 3 = 5를 푸는 것과 같습니다. 우리는 xx22라는 걸 계산 한 번으로 알 수 있죠.

  • 원리: 전체 데이터를 하나의 거대한 행렬 XX로 봅니다.
  • 수식: 오차를 최소화하는 ww를 구하기 위해 미분값이 00이 되는 지점을 수학적으로 유도하면 다음과 같은 공식이 나옵니다 : w^=(XTX)1XTy\hat{w} = (X^T X)^{-1} X^T y
  • 언제 업데이트하나?: 업데이트라는 개념이 없습니다. 데이터를 통째로 넣고 위 공식을 계산하면 최적의 ww가 즉시 튀어나옵니다.
  • 한계: 데이터가 너무 많으면 (XTX)(X^T X)의 역행렬을 계산하는 데 시간이 너무 오래 걸리고 메모리가 터져버립니다.

3. 속도와 효율성: Training vs Inference

딥러닝 모델은 학습은 매우 고통스럽지만, 한 번 배우고 나면 실행(Inference)은 매우 빠릅니다.

① Training Speed (학습 속도)

  • 딥러닝 (느림): 수만 번의 반복 계산이 필요하고, 역전파 과정에서 미분 연산이 많아 매우 느립니다. 이를 위해 GPU/TPU 같은 병렬 연산 장치가 필수적입니다.
  • 다른 모델 (빠름): 결정 트리(Decision Tree)나 단순 회귀는 연산량이 상대적으로 적어 CPU만으로도 순식간에 학습됩니다.

② Inference Speed (추론 속도)

  • 딥러닝 (매우 빠름): 학습된 가중치와 입력값을 곱하고 더하는 '행렬 곱' 연산만 하면 끝납니다. 모델이 아무리 커도 연산이 단순 구조라 실시간 서비스에 유리합니다.
  • 비교: 반면, k-NN 같은 모델은 추론할 때마다 전체 데이터와 거리를 계산해야 해서 데이터가 많아질수록 추론 속도가 현저히 느려집니다.
비교 항목전통적 Regression (OLS)Gradient Descent 기반 (Deep Learning)
해를 찾는 법Closed-form Solution: 수학 공식으로 한 번에 최적의 w를 찾음Iterative Method: 여러 번의 에포크(Epoch)를 거치며 최적점을 찾아감
데이터 양데이터가 적을 때 유리 (행렬 연산 가능 범위)빅데이터에 필수적: 데이터를 한 번에 메모리에 올릴 수 없을 때 유리
학습 속도 (Training)피처(d)가 적을 때 매우 빠름. 하지만 피처가 많아지면 역행렬 연산 O(d³) 때문에 급격히 느려짐상대적으로 느림. 수많은 반복(Iteration)과 오차 역전파 과정이 필요하며 GPU 연산이 필수적임
추론 속도 (Inference)학습된 w와 새로운 데이터 x의 단순 곱셈 w · x 으로 매우 빠름 (O(d))매우 빠름. 모델이 무거워도 결국 행렬 곱셈 (W · x) 기반이라 실시간 응답에 유리함. 굳이 따지자면 OLS보다는 느리지만 GPU / 최적화 덕분에 실시간으로 충분히 빠름
확장성 (Scalability)제한적. 데이터가 너무 많으면 메모리(RAM) 부족으로 연산 자체가 불가능할 수 있음매우 높음. Mini-batch 단위를 사용하여 메모리 효율적으로 거대한 데이터를 나누어 학습 가능

"딥러닝은 엄청난 양의 데이터를 소화하기 위해 '조금씩 자주 먹는(Mini-batch)' 전략을 취하며, 이 과정에서 경사하강법이라는 나침반을 사용한다"

profile
꾸준히

0개의 댓글