Backpropagation(오차역전파)
가중치에 대한 손실함수의 기울기를 구하는 방식이다.
이러한 backpropagation은 말 그대로 역순으로 gradient를 구하는 것인데 이 때 합성 미분법의 성질인 chain rule(연쇄 법칙)이 필요하다.
chain rule(연쇄 법칙)
chain rule은 합성 함수를 미분할 때 겉함수와 속함수를 곱하는 과정을 거치는데 이를 말한다.
T(x)=f(g(x)) 라 하면
T′(x)=h→0limhT(x+h)−T(x)
=h→0limhf(g(x+h))−f(g(x))
=h→0limg(x+h)−g(x)f(g(x+h))−f(g(x))×hg(x+h)−g(x)
=f′(g(x))g′(x)
특징:
- 국소적 계산을 해 작은 계산 단위로 나눔(곱셈, 덧셈, 활성화 함수)
- chain rule을 통해 출력부터 입력까지 미분값을 전달하면서 곱해 나아감.
(1) 순전파(Forward pass)
입력 데이터를 처음부터 끝까지 흘려보내고 각 노드의 출력 값을 저장해 둡니다.
마지막에 손실(Loss)을 계산합니다.
(2) 역전파(Backward pass)
손실의 미분값을 출력층부터 시작.
각 노드의 국소 미분(자기 입력→출력 변화율)을 계산.
그 미분값에 전달받은 기울기를 곱해 이전 노드로 보냄.
모든 가중치에 대해 ∂Loss/∂Weight를 구함.
사용 이유:
수치 미분으로 구하는 것보다 훨씬 효율적이기 때문
단점:
모델의 깊이가 깊을수록 기울기 손실이 일어날 확률이 높음.
출처:
https://amber-chaeeunk.tistory.com/18
https://m.blog.naver.com/biomath2k/221904946909
https://yhyun225.tistory.com/22
https://m.blog.naver.com/winddori2002/221950653462
https://blog.naver.com/koreadeep/222600824716