Gradients and Optimizer Update
Gradient는 loss를 줄이기 위해 parameter를 어느 방향으로 바꿔야 하는지 알려주는 신호다.
parameter W가 있으면, backward pass는 같은 shape의 gradient를 만든다.
가장 단순한 SGD 업데이트는 다음과 같다.
여기서 η는 learning rate다.
optimizer가 하는 일
optimizer는 gradient를 받아 parameter를 업데이트한다.
parameters + gradients -> optimizer -> updated parameters
SGD는 gradient를 거의 그대로 사용한다. Adam은 gradient의 이동 평균과 제곱 이동 평균 같은 추가 state를 유지한다.
그래서 Adam을 쓰면 보통 parameter 자체뿐 아니라 optimizer state 메모리도 필요하다.
parameter W
gradient dW
Adam state m
Adam state v
이 카드에서 중요한 포인트는 optimizer를 수식으로 완전히 외우는 것이 아니다. 학습 step에서는 backward가 gradient를 만들고, optimizer가 그 gradient를 사용해 parameter를 바꾼다는 흐름을 잡는 것이다.
확인
- gradient의 shape은 보통 무엇과 같은가?
- SGD 업데이트 식에서 learning rate는 어떤 역할을 하는가?
- Adam이 SGD보다 메모리를 더 쓰는 이유는 무엇인가?