이 논문은
autoencoder 기반 novelty detection을 위한 논문이다.
ICIP'19
https://ieeexplore.ieee.org/document/8803562
Autoencoder based novelty detection for generalized zero shot learning
The problem of generalized zero-shot learning deals with the classification of test examples for which training data may or may not be available. Existing baseline algorithms connect the seen and unseen set of categories by learning functions to project th
ieeexplore.ieee.org
Abstract
제안하는 novelty detetor는 autoencoder network 구조 기반으로
reconstruction, triplet cosine embedding loss를 사용한다.
2. Proposed approach
저자들은 GZSL task에서 두가지 novely detector모델을 설계한다.
training data는 $(X^{s}, A^{s}, L^{s})$이고 $X^{s} \in R^{d \times N^{s}}$다.
$L^{s}$는 seen 카테고리를 타나내고 $A^{s}$는 attribute다.
unseen은 $L^{us}$, $A^{us}$다.
testing data는 $X^{test}$이고 seen, unseen이 모두 포함된다.
보통 $S$ seen category에 모델이 편향된다.
따라서 저자들은 prior information을
classification stage에 제공하는
novelty detector를 제안한다.
Novelty Detection
goal은 data가 not seen을 찾아내는 것이다.
2.1. Proposed Model 1 (M-1)
첫번째 모델은 기본적인 autoencoder 구조를 가져온다.
input $x \in R^{d}$는 encoder ε을 지나 decoder $D$를 통해
$\hat{x}$를 얻는다.
이때 endoder의 output을 $p_x$라 한다.
저자들은 이 $p_x$와 attribute $a_c$르 concat하여
decoder input $g_x$를 만든다.
이를 활용하여 MSE loss를 구성하여 학습한다.
추가적으로 저자들은 decoder를 하나 더 추가한다.
디코더 하나는 $p_x$만 input으로 받고
다른 하나는 $g_x$를 input으로 받는다.
각각의 output을 $\hat{x}_1$, $\hat{x}_2$라 한다.
이를 통해 최종 loss를 구성한다.
$\mu$는 hyper-parameter다.
두번째 항에서 $D_2$의 output 각도는 $D_1$의 output 각도보다 작도록 만든다.
2.2 Proposed Model 2 (M-2)
저자들은 input data와 잘못된 attribute가
적절한 reconstruction을 하지 않도록 만들고자 한다.
따라서 cosine similarity를 사용하여
잘못된 쌍의 cosine sim.값이 가능한 작게 만든다.
$y=1$은 알맞은 쌍이다.
$y=-1$은 다른 쌍이다.
2.3. Training the Novelty Detector
학습 알고리즘은 다음과 같다.
먼저 training data를 train, val로 나눈 다음
train으로 모델을 학습한다.
이후 val data와 모든 train의 attribute를 concat해서
reconstruction output을 만든다.
그리고 다음과 같이 cosine similarity score를 구한다.
이렇게 모든 val data에 대해 score를 구한 다음.
seen, unseen을 나눌 임계값 $\theta$를 구한다.
이는 val의 정확도가 가장 높은 $\theta$값으로 한다.
2.4. Testing
이렇게 $\theta$값을 구한 뒤 testset에도 똑같이 적용한다.
이때 attribute는 seen 전체와 concat한다.
이를 이제 GZSL baseline에 적용한다.
이러면 embedding기반 모델에서 sim.을 계산할 때
seen, unseen의 category를 구분하여 계산이 가능하다.
3. Experimental evaluation
이 방법을 통해 baseline 모델 성능을 높일 수 있다.