728x90
- 오차역전파 복습 과제
- 학습 목표
- 오차역전파 알고리즘의 핵심 원리를 이해한다.
- 연쇄법칙을 기반으로 한 기울기 계산 방식을 수식과 함께 설명할 수 있다.
- Affine 및 Softmax 계층의 역전파 수식을 직접 유도할 수 있다.
- 오차역전파의 개요
오차역전파 (Backpropagation)
- 인공신경망에서 출력층의 오차를 입력층 방향으로 역전달하며 각 가중치에 대한 손실 함수의 기울기를 계산하는 알고리즘
- 연쇄법칙 (Chain Rule) 기반으로 작동하며, 경사하강법 (Gradient Descent) 등 최적화 알고리즘과 함께 사용됨
💡 목적: 손실 함수를 최소화하는 방향으로 가중치와 편향을 업데이트
- 연쇄법칙 (Chain Rule) 정리
(1) 단변수 함수의 연쇄법칙
- 함수 y = f(u), u = g(x) 라면 dy/dx = (dy/du) * (du/dx)
(2) 다변수 벡터 함수의 연쇄법칙 (Jacobian)
- y = f(u), u = g(x) 일 때, ∂y/∂x = ∂y/∂u × ∂u/∂x
- 역전파는 이 Jacobian을 층마다 연쇄적으로 곱하여 기울기를 계산함
- 오차역전파 단계 요약
- 순전파 (Forward Propagation): z = Wx + b, a = f(z)
- 손실 계산 (Loss): L = -∑ t_i log y_i
- 출력층에서 기울기 계산: Softmax+CrossEntropy일 경우: ∂L/∂z = y - t
- 연쇄법칙을 적용해 역전파: 예) ∂L/∂W = ∂L/∂z × x^T
- Affine 계층 역전파 수식 정리
순전파:
- z = Wx + b, a = f(z)
역전파 (기울기 계산):
- 출력 기울기: ∂L/∂z
- 입력 기울기: ∂L/∂x = W^T × ∂L/∂z
- 가중치 기울기: ∂L/∂W = ∂L/∂z × x^T
- 편향 기울기: ∂L/∂b = ∂L/∂z
- Softmax + Cross Entropy 조합
Softmax:
- y_i = e^{z_i} / ∑_j e^{z_j}
Cross Entropy:
- L = -∑_i t_i log y_i
- 역전파 결합 결과:
- ∂L/∂z = y - t
💡 예측확률 벡터 y에서 정답 벡터 t를 빼면 곧장 기울기를 얻을 수 있어 계산이 간단해짐
전체 역전파 구조
∂L/∂W^(l) = ∂L/∂a^(L) × ∂a^(L)/∂z^(L) × … × ∂z^(l)/∂W^(l)
각 계층에서의 기울기는 그 계층의 입력과 가중치에 따라 계산되며, 출력층에서 은닉층으로 역으로 이동하며 전파됨
- 최종 오차역전파 구현
오차역전파에서 최종적으로 손실 함수에 대한 각 파라미터(W, b)의 기울기를 구하게 되며, 다음과 같이 정리됩니다.
- 손실 함수: L = -∑ t_i log y_i (t는 정답 one-hot 벡터)
- Softmax 함수와 Cross-Entropy가 결합된 경우: ∂L/∂z = y - t
이를 기반으로 각 계층의 가중치 W와 편향 b에 대해 아래와 같이 기울기를 계산합니다:
- ∂L/∂W = (y - t) × x^T
- ∂L/∂b = y - t
이러한 기울기는 경사하강법 등 최적화 알고리즘을 통해 아래와 같이 파라미터를 갱신하는 데 사용됩니다:
- W ← W - η * ∂L/∂W
- b ← b - η * ∂L/∂b
(η는 학습률 learning rate)
728x90
'AI' 카테고리의 다른 글
가상의 Function Calling 함수를 이용한 실습 (3) | 2025.04.09 |
---|---|
Function Calling 에이전트 (0) | 2025.04.09 |
Function Calling 예시 - 행거 챗봇 예시 (0) | 2025.04.09 |
여러 문서에서 찾아서 답변하는 챗봇 만들기 (0) | 2025.04.08 |
LoRA Tuning (0) | 2025.04.08 |