콘텐츠로 이동

P2-4.6 합성함수(composite function)와 연쇄 법칙(chain rule)

Section ID: P2-4.6 Version: v2026.09.15

합성함수(composite function)는 한 함수의 출력을 다음 함수의 입력으로 넣은 함수입니다. 연쇄 법칙(chain rule)은 각 단계가 미분 가능할 때 단계별 변화율을 곱해 전체 변화율을 구하는 규칙입니다.

두 단계 계산과 합성함수

\[ y = 2x + 1,\qquad z = y^2 \]

먼저 x로 중간값 y를 계산하고, y를 제곱해 z를 구합니다. 한 식으로 쓰면 z = (2x + 1)²입니다.

단계 식 x = 1일 때
첫 계산 y = 2x + 1 y = 3
다음 계산 z = y² z = 9
전체 계산 z = (2x + 1)² z = 9

일반적으로 z = f(g(x))는 g(x)를 계산한 뒤 그 결과를 f에 넣는다는 뜻입니다. 신경망에서도 한 층의 출력이 다음 층의 입력이 됩니다.

flowchart LR
  X["x=1"]
  Y["y=2x+1=3"]
  Z["z=y²=9"]
  X --> Y --> Z

단계별 변화율의 곱

x=1에서 y=3입니다. 입력이 Δx만큼 조금 변하면 첫 단계에서 Δy=2Δx가 됩니다. 다음 단계에서는 Δz≈6Δy이므로, 중간 변화량을 대입하면 Δz≈6×2Δx=12Δx입니다. 한 단계가 만든 변화량이 다음 단계의 입력 변화량이 되기 때문에 변화율을 곱합니다. 첫 단계는 선형이어서 변화량 관계가 정확하고, 제곱하는 다음 단계는 현재 위치 근처의 근사입니다.

연쇄 법칙을 위 계산에 적용하면 다음과 같습니다.

\[ \frac{dz}{dx} = \frac{dz}{dy}\cdot\frac{dy}{dx} \]

첫 단계 y = 2x + 1의 변화율은 dy/dx = 2입니다. 다음 단계 z = y²의 변화율은 dz/dy = 2y입니다. 따라서 전체 변화율은 2y × 2 = 4y이고, y = 2x + 1을 넣으면 8x + 4입니다.

x = 1에서는 y = 3이므로 다음 값을 얻습니다.

변화 구간 해당 지점의 변화율
x → y 2
y → z 6
x → z 6 × 2 = 12

x를 아주 조금 바꾸면 그 변화가 첫 단계에서 약 두 배, 다음 단계에서 약 여섯 배로 전달되어 최종 변화량은 입력 변화량의 약 열두 배가 됩니다.

바깥 함수의 변화율 2y에는 원래 입력 x=1이 아니라 그 입력으로 계산한 중간값 y=3을 넣어야 합니다. 2×1=2로 계산하면 다른 지점의 변화율을 사용한 것입니다. 일반식으로는 f′(g(x))×g′(x)이며, f′(x)×g′(x)와 구별합니다.

작은 입력 변화로 확인하기

x를 1에서 1.01로 바꾸면 중간값 y는 3에서 3.02로, 최종값 z는 9에서 9.1204로 바뀝니다.

  • 연쇄 법칙으로 근사한 변화량: 12 × 0.01 = 0.12
  • 실제 변화량: 9.1204 − 9 = 0.1204

미분은 한 지점의 순간 변화율이므로 유한한 구간의 변화량과 약간 다를 수 있습니다. 입력 증가량을 0.001로 줄이면 실제 변화량은 0.012004, 미분을 이용한 근삿값은 0.012가 됩니다.

입력의 미분에서 파라미터의 미분으로

앞의 dz/dx는 입력을 바꿀 때 최종 출력이 얼마나 민감하게 변하는지를 나타냅니다. 학습에서는 자료의 입력을 고정하고, 가중치와 편향 같은 파라미터를 바꿉니다. 입력을 a, 예측을 ŷ, 정답을 t로 쓰는 작은 모델을 보겠습니다.

\[ \hat y=wa+b,\qquad L=(\hat y-t)^2 \]

a=2, t=5, 현재 파라미터 w=1, b=1이면 예측은 3이고 손실은 4입니다. 입력과 정답은 고정한 채 w 또는 b만 바꿀 때의 손실 변화율을 구합니다.

계산 결과 의미
∂L/∂ŷ=2(ŷ−t) −4 예측이 조금 커지면 현재 손실은 감소
∂ŷ/∂w=a 2 가중치 변화가 예측에 전달되는 비율
∂ŷ/∂b=1 1 편향 변화가 예측에 전달되는 비율

손실에서 예측까지의 변화율 −4는 두 파라미터 계산에서 함께 사용됩니다. 이를 각 파라미터에서 예측까지의 변화율과 곱합니다.

\[ \frac{\partial L}{\partial w} =\frac{\partial L}{\partial\hat y}\frac{\partial\hat y}{\partial w} =(-4)\times2=-8,\qquad \frac{\partial L}{\partial b} =\frac{\partial L}{\partial\hat y}\frac{\partial\hat y}{\partial b} =(-4)\times1=-4 \]

따라서 [w,b] 순서의 그래디언트는 [-8,-4]입니다. 가중치만 0.01 늘리면 예측은 3.02, 손실은 3.9204로 바뀝니다. 실제 손실 변화 −0.0796은 미분을 이용한 근사 −8×0.01=−0.08과 가깝습니다.

순방향 값과 역방향 미분

순전파는 입력과 현재 파라미터로 예측과 손실을 계산합니다. 역전파는 최종 손실에 대한 변화율을 뒤에서 앞으로 계산하며, 각 연산의 변화율과 결합합니다. 위 사례에서는 순전파에서 구한 예측 3을 사용해 ∂L/∂ŷ=−4를 구하고, 그 값을 앞쪽의 파라미터 미분 계산에 재사용합니다.

flowchart TD
  A["입력·현재 파라미터<br/>a=2, w=1, b=1"]
  B["예측<br/>ŷ=wa+b=3"]
  C["손실<br/>L=(ŷ−t)²=4, t=5<br/>∂L/∂L=1"]
  A --> B
  B --> C
  C -. "∂L/∂ŷ = −4" .-> B
  B -. "∂L/∂w = −8<br/>∂L/∂b = −4" .-> A
  linkStyle 0,1 stroke:#2563eb,stroke-width:2px
  linkStyle 2,3 stroke:#b91c1c,stroke-width:2px

파란 흐름은 값을 계산하는 순서이고, 점선 흐름은 미분값을 계산하는 순서입니다. 역전파가 예측값을 입력으로 되돌리거나 파라미터를 즉시 수정하는 것은 아닙니다. 최종 손실의 자기 자신에 대한 미분 ∂L/∂L=1에서 시작해 앞쪽으로 필요한 변화율을 계산합니다.

연쇄법칙은 합성함수를 미분하는 규칙이고, 역전파는 계산 그래프를 거꾸로 따라가며 중간 결과를 재사용하는 절차입니다. 여러 경로가 같은 파라미터로 이어지면 경로별 기여를 더합니다. 위의 작은 예시는 경로마다 곱하는 과정을 보여 줍니다. 계산된 그래디언트로 파라미터를 실제 갱신하는 일은 옵티마이저가 맡습니다.

연습: 중간값부터 다시 계산하기

첫째, y=2x+1, z=y²에서 x=0일 때 y, z, dz/dx를 구하세요. 둘째, 첫 식을 y=3x+1로 바꾸고 x=1에서 전체 변화율을 구하세요. 셋째, 위 학습 사례에서 편향만 0.01 늘렸을 때 실제 손실 변화와 미분으로 근사한 변화를 비교하세요.

계산과 해설

첫째는 y=1, z=1, dz/dx=(2×1)×2=4입니다. 둘째는 중간값 y=4이므로 (2×4)×3=24입니다. 셋째는 예측이 3.01, 손실이 (-1.99)²=3.9601이 되어 실제 변화는 −0.0399입니다. 미분 근사는 −4×0.01=−0.04입니다.

체크리스트

  • 합성함수를 한 함수의 출력이 다음 함수의 입력이 되는 구조로 설명할 수 있다.
  • y = 2x + 1, z = y²에서 x = 1일 때 전체 변화율 12를 계산할 수 있다.
  • 순간 변화율로 근사한 변화량과 실제 유한 구간의 변화량을 구분할 수 있다.
  • 연쇄 법칙과 역전파의 역할을 구분할 수 있다.
  • 파라미터 변화가 손실에 미치는 영향을 역전파가 계산한다는 점을 설명할 수 있다.

출처와 참고 자료