역전파 (Back Propagation)

역전파 (Back Propagation)

https://yngie-c.github.io/deep%20learning/2020/03/14/back_propagation/

위 블로그를 필사하며 공부

- 신경망 정보 전달의 핵심인 순전파와 역전파

- 이 두가지가 잘 일어나야 정보가 제대로 전달되어 손실을 줄이는 방향 으로 학습이 잘 일어난다.

출처: 위 블로그

Forward Propagation

- 순전파(Forward Propation)는 (입력층 -> 출력층) 의 방향으로 계산하는 과정

출처: 위 블로그

입력층의 노드: 2개

은닉층의 노드: 3개

출력층의 노드: 1개

이 인스턴스의 신호 x1, x2의 값: 1

레이블 y: 0

- 모든 층에 활성화 함수로 시그모이드 함수를 사용한다면,

은닉층의 히든 노드에 들어갈 값 Sigmoid(h)는 아래의 수식을 통해 구할 수 있다.

- h1, h2, h3은 위쪽 노드부터 활성화 함수에 들어가는 값을 나타냄

* 은닉층에 들어갈 값

h1 = 1 x 0.8 + 1 x 0.2 = 1.0, Sigmoid(h1) = 0.73

h2 = 1 x 0.4 + 1 x 0.9 = 1.3, Sigmoid(h2) = 0.79

h3 = 1 x 0.3 + 1 x 0.5 = 0.8, Sigmoid(h3) = 0.69

*출력되는 값 ^y

^y = 0.73 x 0.3 + 0.79 x 0.5 + 0.69 x 0.9 = 1.235

- 이렇게 출력값을 구해내기 까지의 과정을 순전파라고 한다.

Back Propogation

- 위 순전파 과정에서 실제의 레이블 y=0 이지만, 예측 레이블 ^y=1.235이다.

-> 1.235의 오차 발생

- 이제 손실 함수(Loss Function)을 통해 계산한 손실을 줄이는 방향으로 학습할 차례

- 각 노드의 손실 정보를 전달하는 과정을 역전파(Back propogation)라고 한다.

- 손실 정보는 (출력층 -> 입력층)의 방향으로 전달되기 때문에 '역'전파라는 이름이 붙었다.

- 순전파에서 신경망이 수행하는 연산을 단순화 하여

가중치 x, y로부터 출력 z를 내놓는 임의의 함수 z=f(x,y)라고 해보자.

- 원래의 손실 함수를 L이라 한다면 이를 개선하기 위한 미분 ∂L/∂z 이 된다.

출처: 위 블로그

- 역전파는 이 과정을 신경망의 모든 노드에서 실행한다.

from http://yeon22.tistory.com/110 by ccl(A) rewrite - 2021-10-25 20:00:58