딥러닝 for Deep Learning

밑.시.딥. Chapter5. 오차역전파법(Backpropagation) 본문

지하에서부터 시작하는 딥러닝

밑.시.딥. Chapter5. 오차역전파법(Backpropagation)

JadenM 2021. 8. 11. 11:10

 

역전파


덧셈 노드의 역전파

 

 

z = x + y의 미분은 아래의 식과 같이 계산할 수 있다.

 

 

 

두 식의 결과는 모두 1이다. 이를 계산 그래프로 표현하면,

 

 

 

 

역전파 때는 상류에서 전해진 미분에 1을 곱해 하류로 보낸다. (오른쪽에서 왼쪽으로)

 

즉, 덧셈 노드를 만나면 입력값을 그대로 다음 노드로 보낸다. (gradient distributor)

 

 

 

예를 들어, 상류에서 1.3이란 값이 흘러오면,

 

 

 

그대로 내려보낸다.

 


 

 

곱셈 노드의 역전파

 

z = xy의 미분은 아래의 식과 같이 계산할 수 있다.

 

 

그럼 계산 그래프로 함 그려보자. (내가 그리는건 아님)

 

 

 

위 그래프에서 보이는 것처럼

 

곱셈 노드 역전파는 상류의 값에 순전파 때의 입력 신호들을 '서로 바꾼 값'을 곱해서 하류로 내려보낸다.

(gradient switcher)

 

 

 

예를 들어, 상류에서 1.3이라는 값이 들어올 때 곱셈 노드를 만나면,

 

 

 

 

과일 쇼핑의 예

 

 

 

 

 

 

단순한 계층 구현


 

곱셈 계층

 

 

 

backward()에서는 상류에서 넘어온 미분(dout)에 순전파 때의 값을 '서로 바꿔' 곱한 뒤 흘려 보낸다.

 

 

  • 순전파

 

  • 역전파

 

 

덧셈 계층

 

 

 

  • 순전파

 

  • 역전파

 

 

 

 

자료출처:
밑바닥부터 시작하는 딥러닝 1 - 사이토 고키 저