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
반응형
'AI > 딥러닝 프레임워크 개발' 카테고리의 다른 글
37~38 단계) tensor , 형상 변환 함수 ( reshape, transpose ) (0) | 2021.07.17 |
---|---|
34~35단계) sin 함수 미분 , tanh 함수 미분 (0) | 2021.07.12 |
33단계) 뉴턴 방법 최적화 자동화 , 2차 미분 자동 계산 (0) | 2021.07.09 |
30~32단계) 고차 미분 (0) | 2021.07.09 |
28~29단계) 경사하강법 , 뉴턴 방법 , 함수 최적화 (4) | 2021.07.03 |
댓글