네거티브 클래스의 인스턴스가 매우 유사한 이진 분류 문제를 처리하는 방법은 무엇입니까? [복제]

Dec 01 2020

고정 된 크기의 그림에 고양이가 있는지 여부를 감지하고 싶다고 가정 해 보겠습니다. 그러나 데이터 세트로 고양이 사진 10000 장과 고양이를 포함하지 않지만 서로 매우 유사한 사진 30000 장이 있습니다. 예를 들어, "고양이 아님"클래스의 30000 개의 사진에 한두 종류의 거미 사진 포함되어 있다고 가정 해 보겠습니다 .

CNN을 훈련 할 때 테스트 세트에서 높은 점수를 얻었지만 (여기서 높은 점수 = 거의 완전한 대각선 혼동 행렬) 실제 세계에서 CNN을 사용하려는 경우 거의 모든 것이 다음과 같이 분류됩니다. 고양이.

이 경우 네트워크가 잘못 일반화되는 이유는 무엇입니까? 데이터 세트가 데이터의 종류를 나타내지 않더라도 CNN은 실제 세계에서 볼 수 있습니다. CNN이 "나는 고양이의 예를 10000 개 봤습니다. 고양이는 고양이가 아니야 "?

더 많은 데이터를 수집하는 것 외에이 문제를 어떻게 처리 할 수 ​​있습니까?

답변

etiennedm Dec 01 2020 at 21:30

이 경우 CNN은 고양이가 무엇인지 학습하는 것이 아니라 고양이가없는 이미지와 고양이가있는 이미지를 구별 합니다.
모든 "no-cat"이미지에 스파이더가 포함되어있는 경우 CNN은 스파이더를 감지해야만 수렴 할 수 있습니다. 스파이더가있는 이미지는 "no-cat"에 속하고 다른 이미지는 "cat"에 속합니다. . 데이터 테스트에 대해 좋은 혼동 매트릭스가 있고 실제 환경에서 성능이 좋지 않은 이유를 설명합니다.

이러한 상황을 피할 수있는 몇 가지 옵션이 있습니다.

  • 말한대로 "no-cat"라벨에 다른 이미지를 추가합니다 (예 : 공개 데이터 세트 사용).
  • 하려고 한 클래스 분류 방법을. 신경망에 익숙하다면 오토 인코더의 재구성 오류를 파헤칠 수 있습니다 (이 게시물 : 데이터 범주가 하나 뿐인 데이터 세트를 사용하는 방법 또는 이 sklearn 가이드 참조 ).

도움이되기를 바랍니다.