불균형 데이터

편향된 클래스 비율이 포함된 분류 데이터 세트를 불균형이라고 합니다. 데이터 세트의 상당 부분을 차지하는 클래스를 메이저 클래스라고 합니다. 더 작은 비율을 구성하는 항목은 다수 클래스입니다.

불균형한 항목은 무엇인가요? 아래 표에 나온 것처럼 그 정도가 낮거나 극단적일 수 있습니다.

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

불균형 데이터를 찾아야 하는 이유 데이터 세트가 불균형한 분류 태스크가 있는 경우 특정 샘플링 기법을 적용해야 할 수 있습니다.

사기를 감지하는 모델의 예를 살펴보겠습니다. 이 데이터 세트에서 트랜잭션 200회당 한 번씩 사기가 발생하므로 실제 분포에서는 데이터의 약 0.5% 가 양수입니다.

막대가 두 개 있는 막대 그래프 한 막대에는 음수 트랜잭션 약 200개가 표시되고 다른 막대에는 양의 트랜잭션 1이 표시됩니다.

왜 이것이 문제가 되나요? 네거티브 사례에 비해 포지티브가 거의 없기 때문에 학습 모델은 부정적인 예시에 대부분의 시간을 소비하며 포지티브 예시를 충분히 학습하지 못합니다. 예를 들어 배치 크기가 128인 경우 많은 배치에는 포지티브 예시가 없으므로 경사는 덜 유익합니다.

데이터 세트가 불균형한 경우 먼저 실제 분포에 대한 학습을 시도해 보세요. 모델이 잘 작동하고 일반화되면 완료된 것입니다. 그렇지 않은 경우 다음과 같은 다운샘플링 및 가중치 부여 기술을 사용해 보세요.

다운샘플링 및 가중치 부여

불균형 데이터를 처리하는 효과적인 방법은 대다수 클래스를 다운샘플링하고 가중치를 부여하는 것입니다. 먼저 두 가지 새로운 용어를 정의해 보겠습니다.

  • 이 맥락에서 다운샘플링은 대다수 클래스 예시의 지나치게 적은 하위 집합에 대한 학습을 의미합니다.
  • 가중치 적용은 다운샘플링된 요인과 동일한 다운스트림 클래스에 예시 가중치를 추가하는 것을 의미합니다.

1단계: 대다수 클래스를 다운샘플링합니다. 1에서 200까지의 네거티브가 있는 사기 데이터 세트의 예를 다시 살펴보세요. 다운샘플링을 10분의 1로 진행하면 균형이 1에서 20으로 변경됩니다 (5%). 결과로 도출되는 학습 세트는 여전히 적당히 불균형하지만, 음성에 대한 양의 비율이 원래 매우 균일하지 않은 비율 (0.5%)보다 훨씬 좋습니다.

막대가 두 개 있는 막대 그래프 한 막대에는 음수 트랜잭션 20개가 표시되고 다른 막대에는 양수 트랜잭션 1이 표시됩니다.

2단계: 다운샘플링된 클래스 가중치 부여: 마지막 단계는 다운샘플링된 클래스에 예시 가중치를 추가하는 것입니다. 10의 계수로 다운샘플링되었으므로 예시 가중치는 10이어야 합니다.

다운샘플링 및 가중치 부여의 개념 다이어그램 1단계인 다운샘플링은 대다수 클래스의 데이터 세트를 나타내는 블록에서 무작위로 선택한 예를 가져옵니다. 2단계, 가중치 적용, 무작위로 선택된 각 예시에 가중치를 추가합니다.

가중치라는 용어는 신경망의 연결과 같은 모델 매개변수를 지칭하는 데 익숙할 수 있습니다. 여기서는 예시 가중치에 관해 이야기합니다. 즉, 학습 중에 개별 예를 더 중요하게 집계합니다. 예시 가중치 10은 모델이 가중치 1의 예시처럼 10배 (손실을 계산할 때)로 취급한다는 것을 의미합니다.

가중치는 다운샘플링에 사용한 계수와 동일해야 합니다.

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

다운샘플 및 가중치 적용 이유

다운샘플링 후 예시 가중치를 추가하는 것이 이상하게 보일 수 있습니다. 소수 범주에서 모델을 개선하고자 했는데 대다수 모델의 가중치를 높이는 이유는 무엇일까요? 변경된 내용은 다음과 같습니다.

  • 더 빠른 수렴: 학습 중에 소수 클래스가 더 자주 표시되므로 모델이 더 빠르게 수렴됩니다.
  • 디스크 공간: 대다수 클래스를 더 큰 가중치를 가진 더 적은 예시로 통합하여 이러한 인스턴스를 저장하는 디스크 공간을 덜 소비합니다. 이렇게 절약하면 소수 범주에 더 많은 디스크 공간이 허용되므로 해당 클래스에서 더 많은 수와 더 광범위한 예시를 수집할 수 있습니다.
  • 보정: 가중치를 부여하면 모델이 계속 보정됩니다. 출력은 여전히 확률로 해석될 수 있습니다.