관리 메뉴

Storage Gonie

모두를 위한 딥러닝 제27강 lec9-2: 딥넷트웍 학습 시키기 (backpropagation) 본문

데이터 사이언스/모두를 위한 딥러닝

모두를 위한 딥러닝 제27강 lec9-2: 딥넷트웍 학습 시키기 (backpropagation)

Storage Gonie 2018. 10. 1. 18:48
반응형

# 어떻게 weight와 bias를 학습시킬 수 있는가?

- 1969년도에 Minsky 교수가 weight와 bias를 훈련시키는 방법을 찾을 수 있는 이가 아무도 없다고 하였음.

- 이 이유는 입력 및 각 노드의 출력이 최종 결과값에 미치는 영향을 계산해낼 수 없었기 때문이다.

- 그런데 1974, 1982년도에 Paul Werbos, 1986년도에 Hinton에 의해서 Backpropagation 방법으로 훈련시킬 수 있음이 알려짐.

- 간단한 예를 통해 입력 및 각 노드의 출력이 최종 결과값에 미치는 영향을 계산해 낼 수 있음을 확인하자.


# 입력 및 각 노드의 출력이 최종 결과값에 미치는 영향을 계산하는 예시

- Q. x, w, b의 입력이 있고 *, + 노드가 있으며 최종 출력 f = wx + b일 때 w, x, b의 입력과  * 노드 가 각각 f에 미치는 정도를 구하여라.

<해결방법>

1)  임의의 초기값(w=-2, x=5, b=3)에 대해 forward를 진행하여 각 노드의 출력값 및 최종 출력값을 구한다. 

2) backward를 진행하여 입력변수(w, x, b)와 각 노드의 출력이 f에 미치는 영향을 구한다.

- e는 원래 거꾸도 뒤집어진 모양이어야함. 즉, partial을 의미.

- 우리는 각각이 최종출력 f에 미치는 영향을 알아햐 하므로 ef / ew, ef / ex, ef / eb 이 세개의 값을 구하려고 한다. 또한 중간노드에 대한 ef/eg도 구해야함.

- 이게 왜 f에 미치는 영향의 정도를 의미하냐면 ef / ew 는 아주 작은 w값에 대해 f가 움직이는 정도를 나타내기 때문이다. 이게 이해가 안되면 바로 전 강의를 보자.



- 맨 뒤에서 부터 계산되어야 하므로 g가 f에 미치는 영향 즉 ef/eg를 구한다.

- f = g + b 이므로 ef/eg = 1

- 그 다음 ef/ew 와 ef/ex를 구한다.

- x, w와 f 사이에서 g가 연결다리 역할을 해주므로 chain rule을 아래와 같이 적용하여 각각을 구한다.

- 따라서 ef/ew = 5, ef/ex = -2

- 그 다음 ef/eb를 구한다.

- ef/eb = 1


- 최종적으로 모든 입력과 출력이 f에 미치는 영향을 구하였다.

- ef / ew = 5

- ef / ex = -2

- ef / eb = 1


# 결론 : 아무리 복잡한 네트워크 상에서도 미분 값을 모두 구해낼 수 있다는 것.

- chain rule을 사용하면 맨 뒤에서부터 미분값을 구해와서 입력변수에 대한 f의 미분 값도 알아낼 수 있다. 이것이 바로 Back propagation


# 텐서플로우가 그래프 형식으로 구현된 이유

- Back propagation은 맨 뒤에서부터 거슬러 올라와야 하기 때문에.

반응형
Comments