[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−η⋅∂Loss∂ww_{new} = w_{old} - \eta \cdot \frac{\partial Loss}{\partial w}

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

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

Backpropagation: 언제, 어떤 w를?

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

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

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

일반적인 Linear Regression과 Gradient 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의 단순 곱셈 (w⋅xw \cdot x)매우 빠름. 모델이 무거워도 결국 행렬 곱셈(W⋅xW \cdot x) 기반이라 실시간 응답에 유리함
특징데이터가 너무 많으면 메모리(RAM) 부족으로 연산 자체가 불가능할 수 있음Mini-batch 단위를 사용하여 메모리 효율적으로 거대한 데이터를 나누어 학습 가능

예시) Regression (Closed-form)

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

  • 원리: 전체 데이터를 하나의 거대한 행렬 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개의 댓글