서론
인공신경망의 핵심 학습 방법 중 하나인 역전파(Backpropagation)는 딥러닝에서 매우 중요한 알고리즘 이다. 복잡한 신경망에서도 효과적으로 가중치를 조정하여 예측 정확도를 높이는 이 기법을 자세히 알아본다.
기본 원리
역전파는 신경망의 출력값과 실제값 사이의 오차를 최소화하기 위해 가중치를 조정하는 방법이다. 이 알고리즘은 출력층에서 입력층으로 오차를 거슬러 올라가면서 각 노드의 가중치를 조정하며, 간략한 과정은 다음과 같다.
- 순전파(Propagation) 본 게시글은 순전파에 대해 이해하고 있음을 가정함
- 각 층의 노드는 이전 층의 출력과 해당 노드의 가중치를 사용하여 활성화 함수를 통과한 결과를 다음 층으로 전달함. → 순전파로 예측된 결과를 바탕으로 오류를 계산함
- 오차 계산:
- 신경망의 최종 출력값과 실제 목표값 사이의 오차를 계산한다. → 여기선 평균 제곱 오차(MSE)를 사용
- 그래디언트 계산:
- 오차를 가중치에 대한 함수로 보고, 각 가중치에 대해 오차의 편미분을 계산하고, 이를 그래디언트 라고 한다.
- 가중치 업데이트(경사 하강법, gradient descent):
- 계산된 그래디언트를 사용하여 가중치를 업데이트한다. 일반적으로 학습률(Learning Rate)을 곱한 후 기존 가중치에서 빼주는 방식으로 조정한다.
세부 원리
순전파와 경사하강법, 활성화 함수에 대한 설명은 생략되어 있습니다.
오차 계산
평균 제곱 오차(Mean Squared Error, MSE)
오차를 계산하는 대표적인 손실 함수(loss fuction)으로는 MSE가 있다.
: 실제 값(정답) : 모델의 예측 값
이 함수는 예측 값과 실제 값 간의 오차의 제곱에 대한 평균을 계산한다. 이 지표는 예측의 정확성을 평가하는 데 사용되며, 값이 낮을수록 모델의 성능이 높다고 평가 된다.
이외에도 아래와 같이 다양한 종류의 손실 함수가 존재한다.
여러가지 손실 함수들
- 평균 절대 오차 (Mean Absolute Error, MAE)
- 회귀 문제에서 사용되며, 모든 오차에 동일한 가중치를 부여해 이상치에 덜 민감함. 미분이 불가한 지점이 있다.
- 교차 엔트로피 손실 (Cross-Entropy Loss)
- 분류 문제에서 사용되며, 두 확률 분포 사이의 차이를 측정.
- 로그 손실 (Log Loss)
- 이진 분류 문제에 사용되며, 교차 엔트로피 손실의 특수한 형태.
- 허브 손실 (Huber Loss)
- 회귀 문제에서 MSE와 MAE의 조합으로 이상치에 덜 민감(robust)하며 미분 가능한 장점을 가진다.
δ : 민감도를 조절하는 매개변수
그래디언트() 계산
서론
그래디언트 계산은 신경망의 핵심적인 부분으로, 이 단계에서 가중치에 대한 오차의 편미분을 계산한다. 이 편미분은 기울기(gradient)를 나타내며, 이 기울기의 반대 방향으로 가중치를 조정함으로써 오차를 줄이는 방향으로 가중치를 업데이트한다.
: 가중치 : 학습률(hyperparameter)
계산 (출력층)
이때, 를 바로 구할수 없으므로 다음과 같은 식을 이용한다.
: 활성화 함수를 통과하기 전에 계산된 값(순입력): 활성화 함수를 통해 계산된 값: 손실 함수
위 과정을 아래와 같은 그림으로 나타낼 수 있다.

① 손실 함수 의 출력 에 대한 편미분 :
② 출력 의 순입력 에 대한 편미분 :
③ 순입력 의 가중치 에 대한 편미분 :
① : 계산
딥러닝은 feature간의 대략적인 비율을 판별하는 것이 목적이기 때문에 미분의 편의를 위해 MSE의 계수를 로 둘 수 있다.
② : 계산
활성화 함수를 라 한다면 아래와 같이 정리된다.
③ : 계산
: 출력층 노드 직전에 있는 레이어의 노드 수
결론
계산 (은닉층)
은닉층에서도 동일한 식을 이용하려 한다면, 한 가지 문제가 생긴다. 를 모르기 때문에 를 계산할 수가 없다는 점이다.

이 또한, 아래와 같이 편미분 식을 만든다면, 구할 수 있게 된다.
이 식은 위 이미지의 상황을 본떠 만든 것인데, 왼쪽 노드는 은닉층의 노드 를, 오른쪽 여러 개의 작은 노드는 각각 출력층 노드 를 의미한다.
이때, 이므로
: 이전 레이어(여기서는 출력층)의 집합
로 정리가 가능하다. 는 이전에 출력층에서 계산된 값()이기 때문에 계산이 가능해 진다.
남은 는 이전과 같으므로 이를 정리 한다면,
결론
다음 은닉층을 생각해 보자.
다음 은닉층을 생각한다면, 신기한 특징을 발견하게 된다. 똑같이 를 모르기 때문에 를 계산하기 위해서 편미분 식을 세우게 되는데, 아래 그림과 같은 상황이 반복되게 되는것이다!

이번에는 오른쪽 작은 노드들을 은닉층 노드 k로 생각하면 된다.
위 식을 또 사용하게 된다면 는 이전 은닉층에서 계산된 값 를 사용하게 될것이고,
: 노드기준 노드가 바라보는 이전에 계산한 레이어 집합의 원소(노드)
다음 은닉층에서… (펼칠 수 있습니다.)
위 식을 또 사용하게 된다면 는 이전 은닉층에서 계산된 값 를 사용하게 될것이고,
또 다음 은닉층에서…
위 식을 또 사용하게 된다면 는 이전 은닉층에서 계산된 값 를 사용하게 될것이고,
또또 다음 은닉층에서
위 식을 또 사용하게 된다면 는 이전 은닉층에서 계산된 값 를 사용하게 될것이고,
또또또 다음 은닉층에서…
위 식을 또 사용하게 된다면 는 이전 은닉층에서 계산된 값 를 사용하게 될것이고,
아무튼
귀납적임
(출력층에 도달하면 사용)
가 끊임없이 사용된다는 것을 알 수 있다. 이 식을 많은 문헌에서 로 표현한다.
딥러닝의
위 말을 정리하면 델타는 다음과 같다.
이를 이용해서 역전파(Backpropagation)의 그래디언트를 일반화 할 수 있다.
: 현재 노드 : 앞에 있는(역전파 기준으로는 다음에 계산될) 노드
결론
이제 위에서 계산된 그래디언트를 아래 식에 적용하면, 가장 기본적인 딥러닝 학습법이 완성된다!
변수 정리(펼치기)
: 현재 노드 : 앞에 있는(역전파 기준으로는 다음에 계산될) 노드 : 뒤에 있는 (역전파 기준으로는 이전에 계산된) 노드 : → 의 가중치 : 학습률(hyperparameter) : 손실 함수 : 활성화 함수를 통과하기 전에 계산된 값(순입력): 활성화 함수를 통해 계산된 값 : 번째 노드의 실제 값(정답)
저 단순한 식이 기초가 되어, 오늘날 우리가 상상조차 못 했던 문제들을 해결하고 있다는 것이 신기하지 않은가?
참고문헌
천인국. (2021). 딥러닝 EXPRESS. 생능출판사. pp. 214-224.