[U] Week 2 - AutoGrad & Optimizer

JaeJun Lee ·2022년 9월 28일
0

부스트캠프 AI Tech

목록 보기
11/30

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)=11+eθTxθjJ(θ)=1mi=1m(hθ(xi)yi)xjiforwardbackwardθj=θjαθjJ(θ)=θjαi=1m(hθ(xi)yi)xjioptimizeh_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} \qquad\qquad \frac{\partial}{\partial\theta_j}J(\theta)=\frac{1}{m}\sum^m_{i=1}(h_\theta(x^i)-y^i)x^i_j \\\small{forward} \qquad\qquad\qquad\qquad\qquad\qquad\qquad{backward} \\ \theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)=\theta_j-\alpha\sum^m_{i=1}(h_\theta(x^i)-y^i)x^i_j \\{optimize}

0개의 댓글