Broccoli's House
#4-(2) 오차역전파법 : 역전파 및 예시 본문
※ 이 글의 내용은 O'REILLY의 <밑바닥부터 시작하는 딥러닝> 책을 기반으로 한다.
오차역전파법 : 역전파 및 예시
- 계산 그래프
덧셈 역전파
- z=x+y 수식을 계산 그래프로 나타내면 왼쪽 위와 같다. 우측은 좌측의 계산 그래프의 역전파이다. 계산 그래프의 최종 출력이 L이라하면, z가 L에 끼치는 영향력은 ∂L/∂z으로 표현된다. 마찬가지로, x가 최종 출력 L에 끼치는 영향력은 ∂L/∂x, y가 최종 출력 L에 끼치는 영향력은 ∂L/∂y이다. ∂L/∂x에 연쇄 법칙을 적용하면 ∂L/∂x는 ∂L/∂z에 ∂z/∂x가 곱한 것이 되고, ∂z/∂x는 1이므로 결국 x가 L에 끼치는 영향력은 z가 L에 끼치는 영향력과 동일하다는 결과가 나온다. 즉, 덧셈 노드의 역전파에서는 입력된 신호를 그대로 다음 노드로 출력할 뿐이다.
곱셈 역전파
- z=xy 수식을 계산 그래프로 나타내면 상단의 좌측 그림과 같다. 덧셈 역전파와 마찬가지로 연쇄법칙을 적용하여 x와 y가 각각 최종 출력 L에 끼치는 영향력을 계산해보면 z가 L에 끼치는 영향력(미분값)에다 x와 y가 각각 서로 값이 바뀌어 곱해진 값이 된다.
- 곱셈 역전파가 덧셈 역전파와 다른 또 하나의 점은, 덧셈 역전파에서는 상류의 값을(z에 대한 L의 미분값) 그대로 흘려보내서 순방향 입력 신호 값이 필요가 없지만, 곱셈 역전파는 상류의 값에다 순방향 입력 신호의 값(x, y값)을 곱하기 때문에 순전파의 입력 신호를 변수에 저장해 둘 필요가 있다는 것이다.
오차역전파법 예시
- 역전파를 적용하여 각 변수가 사과의 최종 값에 끼치는 영향을 알아본다. 모두 곱셈 노드이므로 곱셈 역전파가 적용된다. 최종 가격에서부터 1로 출발하여 변수까지 역전파 계산이 완료되면, 최종 가격에 대하여 사과의 가격은 2.2, 사과의 개수는 110, 소비세율은 200 정도 크기의 영향력을 가진다는 것을 알 수 있다. 즉, 사과 개수가 하나 더 많아지면 최종 값은 110원이 증가한다는 것이다.
예시 2) 슈퍼에서 100원인 사과 2개, 150원이 귤 3개를 샀고, 소비세 10%가 부가될 때 지불 금액을 구한다.
- 계산 그래프를 사용하여 순전파(Forward Propagation)를 통해 최종 가격을 계산한다. 이 문제에서 최종 값에 영향을 미치는 변수는 사과의 개수, 사과의 가격, 귤의 개수, 귤의 가격, 소비세율 총 5개이다.
- 역전파를 적용하여 각 변수가 최종 값에 끼치는 영향력을 알아본다. 곱셈 노드는 순전파의 입력 신호들이 서로 교차하여 곱해지고, 덧셈 노드에서는 입력 신호를 그대로 출력 신호로 내보낸다. 역전파의 계산이 완료되면 사과의 개수는 110, 사과의 가격 2.2, 귤의 가격 3.3, 귤의 개수 165, 소비세가 650 정도 크기의 영향력(미분값)을 가진다는 것을 알 수 있다. 즉, 귤이 하나 더 많아지면 최종 가격은 165원이 상승한다는 것을 뜻한다.
- 오차역전파 알고리즘은 예시와 나와있는 것처럼 연쇄법칙을 통해 최종 값으로부터 거슬러 올라가 각 매개변수(가중치)의 영향력(미분값)을 계산한다. 이렇게 계산된 영향력(미분값)에 학습률(Learning Rate)을 곱하고, 그 값을 이 전의 매개변수에서 빼주면 다음 매개변수 값이 결정되는 것이다. 오차역전파법을 이용한 학습은 이런 방식으로 진행된다.
'공부 > 딥러닝' 카테고리의 다른 글
#5-(2) 학습 관련 기술 : 초기 가중치 설정 (0) | 2018.03.15 |
---|---|
#5-(1) 학습 관련 기술 : 매개변수 갱신 (0) | 2018.03.14 |
#4-(1) 오차역전파법 : 소개 (0) | 2018.03.11 |
#3-(3) 학습 : 경사 하강법 (0) | 2018.02.25 |
#3-(2) 학습 : 손실 함수 (0) | 2018.02.25 |