Open-set Recognition 이 필요한 상황이란?


Untitled

우리가 그동안 다뤄온 분류기(classifier) 모델들은 Closed-set이라는 숨은 가정을 품고 있다. 이것은 train-set와 test-set이 동일하다는 가정이다. 그러나, 세상은 오픈 월드이다. 이 가정은 실험실에서는 잘 맞을수도 있겠지만, 프로덕션 환경으로 넘어가면(상황과 맥락이 달라지면) 잘 들어맞지 않는다.

그렇다면 애초에 데이터셋은 closed-set이라는 전제를 버리고, test-set에는 언제든 train-set에 포함되지 않은 undefined class의 데이터가 포함될 수 있다는 가정 하에 모델링하는 접근은 없을까? 이것이 바로 Open-set Recognition 이 추구하는 지점이다.

Open-set Recognition의 정의


(1) Closed-set

Untitled

(2) Open-set

Untitled

똑같아 보이겠지만, (x, y)를 샘플링하는 데이터셋이 다르다. test-set D^te에는 K개의 class로 구성된 Closed-seet의 Dte 이외에도 K+1번째 클래스 즉, unknown category가 포함되어 있다.

Close-set 분류기의 한계점

만약, 기존에 K개의 클래스를 구분하는 classifier를 조금 확장해서 아래와 같이 분류한다고 해보자.

Untitled

직관적으로 보아, Open-set Recognition의 전통적 아이디어는 위와 같다. 전통적인 Open-set Recognition은 softmax의 최대출력값을 confidence(conf)라고 하고, 이것이 어떤 threshold(th)를 넘을 때만 해당 클래스라고 추론하고, 만약 이 분류기가 어느 클래스에 대해서도 th를 넘는 확신을 보이지 못할때는 unknown class라고 추론(reject)하는 방식이다. (이 논문은 더이상 이런 방식을 사용하지 않기 위한 접근이다)

그러나, Closed-set으로 훈련된 분류기는, 실제로는 unknown category의 데이터임에도 불구하고 아주 높은 confidence로 known class 중 하나라고 분류하는 over-confidence의 문제가 발생한다. 그러므로 위와같은 나이브한 접근으로 Open-set Recognition 문제를 다루는 것은 어렵다.