역전파를 다음과 같이 실행합니다. 예를 들어 가중치를 업데이트하는 부분에서 최적화 함수로 모멘텀 SGD를 사용했다면, 앞에서 배운 내용을 토대로 다음과 같이 만들 수 있습니다.
# 역전파 실행 backPropagate( , ): # 델타 출력 계산 = [0.0] * .num_yo for in range( .num_yo): = [ ] - .activation_out[ ] # 시그모이드와 tanh 중에서 활성화 함수 선택, 미분 적용 [ ] = tanh( .activation_out[ ], ) * # 은닉 노드의 오차 함수 = [0.0] * .num_yh for in range( .num_yh): = 0.0 for in range( .num_yo): = + [ ] * .weight_out[ ][ ] # 시그모이드와 tanh 중에서 활성화 함수 선택, 미분 적용 [ ] = tanh( .activation_hidden[ ], ) * # 출력 가중치 업데이트 for in range( .num_yh): for in range( .num_yo): = [ ] * .activation_hidden[ ] = mo * .gradient_out[ ][ ] - lr * .weight_out[ ][ ] += .gradient_out[ ][ ] = # 입력 가중치 업데이트 for in range( .num_x): for in range( .num_yh): = [ ] * .activation_input[ ] = mo* .gradient_in[ ][ ] - lr * .weight_in[ ][ ] += .gradient_in[ ][ ] = # 오차 계산(최소 제곱법) = 0.0 for in range(len( )): = + 0.5 * ( [ ] - .activation_out[ ]) ** 2 return