AI/Deep Learning

[Deep learning] DP → Backpropagation

ssungni 2024. 6. 25. 13:49

Review

퍼셉트론이란, 신경망의 기본 구성 요소로, 비선형성을 도입하여 복잡한 문제를 풀 수 있게 하였다. 

NN은 여러 퍼셉트론이 계층으로 결합되어 신경망을 형성하며, 역전파 알고리즘을 사용하여 훈련되고 최적화하는 것이다.

이는 학습 속도를 조정하여 수렴을 개선한다.

 

전체 흐름 보기

DP

W, b를 학습시키기 위해 backpropagation을 사용한다.

이때, 알고리즘적으로 우리는 DP를 사용한다고 할 수 있다.

DP란, Recursion + Memorization이다.

 

Naive Recursive Algorithm

  • 예를 들어 피보나치인 경우. if n <= 2 : f = 1 이라는 baseline을 두어 보다 시간 복잡도를 줄이도록 한다.
  • 그러나 이를 효율적이라고 할 수 있는가? 매번 계산을 다시 해줘야하는 큰 단점이 있다.
  • 이를 보완하기 위해 "Memorized Recursive Algorithm" 개념이 등장한다.

Memorized Recursive Algorithm

  • memo라는 배열에 값을 저장하여 값이 필요할 때 다시 계산하는 것이 아니라 저장된 것을 바로 쓰기에 좀 더 빠르게 연산이 가능하다는 장점이 있다.

Backpropagation

이런 DP 모먼트(?)에서 "Backpropagation"이 나왔다.

다음 예시를 보면 알 수 있듯 재료를 만들어놓으니 계산할 때 편한 모습을 알 수 있지 않은가?

재료를 만들어놓는다(= DP를 사용하여 저장해놀고), 계산한다 (= Backpropagation)

재료를 만든다는 것 → chain rule을 활용하여 gradient decent를 구한다.

 


그동안 알고리즘 수업을 통해 DP를 배우고, 인공지능 수업에서는 backpropagation을 배웠다.그런데 이 둘의 상관관계가 이렇게 된다는 것을 처음 알 게 되었다. 물론 사람마다 해석의 차이가 있을 수 있겠지만, 이번에 좋은 정보를 얻을 수 있었다.