딥러닝 기초이론

[딥러닝 기초이론3-1] 복잡한 신경망에서의 그라디언트 (Backpropagation)

컴퓨터비전 LCK 2024. 3. 12. 15:24

지금까지 AI가 동작하는 원리에 대해 알아보았다.

 

그 과정을 간단히 요약해보자면,

1. 랜덤한 초기값의 예측 모델 생성

2. 손실함수 설정 후 초기값 예측모델에 대한 손실함수 산출

3. 경사하강법을 통한 최적의 w와 b 획득

 

이와 같다.

 

지금까지는 입력이 한개인 인공신경망에 대해 알아보았고, 이 신경망에서의 입력에 대한 그라디언트(편미분)를 구하여 최적의 파라미터를 획득하였다.

 

MSE 손실함수를 설정하고 2차함수 형태의 손실함수를 얻은 후 경사하강법을 진행하였다.

 

그러나 입력이 늘어나고, 신경망의 히든 레이어가 늘어날수록 모델의 파라미터는 증가하게 되어 수식적인 방법으로는 그라디언트를 구하기가 거의 불가능해진다.

 

복잡한 모델에서의 그라디언트는 어떻게 구할 수 있을까? 다음의 예시를 살펴보자.

 

 

입력이 x,y 두 개이고 출력이 f(x,y)인 수식이다. 이 수식을 계산하는 과정을 세분화해보면,

 

1. 2와 x를 곱한다

2. 곱해서 나온 2x에 100을 더한다

3. y를 제곱한다.

4. (2x+100)과 y의 제곱을 곱해준다.

 

수식이 계산되는 과정을 도식화해보면 이러하다. 이 프로세싱을 '순전파'라고 부른다.

 

이 순전파 과정을 반대로 진행시켜보자. 

 

역단계별로 편미분을 각각 구해서 곱해주게 되고 끝까지 가서 입력 x,y 까지 가게 되면 각항은 약분되고 f(x,y)가 x,y에 대한 그라디언트가 구해짐을 확인할 수 있다.

 

각 단계에서 구한 그라디언트들을 곱하여 구한 최종 그라디언트와, 수식적으로 한번에 풀어낸 그라디언트가 같다는 것을 알 수 있다.

 

복잡한 신경망에서는 이러한 '역전파(Backpropagation)' 방식으로 그라디언트를 구하게 된다.