내용 torch.autograd requires_grad 설정 변화도(Gradient) 계산하기 변화도 추적 멈추기 자동미분(Autograd) torch.autograd 신경망은 설정한 층들을 통과하면서 feature와 label의 관계를 적합하게 설명하는 모델을 구축합니다. 이 과정을 학습(train)이라고 하며 이 학습은 다음과 같이 두 단계로 구성됩니다. $$X \rightarrow \left(\begin{aligned}\color{blue}{W\cdot x+b \rightarrow \hat{y}(\text{forward})}\\\uparrow \qquad\qquad \qquad \downarrow\\\color{red}{\frac{dw}{dx}, \frac{db}{dx}(\text{backward})}\end{aligned} \right)\rightarrow \hat{Y}$$ 위 식에서 W, b는 각각 가중치와 편향입니다. 위의 역전파(backward) 단계서는 순전파(forward)에서 생성된 가중치와 편향에 의한 추정치 $\hat{y}$와 실제값인 label(Y)와의 오차(error)를 계산하고 그 값에 대한 가중치와 편향을 평가(변화도, 미분)하여 그 매개변수(W, b)를 조절합니다. 이 조절을 매개변수의 업데이트(update)라고 하며 그 차이가 최소 또한 변화가 없을 수준까지 이 과정은 반복합니다. 이 과정은 최적화(optimization)라고 하며 그 결과가 최종의 모델이 됩니다. pytorch에서 torch.autograd 는 역전파시 실행되는 미분과정을 담당하는 자동미분엔진입니다. autograd는 데이터(텐서)의 실행된 모든 연산들(연산 결과가 새로운 텐서인 경우도 포함하여)의 기록을 Function 객체로 구성된 방향성 비순환 그래프(DAG; Directed Acyclic Graph)에 저장(keep)합니다. 그림 1과 같이 방향성 비순환 그래프...
python 언어를 적용하여 통계(statistics)와 미적분(Calculus), 선형대수학(Linear Algebra)을 소개합니다. 이 과정에서 빅데이터를 다루기 위해 pytorch를 적용합니다.