Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

불균형 데이터(imbalanced data)란 본문

Computing Tech. Diary/Artificial Intelligence

불균형 데이터(imbalanced data)란

똘키아빠 2022. 5. 2. 10:51
AI모델의 정확도를 결정하는 것 중에 가장 중요한 요소가 학습데이터라는 것은 모두가 잘 알고 계실 겁니다. 학습데이터로 학습된 모델이 실제에서도 같은 정확도를 갖고 있어야 의미가 있기 때문입니다. 이러한 학습데이터의 유효성을 이야기할 때 사용하는 용어 중에 불균형 데이터(imbalanced data)가 있습니다.
단어에서부터 벌써 불균형데이타는 문제가 있는 데이터라는 것을 직감하실 겁니다. 네. 맞습니다. 불균형 데이터는 학습 데이터의 전체 집합에서 특정한 데이터세트들이 상대적으로 적은 데이터세트이 포함된 데이터를 의미합니다. 예를 들어 제조 불량데이터의 경우는 정상과 불량으로 구분하는데 불량 데이터는 상대적으로 불량이 적기 때문에 데이터의 획득이 어려울 것입니다. 연령분포 데이터의 경우도 연령의 분포가 균일하지 않습니다. 즉 불균형 데이터라고 볼 수 있습니다.
 
 
위의 그림은 confusion matrix의 예로서 전체적으로 정확도는 90%로 매우 좋다고 이야기 할 수 있지만 실제로는 이상치의 데이터가 적어서 이상치를 예측하는 것은 50%라는 것을 알수 있습니다. 이는 이상치의 데이터가 적은 불균형데이터로 발생하는 문제입니다.
이를 해결하는 방법으로는  범주형의 분류 문제와 연속적인 값을 갖는 회귀문제에 있어서 상당히 다른 다양한 방법이 적용되고 있습니다. 또한 해결방법이 데이터관점에서 해결하는 방법과 손실함수 등을 개선하는 알고리즘 관점에서 해결하는 방법이 있습니다. 그 예로서 범주형 데이터관점에서는 아래와 같이 간단히 소수의 데이터와 유사한 가상의 데이터를 생성하는 방법으로 SMOTE(Synthetic Minority Over-sampling Technique)와 같은 방법을 사용하거나, 지난번 설명한 GAN을 이용하여 가상의 데이터를 생성하여 불균형을 해소하는 방법이 있습니다.  
 
알고리즘적으로는 CNN을 이용한 Two Stage Training이라는 방법이 효과가 높다고 알려져 있습니다. 이는 CNN이 Feature를 추출하는 추출기와 분류하는 분류기로 나뉘어지는 것을 이용하여, 2단계를 나누어 학습한다는 것입니다. 처음에는 추출기와 분류기를 End-to-End로 학습시키고, 학습이 이루어진 상태에서 추출기는 고정하고 분류기만 재학습시키는 방법입니다. 분류가중요하기 때문에 분류기만 더 심화하여 학습한다는 것입니다. 

'Computing Tech. Diary > Artificial Intelligence' 카테고리의 다른 글

Self-Supervised Learning  (0) 2022.05.02
Transfer Learning  (0) 2022.05.02
Semantic Segmentation  (0) 2022.05.02
강화학습 이해하기  (0) 2022.04.30
GAN 신경망을 통해 이해하는 딥러닝  (0) 2022.04.30
Comments