- Gradient Descent Methods
- Stochastic gradient descent
엄밀한 의미의 sgd는 하나의 샘플에 대해서 gradient를 계산해서 update
- mini-batch gradient descent
배치 사이즈만큼의 데이터의 gradient를 계산해서 update
- batch gradient descent
전체 데이터의 gradient를 계산해서 update
대부분 mini-batch 방식 사용
- batch-size란?
한번에 학습시킬 데이터의 크기
큰 의미가 없을 수 있지만, 의외로 중요하다 -> 배치 사이즈를 줄이면 일반화가 줄어든다!
- optimizer
1. (stochastic) gradient descent
- 이 방법은 lr에 gradient값을 곱하여 빼주는 방식인데, lr를 어떤 값으로 정할지가 조금 까다롭다
2. momentum
- 이전 배치에서 gradient가 특정 방향으로 흘렀을 때, 현재 배치에서도 같은 방향으로 흐를 것이라 가정 -> gradient가 왔다갔다해도 학습이 잘 되게 함
3. nesterov accelerated gradient
- lookahead gradient를 계산
모멘텀은 현재 주어진 파라미터에서 gradient 계산해서 누적한다.
<-> NAG는 한번 이동(lookahead)해서 gradient 계산해서 누적한다.
local minimum에 좀더 빠르게 접근 가능하다
4. adagrad
많이 변한 파라미터는 조금만 변화시키고, 거의 변하지 않은 파라미터는 많이 변화시키고자 함
그래서 파라미터가 변한 정도(gradient가 변한 정도)를 변수에 저장!
가장 큰 문제 : 위에서 정의한 변수가 무한히 커져 학습이 멈추게 됨
5. adadelta
위 문제를 해결하고자 등장, window를 활용 -> 일정량의 파라미터를 저장
learning rate가 존재하지 않아 바꿀수있는 요소가 별로 없어서 활용성이 떨어진다.
6. RMSprop
제프리 힌튼이 강의중에 뜬금없이 제안한 방법이다. 즉, 논문을 통해 제시된 것이 아니다.
5번과 달리 stepsize가 존재한다
7. adam
가장 무난하게 사용되는 방법론
gradient의 크기가 변함에 따라서 adaptive 하게 learning rate 변경+ momentum 사용
'AI' 카테고리의 다른 글
딥러닝 기초 - CNN 간단 정리 (1) | 2022.09.28 |
---|---|
Regularization 간단 정리 (0) | 2022.09.28 |
딥러닝 최적화 용어 간단 정리 (0) | 2022.09.28 |
Neural Networks and Multi-Layer Perceptron 개념 간단 정리 (0) | 2022.09.28 |
딥러닝 기본 용어 설명 (0) | 2022.09.28 |