티스토리 뷰

728x90

모델과 데이터를 준비하면, 데이터에 매개변수를 최적화하여 모델을 학습해야 한다. 그 후 검증과 테스트를 거친다.

 

모델 학습 과정은 반복적인 과정이며, 각 반복 단계에서 모델은 출력을 추측하고, Ground Truth 사이의 손실을 계산하여 매개변수를 최적화하는 과정을 거친다. 이는 손실함수의 도함수를 계산하여 경사하강법을 통한 방법이다. (역전파)

 

optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

최적화는 각 학습 단계에서 모델의 오류를 줄이기 위해 모델 매개변수를 조정하는 과정이다. 모든 최적화 과정은 optimizer 객체에 캡슐화된다.

 

여기서 optimizer를 손볼 수있는 하이퍼파라미터가 epoch과 batch size, learning rate이다.

 

학습 단계(loop)에서 최적화는 세 단계로 이루어짐

  1. optimizer.zero_grad()를 호출하여 모델 매개변수의 변화도를 재설정. 기본적으로 변화도는 더해지기(add up) 때문에 중복 계산을 막기 위해 반복할 때마다 명시적으로 0으로 설정한다.
  2. loss.backwards()를 호출하여 예측 손실(prediction loss)을 역전파한다. PyTorch는 각 매개변수에 대한 손실의 변화도를 저장한다.
  3. 변화도를 계산한 뒤에는 optimizer.step()을 호출하여 역전파 단계에서 수집된 변화도로 매개변수를 조정한다.

 

 

출처: https://tutorials.pytorch.kr/beginner/basics/optimization_tutorial.html

 

 

728x90
댓글