📚 [Archive] CS & AI 스터디/[STUDY] 인공지능 🤖

[신경망 학습 알고리즘] 순전파 역전파

히주 2025. 2. 5. 22:25

 

신경망(Neural Network)은 입력 데이터를 받아 연산을 수행한 후 출력을 생성하는 구조를 가집니다. 이 과정에서 가중치(weight)를 학습하기 위해 순전파(Forward Propagation)와 역전파(Backpropagation)가 사용됩니다. 이 두 과정의 원리를 이해봅시다.

 

 


 

1. 순전파 (Forward Propagation)

입력 데이터를 받아 출력을 계산하는 과정

이 과정에서 Affine Layer(즉, 완전연결층에서 이루어지는 행렬 연산)와 활성화함수(ex) ReLU, Sigmoid, Softmax)가 포함되어져 있음

풀어 설명하자면 입력층(Input Layer)에서 입력 데이터를 받아 네트워크에 전달 > 은닉층(Hidden Layer)에서 가중치와 바이어스 적용 후 활성화 함수를 통과 > 출력층(Output Layer)에서 최종 출력을 생성한다고 말 할 수 있음

Input > Output 방향으로 출력값을 계산하는 과정. 실측값과 차이인 오차(loss) 계산.

 

 

 

 

2. 역전파 (Backpropagation)

신경망의 출력과 실제 정답 간의 오차를 줄이기 위해 가중치를 조정하는 과정

핵심 아이디어는 오차를 미분을 통해 가중치에 대한 기울기로 변환하고 이를 이용하여 가중치를 업데이트하는 것

 

Output > Input 방향으로 가중치를 갱신하는 과정. 딥 러닝에서 학습이 이루어짐.

 

 

 

📌 역전파(Backpropagation) 의 기본적인 흐름

1. 손실 함수(Loss Function) 계산

  • 예측값과 실제값의 차이를 계산하는 손실 함수를 사용
  • 예로 MSE(평균제곱오차), Cross-Entropy Loss 등이 있

2. 출력층에서의 오차 계산

  • 손실 함수를 미분해서 출력층에서의 오차 기울기(Gradient)를 계산
  • 미분한 결과가 클수록 해당 가중치가 손실에 더 큰 영향을 미친다는 의미

3. 오차의 역전파

  • 연쇄 법칙을 사용하여 가중치에 대한 변화량(Gradient)을 각 층으로 전달

4. 가중치 업데이트

  • 경사 하강법(Gradient Descent)을 사용하여 가중치 업데이트

 

💡 한마디로 정리하자면! 손실을 계산하고  그 손실이 어디서 발생했는지 미분으로 찾아서 가중치를 조금씩 수정하는 과정