Learning rate가 0인데 학습 후 성능이 달라진다?

Develop My Life·2023년 1월 26일
0

PyTorch

목록 보기
3/5
post-thumbnail

배경

학습을 진행하는 중에 learning rate를 0으로 설정하고 학습을 진행하였는데 성능이 계속 달라지는 것이다.

paramter := parameter - lr*grad

위와 같이 업데이트되는 것이라고 생각했는데 이상했다.

달라진 이유

from torch.optim as optim


optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
scheduler_cosine = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=90)

optimizer를 생성할 때 위와 같이 momentum이 있는 SGD를 사용했기 때문이었다. 이 optimizer는 다음과 같이 parameter가 업데이트 된다.

따라서 vt+1v_{t+1}을 구하는 과정에서 lrgt+1lr*g_{t+1} 뿐만아니라 μvt\mu * v_t로 각 parameter에 해당하는 모멘텀 값이 추가되기 때문이다.

0개의 댓글