본문 바로가기
Learning-driven Methodology/DL (Deep Learning)

[Deep Learning] 역전파 (Backpropagation) / 경사하강법 (Gradient Descent)

by goatlab 2022. 1. 3.
728x90
반응형
SMALL

역전파 (Backpropagation)

 

 

input에서 output으로 weight를 업데이트하면서 activation fuction을 통해 결과값을 가져오는 것을 순전파 (foward)라고 하며 말 그대로 앞쪽으로 input 값을 전파, 보내는 것이다. 하지만 임의로 순전파 했다고 출력 값이 정확하지는 않을 것이다. 임의로 설정한 weight 값이 input에 의해서 한 번 업데이트 되긴 했지만 많은 문제가 있을 수 있다.

 

역전파는 출력값에 대한 입력값의 기울기를 출력층 layer에서부터 계산하여 거꾸로 전파시키는 것이다. 거꾸로 전파시켜 최종적으로 출력층에서 output값에 대한 입력층의 input data 기울기 값을 구할 수 있다. 이 과정에서 chain rule이 이용된다. 

 

input이 들어오는 방향 (foward)으로 output layer에서 결과 값이 나온다. 결과값은 오차 (error)를 가지게 되는데 backpropagation는 이 error를 다시 역방향으로 hidden layer와 input layer로 오차를 다시 보내면서 가중치를 계산하면서 output에서 발생했던 오차를 적용시키는 것이다.

 

한 번 돌리는 것을 1 epoch 주기라고 하며 epoch를 늘릴 수록 가중치가 계속 업데이트 (학습)되면서 점점 오차가 줄어나가는 방법이다. 

 

Gradient Descent

 

 

backpropagation이 해결한 문제는 파라미터가 많고 layer가 여러 개 있을 때 가중치 w와 b를 학습시키는 것이다. 즉, layer에서 기울기 값을 구하는 이유는 gradient descent를 이용하여 weight를 update하기 위함이다. 이때 각 layer의 node (parameter)별로 학습을 해야하기 때문에 각 layer의 node 기울기 값을 계산해야 한다.

 

함수의 최저점을 구하기 좋은 방법으로 신경망과 같이 계산해야 하는 양이 많고 접근하기가 복잡한 수식에서 잘 작동한다. 그리고 데이터가 불완전해도 작동한다.

 

https://medium.com/@jorgesleonel/backpropagation-cc81e9c772fd

 

Backpropagation

Backpropagation is a commonly used method for training artificial neural networks, especially deep neural networks. Backpropagation is…

medium.com

 

728x90
반응형
LIST