본문 바로가기
Artificial Intelligence/Machine Learning

자동 미분(Autograd)

by YUNZEE 2024. 1. 26.
728x90

경사 하강법 코드는 requires_grad=True, backward()등이 나온다. 이는 파이토치에서 제공하는 있는 자동 미분(Autograd) 기능을 수행하고 있는 것이다. 파이토치의 학습 과정을 보다 더 잘 이해하기 위해서 자동 미분에 대해서 이해해 보자.

 

자동 미분(Autograd) 실습하기

자동 미분에 대해서 실습을 해보자. 임의로 2w^2 + 5라는 식을 세워보고, w에 대해 미분해 보겠습니다.

import torch

값이 2인 임의의 스칼라 텐서를 w를 선언합니다. 이때 required_grad를 Ture로 설정합니다. 이는 이 텐서에 대한 기울기를 저장하겠다는 의미 한다. 

w = torch.tensor(2.0, requires_grad = True)

이제 수식을 정의한다.

y=w**2
z=2*y+5

이제 해당 수식을 w에 대해서 미분해야 합니다. backward()를 호출하면 해당 수식의 w에 대한 기울기를 계산한다.

z.backward()

이제 w.grad를 출력하면 w가 속한 수식을 w로 미분한 값이 저장된 것을 확인할 수 있다.

print('수식을 w로 미분한 값: {}'.format(w.grad))

# 수식을 w로 미분한 값: 8.0
728x90