데이터 세트: 불균형 데이터 세트

값이 양성 또는 음성인 카테고리 라벨이 포함된 데이터 세트를 예로 들어 보겠습니다. 균형 잡힌 데이터 세트에서는 양성 라벨과 음성 라벨의 수가 거의 같습니다. 하지만 한 라벨이 다른 라벨보다 더 일반적인 경우 데이터 세트는 불균형합니다. 불균형 데이터 세트에서 주로 사용되는 라벨을 다수 클래스라고 하며, 덜 일반적인 라벨을 소수 클래스라고 합니다.

다음 표에는 불균형 정도에 따라 일반적으로 받아들여지는 이름과 범위가 나와 있습니다.

소수 집단에 속하는 데이터의 비율 불균형 정도
데이터 세트의 20~40% 약간
데이터 세트의 1~20% 보통
데이터 세트의 1% 미만 익스트림

예를 들어 소수 클래스가 데이터 세트의 0.5% 를 차지하고 다수 클래스가 99.5%를 차지하는 바이러스 감지 데이터 세트를 생각해 보겠습니다. 대부분의 피험자에게 바이러스가 없으므로 이와 같이 극도로 불균형한 데이터 세트는 의학에서 흔히 볼 수 있습니다.

그림 5. 막대가 두 개인 막대 그래프 한 막대에는 약 200개의 음성 클래스가 표시되고 다른 막대에는 1개의 양성 클래스가 표시됩니다.
그림 5. 극도로 불균형한 데이터 세트

 

불균형한 데이터 세트에는 모델을 제대로 학습시키기에 충분한 소수 클래스 예시가 포함되어 있지 않은 경우가 있습니다. 즉, 양성 라벨이 너무 적으면 모델이 거의 전적으로 음성 라벨로 학습하고 양성 라벨에 관해 충분히 학습할 수 없습니다. 예를 들어 배치 크기가 50인 경우 많은 배치에 양성 라벨이 포함되지 않습니다.

특히 약간 불균형하거나 약간 불균형한 데이터 세트의 경우 불균형은 문제가 되지 않는 경우가 많습니다. 따라서 먼저 원본 데이터 세트로 학습을 시도해야 합니다. 모델이 제대로 작동하면 완료된 것입니다. 그렇지 않은 경우에도 최적화되지 않은 모델은 향후 실험을 위한 좋은 기준점을 제공합니다. 그런 다음 다음 기법을 사용하여 불균형 데이터 세트로 인한 문제를 해결할 수 있습니다.

다운샘플링 및 가중치 상향 조정

불균형 데이터 세트를 처리하는 한 가지 방법은 다수 클래스를 다운샘플링하고 가중치를 높이는 것입니다. 다음은 두 가지 새로운 용어의 정의입니다.

  • 다운샘플링 (이 문맥에서는) 다수 클래스 예시의 불균형적으로 낮은 하위 집합을 학습하는 것을 의미합니다.
  • 가중치 상향은 다운샘플링된 클래스에 다운샘플링된 배수와 동일한 예시 가중치를 추가하는 것을 의미합니다.

1단계: 다수 클래스 다운샘플링하기 음성 라벨 200개당 양성 라벨 1개 비율을 갖는 바이러스 데이터 세트(그림 5 참고)를 생각해 보겠습니다. 10배 다운샘플링하면 균형이 1개의 양성 라벨과 20개의 음성 라벨 (5%)로 개선됩니다. 결과적으로 얻은 학습 세트는 여전히 약간 불균형하지만 양성 예와 음성 예의 비율은 원래의 극도로 불균형한 비율 (0.5%)보다 훨씬 낫습니다.

그림 6. 막대가 두 개인 막대 그래프 한 막대에는 음성 클래스 20개가 표시되고 다른 막대에는 양성 클래스 1개가 표시됩니다.
그림 6. 다운샘플링

 

2단계: 다운샘플링된 클래스의 가중치 상향: 다운샘플링된 클래스에 예시 가중치를 추가합니다. 10배로 다운샘플링한 후 예시 가중치는 10이어야 합니다. (예, 직관에 반하는 것처럼 보일 수 있지만 나중에 그 이유를 설명해 드리겠습니다.)

그림 7. 다운샘플링 및 업웨이팅의 두 단계 다이어그램
            1단계: 다운샘플링은 다수 클래스에서 무작위 예시를 추출합니다. 2단계: 가중치 상향은 다운샘플링된 예시의 가중치를 추가합니다.
그림 7. 가중치 보정

 

가중치라는 용어는 모델 매개변수 (예: w1 또는 w2)를 참조하지 않습니다. 여기서 가중치는 학습 중에 개별 예시의 중요성을 높이는 예시 가중치를 의미합니다. 가중치가 10인 예는 모델이 이 예를 가중치가 1인 예보다 10배 더 중요하게 (손실을 계산할 때) 취급한다는 의미입니다.

가중치는 다운샘플링하는 데 사용한 인수와 같아야 합니다.

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

다운샘플링 후에 예시 가중치를 추가하는 것은 이상하게 보일 수 있습니다. 결국 소수 클래스에서 모델을 개선하려고 하는데 다수 클래스의 가중치를 높이는 이유는 무엇인가요? 실제로 다수 클래스의 가중치를 높이면 예측 편향이 줄어드는 경향이 있습니다. 즉, 다운샘플링 후 가중치를 올리면 모델 예측의 평균과 데이터 세트 라벨의 평균 간의 차이가 줄어드는 경향이 있습니다.

재조정 비율

데이터 세트의 균형을 맞추기 위해 다운샘플링하고 가중치를 올려야 하는 정도는 얼마인가요? 답을 찾으려면 다른 초매개변수를 실험할 때와 마찬가지로 재균형 비율을 실험해야 합니다. 하지만 궁극적인 답변은 다음 요인에 따라 달라집니다.

  • 배치 크기
  • 불균형 비율
  • 학습 세트의 예시 수

각 배치에 소수 클래스 예시가 여러 개 포함되는 것이 이상적입니다. 소수 클래스가 충분하지 않은 배치는 학습이 매우 잘 이루어지지 않습니다. 배치 크기는 불균형 비율보다 몇 배 더 커야 합니다. 예를 들어 불균형 비율이 100:1이면 배치 크기는 500 이상이어야 합니다.

연습: 학습 내용 점검하기

다음 상황을 고려해보세요.

  • 학습 세트에는 10억 개가 조금 넘는 예시가 포함되어 있습니다.
  • 배치 크기는 128입니다.
  • 불균형 비율은 100:1이므로 학습 세트는 다음과 같이 분할됩니다.
    • 10억 개 정도의 다수 클래스 예시
    • 소수 클래스 예시: 약 1,000만 개
다음 중 올바른 설명은 무엇인가요?
배치 크기를 1,024로 늘리면 결과 모델이 개선됩니다.
배치 크기가 1,024이면 각 배치에는 평균 약 10개의 소수 클래스 예시가 포함되므로 훨씬 더 나은 모델을 학습하는 데 도움이 됩니다.
배치 크기를 128로 유지하고 20:1로 다운샘플링 (및 가중치 상향)하면 결과 모델이 개선됩니다.
다운샘플링 덕분에 각 128개 배치에는 평균 약 21개의 소수 클래스 예시가 포함되며, 이는 유용한 모델을 학습하는 데 충분합니다. 다운샘플링하면 학습 세트의 예시 수가 10억 개가 조금 넘는 것에서 약 6,000만 개로 줄어듭니다.
현재 초매개변수는 괜찮습니다.
배치 크기가 128인 경우 각 배치에는 평균 약 1개의 소수 클래스 예시가 포함되며, 이는 유용한 모델을 학습하기에 충분하지 않을 수 있습니다.