① 경사 하강법으로 모멘텀 SGD를 사용하도록 했습니다. 모멘템 SGD는 SGD에 관성이 추가된 것으로 매번 기울기를 구하지만 가중치를 수정하기 전에 이전 수정 방향(+, -)을 참고하여 같은 방향으로 일정한 비율만 수정되게 하는 방법입니다. 이때 사용되는 파라미터는 다음과 같습니다.
ⓐ 첫 번째 파라미터: 경사 하강법을 통해 궁극적으로 업데이트하고자 하는 파라미터는 가중치(weight)와 바이어스(bias)입니다. 모델에 대한 파라미터는 앞에서 살펴보았듯이 총 46,038,242개입니다.
ⓑ lr(learning rate): 가중치를 변경할 때 얼마나 크게 변경할지 결정합니다.
ⓒ momentum: SGD를 적절한 방향으로 가속화하며 흔들림(진동)을 줄여 주는 매개변수입니다.
파이토치는 GPU 할당이 자동화되어 있지 않기 때문에 모델의 모든 파라미터 및 손실 함수가 GPU를 사용할 수 있도록 지정해 주어야 합니다. 하지만 아직 GPU를 활성화하지 않았기 때문에 여기에서는 CPU를 사용합니다.
코드 6-15 모델의 파라미터와 손실 함수를 CPU에 할당
model = model.to(device)
criterion = criterion.to(device)