본문 바로가기
Study 공부할레나

[스터디/밑시딥3] 제 3고지 고차미분계산_36. 고차 미분 이외의 용도

by LENA-cfg 2023. 9. 11.

이번 단계에서는 역전파로 수행한 계산에 또 다시 역전파를 할 수 있는 double backpropagation을 구현합니다. 

36.1 double backprop의 용도

미분이 포함된 식에 미분 계산을 할때 double backprop으로 게산할 수 있습니다.

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)

위 코드에서 y.backward(create_graph=True)는 미분을 하기위해 역전파 하는 코드 입니다. 여기서 새로운 계산 그래프를 생성하고 역전파가 만들어낸 계산 그래프를 사용해 새로운 계산을 하고 다시 역전파합니다.

 

즉, 미분의 식을 구하고, 그 식을 사용하여 계산한 다음, 또다시 미분하는 문제를 double backprop으로 해결할 수 있습니다. 

36.2 딥러닝 연구에서의 사용 예시

wgan-gp논문에서 위의 수식을 최적화합니다.

최적화 하는 기울기(텐서 각 원소에 대한 미분 결과)가 있다는 것인데 이 기울기는 첫 번째 역전파에서 구할 수 있고 이 기울기를 사용하여 함수 L을 계산하고 함수 L을 최적화 하기 위해 두 번째 역전파를 합니다.