역전파 (Backpropagation)

경사 하강법(Gradient Descent) 을 이용하기 위해서는 미분을 이용해야 합니다.

Cost 함수에서 미분을 이용하여 최적의 값을 찾아야 합니다.

하지만 위와 같은 Neural Network에 들어오면서 계산이 굉장히 복잡해 졌습니다.

이를 위해 나온 것이 역전파(Backpropagation) 입니다.

 

Sung Kim 교수님의 유튜브에 나온

간단한 예를 들어 직접 손으로 계산해 보겠습니다.

이 계산 과정에서 Chain rule을 한번 읽어보고 진행을 하면

간단하게 계산이 가능합니다.

이런 식으로 복잡한 Layer도 계산이 가능합니다.

f에 w가 미치는 영향은 5라고 볼 수 있습니다.

즉, w값이 1이 바뀌면 f에는 5의 영향력을 행사할 수 있는 겁니다.

 

 


Pytorch에서의 역전파

 

pytorch 에서 자주 쓰였던 backward() 함수를 이제는 이해 할 수 있습니다.

cost.backward() 로 역전파(Backpropagation)를 계산해주고

optimizer.step() 으로 계산된 역전파를 이용해 각각의 Layer에 적용을 해줍니다.

만약 경사하강법을 사용한다면

이런식으로 업데이트를 해줄 수 있습니다.

 

 

 

출처: 

https://www.youtube.com/watch?v=573EZkzfnZ0&t=913s

https://wikidocs.net/60682

 

'Deep Learning > Pytorch' 카테고리의 다른 글

13_Pytorch_Activation_Gradient Vanishing  (0) 2021.09.08
12_Pytorch_Multi_Layer_Perceptron_XOR  (0) 2021.08.25
10_Pytorch_Perceptron_XOR  (0) 2021.08.25
09_Pytorch_Softmax_Classifier MNIST  (0) 2021.08.25
08_Pytorch_Softmax_Classification  (0) 2021.08.18

+ Recent posts