-
AI Back propagation(오차역전파)인공지능 2020. 6. 6. 00:28728x90
2020/06/03 - [AI] - 딥러닝 MNIST 필기체 인식
이전글에서 수치미분을 통해 MNIST 필기체 인식을 해봤는데 제 PC에서는 거의 20시간 정도 학습을 돌린거같아요..
수치미분방식의 가장 치명적인 단점이 속도가 느리다는 점입니다. 이런 단점을 보완하기 위해서 Back Propagtion 기법을 배워볼게요
수치미분 방식은 입력값에서 delta_x 로 약간의 변형을 주며 실제 출력값이 어떻게 바뀌는지 직접 측정하는 방식의 수동적인 미분방식이였다면, 오차역전파는 Chain Rule을 통해 이 미분을 작은 미분들로 쪼개고, 정리하여 깔끔한 수학공식으로 바꾼답니다.
수치미분을 사용하지 않고, 행렬로 표현되는 수학 공식으로 이를 대체하기 때문에 빠른 계산이 가능합니다.
각 층의 입출력을 수식화
시그모이드 함수 미분
시그모이드 함수 미분 활용
W11 이 아주 미세하게 변했을 때 E1의 변화량을 알고 싶다는 식을 W11이 변했을 때 z11의 변화량 * z11 이 변했을 때 a11의 변화량 * a11이 변했을 때 E1의 변화량으로 잘게잘게 쪼갰어요
그리고 중간에 a11이 시그모이드로 치환되면서 위에서 구했던 시그모이드의 미분법으로 미분식을 없애버립니다.
오차역전파 공식 유도
출력층의 오차역전파 공식
W11
W21
b1
나머지 과정들도 위 방법으로 구하시면 미분이 모두 사라지고, 곱셈들로만 이루어진 수식만 남게 됩니다. 이 공식이 기존의 수치 미분을 대체할 것입니다.
최종 출력층 오차역전파
은닉층의 오차역전파 공식 유도
출력층은 어떤 W의 값에 변화가 생겼을 때 E1 또는 E2 둘 중 하나에만 영향이 갔었습니다.
하지만 은닉층은 어떤 W의 값에 변화가 생겼을 때 위 그림과 같이 모든 E에 영향을 미치는 모습을 보입니다.
이러한 변화는 공식 유도과정에서도 변화를 보입니다.
b1
은닉층 오차역전파 공식
일반화
다음 글에서는 이렇게 일반화된 오차역전파 공식을 통해 직접 파이썬으로 MNIST 학습을 시켜보겠습니다.
'인공지능' 카테고리의 다른 글
인공지능 시작 (0) 2020.10.13 AI 필체인식(Mnist) Back propagation 구현 (1) 2020.06.07 딥러닝 MNIST 필기체 인식 (0) 2020.06.03 딥러닝 기초 (XOR 문제 해결) (0) 2020.06.01 AI Multi layer (XOR 문제) (0) 2020.05.29