카테고리 없음

3-2. 딥러닝 학습의 원리

kimyeji2358 2026. 3. 27. 01:39

1. 신경망 학습의 핵심

처음부터 정답을 아는 것이 아니라

입력에 대한 예측 출력과 실제 정답과의 차이를 보고

내부 값(가중치)을 줄이는 방향으로 조금씩 수정하는 과정

 

핵심 정보: 파라미터를 어느 방향으로 얼마나 수정해야 하는가를 알려주는 개념 → 기울기


2. 수학 기초 (학습의 방향키)

1) 미분 (Derivative)

어떤 변수를 조금 바꾸었을 때, 함수값이 얼마나 변하는지를 나타내는 값(변화율)

ex) $y=x^2$일 때 미분은 $dy/dx=2x$

 

- 역할

  • 값을 증가 또는 감소시켜야 할지 방향 결정
  • 변화에 대한 민감도를 측정하여 경사하강법의 핵심 입력값이 됨

2) 편미분 (Partial Derivative)

신경망에는 여러 가중치가 있으므로

다른 변수는 고정하고 단 하나의 변수만 변화시킬 때의 변화율을 구하여

각 가중치의 개별 영향력을 측정

ex) $f(x,y) = x^2 + y^2$에서

$x$에 대한 편미분

$\partial f/\partial x = 2x$

 $y$에 대한 편미분

→ $\partial f/\partial y = 2y$

 

3) 그래디언트 (Gradient, $\nabla$)

각 파라미터(가중치)에 대한 편미분 값을 한데 모아 만든 벡터

 

- 의미

  • 손실이 가장 빠르게 증가하는 방향과 증가율을 나타냄
  • 학습은 그래디언트의 반대 방향( $-\nabla L$)으로 이동

3. 손실함수 (Loss Function)

- 손실함수의 역할

예측값과 정답의 차이를 하나의 수치로 표현하여, 

모델이 무엇을 줄여야 하는지 방향을 제시함

 

- 문제 유형에 따른 손실함수 선택

1) 평균제곱오차 (MSE)

주로 회귀(연속값 예측) 문제에 사용

$$MSE = \frac{1}{n}\sum(y-\hat{y})^2$$

y : 실제값

$\hat{y}$: 예측값

n: 데이터 개수

 

- 제곱하는 이유

  • 오차를 제곱하므로 양/음 오차가 상쇄되지 않음
  • 오차가 클수록 큰 패널티를 부여

  • MSE가 0에 가까울수록 추측한 값이 원본에 가까움 → 정확도 높음
  • 예측값과 실제값 차이의 면적의 평균과 같다

2) 교차엔트로피 (Cross-Entropy)

주로 분류(확률 예측) 문제에서 정답에 대한 확신도를 평가할 때 사용

정답 클래스에 할당한 확률이 높을수록 손실이 작아지도록 정의된 함수

 

$$L = -\sum y \cdot \log(\hat{y})$$

 

- 특징

정답 클래스에 대해 예측한 확률에 로그를 취함

  • 예측 확률이 1에 가까우면 손실이 0에 수렴
  • 예측 확률이 0에 가까우면 손실이 커짐

연속값을 다루는 회귀 문제 → MSE

확률을 다루는 분류 문제 → 교차엔트로피

 

손실함수를 통해 모델이 무엇을 줄여야 할지를 수치화했다면

어떻게 줄여나갈지(실행 방법)가 필요

손실 지형에서 낮은 곳을 내려가는 알고리즘 → 경사하강법


4. 경사하강법과 학습룰 (어떻게 줄일 것인가)

○ 경사하강법 (Gradient Descent)

손실함수의 값을 줄이기 위해

현재 기울기의 반대 방향으로 모델의 파라미터를 조금씩 이동시켜 최소점을 찾는 최적화 방법

 

- 비유

손실을 지형으로 보았을 때, 가장 낮은 지점(최소값)을 향해 경사를 따라 내려가는 것과 같음

 

- 수식

현재 가중치 - (기울기 × 학습률)

$$\theta = \theta - \eta \nabla J(\theta)$$

$\theta$ : 파라미터(가중치)

$\eta$ : 학습률

$\nabla J(\theta)$ : 손실함수의 기울기

 

○ 학습률 (Learning Rate, $\eta$)

한 번 업데이트할 떄 이동하는 보폭의 크기

왼: 학습률이 클 때 / 오: 학습률이 작을

  • 학습률이 너무 클 때
    • 최적점을 지나침
    • 불안정한 수렴: 지그재그로 이동
    • 손실이 폭증하며 발산(불안정)함
  • 학습률이 작을 때
    • 수렴 속도가 매우 느려짐
    • 기울기가 작은 평평한 영역에서 진전 없이 정체될 수 있음
    • 비효율: 만흔 에폭 필요, 자원 소모 증가

경사하강법으로 가중치를 업데이트하려면

신경망 내의 모든 가중치가 오차에 미친 기울기를 각각 알아야함

신경이 깊어질수록 이를 앞에서부터 일일이 계산하는 것은 불가능

 

→ 출력층의 오차를 거꾸로 전달하며 한 번에 기울기를 구하는 역전파 필요


5. 역전파 (Backpropagation)

출력층에서 발생한 오차를 앞쪽 은닉층으로 거꾸로 전달하며

신경망 전체의 모든 가중치에 대한 기울기를 효율적으로 계산

+ 연쇄법칙 이용

 

- 입력 - 기울기 계산까지의 전체 과정

입력 → 순전파 → 손실 계산 → 역전파

 

- 역전파 단계

1) 순전파(Foward)

  • 입력 → 은닉 → 출력 으로 진행
  • 예측값 $\hat{y}$ 계산
  • 각 층의 중간 출력값과 z값(가중합)을 메모리에 저장해 역전파에 활용함

2) 손실 계산

  • 정답 y와 예측값 $\hat{y}$를 비교하여 손실 L을 계산
  • 수식: $L=L(y,\hat{y})$
  • 학습 목표 : 손실 L 최소화

3) 출력층 오차

  • (역전파 출발점) 출력층의 오차 ($\delta_{out}$)를 계산
  • 수식 (예시): $\delta_{out}=\partial L/\partial z_{out}$

4) 오차 전달

  • 연쇄법칙 기반
  • 앞서 구한 출력층의 오차를 이전 층인 은닉층 방향으로 거꾸로 전달

5) 편미분 계산

  • 거꾸로 전달받은 오차와 1단계에서 저장해둔 입력값(중간값)을 곱함
  • 각 파라미터가 전체 손실에 미친 영향(편미분)을 구함
  • 계산 대상 (수식): $\partial L/\partial w$, $\partial L/\partial b$

6) 경사하강법 갱신

  • 5단계에서 구한 기울기의 반대 방향으로 파라미터(가중치, 편향)을 업데이트
  • 한 번에 이동할 보폭(학습률)을 곱함
  • 가중치 갱신: $w := w - \eta \cdot \partial L/\partial w$
  • 향 갱신: $b := b - \eta \cdot \partial L/\partial b$

6. 학습 방법 (데이터 업데이트 단위)

○ Batch GD(경사하강법)

  • 에폭당 1회
  • 전체 데이터를 모두 계산한 뒤 파라미터 업데이트
  • 이동 방향은 안정적
  • 계산이 무겁고 속도가 느림

○ SGD(확률적 경사하강법)

  • 샘플 1개마다 파라미터 갱신
  • 빠른 갱신으로 초기 하강이 빠름
  • 샘플 1개에만 의존하므로 전체 데이터의 방향과 맞지 않아 노이즈가 크고 심하게 진동

○ Mini-batch (미니배치)

  • 전체 데이터를 32, 64 등의 작음 묶음으로 나누어 업데이트하는 방식
  • 속도와 안정성의 균형을 잡을 수 있음
  • GPU의 병렬 처리 구조를 활용해 연산 효율 극대화
  • 학습 루프: 배치분할 → 순전파 → 손실 계산 → 역전파 → 갱신 → 다음 배치

7. 경사하강법의 한계

○ 극소점 (Local Minima)

주변 점들과 비교했을 때는 손실이 가장 작지만, 전체 지형에서 가장 낮은 전역 최소값은 아님

▷ 지역 골짜기에 갇혀 학습이 멈추는 현상

  • 극소점 : 극소적으로만 최솟값
  • 전역 최솟값: 전체 영역 중 최솟값

 

○ 평평한 영역 (Flat Region)

손실 표면의 기울기가 거의 0에 가까워

극소점이 아닌데도 업데이트 크기가 미세해져 학습이 정체되는 넓은 구간

 

○ 경사 방향 오류

길고 좁은 골짜기 지형에서 전역적인 최적 방향을 찾지 못하고 국소 기울기만 따라가다가

좌우 벽을 향해 불필요하게 지그재그로 진동하는 현상

 


8. 최적화 알고리즘

○ 모멘텀(Momentum)

이전 이동 방향의 관성을 누적하여 현재 기울기에 더하는 방식

→ 현재 기울기 + 과거 이동 흐름

  • 지그재그 진동을 상쇄하여 완화함
  • 일관되게 내려가는 방향으로 속도를 가속하여 평평한 영역을 통과함

 

○ AdaGrad (적응형 학습률)

파라미터 별로 과거의 기울기 제곱합을 누적하여 학습률을 자동 조절함

  • 크게 변한 파라미터는 보폭을 줄임
  • 드물게 변한 파라미터는 보폭을 키움

- 단점

  • 시간이 지날수록 누적값이 커져 학습룰이 0 으로 수렴함
    • 보완: RMSProp 처럼 이동평균으로 최근 기울기 중심 반영

 

○ RMSProp

AdaGrad의 단점을 보완해 기울기 제곱의 이동평균을 사용함

오래된 과거 정보는 잊게 만들어, 학습 후반부에도 적절한 학습률을 유지

 

- 효과

  • 진동 완화
  • 안정적 수렴
  • 평평한 영역에서도 보폭 유지 학습 지속

 

○ Adam (Adaptive Moment Estimation)

모멘텀(방향 안정성, 1차 모멘트) + RMSProp(적응적 보포 크기, 2차 모멘트) 

  • 빠른 수렴과 진동 억제에 유리
  • 파라미터별 적응적 학습률로 안정적 업데이트
  • 초기 설정에 비교적 강건, 다양한 문제에서 무난

9. 과적합과 데이터 분할

○ 과적합 (Overfitting)

모델이 훈련 데이터의 잡음과 우연한 패턴까지 암기해버려

훈련 손실은 낮지만

처음 보는 새로운 데이터에 대한 성능은 오히려 떨어지는 현상

 

- 주요 원인

  • 모델 과복잡
  • 데이터 부족
  • 과도한 학습
  • 정규화 부재

→ 훈련에만 최적화된 상태, 일반화를 위해 원인(복잡도, 데이터, 학습시간, 정규화)을 관리해야함

 

○ 데이터 분할 원칙

이를 방지하고 평가하기 위해 데이터를 세 가지로 나눔

 

1) Train (훈련셋)

  • 모델의 가중치와 파라미터를 학습하는데 직접 사용

2) Validation (검증셋)

  • 목적: 학습 중 모델 선택, 튜닝
    • 학습 과정 중 모델의 과적합 여부를 모니터링함
    • 최적의 하이퍼파라미터나 조기 종료 시점을 선택하는 데 사용됨

3) Test (테스트셋)

  • 목적: 최종 일반화 성능 측정
    • 모든 구조와 튜닝이 확정된 후, 모델의 최종 일반화 성능을 산출하기 위해 단 1회만 사용됨
  • 의사결정에 사용 금지

10. 과적합 방지 기술

○ 드롭아웃 (Dropout)

학습 과정 중 지정된 확률(p, 보통 0.1~0.5)로 일부 뉴런의 연결을 무작위로 비활성화함

  • 특정 뉴런 조합에만 과도하게 의존하는 공적응 현상 방지
  • 여러 서브 네트워크의 앙상블 효과를 내어 일반화 성능을 높임

 

○ 배치정규화 (BatchNorm)

층을 지나는 입력 데이터의 분포를 각 미니 배치의 평균과 분산을 이용해 0~1 수준으로 정규화함

  • 내부 공변량 변화를 완화해 기울기의 폭주, 소실을 감소시킴
  • 더 큰 학습률을 안전하게 사용 가능하게 하여 수렴을 가속함

 

○하이퍼파라미터

모델 연산이 아닌 사람이 직접 설정하는 변수들

이를 조절하여 과적합/과소적합의 균형을 맞춤

 

- 학습률

  • 너무 크면 불안정
  • 너무 작으면 느림

- 배치 크기

  • 32/64/128 등 자원 한도 내에서 설정

- 에폭 수

 

- 정규화 강도

  • 과적합 시 중대
  • 과소적합 시 완화

- 드롭아웃 비율

  • 0.1~0.5 범위 탐색
  • 과적합이 심할수록 높임
  • 성능 정체 시 낮춤

11. 모델 평가 지표

○ 정확도 (Accuracy)의 함정

데이터 불균형(예: 정상 95%, 이상 5%) 상태에서는 무조건 정상이라고만 찍어도 정확도가 95%가 나오는 착시 발생

→ 이를 막기 위해 여러 지표 확인

 

- Precision(정밀도)

$$\frac{TP}{TP+FP}$$

양성이라고 예측한 것 중 진짜 양성 비율

▷ 거짓 양성(FP) 비용이 클 때 중요

 

- Recall(재현율)

$$\frac{TP}{TP+FN}$$

실제 양성 중 올바르게 양성으로 찾아낸 비율

▷ FN 비용이 클 때 중요, ex) 암 진단

 

- F1-score

$$2 \times \frac{Precision \times Recall}{Precision + Recall}$$

정밀도와 재현율의 조화평균

두 지표의 균형을 강제하여 한쪽으로만 치우치는 쪽에 패널티를 부여하는 종합 평가 지표

 

- ROC-AUC vs PR-AUC

  ROC-AUC PR-AUC
핵심 임계값 전반의 분리 능력 평가 양성(회귀) 탐지 품질에 집중
불균형 민감도 상대적으로 낮음 매우 높음
유리한 상황 양, 음 클래스 균형, 오류 비용이 유사 양성 최소, 양성 누락 비용이 큼

 

균형 잡힌 데이터에서의 전반적 분류 능력 → ROC-AUC로 평가

양성 클래스가 극도로 회귀한 불균형 데이터 → PR-AUC

 


전체 흐름 요약

1. 목표 설정 : 손실함수가 틀린 정도를 정의

2. 방법 도출: 미니배치와 역전파를 통해 효율적으로 기울기 방향 계산

3. 최적화: Adam 등의 옵티마이저를 통해 진동 없이 안정적으로 최적점을 찾아감

4. 일반화 : 드롭아웃과 배치정규화로 정답을 외우는 과적합을 방지하여 현실 데이터 적응력을 높임

5. 평가: Accuracy의 함정을 피해, 목적에 맞는 혼동행렬 기반 세부 지표로 성능을 검증