민자의 지식창고

Batch size와 Epochs 본문

카테고리 없음

Batch size와 Epochs

전지적민자시점 2020. 8. 6. 13:24

Tensorflow와 keras를 접하다 보니 batch size 와 epochs에 다시 한번 정리 해봐야 할 필요를 느꼇습니다.

이 두개 옵션에 따라 조금씩 모델의 정확도가 판가름 나는 경우가 많은 것 같습니다.

너무 Max로 줘도 안되고 Min로 줘도 안되고 상당히 적절히 줘야 하는 옵션값 입니다.

 

Batch size :  몇개의 샘플로 가중치를 갱신할 것인지 지정

epochs : 학습 반복 횟수

 

단순한 정의는 알겠지만, 모델 생성시 실제 적용할때마다 개념적으로 잘 적용되지 않습니다

예를들어서 설명 하겠습니다

100문제가 있고 100개의 답이 있습니다. 문제를 푼 뒤 문제와 해답을 맞추어서 학습이 이루어지기 때문에 해답지가 없으면 학습이 되지 않습니다

 

Batch Size

batch size는 몇문항을 풀고 해답을 맞출지를 의미 합니다. 

우리가 해답을 맞춰보면서, 이렇게 푸는구나 느끼면서 학습하는 것처럼 모델도 이러한 과정을 통해 가중치가 갱신 욉니다. backpropagation 알고리즘으로 가중치가 갱신이 되게 됩니다.

batch size가 10이면, 10개를 맞춰보고 다시 다음 10문제를 맞춰 보는식으로 총 10번을 맞춰 가중치 갱신 10번 일어나게됩니다

batch size가 1이면, 1개 맞춰보고 다시 다음 1문제를 맞춰 봐서 총 100번을 맞춰 가중치를 갱신하게됩니다.

 

100문항을 맞추고 해답을 맞춰보려면 기억 용량이 커야 합니다. 

반대로 1문항씩 맞추고 해답을 맞춰보려면 시간이 길어 집니다.

 

Point. batch_size가 크면 기억용량이 커야 합니다. batch_szie가 작으면, 계산 속도가 느려집니다.

 

Epochs

epochs는 모의고사를 몇번 풀까 입니다. 즉 100문항의 문제들을 반복적으로 풀어보는 것을 지정하는 것입니다.

문제를 많이 풀수록 학습이 되듯이 같은 데이터셋으로 반복적으로 가중치가 갱신되면서 모델이 학습이 됩니다.

풀이가 반복될수록 틀린개수가 적어지고 나중하게는 완만하게 틀린 개수가 줄어듭니다.

모의고사 1회분을 20번 푸느것과 다른 모의고사 20번 1회 푸는것 어떤 차이가 있을까요?

데이터 특성에 따르 다릅니다. 현실적으로 데이터를 구하기 쉽지 않기 때문에 제한된 데이터셋으로 반복적으로 학습이 효율적입니다

 

 

그렇다면, 여기서 우린느 무조건 Epochs를 늘리면 좋은가?

그렇지 않습니다. 같은 문제집 계속 보면 역호가 발생합니다. 이렇게 되면 다른 악보를 보고, 기존 학습된 악보를 치게 되는 일명 Overfit 효과가 나옵니다. = 과유불급

 

 

 

 

728x90