AI 기초

역전파란 무엇인가?

mm
Unite.AI를 Google의 선호 소스에 추가

Backpropagation은 신경망의 손실이 학습 가능한 매개변수에 따라 어떻게 변하는지를 계산하는 알고리즘입니다. 순방향 패스 동안 기록된 연산들을 거슬러 미분 연쇄 법칙을 적용합니다.

역전파는 그래디언트를 계산하지만, 자체적으로 업데이트를 결정하지는 않습니다. 확률적 경사 하강법이나 AdamW와 같은 옵티마이저가 이러한 그래디언트를 사용하여 가중치, 편향 및 기타 학습 가능한 매개변수를 변경합니다.

핵심 요점

  • 순방향 패스는 중간값을 구축하고 예측을 생성합니다.
  • 손실 함수는 예측값과 목표값을 스칼라 형태의 학습 목표로 변환합니다.
  • 역전파는 지역 미분값과 연쇄 법칙을 사용하여 매개변수 그래디언트를 효율적으로 계산합니다.
  • 현대 프레임워크는 계산 그래프에 대해 역방향 자동 미분을 구현합니다.
Computational graph showing a forward pass from inputs and trainable weights to loss, followed by backward gradient arrows using the chain rule
역전파는 지역 미분값을 재사용하여 손실로부터 모든 기여 매개변수로 정보를 전달합니다.

순방향 패스

간단한 유닛을 고려해 보겠습니다:

z = wx + b
ŷ = activation(z)

입력은 x이며, w와 b는 학습 가능한 가중치와 편향 매개변수입니다. 편향은 일반적으로 가중치와 마찬가지로 학습 중에 변경됩니다. 네트워크는 이러한 연산들을 많이 결합하고, 정규화, 어텐션, 컨볼루션, 잔차 연결 또는 기타 미분 가능한 블록을 포함합니다.

순방향 패스는 이러한 연산들을 실행하고 예측을 생성합니다. 교차 엔트로피나 평균 제곱 오차와 같은 손실 함수가 목표를 측정합니다. 최적의 손실 함수는 작업 및 출력 해석에 따라 달라집니다.

연쇄 법칙

손실 L이 중간값 z에 의존하고, z가 매개변수 w에 의존한다면, 연쇄 법칙은 다음과 같습니다:

∂L/∂w = (∂L/∂z) × (∂z/∂w)

깊은 네트워크는 많은 경로를 포함합니다. 역전파는 계산 그래프를 역방향으로 탐색하면서, 값이 여러 경로를 통해 손실에 영향을 미칠 때 기여도를 누적합니다. 그 결과 순방향 계산에 참여한 모든 학습 가능한 매개변수에 대한 그래디언트가 얻어집니다.

작은 수치 예시

ŷ = wx + b이고, x = 2, w = 3, b = 1이라고 가정합니다. 예측값은 7입니다. 목표값이 5이고 손실이 L = ½(ŷ - y)²이라면, 다음과 같습니다:

  • ∂L/∂ŷ = ŷ - y = 2
  • ∂ŷ/∂w = x = 2
  • ∂L/∂w = 2 × 2 = 4
  • ∂L/∂b = 2 × 1 = 2

옵티마이저는 그 후 w와 b를 음의 그래디언트 방향으로 이동시킬 수 있습니다. 이 식은 선택된 선형 유닛과 제곱 오차 손실에 특화된 것이며, 보편적인 역전파 규칙은 고정된 “오류” 방정식이 아니라 실제 그래프에 대한 연쇄 법칙입니다.

역전파와 경사 하강법 비교

경사 하강법은 최적화 방법입니다. 역전파는 필요한 그래디언트를 제공합니다. 학습 단계는 일반적으로 다음과 같이 진행됩니다:

  1. 저장된 그래디언트를 초기화하거나 재설정합니다.
  2. 순방향 패스를 실행합니다.
  3. 손실을 계산합니다.
  4. 역방향 패스를 실행합니다.
  5. 옵티마이저 업데이트를 적용합니다.

이 개념들을 분리하면 모멘텀, AdamW, 그래디언트 누적, 혼합 정밀도 학습 등을 이해하기가 쉬워집니다.

자동 미분

PyTorch와 같은 프레임워크는 순방향 패스 동안 연산을 기록하고 그래프를 구축합니다. 역방향 자동 미분은 출력에서 매개변수로 역방향으로 벡터-야코비안 곱을 효율적으로 계산합니다. 이는 고정된 네트워크에 대해 직접 미분을 코딩하는 것보다 더 일반적이며, 현대 딥러닝 프레임워크의 기반이 됩니다.

일부 연산은 미분 불가능하거나 불안정한 미분값을 가집니다. 프레임워크는 특정 경우에 서브그라디언트나 문서화된 규칙을 정의하지만, 실무자는 여전히 분리된 텐서, 제자리 연산, 수치 정밀도를 이해해야 합니다.

소실 및 폭발하는 그래디언트

다수의 층이나 시간 단계에서 반복적인 곱셈은 그래디언트를 매우 작거나 크게 만들 수 있습니다. 그래디언트 소실은 초기 층의 학습을 늦추고, 그래디언트 폭발은 업데이트를 불안정하게 합니다. ReLU 계열 활성화 함수, 신중한 초기화, 잔차 연결, 정규화, 게이트된 순환, 그래디언트 클리핑 등이 도움이 되지만, 어느 하나도 보편적인 해결책은 아닙니다.

그래디언트 확인

유한 차분 그래디언트 검사는 분석적 또는 자동 그래디언트를 수치 근사와 비교합니다. 이는 느리지만 사용자 정의 연산을 디버깅하는 데 유용합니다. 그래디언트 노름을 모니터링하고 NaN 또는 무한값을 감지하면 학습 중 불안정성을 드러낼 수 있습니다.

계산 그래프를 통한 연쇄 법칙

역전파는 스칼라 손실에 대한 모든 미분 가능한 매개변수의 그래디언트를 효율적으로 계산합니다. 순방향 패스는 중간값을 계산 그래프에 기록합니다. 손실에서 시작하여 역방향 자동 미분이 연쇄 법칙을 적용하고, 지역 미분값을 곱하며 경로가 만나는 지점에서 기여도를 누적합니다. y = f(x, w)인 층의 경우, y에 대한 상류 민감도는 부분 미분과 결합되어 x와 w에 대한 민감도를 생성합니다. 역전파는 그래디언트를 계산하고, 옵티마이저가 매개변수 변화를 결정합니다.

간단한 선형 층은 y = Wx + b를 생성합니다. W에 대한 그래디언트는 상류 그래디언트와 입력의 외적이며, b에 대한 그래디언트는 상류 값을 합산합니다. 입력에 대한 그래디언트는 전치된 가중치 행렬과 곱해집니다. 활성화 함수는 요소별 미분을 추가합니다. 컨볼루션, 정규화, 어텐션, 순환 재사용은 동일한 그래프 원리를 따르지만 올바른 텐서 형태, 브로드캐스팅, 마스킹, 매개변수 공유가 필요합니다. 프레임워크는 역전파 후 저장된 활성화를 해제하지만, 유지하도록 설정하면 메모리는 배치 크기, 깊이, 시퀀스 길이에 따라 증가합니다.

그래디언트 실패, 검증 및 엔지니어링 실무

많은 미분값들의 곱은 소실하거나 폭발할 수 있습니다. ReLU와 유사한 활성화, 신중한 초기화, 정규화, 잔차 연결, 게이팅, 그래디언트 클리핑은 각각의 메커니즘을 해결합니다. 포화된 활성화와 미분 불가능한 연산은 유용한 신호를 차단할 수 있으며, 잘린 역전파는 시퀀스 히스토리를 제한하고, 혼합 정밀도는 손실 스케일링 없이 언더플로우가 발생할 수 있습니다. 그래디언트 폭발은 증상이므로, 클리핑은 학습률, 데이터, 아키텍처, 수치 오류에 대한 조사와 함께 이루어져야 하며, 이를 숨기기 위한 것이 아닙니다.

사용자 정의 연산은 작은 double-precision 입력에 대해 유한 차분 그래디언트 검사를 수행하여 미분 불가능한 지점을 피하면서 검증합니다. 그래디언트 노름, NaN, 비활성 매개변수, 그리고 그래디언트가 예상 모듈에 도달했는지 확인합니다. 누적된 그래디언트를 의도적으로 초기화하고, 드롭아웃과 정규화에 대한 학습과 평가 동작을 구분합니다. 체크포인트는 메모리를 절약하기 위해 활성화를 재계산하며, 분산 학습은 그래디언트를 일관되게 집계해야 합니다. 훈련 손실이 감소한다는 것은 최적화 경로가 존재한다는 것을 의미하지만, 그래디언트가 개념적으로 정확하거나 데이터가 누수가 없으며 모델이 일반화된다는 것을 보증하지는 않습니다.

실습 예시: 사용자 정의 신경층 검증

엔지니어는 오디오 네트워크를 위해 미분 가능한 스펙트럼 층을 구현합니다. 작은 double-precision 테스트는 입력 및 매개변수 전반에 걸쳐 중앙 유한 차분과 자동 그래디언트를 비교하며, 연산이 의도적으로 미분 불가능한 지점은 제외합니다. 형태, 브로드캐스팅, 패딩, 복소수-실수 변환은 별도 사례로 다룹니다. 테스트는 매개변수가 재사용될 때 누적된 그래디언트를 검증하고, 마스크된 오디오 프레임이 그래디언트를 생성하지 않음을 확인합니다.

학습 중에 대시보드는 그래디언트와 활성화 노름, NaN, 비활성 매개변수, 손실 스케일링을 추적합니다. 의도적으로 손상된 배치는 옵티마이저 업데이트 전에 검증이 비유한 출력을 잡는지를 확인합니다. 혼합 정밀도와 내보낸 구현은 레퍼런스와 비교됩니다. 체크포인트 재개 테스트는 옵티마이저 상태와 무작위 순서를 포함합니다. 전체 손실이 감소했다고 해서 해당 층이 받아들여지는 것이 아니라, 단위 그래디언트, 수치 안정성, 하위 일반화가 모두 일관된 증거를 제공해야 합니다.

구현 증거 및 운영 준비성

프로덕션 결정을 내릴 때는 성공적인 시연보다 더 많은 것이 필요합니다. 대상 사용자, 운영 환경, 입력·출력, 의존성, 책임자, 그리고 각 주요 실패의 결과를 정의합니다. 튜닝 전에 재현 가능한 기준선과 버전 관리된 평가 세트를 구축합니다. 일반적인 경우, 경계 조건, 잘못된 또는 누락된 입력, 데이터 분포 변화, 의존성 중단, 오용, 그리고 서비스가 부족할 가능성이 높은 그룹이나 환경을 테스트합니다. 작업 품질을 보정 또는 불확실성, 지연 시간, 처리량, 자원 비용, 접근성, 프라이버시, 보안과 함께 측정합니다. 모든 변환과 임계값을 기록하여 독립적인 검토자가 결과를 재현하고 매력적인 프로토타입과 증거를 구분할 수 있도록 합니다.

출시 전에 릴리스, 예외, 변경, 롤백, 폐기에 대한 권한을 지정합니다. 단계적 롤아웃을 사용하고 안전한 백업을 유지하며, 의도적으로 주입된 실패를 통해 모니터링을 검증합니다. 운영 텔레메트리는 입력 품질, 출력 동작, 모델·규칙 버전, 의존성 상태, 인간 개입, 확인된 결과를 불필요한 민감 데이터 수집 없이 보여줘야 합니다. 알림 임계값과 대응 담당자를 정의하고, 배포 후 실제 증거를 검토하여 오프라인 성능이 지속된다고 가정하지 않습니다. 데이터 소스, 사용자, 모델, 벤더, 정책, 하드웨어, 목표가 변경될 때마다 재평가합니다. 유지되는 시스템은 문서화된 복구, 사고 학습, 삭제·보존 절차, 그리고 비활성화 또는 교체 시점을 명확히 해야 합니다.

자주 묻는 질문

역전파가 가중치를 업데이트합니까?

역전파는 그래디언트를 계산합니다. 옵티마이저는 해당 그래디언트와 학습률, 그리고 모멘텀이나 적응 모멘트와 같은 상태를 사용하여 업데이트를 적용합니다.

역전파는 생물학적으로 현실적인가요?

표준 역전파는 공학적 알고리즘이며, 생물학적 뇌에서의 학습을 상세히 모델링한 것으로 받아들여지지 않습니다. 과거의 신경 유사성을 생물학적 동등성으로 간주해서는 안 됩니다.

주요 참고문헌

블로거이자 프로그래머로 Machine Learning과 Deep Learning 주제에 전문가입니다. 다니엘은 다른 사람들이 AI의 힘을 사회적善으로 사용하는 것을 돕기를 희망합니다.