공부하는 안씨의 기록

[개념] 딥러닝 기초 개념 정리 (4) 모델 성능 검증 (k겹 교차검증, 과적합) 본문

인공지능/딥러닝

[개념] 딥러닝 기초 개념 정리 (4) 모델 성능 검증 (k겹 교차검증, 과적합)

an씨 2024. 7. 24. 19:50

이번 여름방학(24/7/1~7/26)동안, 수도권 ICT 이노베이션 스퀘어 강의인 인공지능 중급 강의를 수강하며 스스로 정리하고 추가 조사한 내용을 토대로, 공부의 목적으로 딥러닝 개념 정리를 해보고자 한다. 

 

 

앞선 단계에서 딥러닝 알고리즘이 어떻게 적용되는지에 대한 원리를 알아보았다면, 이번엔 딥러닝 알고리즘을 바탕으로 만들어진 모델의 '성능'을 검증하는 방법에 대해 알아보자. 

 

모델 성능 검증

기본적으로 딥러닝 알고리즘을 적용하기 위해 사용하는 dataset(데이터셋)이 있을 것이다. 이 데이터 셋은 아래와 같이 나눌 수 있다. 

 

데이터셋 = 학습셋 + 테스트셋

주어진 데이터셋을 '학습셋'으로 사용한다는 것은, 학습셋을 바탕으로 딥러닝 모델을 학습시킨다는 의미이다. 이때, 학습셋을 바탕으로 모델이 제대로 학습되었는지 확인하기 위해 주어진 데이터셋에서 학습셋 외의 '테스트셋'을 설정하여(분리), 만들어진 모델을 새로운 데이터(=테스트셋)에 적용하여 성능을 확인한다. 이렇게 데이터셋을 나눌 때에는 scikit-learn 라이브러리가 필요하다. 

 

그런데, 데이터의 양이 적을 경우 위의 방법은 비효율적이다. 데이터셋의 100%를 학습셋으로 사용할 수 없다는 것이 단점이다. 

 

k겹 교차검증

이러한 단점은 'k겹 교차 검증'을 사용해 개선할 수 있다. 

아래의 정리된 그림을 확인하면 빠르게 이해할 수 있다. 

 

과적합

또한, 학습set의 학습량을 적당히 조절하지 않으면, ‘과적합’문제가 발생하므로 학습량 조절이 필요하다. 예를 들어, 학습셋에 대해 과도하게 학습하다보니, 학습셋의 경우에 대해서면 과하게 일치하게 되기 때문에 테스트셋에 대해서는 좋은 성능을 가지지 못하는 것이다. 학습량은 epochs 변수를 조절해가며 모델 성능을 재점검한다.