inflearn logo
강의

Course

Instructor

[PyTorch] Deep Learning Leading to Practical AI - From Basics to Paper Implementation

Data Imbalance(Data Imbalance)

데이터 불균형 문제 질문

693

chojang

3 asked

2

안녕하세요!
데이터 불균형 파트에서 1. weighted random sampling 사용해서 dataloader 이용해서 구현하는 중 질문이 생겨 올립니다.
 
ex)
-개 이미지 800개
-고양이 이미지 200개
데이터셋을 단순히 배치사이즈를 10으로 하였을때, 평균적으로 개 이미지 8개, 고양이 이미지2개가 들어가게 됩니다.
 
이를 위의 sampler 방식을 사용하게 되면 배치 내에 평균 5개씩 이미지가 들어가게 되었는데요
 
의문점은
1) 실제 개 이미지 중 300개는 아예 쓰지 못하게 되고, 고양이 이미지는 중복으로 더 들어가게 되는 상황이 되더라구요. 이러면 사용하지 못하는 이미지가 생기게 되는데, 사용하지 못하는 이미지를 활용할 수 있는 방법은 없는지요?
 
2) 위의 문제를 해결하기 위해 data_augmentation을 보조수단으로 써서 불균형 차이를 줄이는 것도 방법이 되는것인가요?

데이터불균형 딥러닝 머신러닝 배워볼래요? python pytorch 인공신경망

Answer 2

1

dlbro

안녕하세요. luenheim님

 

정말 좋은 질문입니다.

가중 샘플링 방식은 확률적 샘플링이기 때문에 전체 데이터 사용이 보장이 안 됩니다. 그럼에도 균형된 배치를 사용할 수 있기 때문에 랜덤 샘플링 보다는 더 좋은 성능이 이끌어 냅니다. 아주 오래 전에 저도 실제 연구에서 고민했던 질문이라 반갑습니다. 제가 시도 했던 방법은 크게 다음과 같습니다.

1. 가중 샘플링을 사용하되 데이터를 더 많이 활용할 수 있도록 에폭 수를 늘려 샘플링을 보다 많이 하게 한다.

2. 클래스마다 데이터 증식의 개수를 다르게 하여 불균형을 줄여준 뒤 무작위 샘플링을 진행한다. (oversampling)

3. 가장 수가 작은 클래스 기준으로 다른 클래스를 부분집합으로 나누어 매 에폭마다 돌아가면서 사용한다. (변형 된 undersampling)

4. 클래스가 가장 큰 데이터에 대해서 데이터 분석을 하여 일부를 추출하여 학습에 사용한다. 즉, 오히려 큰 클래스에 대해서 데이터가 덜 사용 됨을 인정하고 중요하다고 생각하는 데이터만 주입한다. (데이터 분석 후 가중 샘플링)

저의 경우 4번이 가장 큰 효과가 있었습니다.

열공하세요 :)

 

 

 

0

chojang

네 여러 방법에 대해 제시해 주셔서 감사합니다! 4번 방법에 대해서 고민해보고 적용해 봐야겠네요!!친절한 설명 감사드립니다!ㅎㅎ 

0

dlbro

모든 방법은 데이터 마다 모델마다 성능이 다를 수 있기 때문에 실제 적용을 하시는거라면 여러 가지 해보셔야해요 ^^;;

수업자료 제공 부탁드립니다.

0

95

2

코드가 어디에 있는지 모르겠습니다.

0

93

2

논문 구현

0

184

2

overfitting이 나는 이유가 궁금합니다.

1

169

2

분류 성능이 잘 안 나오는 이유

0

217

1

AutoEncoder 차원 질문

1

250

2

사전 학습 모델에서의 layer 변경에 대한 질문

1

218

1

7강 폴더 만들

0

259

1

4-3강 cross-validation에서의 best model 선정 기준

0

447

1

regression 문제에 대한 결과 시각화

0

213

1

Loss function 관련하여 질문드립니다.

0

954

1

early stopping 코드 문의

0

325

1

예측 그래프

0

353

1

데이터 불균형

1

364

1

8강 전이 학습 질문

0

395

2

data의 gpu처리 질문

0

240

1

nn.Linear(1024, 10) 관련 질문드립니다.

0

287

1

학습과 평가시 Loss 함수가 다른 이유

0

249

1

전처리 관련해서 질문 있습니다.

0

224

1

데이터 엔지니어의 역량을 기르려면 어떻게 해야할까요?

0

933

2

역전파 내용 중 미분 관련 질문 드립니다

1

282

1

8강 전이학습에서 kernel size 관련 질문 드립니다.

1

956

1

이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.

1

585

1

14강 데이터 불균형 RandomRotation

1

481

1