Study/Study

역전파 (backpropagation) 알고리즘이란 ?

TTOII 2022. 6. 24. 16:28
728x90

역전파 알고리즘이란 ?

역전파 알고리즘이란 인공 신경망을 학습시키기 위한 일반적인 알고리즘 중 하나이다.

Perceptron(퍼셉트론) : 초기 인공 신경망 모델 

 

input → output까지 가중치를 업데이트하면서 활성화 함수(sigmoid, rule 등)를 통해 결과값을 냈다면, 

 

역전파 알고리즘은 그렇게 도출된 결과값을 통해 다시 output에서 input까지 역방향으로 가면서

가중치를 재업데이트를 해주는 방법이다. 

 

역전파를 하는 이유는 무엇일까 ? 

수치 미분을 통해 신경망을 갱신하려면, 미분 과정에서 delta 값을 더한 순전파를 몇번이고 다시 행해야 한다.

→ 즉, 연산량이 많다.

 

더 복잡하고 더 큰 규모의 딥러닝에 대해 순전파로 몇번이고 학습을 수행하면서

적절한 가중치 값을 찾고자 한다면 매우매우 비효율적이다. 

 

그래서 고안된 방법이 경사 하강법이다.

 

경사 하강법 (Gradient descent)

단계적으로 함수의 기울기를 이용해 값이 가장 낮아지는 곳을 찾는 것

머신 러닝에서는 가중치의 그래디언트(미분값)가 최소가 되는 지점이

손실함수를 최소로 하는 지점일 것이라고 가정함

https://lsh424.tistory.com/9

 

기울기의 값이 크다는 의미는 가파르다는 것이고

x의 위치가 최소값/최댓값에 해당하는 x 좌표로부터 멀리 떨어져있다는 뜻 

 

 

정리

역전파 알고리즘은 파라미터가 매우 많고 layer가 여러개 있을 때

가중치 w와 b를 학습시키기 어려웠다는 문제를 해결했다.

 

그리고 이는 역전파 알고리즘으로 각 layer에서 기울기 값을 구하고 그 기울기 값을 이용해

Gradient descent 방법으로 가중치 w와 b를 업데이트 시키면서 해결되었다.

 

즉 layer에서 기울기 값을 구하는 이유는 Gradient descent를 이용해 가중치를 업데이트하기 위함이다.

이때 각 layer의 node(parameter)별로 학습을 해야하기 때문에 

각 layer의 node별로 기울기 값을 계산해야 하는 것이다.

 

 

참고

728x90