모두를 위한 딥러닝

* [DL] 모두를 위한 딥러닝 9-2 Backpropagation

승무_ 2022. 4. 3. 11:26

경사 하강법을 이용해 모델을 학습하기 위해서는 각 가중치의 미분값이 필요하다.

XOR을 구현한 모델은 2개의 레이어로 구성되어있다.

어떻게 해야할까?

 

*)Chain rule를 이용해 각 노드의 미분값을 구할 수 있다.

*)미분값의 의미:w를 1만큼 바꾸면 예측값이 5배 만큼 바뀜

*)df/dw의 의미: w의 변화가 f에 얼마나 영향을 주냐

 

chain-rule을 이용하면 레이어가 깊어도 미분 값 알 수 있다.

Chain rule을 이용한 Sigmoid노드의 미분

이를 이용하면 Sigmoid의 미분도 간단하다.

각 계산별로 노드를 나눈 뒤 미분을 수행하면 된다.


텐서플로우에서는 이러한 방식을 사용해 미분을 하는데,

각 노드가 서로 연결되어 있는 모습을 TensorBoard에서 확인할 수 있다

 

텐서플로우가 그래프로 만든 이유: backpropagation하기 위해서