본문 바로가기
수학&통계학

인공신경망 모형(ANN) (3) : 모형 학습 과정

by 코스믹구구 2026. 5. 14.
728x90
1편에서 뉴런과 활성화 함수, 2편에서 모형의 종류를 다뤘다.
이번 3편에서는 신경망이 어떻게 학습하는가를 다룬다.
순전파로 예측하고, 역전파로 오류를 돌려보내고, 경사하강법으로 파라미터를 조정하는 전체 학습 사이클과 과적합을 막는 방법들을 정리한다.

1. 순전파 (Forward Propagation)

입력 데이터가 신경망을 통해 입력층 → 은닉층 → 출력층 방향으로 흘러가며 예측값을 만드는 과정이다. 각 층에서 가중합을 계산하고 활성화 함수를 적용하는 것을 반복한다.

층 l의 출력: a⁽ˡ⁾ = f(W⁽ˡ⁾ · a⁽ˡ⁻¹⁾ + b⁽ˡ⁾)
a⁽ˡ⁾: l번째 층의 활성화값 (출력)
W⁽ˡ⁾: l번째 층의 가중치 행렬  |  b⁽ˡ⁾: 편향 벡터
f: 활성화 함수  |  입력층의 경우 a⁽⁰⁾ = x (입력 데이터 자체)
💡 행렬 연산으로 효율적 계산
배치(여러 데이터를 한 번에) 처리 시, 한 층의 계산은 행렬 곱 하나로 표현된다.
이것이 GPU(병렬 행렬 연산에 특화)가 딥러닝 학습에 필수적인 이유다.
→ 행렬 연산을 GPU로 병렬화하면 학습 속도가 수십~수백 배 빨라진다.

 

2. 손실 함수 (Loss Function)

순전파로 예측값 ŷ을 구한 후, 실제값 y와의 차이를 측정하는 함수다. 학습의 목표는 이 손실을 최소화하는 파라미터를 찾는 것이다.

회귀 — MSE (평균 제곱 오차)

L = (1/n) Σ (yᵢ − ŷᵢ)²

연속값 예측 문제. 큰 오차에 더 큰 패널티.
이진 분류 — Binary Cross-Entropy

L = −(1/n) Σ [y·log(ŷ) + (1−y)·log(1−ŷ)]

확률값 0~1. 틀릴수록 손실이 급격히 커진다.
다중 분류 — Categorical Cross-Entropy

L = −Σ yₖ · log(ŷₖ)

소프트맥스 출력과 함께 사용. K개 클래스.
💡 Cross-Entropy가 MSE보다 분류에 유리한 이유
시그모이드/소프트맥스 출력에 MSE를 쓰면 기울기가 작아져(포화 영역) 학습이 느려진다.
Cross-Entropy는 예측이 확신에 차 있을 때(0 또는 1에 가까울 때) 틀리면 손실이 매우 크고,
기울기도 충분히 크게 유지되어 학습이 빠르게 진행된다.

 

3. 역전파 (Backpropagation)

개념

역전파는 손실 함수의 값을 기반으로 각 파라미터가 손실에 얼마나 기여했는지를 계산하는 알고리즘이다. 출력층에서 시작해 입력층 방향으로 거꾸로 기울기(편미분)를 계산하며 전파한다. 수학적으로는 연쇄 법칙(Chain Rule)을 반복 적용하는 것이다.

∂L/∂W⁽ˡ⁾ = ∂L/∂a⁽ˡ⁾ · ∂a⁽ˡ⁾/∂z⁽ˡ⁾ · ∂z⁽ˡ⁾/∂W⁽ˡ⁾
연쇄 법칙: 합성 함수의 미분 = 각 함수 미분의 곱
출력층의 기울기를 먼저 계산하고, 뒤로 전파하며 각 층의 기울기를 계산

파라미터 업데이트

역전파로 기울기를 계산한 후, 기울기의 반대 방향으로 파라미터를 조금씩 이동시킨다.

W ← W − η · ∂L/∂W
η (eta): 학습률(Learning Rate) — 한 번에 얼마나 이동할지
∂L/∂W: 손실 함수의 W에 대한 기울기
기울기 반대 방향으로 이동 → 손실이 줄어드는 방향

 

4. 경사하강법 (Gradient Descent) 종류

손실 함수를 최소화하는 파라미터를 찾는 최적화 알고리즘이다. 데이터를 얼마나 사용해서 기울기를 계산하느냐에 따라 세 가지로 나뉜다.

배치 경사하강법 (BGD)
전체 훈련 데이터로 기울기를 계산 후 업데이트.
안정적이지만 대용량 데이터에서 매우 느리다.
확률적 경사하강법 (SGD)
데이터 1개마다 기울기 계산 후 즉시 업데이트.
빠르지만 업데이트가 불안정(노이즈 많음).
미니배치 경사하강법
소규모 배치(32~256개)마다 업데이트.
BGD와 SGD의 절충. 현재 표준 방식.

고급 최적화 알고리즘

① Momentum (모멘텀)
v ← βv − η·∂L/∂W    W ← W + v

이전 업데이트 방향을 관성처럼 유지한다. 좁은 골짜기에서 진동을 줄이고 수렴 속도를 높인다. β(보통 0.9)로 이전 속도의 유지 비율을 조절.

② RMSProp
s ← ρs + (1−ρ)(∂L/∂W)²    W ← W − η · (∂L/∂W) / √(s+ε)

기울기의 제곱 이동 평균으로 학습률을 자동 조정한다. 자주 업데이트되는 파라미터는 학습률을 줄이고, 드물게 업데이트되는 파라미터는 학습률을 키운다.

③ Adam (Adaptive Moment Estimation) — 현재 가장 많이 사용
m ← β₁m + (1−β₁)∂L/∂W    v ← β₂v + (1−β₂)(∂L/∂W)²

Momentum(1차 모멘텀 m)과 RMSProp(2차 모멘텀 v)을 결합한 알고리즘.
편향 보정(Bias Correction)으로 초기 단계에서도 안정적이다.
기본값: β₁=0.9, β₂=0.999, ε=10⁻⁸, η=0.001
→ 대부분의 경우 Adam에서 시작하면 좋다.

④ AdamW — Adam의 가중치 감쇠 개선

Adam에 L2 정규화를 올바르게 적용한 버전. Transformer/BERT/GPT 같은 대형 모델 학습에서 Adam보다 일반적으로 더 좋은 성능. PyTorch의 기본 권장 옵티마이저.

 

5. 학습률 (Learning Rate) — 가장 중요한 하이퍼파라미터

학습률이 너무 크면
손실이 줄어들지 않고 오히려 발산한다.
최솟값을 뛰어넘어 이리저리 튄다.
→ 학습이 불안정하거나 실패
학습률이 너무 작으면
수렴은 하지만 매우 느리다.
지역 최솟값(Local Minimum)에 갇힐 수 있다.
→ 시간이 오래 걸리고 최적해를 못 찾을 수 있음
학습률 스케줄링
처음에는 크게, 학습이 진행될수록 작게 줄인다.
Step Decay, Cosine Annealing, Warm-up 등
→ 빠른 수렴 + 세밀한 최적화 동시 달성
💡 학습률 찾기 — Learning Rate Finder
매우 작은 학습률에서 시작해 점차 키우면서 손실이 가장 빠르게 줄어드는 구간을 찾는다.
손실이 감소하기 시작하는 구간의 학습률을 선택하는 것이 실용적인 방법이다.
fast.ai 라이브러리의 lr_find() 함수가 이 과정을 자동화한다.

 

6. 과적합 방지 기법

딥러닝 모델은 파라미터 수가 매우 많아 과적합이 쉽게 발생한다. 다양한 정규화 기법으로 이를 방지한다.

① 드롭아웃 (Dropout)

학습 시 각 뉴런을 확률 p로 무작위로 비활성화한다. 매 미니배치마다 서로 다른 네트워크를 학습하는 앙상블 효과를 낸다. 예측 시에는 모든 뉴런을 활성화하고 출력에 (1-p)를 곱한다.

학습 시: 노드를 확률 p로 제거 → 나머지 (1-p) 비율의 노드만 활성화
예측 시: 모든 노드 활성화, 출력 × (1-p)로 스케일 조정
보통 p = 0.2~0.5 사용  |  은닉층에 적용, 출력층에는 적용하지 않음
PyTorch: nn.Dropout(p=0.5)

② 배치 정규화 (Batch Normalization)

각 미니배치에서 층의 출력을 평균 0, 분산 1로 정규화한다. 드롭아웃과 함께 현대 딥러닝의 필수 구성 요소.

  • 기울기 소실/폭발 방지 → 더 깊은 망을 학습 가능
  • 학습률을 더 크게 설정 가능 → 빠른 학습
  • 약한 정규화 효과 (드롭아웃을 대체하기도 함)
  • 학습 시 배치 통계, 예측 시 이동 평균 사용

③ L1 / L2 정규화 (Weight Decay)

손실 함수에 파라미터 크기에 대한 패널티를 추가한다.

L2 정규화 (Ridge)
L = L_원래 + λ · Σ wᵢ²

가중치가 0에 가깝게 작아지도록 유도.
대부분의 경우 기본 선택.
L1 정규화 (Lasso)
L = L_원래 + λ · Σ |wᵢ|

불필요한 가중치를 정확히 0으로 만든다.
→ 희소(Sparse) 모델 생성.

④ 조기 종료 (Early Stopping)

검증 데이터 손실이 더 이상 개선되지 않으면 학습을 조기에 멈춘다. 과적합이 시작되는 시점에서 학습을 중단해 최적 성능을 유지한다.

💡 Patience 파라미터
검증 손실이 개선되지 않아도 몇 에포크를 더 기다릴지 설정하는 값이다.
너무 작으면 조기에 종료되고, 너무 크면 과적합이 진행된다.
보통 patience=5~20으로 설정하고, 최소 손실의 모델 가중치를 저장해 복원한다.

⑤ 데이터 증강 (Data Augmentation)

학습 데이터를 변형해서 인위적으로 데이터를 늘리는 방법이다. 이미지에서 특히 효과적이다.

  • 이미지: 회전, 뒤집기, 자르기, 밝기 조절, 색상 변환, Mixup
  • 텍스트: 동의어 교체, 역번역(Back Translation), Random Deletion
  • 시계열: 이동, 노이즈 추가, 스케일 변환

⑥ 요약 — 과적합 방지 기법 비교

기법 원리 주로 사용하는 곳 주의사항
Dropout 뉴런 무작위 제거 FC층, 일부 CNN RNN에는 변형 필요
Batch Norm 층 출력 정규화 거의 모든 딥러닝 배치 크기가 작으면 불안정
L2 정규화 가중치 크기 패널티 대부분의 모델 λ 튜닝 필요
Early Stopping 검증 성능 기반 중단 모든 학습 patience 설정
Data Augmentation 데이터 변형으로 확장 이미지, 텍스트 과도하면 학습 방해

 

7. 신경망 전체 학습 사이클 정리

 

📌 3편 핵심 정리

  • 순전파: 입력 → 각 층 가중합+활성화 → 최종 예측. 행렬 연산으로 표현
  • 손실 함수: 회귀=MSE, 이진분류=BCE, 다중분류=Cross-Entropy
  • 역전파: 연쇄 법칙으로 각 파라미터의 기울기(∂L/∂W) 계산
  • 파라미터 업데이트: W ← W − η · ∂L/∂W (기울기 반대 방향)
  • 미니배치 경사하강법: 현재 표준. 배치 크기 32~256
  • Adam: Momentum + RMSProp. 대부분의 경우 기본 옵티마이저
  • 학습률: 가장 중요한 하이퍼파라미터. 스케줄링으로 동적 조절
  • Dropout: 학습 시 뉴런 무작위 제거. 앙상블 효과
  • Batch Normalization: 층 출력 정규화. 기울기 소실 방지 + 빠른 학습
  • Early Stopping: 검증 손실 기반 조기 종료. 과적합 방지
  • 에포크: 전체 학습 데이터를 한 번 사용하는 단위

▶ 1편(뉴런·활성화 함수) → 2편(MLP·CNN·RNN) → 3편(학습 과정) 순서로 읽으면 전체 흐름이 완성된다.

728x90
반응형

'수학&통계학' 카테고리의 다른 글

인공신경망 모형(ANN) (2) : 신경망 모형 분류  (0) 2026.05.14
인공신경망 모형(ANN) (1) : 뉴런, 층, 활성화 함수  (0) 2026.05.14
앙상블 기법  (0) 2026.05.14
의사결정나무  (0) 2026.05.14
K-NN  (0) 2026.05.14