하지만 예측값은 예측값이니 원래 주어진 Y와 비교하면 ‘오차’를 얻을 수 있다. 오차가 +로 크게 나왔다면 앞서 랜덤하게 배정한 가중치 값을 일괄적으로 줄이고, -로 나왔다면 가중치 값을 일괄적으로 조금 늘려보자. 그리고 다시 X에 조정된 가중치를 적용한 다음 계산하여 Y를 예측한다. 그리고 예측한 Y는 원래 Y와 비교하여 오차를 계산한다. 여전히 오차가 +로 나왔다면 가중치 값을 일괄적으로 더 줄이고, -로 나왔다면 가중치 값을 일괄적으로 더 늘리자. 이러한 과정을 한 번 수행하는 것을 에포크(epoch)라 하며, 여러 에포크를 거치면 랜덤했던 가중치는 주어진 자료에 적합한 가중치로 조정될 것이다.
▲ 그림 8-11 인공 신경망의 가중치 계산
위 과정을 요약하면 X에서 Y를 계산하고, 실제 Y와 비교하여 오차를 파악한 다음 거꾸로 가중치를 조정하며 이 과정이 여러 차례 반복하는 것이다. 이를 역전파 알고리즘이라 한다.
이제 어렵게 얻은 가중치로 복잡하게 연결되는 노드들을 다시 살펴보자. 노드들은 이전 층에서 가중치가 적용된 여러 값을 입력으로 받는데, 일반적으로는 그 값들의 합을 입력으로 받는다. 앞서 얘기한 바와 같이 이러한 값은 노드 자체의 어떤 기준에 의해서 사용되기도 하고 버려질 수도 있으며, 필요한 경우에는 변환되거나 그대로 사용할 수도 있다. 이렇게 노드 내에서 입력된 값을 조절하는 것을 활성화 함수(activation function)라 한다.