경사 하강법 (Gradient Descent)
반복 (iterative, 곡선의 최소값) 최상의 결과를 찾기 위해 기계 학습에 사용되는 최적화 알고리즘이다. 알고리즘은 iterative이므로 최적의 결과를 얻으려면 여러 번 결과를 얻어야 한다. gradient descent의 반복적인 quality은 과소 적합 (under-fitted) 그래프가 그래프를 데이터에 최적으로 맞추는 데 도움이 된다.
gradient descent에는 학습률 (learning rate)이라는 매개변수 (parameter)가 있다. 왼쪽 그림에서 처음에는 단계가 더 크다는 것은 learning rate이 더 높다는 것을 의미하고, 포인트가 내려갈수록 단계의 크기가 짧을수록 learning rate은 더 작아진다. 또한, 비용 (cost) 함수가 감소하거나 cost가 감소하고 있다. 다른 표현으로 손실 (loss) 함수가 감소하거나 loss가 감소하고 있다고 볼 수 있다. cost 와 loss은 모두 동일한 것을 나타낸다 (btw는 loss / cost가 감소하고 있는 good thing).
ML에서 항상 발생하는 데이터가 너무 커서 한 번에 모든 데이터를 컴퓨터에 전달할 수 없는 경우에만 epoch, batch size, iterative와 같은 용어가 필요하다. 따라서, 이 문제를 극복하려면 데이터를 더 작은 크기로 나누어 하나씩 컴퓨터에 제공하고 주어진 데이터에 맞도록 모든 단계가 끝날 때마다 신경망의 weight를 업데이트해야 한다.
배치 (Batch Size)
batch size는 model의 weight를 한 번 업데이트시킬 때 사용되는 샘플들의 묶음을 의미한다. 예를 들어, 총 1000개의 훈련 샘플이 있다고 가정하면 batch size를 20로 설정시 20개의 샘플 단위마다 model의 weight를 한 번씩 업데이트시킨다. 따라서, 총 50번 weight가 업데이트된다. 하나의 데이터 set을 총 50개의 batch로 나눠서 train한 것이다.
에포크 (Epoch)
epoch는 학습의 횟수를 의미한다. epoch가 10이고 batch size가 20이면, weight를 50번 업데이트하는 것을 총 10번 반복한다. 그러므로 각 데이터 샘플이 총 10번씩 사용된다. 결과적으로 weight가 총 500번 업데이트되는 것이다.
epoch의 수가 증가할수록 신경망에서 weight가 더 많이 변경되고 곡선이 underfitting에서 optimim으로 그리고 overfitting 곡선으로 이동한다. 안타깝게도 알맞은 epoch 수에 대한 정답은 없다. 하지만 데이터 set마다 다르지만 epoch의 수는 데이터가 얼마나 다양한지와 관련이 있다고 말할 수 있다.
https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9
'Learning-driven Methodology > DL (Deep Learning)' 카테고리의 다른 글
[Deep Learning] 비용 함수 (Cost Function) (0) | 2021.12.30 |
---|---|
[Deep Learning] 목적 함수 (Objective Function) (0) | 2021.12.30 |
[Deep Learning] 회귀 (Regression) (0) | 2021.12.23 |
딥러닝 (Deep Learning) (0) | 2021.12.23 |
[Deep Learning] Train / Validation / Test set (0) | 2021.12.22 |