Search
Duplicate

Zhou et al. [2021] Learning Placeholders for Open-Set Recognition

발표일자
2021/08/23
Tags
Open-set Recognition
발표자
백병인
Property
Empty
속성
Empty
속성 1
Empty

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

우리가 그동안 다뤄온 분류기(classifier) 모델들은 Closed-set이라는 숨은 가정을 품고 있다. 이것은 train-set와 test-set이 동일하다는 가정이다. 그러나, 세상은 오픈 월드이다. 이 가정은 실험실에서는 잘 맞을수도 있겠지만, 프로덕션 환경으로 넘어가면(상황과 맥락이 달라지면) 잘 들어맞지 않는다.
그렇다면 애초에 데이터셋은 closed-set이라는 전제를 버리고, test-set에는 언제든 train-set에 포함되지 않은 undefined class의 데이터가 포함될 수 있다는 가정 하에 모델링하는 접근은 없을까? 이것이 바로 Open-set Recognition 이 추구하는 지점이다.

Open-set Recognition의 정의

(1) Closed-set

(2) Open-set

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

Close-set 분류기의 한계점

만약, 기존에 K개의 클래스를 구분하는 classifier를 조금 확장해서 아래와 같이 분류한다고 해보자.
직관적으로 보아, 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 문제를 다루는 것은 어렵다.

Open-set Recognition의 발전사

(1) OpenMax

OpenMax: replaces softmax layer with OpenMax and calibrates the confidence to predict novel class
2015년에 발표된 이 기법(Bendale et al. 2015, Towards Open Set Deep Networks)이 Open-set Recognition을 딥러닝에 적용하는 핵심 아이디어를 제공했다. 이후 나온 기법들은 이 기법을 확장한 것이라 볼 수 있다.
이 논문은 known class의 conf만 계산하는 것이 아니라, unknown class의 conf까지 계산할 수 있도록 제안된 방법이다. 그러나 known class와 unknown class의 경계지점이 모호한 점에서의 성능저하는 어쩔수 없다.

(2) Generative-augmentataion

아래 Generative 모델을 혼용한 기법들은 위 OpenMax를 바탕으로, known class와 unknown class의 경계지점에 해당하는 데이터를 생성해서 unknown class prob.을 보다 정교하게 계산하기 위한 것이다.
G-OpenMax: trains conditional GAN to generate open-set instances and adopts OpenMax for recognition
OSRCI: generates instances lying near the decision boundary
C2AE: uses class conditioned auto-encoders with novel training and testing methodology

(3) Latent-based

이후, OpenMax를 개선하려는 시도보다는 latent representation 공간에서 unknown class의 분포를 정확하게 찾는 방향으로의 접근이 시도되었다. 본 논문도 이 방향성의 발전이라고 볼 수 있다.
CROSR: utilizes the latent representation learning for reconstruction, which enables robust unknown detection
GFROSR: adopts self-supervision and augments the input image to learn richer features to improve separation between classes

본 논문이 제시하는 접근법

PROSER : PlaceholdeRs for Open-SEt Recognition

본 논문에서 언급하는 placeholder란 tensorflow의 placeholder를 의미하는 것은 아니다.

1) Learning Classifier Placeholders

이 수식의 앞부분은 기존의 Closed-set classifier 최적화 term이다. 그리고 아주 교묘한 뒷부분은, 정답 y 부분을 마스킹해서 제외해버리면 이 모델은 K+1번째 class, 즉 unknown class를 정답으로 선택하라는 뜻이다. 이게 무슨말이냐면, 우리가 원하는 분류기 f^은 unknown class를 항상 두번째로 높은 확률로 분류하게끔 학습시키고 싶다는 뜻이다.
이것이 가져오는 효과는 아래 그림을 참고하자.
즉, known class에 속하지 않는 데이터들을 잘 분류하는 일종의 Dummy Classifier를 만들어내는 효과가 생긴다. Latent 공간에서, 그 어느 클래스에 대해서도 2번째로 높은 확률을 가지는 데이터 공간이 만들어지고, 그 공간안에 있는 데이터를 unknown class로 분류할 수 있는 가능성이 생기기 때문이다.

2) Learning Data Placeholders

임베딩 모듈을 아래와 같이 decompose할 수 있다고 가정하면
여기서 phi_pre() 모듈이 latent로 임베딩하는 부분이라고 하자. 이때, 아래와 같이, y_i에도, y_j에도 포함되지 않는 unknown class의 데이터를 만들어낼 수 있는 latent representation을 얻을 수 있다.
(여기서 lambda는 [0, 1] 사이의 베타분포에서 샘플링)
이때 아래와 같이, 새로운 representation을 통해 얻어진 데이터를 K+1 클래스, 즉 unknown data로 분류하도록 학습시킨다는 뜻이다.
이런 latent mixup 효과는 아래 그림과 같다.
위 두 기법을 학습하는 전체 알고리즘은 다음과 같다.

Experiments

매우 간단한 접근법임에도 불구하고, Open-set Recognition에서의 개선효과는 뛰어나다. (그래서 CVPR2021에 Oral Presentation 선정) 1) Unknown Detection AUC
2) Close-set 의 성능도 크게 떨어지지 않음
3) 다양한 unknown class 제작기법에 대해
4) Ablation Study