본문 바로가기
AI/딥러닝 프레임워크 개발

36단계) backpropagation 연결의 고차 미분 이외의 용도

by 채채씨 2021. 7. 15.
728x90
반응형

지난 포스팅에서 backpropagtion 계산에서도 연결을 만들었다. 역전파의 계산 그래프는 고차 미분을 가능하게 하는 것뿐만 아니라 다른 용도로도 활용할 수 있다. 오늘은 다른 활용법에 대해 설명할 것이다.

 

1. double backprop의 용도

 

아래의 미분 계산 문제를 보면, 계산해야 하는 식에 이미 미분이 포함되어 있다. 즉, 미분이 포함된 식을 다시 미분해야 한다. 이 문제도 double backprop으로 계산할 수 있다.

 

 

먼저 이 식을 직접 계산해보면 다음과 같다.

 

마지막 식에 x = 2를 대입하면 100이 나온다.

 

주의할 점은 위의 z식에서 x에 대한 y의 미분은 값이 아니라 식이다. 따라서 x = 2일 때 x에 대한 y의 값을 찾고, 그 값을 z에 대입하면 올바른 결과를 얻을 수 없다.

 

이 내용을 DeZero를 사용하여 풀면 다음과 같다.

 

import numpy as np
from dezero import Variable

x = Variable(np.array(2.0))
y = x ** 2
y.backward(create_graph=True)
gx = x.grad
x.cleargrad()

z = gx ** 3 + y
z.backward()
print(x.grad) #variable(100.0)

 


 

 

728x90
반응형

댓글