Keras - Model.fit 옵션

|

Keras 학습 함수 fit()

Keras에서는 모델 학습을 위해 fit() 함수를 사용합니다.

model.fit(X, Y, batch_size=100, epochs=10)
  • X : 입력 데이터
  • Y : 결과(Label 값) 데이터
  • batch_size : 한 번에 학습할 때 사용하는 데이터 개수
  • epochs : 학습 데이터 반복 횟수


batch_size

batch_size는 학습할 때 문제를 몇 번 풀고 정답을 확인하는 지를 결정하는 값입니다. 만약 batch_size10이라면, 총 10개의 데이터를 학습한 다음 가중치를 1번 갱신하게 됩니다.

100문제를 풀고 가중치를 갱신하는 것과, 1문제를 풀고 가중치를 갱신하는 것은 학습 결과에 큰 차이가 있습니다. 사람이 문제집으로 공부를 하는 것과 비슷합니다. 100문제를 풀고 한 번에 채점하면서 학습하는 것과, 1문제를 풀고 채점한 다음 다음 문제를 푸는 것과 비슷합니다.

batch_size 값이 크면 클수록 여러 데이터를 기억하고 있어야 하기에 메모리가 커야 합니다. 그대신 학습 시간이 빨라집니다. batch_size 값이 작으면 학습은 꼼꼼하게 이루어질 수 있지만 학습 시간이 많이 걸립니다.


epochs

학습 데이터 전체셋을 몇 번 학습하는지를 의미합니다. 동일한 학습 데이터라고 하더라도 여러 번 학습할 수록 학습 효과는 커집니다. 하지만, 너무 많이 했을 경우 모델의 가중치가 학습 데이터에 지나치게 최적화되는 과적합(Overfitting) 현상이 발생합니다.

다양한 학습 데이터를 이용해서 학습하는 것이 제일 좋지만, 현실적으로 학습 데이터를 다량으로 획득하는 것이 어렵기 떄문에 동일 데이터를 반복해서 학습하는 것은 피하기 어렵습니다. 따라서 과적합이 발생하지 않는 적절한 학습 횟수를 찾는 것도 딥러닝이 가진 숙제 중 하나입니다.