더북(TheBook)

2.2.5 모델 훈련

앞서 만들어 둔 데이터로 모델을 학습시킵니다. 이때 학습을 시킨다는 것은 y = wx + b라는 함수에서 wb의 적절한 값을 찾는다는 의미입니다. wb에 임의의 값을 적용하여 시작하며 오차가 줄어들어 전역 최소점에 이를 때까지 파라미터(w, b)를 계속 수정합니다.

구체적으로 훈련 방법에 대해 알아봅시다. 가장 먼저 필요한 절차가 optimizer.zero_grad() 메서드를 이용하여 기울기를 초기화하는 것입니다. 파이토치는 기울기 값을 계산하기 위해 loss.backward() 메서드를 이용하는데, 이것을 사용하면 새로운 기울기 값이 이전 기울기 값에 누적하여 계산됩니다. 이 방법은 순환 신경망(Recurrent Neural Network, RNN) 모델을 구현할 때 효과적이지만 누적 계산이 필요하지 않는 모델에 대해서는 불필요합니다. 따라서 기울기 값에 대해 누적 계산이 필요하지 않을 때는 입력 값을 모델에 적용하기 전에 optimizer.zero_grad() 메서드를 호출하여 미분 값(기울기를 구하는 과정에서 미분을 사용)이 누적되지 않게 초기화해 주어야 합니다.

▲ 그림 2-12 파이토치 학습 절차

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.