본문 바로가기
Learning-driven Methodology/DL (Deep Learning)

[Deep Learning] 경사 하강법 (Gradient Descent) / 배치 사이즈 (Batch Size) / 에포크 (Epoch)

by goatlab 2021. 12. 22.
728x90
반응형
SMALL

경사 하강법 (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

 

Epoch vs Batch Size vs Iterations

Know your code…

towardsdatascience.com

 

728x90
반응형
LIST