일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- UnderstandingDeepLearning
- Pix2Pix
- 컴퓨터구조
- simclrv2
- semi supervised learnin 가정
- shrinkmatch
- mocov3
- 최린컴퓨터구조
- conjugate pseudo label paper
- mme paper
- CGAN
- dann paper
- adamatch paper
- 딥러닝손실함수
- Meta Pseudo Labels
- 백준 알고리즘
- WGAN
- SSL
- Pseudo Label
- Entropy Minimization
- GAN
- remixmatch paper
- CycleGAN
- tent paper
- ConMatch
- BYOL
- cifar100-c
- dcgan
- CoMatch
- shrinkmatch paper
- Today
- Total
Hello Computer Vision
비전공생의 SSD: A Unified framework for Self supervised outlier detection(2021) 논문 리뷰 본문
비전공생의 SSD: A Unified framework for Self supervised outlier detection(2021) 논문 리뷰
지웅쓰 2023. 11. 15. 18:302021 ICLR에서 억셉된 논문이고 SSD라고 불리나 object detection 분야에 유명한 SSD 논문이 있어 제목에는 OOD분야라는 것을 더 명시하였다.
https://arxiv.org/pdf/2103.12051.pdf
Introduction
저자는 질문을 던진다. 어떤 정보가 outlier detection에 유용할까? 많은 training data가 필요할까 혹은 training process가 중요할까? 데이터 라벨과 outlier들이 항상 가용상태로 있는 것이 아니기 때문에 저자는 unlabeled ID데이터를 사용해야 한다고 말한다. 해당 방법을 수행하기 위한 framework는 2가지 step을 거쳐야한다고 한다.
1. learning a good feature representation with unsupervised training methods
2. modeling features of in-distribution data without requiring class labels
저자는 unsupervised training방법이 ID-OOD간의 key semantic 을 찾을 수 있다고 생각하고 따라서 구분을 잘 할 수 있을 것이라 생각한다. 따라서 이러한 SSL방법이 굉장히 효율적이라고 생각한다. SSL은 라벨없는 데이터를 활용하는 것이지만 만약 약간의 라벨이 주어진다면 어떻게 활용할까? 저자는 이러한 상황을 few shot OOD detection이라고 말한다. 논문의 contributions은 다음과 같다.
1. unlabeled 데이터에 대하여 SSL활용
2. few shot OOD detection수행
SSD: Self supervised outlier/out of distribution detection
우선 notation들을 정의한다. X, Y 각각을 input space, label space로 정의하고 ID 데이터는 P_in에서 sampled 되고 OOD데이터는 P_out에서 sampled 되었다고 표기한다.feature extractor는 f로 표시하고 이는 deep learning으로 parameterized된다. supervised learning에서는 g를 통해 confidence score 산출.
OOD detection의 목적은 들어온 데이터가 어디서 sampled 되었는지 구분하는 것이다. unlabeled training data에 대해서는 feature extractor를 잘 훈련해 individual instances 를 구분하는 것이다. 여기서 사용하는 SSL 방법은 Contrastive Learning을 활용하고 같은 이미지 x에 대해 2개의 증강을 활용해 pull하고 다른 이미지들은 repel하는 것이다.
데이터의 label이 없는 조건에서 저자는 cluster-conditioned detection method를 사용한다고 한다. 우선 ID데이터에 대해 m개의 cluster로 나눈다. 나누는 방법은 k means를 사용하는데, effectiveness, computation cost가 좋다고 한다. 그리고 각각의 데이터에 대한 outlier score를 score(s_x) = min(x, z_m)으로 구한다고 한다. 여기서 z_m은 m개의 cluster를 나타낸다. 그리고 해당 거리는 마할라노비스 거리 함수를 사용한다고 한다.
추가로 label있는 데이터에 대해 접근가능할 경우도 고려하는데, id데이터와 ood데이터는 각각의 분포와 가깝고, 다른 분포와는 멀 것이라는 가정을 통해, score를 산출한다.
가장 challenging 한 문제는 OOD데이터에 대한 통계량을 어떻게 측정하냐는 것이다. 저자는 이 문제를 해결하기 위해 2가지 technique을 사용하는데, 1) shrink covariance estimators 2) amplify number of OOD samples using data augmentation 이라고 말한다.
covariance를 shrink하는 방식은 sample covariance를 측정하는 것보다 훨씬 더 효과적이기 때문이라고 말한다. 여기서 만약 x가 id라면, 앞의 term은 작고, 뒤의 term은 크기 때문에 낮은 값이 나올 것이고, x가 ood라면 앞의 term은 크고, 뒤의 term은 작기 때문에 높은 값이 나올 것이다. OOD에 대해서 위 metric을 사용하면 높은 값이 나와야 이상적이다.
그리고 loss를 보면 다음과 같다.
분모를 한번 살펴보면 본인 제외하고 다른 증강된 이미지 2N -1 개에 대한 similarity에 대한 합이다. 분자를 한번 살펴보면 본인을 제외 및 같은 클래스에 대하여 similiarity를 나타냄을 알 수 있다. 해당 식은 위에서 보았던 기존 Contrastive Loss와 많이 다른데 기존의 식에서는 본인 데이터와 증강된 데이터에 대해서만 similirity를 높이는 방법을 택했다면 해당 방법은 같은 클래스라면 다 높였다(아마 라벨이 있는 데이터에 접근할 경우 이러한 식을 활용하는 거 같다). 이러한 방법이 성능이 훨씬 좋았다고 한다. 전체 알고리즘을 보면 다음과 같다.
1. X_in데이터를 train, cal set으로 나눈다(여기서 cal set을 valid셋으로 나는 이해했다)
2. feature extractor를 훈련한다.
2-1. 만약 y데이터가 없다면 증강된 이미지에 대해서만 similiarty를 높인다.
2-2. 만약 y데이터가 존재한다면 증강된 이미지 및 같은 클래스의 similiarity를 높인다.
3. 훈련한 feature extractor를 활용해 각각의 데이터셋에 대한 Z를 구한다(d차원의 dimension space 이며 m개의 cluster가 존재한다).
4. 각각의 cluster 가 있는 space에서 거리를 산출한다.
아마 이렇게 산출된 거리를 활용해 AUROC와 AUPR을 구하는 과정인 거 같다.
Experiment
위 방법을 사용한 결과는 다음과 같다.
그리고 논문 앞쪽에 라벨이 있는 경우도 고려한다고 했는데 이를 고려한 결과도 있다.
보면 label이 있는 데이터를 노출시켜서 성능이 오르기도 하지만 별 차이가 없거나 낮아진 경우도 있다. 그리고 Contratsive Learning이 왜 효과적인지에 대한 설명은 딱히 없고 similiarity를 구할 때 사용되는 temperature가 낮을 경우 성능이 낮았으며 0.5일 때 가장 높았다고 한다.
최신 논문을 읽을 때마다 느끼는게 제가 과연 정확하게 이해하고 있는지 의문이 들면서도 힘드네요.. 틀린 부분도 있을 거고 읽으러 온 분들의 가려운 부분들을 다 해결해줄 수 없다는 것들에 대하여 무기력감을 느낍니다. 그래도 계속 읽어나가보겠습니다.