이 문제는 다시 출력층의 오차를 이용하는 것으로 해결합니다. w31의 경우 yo1의 오차만 필요했었지만, w11은 yo1과 yo2가 모두 관여되어 있습니다. 따라서 오차 두 개를 모두 계산해 이를 편미분하게 됩니다. 물론 계산식은 조금 더 복잡해집니다. 하지만 이 과정을 마치면 첫 번째 가중치 업데이트 공식과 두 번째 가중치 업데이트 공식이 다음과 같이 정리됩니다.
첫 번째 가중치 업데이트 공식 = (yo1- y실제 값) . yo1(1-yo1) . yh1
두 번째 가중치 업데이트 공식 = (𝛅yo1 . w31+ 𝛅yo2 . w41)yh1(1-yh1) . x1
이 공식 중 밑줄 친 부분을 잘 보면 두 식 모두 ‘out(1-out)’ 형태를 취하고 있다는 것을 알 수 있습니다. 이를 델타식이라고 합니다. 은닉층의 숫자가 늘어도 이러한 형태가 계속해서 나타나게 되므로, 이를 이용해 깊은 층의 계산도 할 수 있게 됩니다. 이렇게 깊은 층을 통해 학습할 수 있는 계기가 마련되면서 드디어 딥러닝이 태동하게 된 것입니다.
오차 역전파 과정을 순수 파이썬 코딩으로 만든 예제가 ‘심화 학습 2. 파이썬 코딩으로 짜 보는 신경망’에 준비되어 있습니다. 우리는 텐서플로를 이용해 이 과정을 진행하므로 여기에 삽입하지는 않겠습니다. 하지만 모든 과정이 파이썬 코딩으로 어떻게 표현되는지 공부할 분들은 참고하기 바랍니다.