Gradient Descent
GD
updates once with all data errors.SGD
updates parameters using an error of mini-batch.SGD
는 비교적 덜 정확하더라도 빠르게 목적지에 도달한다.GD
는 기울기가 작은 구간에서는 느리다.
-> 완만한 곳에서도 최적화를 빨리 하고 싶다.
Remember recent moving history.
업데이트 속도를 조절하기 위해 Velocity(속력 + 방향)를 사용한다.
기존 파라미터 대신 velocity를 업데이트하고, velocity를 더한다.
Gradient velocity를 유지하면서, 이전 속도를 반영한다.
Ex. Slow 구간에서 slow 되기 전은 빨랐기 때문에 그 빠른 속도 정보를 반영한다.
Velocity는 계속 축적됨. 알파는 반영 가중치.
Momentum step + Gradient step 두 벡터를 합쳐서 반영하기 때문에, SGD
보다 빠르다.
SGD의 문제점
을 보완하자.AdaGrad
는 convex할 때는 적합. 그러나 너무 많이 반영되면 지그재그는 줄어들지만 느려질 수 있다.RMSProp
+ Momentum
sample example
mini batch를 가져온다.velocity
관성 반영한다.update parameters
parameter에 velocity를 더해서 미리 가본다.accumulate
lr를 조절하기 위해. 분모 생김accumulate
로우 추가됨References
https://dbstndi6316.tistory.com/297