본문 바로가기
Zero-Shot Learning/Novelty detection

[논문리뷰] Adaptive Confidence Smoothing for Generalized Zero-Shot Learning

by khslab 2024. 3. 25.

Paper Overview

CVPR'19

https://arxiv.org/abs/1812.09903

 

Adaptive Confidence Smoothing for Generalized Zero-Shot Learning

Generalized zero-shot learning (GZSL) is the problem of learning a classifier where some classes have samples and others are learned from side information, like semantic attributes or text description, in a zero-shot learning fashion (ZSL). Training a sing

arxiv.org

 

 

Abstract

저자들은 ZSL model을 확률적 접근을 사용하여3가지 모듈로 분리하는 방법을 제안한다.

먼저 "gating"이라는 모듈을 통해 해당 input이 "seen"인지 "unseen"인지 구분하도록 한다.

만약 "seen"이면 supervision model을 통해 인식을 하도록 하고

"unseen"이면 ZSL모델로 인식을 하도록 한다.

이때 "gating"은 soft decision을 주기 때문에 최종적으로 각 expert에

가중치를 주는 방식을 사용하게 된다.

 

저자들은 2가지 문제를 다루는데,

먼저 training과정에서 unseen class의 sample없이

정확한 gating network을 학습하는 법과

두번쨰로, 각 expert가 학습한 domain 밖의 sample이 관측됐을 때

어떻게 expert 예측을 수행할 것인가이다.

(처음 보는 class에 대해서도 이미 알고 있는 class로 output을 도출하려는 경향 때문)

 

Keywords

Zero-Shot Learning, Generalized Zero-Shot Learning, Classification, Adaptive confidence smoothing


Introduction

hard gating 모델은 test sample이 들어왔을 때,

seen이면 seen expert, unseen이면 unseen expert에 입력하여 결과를 얻는다.

이 방법은 seen일때 unseen expert의 정보를 전혀 사용하지 않게 된다.

따라서 저자들은 sample이 입력되면 우선 두 expert에 모두 입력하고

추후 이것을 soft한 방법으로 두 정보를 합치는 방법을 사용한다.

$p(class) = p(class|seen)p(seen) + p(class|unseen)p(unsee)

저자들은 이 방식을 adaptive COnfidence SMOothing (COSMO)라고 한다.


Generalized zero-Shot learning


Our approach

앞서 언급한것과 같이 저자들의 최종 예측은 다음과 같이 계산한다.

 

$p(y|S)$는 seen모델로 학습된 것이므로 $p^{S}(y|S)$이고

비슷하게 unseen은 zero-shot 모델로 학습된 것이므로 $p(y|U)$는 $p^{ZS}(y|u)$다.

그리고 $p(S)$와 $p(U)$는 gate모델이 계산한다.

따라서 (1)을 다음과 같이 다시 쓸 수 있다.

 

불행히도, 위 접근법은 몇가지 문제를 가져온다.

 

먼저, 각 모델을 soft way로 묶는 것은 각 모델이 다른 "domain"에 대한

예측 결과도 최종 예측에 기여한다는 것을 의미한다.

이것은 모델 정확도에 손상을 가져온다.

왜냐하면 multiclass 모델은 input이 random이라도

어떻게든 softmax 분포를 특정 클래스에 집중하는 경향이 있기 때문이다.

 

두번째로, 각 expert에 대해 가중치를 주는 것이 문제다.

unseen class sample없이 seen만으로 seen여부를 구분하는 것은 복잡하기 때문이다.

 

COSMO는 위 두 문제를 다루고 이것의 inference process는 다음과 같다.

 

4.1. Confidence-based gating model

 

gating module은 input image가 seen인지 unseen인지 결정한다.

unseen class sample를 다룰 수 없기 때문에,

저자들은 이 문제를 Out-Of-Distribution detection으로 보고

seen을 "in-distribution", unseen을 "out-of-distribution"으로 본다.

 

COSMO의 전체적인 구조는 다음과 같다.

 

저자들은 이 gating network를 confidence-based-gate (CBG)라고 한다.

 

unseen에 대한 sample을 사용할 수 없기 때문에 저자들은 $S$ class로부터

"hold-out set"을 만든다. 이 set은 학습에 사요하지 않고 $U$의 대용으로 사용된다.

이 set에 있는 class를 $H$ class라고 한다.

 

이것은 다음과 같은 더 복잡한 문제를 가져온다.

$H$ class로 unseen expert를 학습하는 것은 test time에서, $test$ class가 나타났을 때

unseen expert는 training동안 output layer와 다른 output layer를 가져야 한다.

(위 문장의 의미는 아마 $H$ class와 $U$ class의 개수 차이가 난다는 것을 의미하는것으로 보인다)

$H$ class의 순서에 불변하기 위해 CBG는 softmax의 top-$K$ score를 가져온다.

이것을 top-k pooling이라 한다.

Top-K pooling은 max-pooling으로 일반화 되고 K=1에 대한 max pooling과 동등하게 된다.

 

4.2. Adaptive confidence smoothing

 

직관적으로, out-of-vacabulary class가 intput으로 주어졌을 때,

저자들은 모든 clas에 대한 확률이 uniform하게 낮은 확률을 가질 것으로 기대한다.

이 prior belief를 포함히기 위해

저자들은 Bayesian parameter estimation으로부터 아이디어를 빌려온다.

class-confidence value의 set을 저자들이 추정하고 싶은 quntity로 고려한다.

(모델의 softmax ouput score로 confidence를 기반으로 함)

Bayesian estimation에서, 일단 data(예측된 confidence)와 prior distribution(저자들의 prior belief)를 결합한다.

구체적으로 Laplace smoothing은 multinomial data에 대해

제한적인 smaple로 안정적인 추정을 달성하도록 하는 흔한 기법이다.

이것은 모든 class에 "psudo counts"를 더한다.

출처: 위키

 

저자들은 위와 비슷하게 예측 값에 추가로 "prior distribution" $\pi^{U} = p_{0}(y|U)$를 더한다.

 

seen에 대해서도 다음과 같이 prior distribution을 더한다.

$p^{\lambda}(y|S) = (1- \lambda)p(y|S) + \lambda \pi^{S}$

이때 $\pi$는 uniform distribution을 가정하기 때문에 $\pi = 1$이다.

 

An Adaptive Prior

 

$\lambda$를 어떻게 정해야 하는가?

In Laplace smoothing에서는 constant pseudocont를 더하는 것은

많은 sample이 이용가능할수록 상대적인 weight가 감소하는 특성이 있다.

직관적으로, 이것은 data가 강한 evidence를 제공할 때 prior는 더 약하게 가중된다는 뜻이다.

저자들은 이 $\lambda$를 적응적으로 적용한다.

만약 sample이 seen에 속하지 않는다면 저자들은 seen classifier output을 스무딩한다.

더 구체적으로, $\lambda$를 각 domain에 대한 belief로 교체한다.

 

seen에 대해서도 비슷하게

$p'(y|s) = p(S)p(y|S) + (1- p(S)) \pi ^{S}$라고 한다.

이때 $p(\cdot )$은 gating의 출력이다.

 

즉 오른쪽 항의 역할은 input sample이 각 expert에 생소한 정도를 나타내고

그에 따라 패널티를 준다고 생각하면 된다.


Etails of our approach

A model for unseen classes

 

A model for seen classes

 

A confidence-based gating model


Experiments

6.1. Evaluation protocol

 

Evaluatoin Metrics

 

harmonic mean 사용

$H = 2(B \times N) / (B + N)$

 

6.2.  Datasets

 

CUB, AWA, SUN, FLOWER 사용

 

6.3. Cross-validation


Results