머신러닝 개발자의 러닝머신

[딥러닝] 인공신경망의 학습: 순전파와 역전파 본문

ML.AI/ML, DL

[딥러닝] 인공신경망의 학습: 순전파와 역전파

oongsong 2023. 5. 9. 12:33
반응형

인공신경망의 학습: 순전파와 역전파 

딥러닝의 학습은 크게 순전파와 역전파 두 단계로 진행된다. 

 

1) 순전파(Feedforward)

순전파(feedforward)는 네트웨크에 훈련 데이터가 들어와 입력츨-은닉층-출력층을 거쳐 예측값을 계산하기 위해 신경망의 연산이 수행되는 과정이다. 즉, 각 뉴런(노드)이 이전 층의 뉴런에서 수신한 정보에 가중합 및 활성화 함수를 적용해 다음 층의 뉴런으로 값을 전달하는 과정이다. 모든 층의 연산을 거쳐 최종 출력단에서 출력값이 도출된다. 

 

2) 오차 추정

그 다음, 이렇게 순전파 과정을 거쳐 나온 네트워크의 출력을 정답값과 비교해 손실(오차)를 추청한다. 이때, 앞서 포스팅 한 다양한 손실 함수를 적용할 수 있다. -> 손실함수 포스팅 https://eunsun-develop.tistory.com/46

 

[딥러닝] 손실 함수(Loss Function)

손실 함수(Loss Function) 란? 손실 함수는 학습을 통해 얻은 데이터의 추정치가 실제 데이터와 얼마나 차이가 나는지를 말하는 지표로, 학습률(learning rate)과 손실 함수의 순간 기울기를 이용해 오차

eunsun-develop.tistory.com

 

3) 역전파(Backpropagation)

이상적인 손실값은 '0'이며 모델이 이처럼 손실이 0에 수렴하도록 가중치를 조정하며 학습한다. 추정된 오차는 출력층-은닉층-입력층으로 역으로 정보가 전달하면서 가중치를 조정하며 이 과정을 역전파(backpropagation)라고 한다. 

출력층에서 추정된 오차값이 이전의 모든 뉴런으로 전파되면서 오차값을 각 뉴런의 가중치로 미분한 값을 이용해 기존 가중치를 갱신한다. 이는 각 뉴런이 출력에 기여한만큼에 따른 상대적인 기여도에 따라 서로 다르게 가중치를 조정한다. 

 

조금 더 자세히 설명하자면, 다음 그림처럼 출력된 신경망의 결과값인 y와 정답값과의 오차 Cost를 추정한 뒤, 이러한 오차 정보가 이전 노드에 전달된다. 각 가중치로 오차를 미분한 값에 학습률 a와 곱한 값을 기존 가중치에서 빼주는 방식으로 가중치를 갱신한다. 이는 오차가 최소가 되는 가중치를 찾아가는 방식으로, 이를 경사하강법(Gradient Descent)라고 한다. 

(+) 오차 역전파와 경사하강법의 관계 

오차 역전파와 경사하강법을 혼동해서 말하는 경우가 많지만, 엄밀히 따지면 오차 역전파는 출력 결과의 오차 정보가 이전 노드에 전달되는 과정을 의미하고, 경사하강법은 전달된 오차 정보를 바탕으로 가중치를 갱신하는 하나의 방법이다. 

 

오차역전파와 경사 하강법(가중치 갱신)

 

가중치에 따른 손실함수 관계, 오차값을 가중치로 미분한 값으로 가중치를 갱신한다. [경사하강법]

 

다음 포스트는 역전파 과정에서 가중치를 갱신하는 방법인 경사하강법을 살펴보고 다양한 경사하강법에 대한 개념을 소개하겠습니다. :)

 

참고 자료 

반응형