더북(TheBook)

2.4.4 도함수 연결: 역전파 알고리즘

이전 알고리즘에서 함수가 미분 가능하기 때문에 그레이디언트를 쉽게 계산할 수 있다고 가정했습니다. 하지만 진짜 그럴까요? 복잡한 식의 그레이디언트를 실제로 어떻게 계산할 수 있을까요? 이 장의 시작 부분에서 보았던 2개의 층을 가진 모델의 경우 가중치에 대한 손실의 그레이디언트를 어떻게 구할 수 있을까요? 이것이 역전파 알고리즘(Backpropagation algorithm)이 필요한 이유입니다.

 

연쇄 법칙

역전파는 (덧셈, 렐루, 텐서 곱셈 같은) 간단한 연산의 도함수를 사용해서 이런 기초적인 연산을 조합한 복잡한 연산의 그레이디언트를 쉽게 계산하는 방법입니다. 결정적으로 신경망은 서로 연결된 많은 텐서 연산으로 구성됩니다. 이런 연산은 간단하고 해당 도함수가 알려져 있습니다. 예를 들어 코드 2-2에서 정의한 모델은 (첫 번째와 두 번째 Dense 층의) 변수 W1, b1, W2, b2를 파라미터로 갖는 함수로 표현할 수 있습니다. 이 함수에 관련된 기초적인 연산은 dot, relu, softmax, + 그리고 손실 함수 loss도 모두 미분 가능합니다.

loss_value = loss(y_true, softmax(dot(relu(dot(inputs, W1) + b1), W2) + b2))

미적분의 연쇄 법칙(chain rule)을 사용하면 이렇게 연결된 함수의 도함수를 구할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.