개발노트/Tensorflow

epoch, batch size, iteration 용어 풀이

전지적민자시점 2020. 7. 22. 15:29

ml5의 nuralnetwork을 확인하다 보면,

Train 할때 batch size와 epoch 옵션을 제공 해주고 있습니다.

이때 단어에 대한 의미가 무엇인지 확인 해보겠습니다.

 

학습시 데이터가 많고 (메모리가 부족등 이유로) 한번에 계산으로는 최적화 된 값을 찾기가 어렵습니다.

머신러닝 최적화(optimization) 할때는 여러번 과정 즉 훈련(Train)과정이 필요 합니다.

 

epoch : one epoch is when an ENTIRE dataset is passed forward and backward through the neural network only Once

 

풀이 하자면, backpropagation algorithm은 input 부터 output 까지 각 Layer를 계산하는데, Forward pass와 Backward pass 두가지로 나뉩니다. forward는 입력을 시작으로 출력까지 나오는 방향을 말하고, backward는 회귀(강화학습)등을 이유로 다시 역으로 되돌아가는 방향을 말합니다.

이러한 전체 데이터 셋에 대해 해당 두 과정을 완료 되면 한번의 epoch가 진행 되었다 라고 정의를 합니다.

 

적절한 epoch값이 설정 되어야 underfitting과 overfitting을 방지하게 됩니다.

 

underfit과 overfilt에 대한 정의를 해보자면

V > epoch  : 학습데이터가 부족하거나, 표준 집합이 부족하거나, 부적절한 모형  = underfit

V < epoch : 과 학습 되거나, 편중 데이터 이거나, 무분별한 Feature  =overfit

 

http://blog.skby.net/%EC%98%A4%EB%B2%84%ED%95%8F%EA%B3%BC-%EC%96%B8%EB%8D%94%ED%95%8F-overfitting-underfitting/

 

오버핏과 언더핏 (Overfitting & Underfitting) > 도리의 디지털라이프

I. 과한 학습과 부족 학습, 오버핏과 언더핏의 문제점 구분 문제점 현상 Overfit (과분산) – 과학습, 오류 분산 – High Variance, 과분산 – 비슷한 입력에 부정확 반응 결과 – 학습 대상만 정상반응 U

blog.skby.net

결론은 적절한 훈련세트로 학습을 시켜야 된다 입니다.

 

batch size: Total number of training examples present ina single batch

1batch은 데이터 샘플의 크기이다

 

iteration : the number of passes to complete on epoch

 epoch를 나누어서 실행하는 횟수

 

1epoch에 모든 데이터를 한꺼번에 집어 넣기 어려우므로, 메모리 한계와 속도 저하 문제등, 몇번으로 나누어서(iteration) , 특정 사이즈로(batch size)로 학습을 합니다.

 

참고자료 - 문제가 되었을시에 삭제 하도록 하겠습니다.

https://blog.naver.com/qbxlvnf11/221449297033

 

머신 러닝 - epoch, batch size, iteration의 의미

- 출처이번 포스팅의 주제는 텐서플로우나 케라스 등을 사용해서 모델을 만들어 보았으면 다들 아실 용어인...

blog.naver.com

 

728x90