본문 바로가기
머신러닝

역전파 알고리즘(Back-propagation)이란 무엇일까?

by 프로그래밍하겠습니다 2024. 12. 23.
728x90
반응형

🎶 역전파 알고리즘이 무엇이길래 신경망을 학습시켜 주는 것일까?

 

전 포스트에서 언급했듯이, 역전파 알고리즘은 경사 하강법을 활용해 신경망의 연결강도들을 업데이트 해줘, 최종적으로는 학습이 가능토록 해주는 역할을 한다!

DNN(Deep Neural Networks)이란 무엇일까?

 

DNN(Deep Neural Networks)이란 무엇일까?

🎶DNN(Deep Neural Networks) 에 대해 알아보자!DNN을 한마디로 표현하자면,  단층 퍼셉트론의 한계를 극복하고자 나온 다층 퍼셉트론의 일종이라고 할 수 있다! (👌이전 포스트에서 단층 퍼셉트론의

ybbbb.tistory.com

 

일단 역전파 알고리즘에 대해 알아보기 전에, 우선 경사 하강법이 무엇인지를 알아야 한다.

 

'경사 하강법'은 최적화 알고리즘의 일종으로써, 오차로 구성된 목적함수를 최소화시키는 방향으로 각 연결강도들을 업데이트 해주는 것이다. 여기서 목적함수를 최소화시키는 방향이란, 목적함수의 극값을 찾는 과정으로써 극값이 무엇인지에 대해서는 따로 설명하지 않고 넘어가도록 하겠다.

( 🎃 극값이란 일정 영역 안에서의 최대값 혹은 최소값을 의미한다고 이해하고 있으면 충분하다.)

Back-propagation
[그림 1] 경사 하강법을 통한 파라미터 업데이트

 

여기서 사용한 목적함수는 MSE(평균제곱오차)로써, 실제값과 예측값을 제곱한 후 모두 더해서 1/2를 취한 값을 함수값으로 취한다. 

( 🎃 목적함수의 종류는 MSE 말고도 다양한데, 기회가 된다면 나중에 서술하도록 하겠다.)

partial derivative
[그림 2] 편미분 계산 방법

우리의 목적은 이 목적함수를 최소화시키는 것, 즉 오차를 최소화시키는 것이 목적이므로 목적함수의 현재 값에서의 미분치의 반대방향으로 이동하도록 가중치를 조절해 주는 것이다.

objective fuction
[그림 3] 목적함수

 

미분치의 반대방향으로 이동하는 이유는, 위와 같이 기울기가 양수인 경우에는 음수 방향으로, 음수인 경우에는 양수 방향으로 이동해야 우리가 원하는 극값으로 목적함수의 값이 이동하기 때문이다!

 

문제는 바로 다층 퍼셉트론에서 생기는데, 층이 여러개일 경우 각 층마다 존재하는 연결강도를 어떻게 업데이트 해 줘야 하는지에 대한 고민거리가 생기기 때문이다. 바로 이 문제 때문에 고안한 알고리즘이 바로 '역전파 알고리즘'이다!

back propagation
[그림 4] 역전파 알고리즘

 

일반적으로 신경망이 연결된 구조를 따라 입력의 신호가 연결강도로 증폭되고, 활성화 함수를 통과해 출력노드로 전달되는 이 방향을 '순전파(forward-propagation)'라고 한다. 이와 반대로 목표와 출력의 차이, 그리고 출력의 미분값을 신경망의 반대 방향으로 전달되면서 오차를 줄이는 방향으로 가중치를 변경하는 방법을 바로 오차 '역전파 알고리즘(error back-propagation)'이라고 한다.

 

이 알고리즘을 통해 연결강도 w를 갱신하는 방법을 그 이전 단계에 있는 연결강도 u에도 전파할 수 있으므로(=δ)각 층의 연결강도를 효과적으로 업데이트 할 수 있다!

 

정리하자면, '경사하강법'은 오차로 구성된 목적함수를 최소화시키는 방법이고 '역전파 알고리즘'은 층이 여러개인 다층 퍼셉트론에서 각 층의 연결강도(파라미터)를 업데이트 해주기 위해 역방향으로 오차와 미분치를 전파하는 알고리즘이다.

 

다음 포스트에서는 위와 같은 역전파 알고리즘의 수단이 되는 학습 데이터셋을 사용하는 방법에 대해 알아보도록 하겠다.

728x90
반응형