-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
데이터 불균형 문제 질문
22.02.18 14:54 작성 조회수 498
2
안녕하세요!
데이터 불균형 파트에서 1. weighted random sampling 사용해서 dataloader 이용해서 구현하는 중 질문이 생겨 올립니다.
ex)
-개 이미지 800개
-고양이 이미지 200개
데이터셋을 단순히 배치사이즈를 10으로 하였을때, 평균적으로 개 이미지 8개, 고양이 이미지2개가 들어가게 됩니다.
이를 위의 sampler 방식을 사용하게 되면 배치 내에 평균 5개씩 이미지가 들어가게 되었는데요
의문점은
1) 실제 개 이미지 중 300개는 아예 쓰지 못하게 되고, 고양이 이미지는 중복으로 더 들어가게 되는 상황이 되더라구요. 이러면 사용하지 못하는 이미지가 생기게 되는데, 사용하지 못하는 이미지를 활용할 수 있는 방법은 없는지요?
2) 위의 문제를 해결하기 위해 data_augmentation을 보조수단으로 써서 불균형 차이를 줄이는 것도 방법이 되는것인가요?
답변을 작성해보세요.
1
딥러닝호형
지식공유자2022.02.18
안녕하세요. luenheim님
정말 좋은 질문입니다.
가중 샘플링 방식은 확률적 샘플링이기 때문에 전체 데이터 사용이 보장이 안 됩니다. 그럼에도 균형된 배치를 사용할 수 있기 때문에 랜덤 샘플링 보다는 더 좋은 성능이 이끌어 냅니다. 아주 오래 전에 저도 실제 연구에서 고민했던 질문이라 반갑습니다. 제가 시도 했던 방법은 크게 다음과 같습니다.
1. 가중 샘플링을 사용하되 데이터를 더 많이 활용할 수 있도록 에폭 수를 늘려 샘플링을 보다 많이 하게 한다.
2. 클래스마다 데이터 증식의 개수를 다르게 하여 불균형을 줄여준 뒤 무작위 샘플링을 진행한다. (oversampling)
3. 가장 수가 작은 클래스 기준으로 다른 클래스를 부분집합으로 나누어 매 에폭마다 돌아가면서 사용한다. (변형 된 undersampling)
4. 클래스가 가장 큰 데이터에 대해서 데이터 분석을 하여 일부를 추출하여 학습에 사용한다. 즉, 오히려 큰 클래스에 대해서 데이터가 덜 사용 됨을 인정하고 중요하다고 생각하는 데이터만 주입한다. (데이터 분석 후 가중 샘플링)
저의 경우 4번이 가장 큰 효과가 있었습니다.
열공하세요 :)
0
답변 2