역전파(backpropagation)

탱구리·2026년 1월 8일

딥러닝

목록 보기
3/6

역전파란?

WW를 어떻게 업데이트해야 Loss가 줄어들까?

CNN에는 수백만 개의 가중치가 있다.
Q. 이 중 어떤 가중치를
Q. 얼마만큼
Q. 어떤 방향으로 바꿔야 할까?

역전파(backpropagation)란 모델의 출력에서 발생한 오차를 기준으로, 각 가중치가 오차에 얼마나 기여했는지를 계산하여 가중치를 어떻게 고쳐야 할지를 알려주는 과정이다.

chain rule(연쇄법칙)을 이용해 전체 신경망 손실에 대해 각 파라미터가 얼마나 기여했는지를 뒤에서부터 계산하는 방법이다. 결과적으로 각 파라미터에 대해 얼마나 수정해야 loss가 줄어드는지를 알 수 있게 된다.

  • 여러 레이어가 겹친 신경망 전체의 loss에 대한 미분을
  • 각 층의 미분을 곱하는 방식으로 계산

언제 역전파가 일어나는가?

  1. Forward propagation (순전파)

    • 올바른 순서대로 학습 진행
    • 최초 입력값으로부터 각 층마다 존재하는 가중치와 연산하고 활성화 함수를 통과하는 과정을 순서대로 이어나가 최종 layer까지 계산한 후 실제 label과 오차를 계산하는 것
  2. Loss 계산

    • 예측값 vs 정답
  3. Backpropagation (역전파)

    • 반대 방향으로 학습을 진행
    • 오차를 뒤에서 앞으로 전달
    • 순전파에서 계산한 오차를 기반으로 기울기를 사용하여 가중치 업데이트를 위해 시행
  4. Weight update

    • 가중치 수정

역전파를 통해 학습률, 최적화가 가능하다. 역전파가 없다면 어떤 값이 loss에 얼마만큼 기여했는지 알 수 없다. 그러나 역전파가 있으면 파라미터마다 gradient가 있고 gradient 기반 최적화(SGD, Adam 등)이 가능해진다.

예시

  • CONV층 필터 가중치 업데이트
    • 이 필터가 엣지를 잘 잡았나?
    • 방향이 틀렸나?
    • 입력 쪽으로 오차 전달
      • 다음 층도 수정할 수 있도록 gradient 전달
    • "CNN이 엣지 필터를 학습했다."
      = "역전파가 필터 가중치를 조금씩 조정해서 결과적으로 엣지에 반응하는 필터가 탄생했다."

Reference

0개의 댓글