8 델타식
이제 출력층과 은닉층의 업데이트를 위해 도출된 두 개의 식을 비교해 보겠습니다.
• 출력층의 오차 업데이트 = (yo1- yt1) . yo1(1- yo1) . yh1
• 은닉층의 오차 업데이트 = (δyo1 . w31 + δyo2 . w41)yh1(1-yh1) . x1
여기서 박스로 표시한 두 부분을 비교해 보겠습니다. (yo1-yt1)이 (δyo1.w31+ δyo2.w41)로 바뀌었지만, 나머지 부분은 out(1 - out) 형태를 띠고 있습니다.
여기서 (yo1- yt1)은 오차 값입니다. 하지만 은닉층에서는 이렇게 오차를 계산할 수 없습니다. 은닉층에서 일어나는 일은 우리 눈으로 볼 때는 알 수 없으므로 출력층에서 yo 값을 가져와서 계산해야 합니다. 그러므로 앞 식의 (δyo1 . w31 + δyo2 . w41)처럼 형태가 복잡해졌을 뿐 결국 오차를 나타냅니다. 따라서 두 식 모두 ‘오차 . out(1 - out)’ 형태, 즉 델타식의 형태로 단순화할 수 있습니다.
델타식이 중요한 이유는 이렇게 한 층을 거슬러 올라갈 때마다 같은 형태가 계속 나타나기 때문입니다. 따라서 델타식을 파악하고 나면 이를 코딩으로 설계하는 것도 어렵지 않습니다.
은닉층의 델타식이므로 이것을 δh라고 할 때, 은닉층의 가중치 업데이트를 식으로 표현하면 다음과 같습니다.
이렇게 해서 모든 출력층과 은닉층의 가중치가 각각 업데이트되는 과정을 수식을 통해 살펴보았습니다.