Stochastic gradient descent
데이터 하나마다 Gradient를 계산
Mini-batch gradient descent
데이터를 배치로 나누어 Gradient를 계산
Batch gradient descent
전체 데이터를 사용해 Gradient를 계산
보통 Mini-batch로 사용
Large batch-size와 Small batch-size에는 유의미한 차이가 있음
small batch-size를 통해 Flat Minimum을 찾는 것이 좋음
가장 기본적인 method
LR을 잡는 것에 어려움이 있음
관성
이전 배치의 정보를 활용해 베타라는 하이퍼 파라미터를 통해 관성을 더함
변화율을 사용하기에 Local Minimum에 더욱 빨리 Converge
adaptive gradient
neural network의 parameter가 많이 변한 것에는 적게 변화를 주고 parameter가 적게 변한 것에는 큰 변화를 줌
G가 바로 Sum of gradient squares
결국 G는 무한대로 가게 되고 학습이 멈추는 현상이 생김
G가 너무 커지는 현상을 막기 위해 Window를 설정해서 그 안에서만 계산
다만 parameter가 너무 커지면 이를 저장하는데 GPU가 감당 못할수 있는 확률이 높아짐 -> 이를 방지하기 위한 수식 존재
그럼에도 불구하고 AdaDelta 내부에 LR이 존재하지 않기에 잘 쓰이지 않음
AdaGrad의 분자에 베타라는 step_size를 넣은 값
gradient square의 exp함수(RMSprop)에 momentum을 둘 다 활용하는 것