해결된 질문
작성
·
342
·
수정됨
2
imbalanced data를 처리할 때, weightedrandomsampler (replacement=True) 와 augmentation을 통해 불균형을 해소하고자 하는데, weightedrandomsampler에 있는 num_samples 파라미터에 관해 궁금한점이 있어서 질문드립니다.
weightedrandomsampler가 작동하는 방법이, 샘플마다 가중치를 줘서 데이터 수가 적은 라벨에서는 더 높은 확률로 뽑히고, 데이터 수가 많은 라벨에서는 더 낮은 확률로 뽑혀서 결국 확률상 거의 같은 확률로 뽑도록 만들어서 불균형을 해소하는 걸로 알고 있습니다.
이때, 만약 num_samples를 그냥 원래 train_sets의 길이로 지정을 하면 데이터가 적은 라벨에서는 augmentation을 통해 이미지를 변형해가며 오버샘플링이 된 것 처럼 샘플수가 증가되겠지만, 반대로 원래 데이터가 많던 라벨에서는 기존에 있던 데이터들에서 일부는 뽑히지 않을 수도 있지 않나요?
예를들어 (1000,200,100)의 불균형 데이터가 있다고 했을때, 전체 데이터의 개수인 1300만큼 weightedrandomsampler에서 num_samples=1300으로 하고 추출을 한다면, 라벨별로 1300/3 = 433개씩 뽑힐텐데, 이러면 첫번째 라벨의 데이터는 1000개에서 433개를 뺀 567개는 그대로 누락되는건가요?
만약 그렇다면 num_samples를 더 큰 숫자로 해서 가지고 있는 데이터를 전부 불러오려고 한다면, 소수의 데이터를 너무 많이 재활용해서 과적합이 될까요?
답변 1
0
안녕하세요.
정말 좋은 질문입니다!!!
실제로 누락 가능성이 있기 때문에 충분한 에폭이 필요합니다! 그러나 언급하신 내용처럼 배치 사이즈는 극단적으로 크게 혹은 작게 하지는 않습니다.
과적합 관련해서는 우려하신 일이 일어날 수 있기 때문에 정규화 테크닉들을 함께 써주시면 됩니다!!
열공 하세요 :)
감사합니다!