• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

과적합 판단 방법에 대해 질문 드립니다.

23.03.19 00:41 작성 조회수 1.34k

0

안녕하세요, 강연자님의 자세하고 좋은 강의 잘 듣고 있습니다! 과적합 판단 방법에 대해 몇 가지 질문 드리려고 합니다.

강의 복습 및 응용을 위해 5개의 Dense Layer로 구성된 DNN 실험을 진행해봤습니다. 데이터셋은 public하게 공개되어 있는 데이터를 사용했습니다.

epoch 변화에 따른 정확도, 손실 함수 그래프를 그려봤는데, 첨부한 그래프들이 과적합에 해당하는지 잘 모르겠습니다. 그래서 제 그래프에서 과적합을 판단하는 기준이 무엇이 될 수 있는지 궁금합니다.

  1. 저는 검증 loss가 학습 loss 보다 높을 때 과적합이라고 알고 있는데, 제가 복습을 위해서 진행해본 실험에서는 일단 그래프가 안 만나고 항상 검증 loss가 학습 loss보다 낮은데 이건 과적합이 아닌건지 궁금합니다.

    loss 그래프에서 학습 loss와 검증 loss가 교차되면서 검증 loss가 더 높아지는 경우에 학습을 조기 종료하는 것이 좋다고 생각하는데, 저희가 진행해본 실험에서는 그래프가 평행하게 나타납니다. 이런 경우에는 학습 및 검증 loss가 교차되지 않기 때문에 과적합이 아니라고 판단해도 되는지, 실험을 조기 종료하지 않아도 되는지 궁금합니다.

    Untitled (45).png

  2. 아래의 그래프에서 validation loss와 validation accuracy가 V자로 나오는 구간이 있습니다. 이런 경우에는 어떤 이유 때문에 나타나는 현상인지 궁금합니다.

    Untitled (46).png

  3. 과적합 판단 방법에는 말씀해주신 교차 검증을 이용한 판단, loss-epoch 그래프에서 validation loss값이 높아지는 부분으로 판단하는 것 외에 ‘편향-분산 트레이드오프 그래프’를 사용하는 방법도 있다고 알고 있습니다(가로축이 훈련세트크기입니다). 혹시 이 그래프는 강의에서 말씀해주신 그래프와 다른 것인지, 그리고 혹시 편향-분산 트레이드오프 그래프를 그리는 코드를 추천해주실 수 있을까요?

    Untitled (47).png

  4. 강의에서는 교차 검증으로 과적합을 판단할 수 있다고 하셨는데, 이를 실제로 어떻게 하는지 궁금합니다. 교차 검증의 결과로 나온 avg, accuracy 등의 값이 과적합을 판단하는데 사용이 되는건가요!? 관련해서 교차 검증을 사용해서 과적합을 판단하는 법에 대한 보충 설명 해주시면 감사드리겠습니다!

     

    좋은 하루 보내시길 바랍니다.

    감사합니다!

     

답변 1

답변을 작성해보세요.

0

안녕하세요.

1.2번: 먼저 이미지와 다르게 일반적으로 학습 손실 보다 검증, 평가 손실 값이 더 높게 나오게 됩니다. 또한 검증데이터에서 100%의 가까운 정확도가 나온 것과 에폭 0에 학습 정확도가 94% 정도가 나오는 것과 추가적으로 첨부하신 그래프가 직선형태인 것도 일반적인 경우는 아니라서 과적합을 판단하기 전에 실험 세팅을 확인해야 할 것 같습니다.

  1. 데이터 셋, 데이터 개수, 피쳐 개수가 어떻게 되는지요?

  2. epoch을 더 늘리면 어떻게 되나요?

  3. optimizer와 학습률은 어떻게 되나요?

  4. 학습, 검증, 평가 데이터가 겹치지는 않나요?

3번: 과적합 판단과는 다소 다른 개념입니다. 학습 데이터 량에 따른 정확도 경향을 나타낸 것입니다. 추천 코드는 잘 모르겠습니다.

4번: 여러 모델을 비교할 때 교차검증을 시행한다면 각 모델마다 정의 된 score 값을 얻게 됩니다. (예를 들어 각 폴드마다 정확도가 나오면 평균을 내서 score를 결정합니다.) 그 후, score가 가장 높은 모델을 가장 일반화 된 모델이라고 생각하여 베스트 모델을 선택하는 방법입니다.

참고로 교차검증의 가장 큰 단점은 폴드 별로 학습, 검증을 진행하기 때문에 시간이 오래 걸립니다. 따라서 모델이 깊고 대량 데이터가 사용되는 딥러닝 분야에서는 잘 활용되지 않으며 학습/검증/평가 데이터로 나누어 모델을 평가하게 됩니다 :)

 

즐거운 주말 되세요!