nn.Module
딥러닝을 구성하는 Layer의 base class.
- Input, Output, Forward, Backward 정의
- 학습의 대상이 되는 parameter(tensor) 정의
nn.Parameter
Tensor 객체의 상속 객체
- nn.Module 내에 attribute가 될 때는 reqired_grad=True로 지정되어 학습 대상이 되는 tensor
- 우리가 직접 지정할 일은 잘 없다
- 대부분의 layer에는 weights 값들이 지정되어 있다
Backward
Layer에 있는 Parameter들의 미분을 수행
- Forward의 결과값 (model의 output=예측치)과 실제값간의 차이(loss)에 대해 미분을 수행
- 해당 값으로 Parameter 업데이트
실제 backward는 Module 단계에서 직접 지정가능하다.
Module에서 backward와 optimizer를 오버라이딩하는데 사용자가 직접 미분 수식을 써야하는 부담이 있다.
hθ(x)=1+e−θTx1∂θj∂J(θ)=m1i=1∑m(hθ(xi)−yi)xjiforwardbackwardθj=θj−α∂θj∂J(θ)=θj−αi=1∑m(hθ(xi)−yi)xjioptimize