딥러닝을 처음 공부할 때 많은 사람들이 공통적으로 느끼는 의문이 있다.
바로 “출력 오차는 하나인데, 수많은 가중치(w)는 어떻게 각각 다른 방식으로 업데이트되는가?” 하는 것이다.
겉보기엔 오차는 하나의 숫자이며, 입력값들도 그냥 숫자인데—도대체 어떤 기준으로 수많은 가중치가 제각기 다른 방향과 크기로 조정되는 걸까?
이 의문은 곧 **역전파(backpropagation)**의 본질과 미분의 역할에 대한 직관으로 연결된다.
수학이 왜 필요한지, 왜 오차를 단순히 1/n로 나누지 않는지를 알게 되는 지점이다.
1. 전체 오차는 하나지만, 각 가중치의 “책임”은 다르다
신경망의 출력값이 실제값과 차이가 날 경우, 우리는 이를 오차 또는 손실(Loss)이라 부른다.
예를 들어 예측값이 1.5고, 실제값이 3.0이면, Mean Squared Error 기준 손실은 0.5 × (1.5 − 3.0)² = 1.125이다.
이 값은 전체 모델이 잘못한 정도, 즉 **”총 오차”**를 나타내지만, 이 총 오차를 만든 책임은 각 가중치마다 다르게 존재한다.
왜냐하면, 각각의 가중치는 서로 다른 입력값과 연결되어 서로 다른 영향을 출력에 미쳤기 때문이다.
입력값이 0이었던 뉴런은 오차에 아무런 영향을 주지 않았을 것이고, 입력값이 크고 가중치도 큰 뉴런은 결과값에 강하게 영향을 줬을 것이다.
이런 **“오차 기여도”**는 감으로 나누지 않는다. 바로 **미분(∂L/∂w)**이 정확하게 계산해준다.
2. 미분은 “얼마나 기여했는가?”를 계산하는 도구다
미분은 단순한 수학 기교가 아니라, **”이 변수(w_i)를 조금 바꿨을 때 출력이 얼마나 변하는가”**를 수치화한 것이다.
즉, 가중치가 오차에 얼마나 기여했는지를 정확하게 계산하는 기법이다.
오차를 각 가중치에 대해 미분하면 다음과 같은 식이 나온다:
[
\frac{\partial L}{\partial w_i} = (\hat{y} – y) \cdot x_i
]
여기서:
- ((\hat{y} – y))는 전체 오차,
- (x_i)는 해당 가중치에 연결된 입력값이다.
입력값이 크면 클수록, 해당 가중치는 출력에 더 큰 영향을 미쳤고, 따라서 오차 책임도 더 크다는 뜻이다.
반대로 입력값이 작거나 0에 가까우면, 거의 영향이 없었으므로 가중치 조정도 미미하다.
3. 각 가중치는 입력값(x)과 오차(δ)를 곱한 만큼 조정된다
실제 가중치 업데이트 식은 다음과 같다:
[
w_i := w_i – \eta \cdot \delta \cdot x_i
]
- (\eta): 학습률 (learning rate)
- (\delta = \hat{y} – y): 출력 오차
- (x_i): 입력값
이 수식은 딱 보면 알 수 있다.
같은 오차를 기준으로 하더라도, 입력값이 크면 가중치가 더 많이 조정되고, 입력값이 작으면 거의 조정되지 않는다.
즉, 오차는 하나지만 그 영향을 받아 조정되는 비율은 입력에 따라 다르게 나뉜다.
4. 편향(b)은 항상 δ 만큼만 조정된다
가중치와는 달리, **편향(b)**은 입력값이 없이 항상 (+1)로 연결된다고 보면 된다.
따라서 오차 자체가 편향의 기울기이다:
[
\frac{\partial L}{\partial b} = \delta
]
업데이트 식도 매우 단순하다:
[
b := b – \eta \cdot \delta
]
편향은 항상 오차에 직접적인 영향을 받기 때문에, 모든 뉴런에서 동일하게 적용되는 일관된 조정 대상이 된다.
5. 오차는 하나, 조정은 수천, 수백만 개
실제 딥러닝 모델에서는 수천 개, 수백만 개의 가중치가 하나의 출력에 연결된다.
그럼에도 이 모든 가중치가 오차 하나를 기반으로 “각자의 책임만큼” 정확히 다르게 조정된다.
이건 사람이 일일이 수치를 나눠주는 것이 아니라, 수학적으로 완전하게 정의된 체인 룰과 미분을 통해 자동으로 계산된다.
6. 단순 분배가 아닌, 기여도 기반의 책임 정산
혹자는 생각할 수 있다.
“왜 그냥 전체 오차를 평균 내서 모든 가중치에 똑같이 적용하지 않는가?”
그렇게 하면 학습은 되지 않는다.
왜냐하면, 어떤 가중치는 큰 실수를 했고 어떤 가중치는 거의 영향을 주지 않았는데, 그걸 균등하게 나눠서 조정한다면 의미 없는 업데이트가 된다.
딥러닝이 강력한 이유는, 각 구성요소가 얼마만큼 책임이 있는지를 미분을 통해 정밀하게 계산하고, 그에 맞춰 정확히 조정하기 때문이다.
결론
딥러닝의 핵심은 복잡한 네트워크 구조가 아니다.
오차를 얼마나 정밀하게 계산하고, 그 오차를 각 가중치에 얼마나 공정하게 나눠주는가,
그리고 그 정보를 바탕으로 가중치를 얼마나 정확하게 조정하는가에 달려 있다.
이 모든 것이 수학적으로 미분과 체인 룰에 의해 실현되고, 오차 하나가 수천 개의 가중치에 “의미 있게” 전달되는 이유는 바로 여기에 있다.