Intro
Optimization, Optimizer, Adam, SGD 등등 다들 많이 들어본 단어같긴 한데 대체 뭘 하는 녀석들일까요?
먼저, Optimize의 사전상 뜻은 최대한 좋게[적합하게] 만들다입니다. 과연 뭘 최적화한다는 것일까요?
- Optimization은 딥러닝뿐 아니라 수학, 물리같은 분야에서 함수를 모델로 한 시스템의 함수 값 등을 최소/최대화 되는 상태를 해석하는 문제에서 사용됩니다.
- 딥러닝에서는 주로 모델링한 것들의 cost(loss값 등)를 최소화하는데 사용되고 이는 학습속도를 높이거나 안정된 방향으로 학습이되도록 도와줍니다.
Gradient Decent Methods
우리가 가장기초적으로 알고있는 Gradient Decent도 어떻게 사용하냐에 따라 다른 결과를 가져올 수 있습니다
- Stochastic gradient descent
- 하나의 샘플을 통해 그래디언트를 업데이트
- Mini-batch gradient descent
- 데이터 전체가 아닌 subset으로 나눠 그래디언트를 업데이트(ex. 32, 64, 128..)
- Batch gradient descent
- 전체 데이터를 한꺼번에 사용하여 그래디언트 업데이트
위를 보면 batch size에 따라 다른 이름을 가지는 것을 볼 수 있습니다.
- On Large-batch Training for Deep Learning : Generalization Gap and Sharp Minima, 2017에서는 큰배치 사이즈보다 작은 배치사이즈에서 더 효과적으로 최적화 된다고 말합니다.
- 사진을 보면 Flat Minimum에서는 좌우로 움직일 때 train과 test의 차이가 크지 않지만 Sharp Minimum에서는 큰 차이가 발생하는 것을 볼 수 있습니다.
이를 통해 학습을 시킬때 학습을 시키는 방향, 속도, 배치사이즈 모두 영향을 미치는 것을 알 수 있습니다
반응형
'⚡AI > AI' 카테고리의 다른 글
3D Understanding (0) | 2022.03.27 |
---|---|
Cost Function & Activation Function (0) | 2022.03.24 |
Local Minima 문제에도 불구하고 딥러닝이 잘 되는 이유는? (1) | 2022.03.23 |
[DL]딥러닝 개요 (0) | 2022.02.09 |