오차 역전파는 딥러닝의 기초라고 할 수 있다. 이전까지 우리는 수치 미분을 통해 기울기를 구해 학습했지만, 이 방법은 매우 시간이 오래 걸린다. 그렇기에 딥러닝에서는 가중치의 기울기를 효율적으로 계산하는 오차역전파법(backpropagation)을 사용한다.


위와 같이 왼쪽에서 오른쪽으로 노드

여기서 '국소적 미분'을 전달하는 원리는 연쇄법칙(chain rule)에 따라 전달하게 된다. 연쇄법칙은 여러 함수로 구성된 함수를 의미한다. 합성 함수의 미분에 대한 성질을 의미하고, 합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다. 연쇄법칙의 수식은 다음과 같다.
연쇄법칙을 이용해 아래 수식의 미분을 계산해보자.


덧셈 노드의 역전파
역전파를 전달하는 방법은 덧셈 혹은 곱셈 등 여러가지가 존재하는데, 여기서는 덧셈 노드와 곱셈 노드에 대해서 다루었다. 일단 먼저 덧셈 노드의 역전파에 대해서 알아보자. 식
그렇다면 역전파의 경우 1만 곱해서 전달하기 때문에 값 자체의 차이가 없을 것이다. 덧셈 노드의 역전파는 입력 신호를 다음 노드로 출력할 뿐 다음 노드에 그 값을 그대로 전달한다.
곱셈 노드의 역전파
곱셈 노드의 역전파를 알아보기 위해서
곱셈 노드의 역전파는 서로 변수를 바꾼 값을 곱해서 보내준다. 덧셈 노드의 역전파와 곱셈 노드의 역전파는 다음과 같은 예시로 쉽게 이해할 수 있다.

곱셈노드로 된 부분은 역전파를 보낼때 100 * 1.1 과 2 * 1.1 처럼 서로 값을 바꾸어서 역전파로 보내주게 된다.
이 내용에 대한 덧셈 노드, 곱셉 노드 코드는 여기를 참고하면 된다.
활성화 함수 역전파
이 챕터에서는 ReLU와 Sigmoid 계층을 구현할 것이다.
ReLU
활성화 함수로 사용되는 ReLU의 수식은 다음과 같다.

코드는 여기를 참고하면 된다.
Sigmoid
Sigmoid함수는 ReLU와는 달리 exp와 나눗셈이 존재한다. Sigmoid는 아래와 같은 순전파 형태를 지닌다.

1 단계
'/' 노드는
이에 따르면 흘러온 전파에
2 단계
+ 노드는 위에서 설명했기에 넘어간다.
3 단계
'exp'노드는
4 단계
총 4가지 단계를 거치면 다음과 같은 수식으로 계산 그래프를 그릴 수 있다.

마지막으로 출력된
추가적인 내용은 여기를 참고하면 된다.
'Books > 밑바닥부터 시작하는 딥러닝1' 카테고리의 다른 글
[Books] 신경망 학습하기 (loss function, gradient descent) (0) | 2022.03.07 |
---|---|
[Books] 밑바닥부터 시작하는 딥러닝 1 시작하기 (0) | 2022.03.06 |