Hello Computer Vision

Pseudo Labeling and Confirmation Bias in Deep Semi-Supervised Learning(2020) 논문리뷰 본문

Self,Semi-supervised learning

Pseudo Labeling and Confirmation Bias in Deep Semi-Supervised Learning(2020) 논문리뷰

지웅쓰 2024. 3. 27. 17:47

논문의 풀 제목은 글 제목에 적혀있다. https://arxiv.org/pdf/1908.02983.pdf

Introduction

Semi Supervised Learning(SSL) 에서는 consistecy regularization과 pseudo label 두가지 방법이 있다(물론 FixMatch에서는 두가지 방법을 혼합한다). 여기서는 pseudo label방법만을 사용하고 pseudo label의 단점이라고 한다면 confirmation bias 가 쉽게 일어날 수 있으며 일어날 경우 iid 가정이 무너지므로 일반적인 SSL 프레임워크에서는 성능이 떨어진다고 한다(iid는 label, unlabel 데이터가 같은 분포에서 샘플링된다는 것인데, 만약 틀린 label로 예측할 경우 이러한 완전히 새로운 이미지를 같은 label로 예측하는 것이니 iid 가정이 깨져버린다). 기존의 naive한 pseudo labeling 방식은 이러한 confirmation bias가 심하다고 한다. 그러나 여기서는 mixup augmentation을 활용해 model의 confirmation bias, calibration 능력을 향상시켰다고 한다(기존 제프리 힌튼의 label smoothing 논문에서 보면은 soft label을 주는 것만으로 model의 calibration 능력을 향상시켰다고 하는데 여기서도 soft label을 사용하니 그러한 효과를 얻는 것과 같은 거 같다).  단순히 mixup 만을 사용하는 것이 아니라 여기서는 2가지 추가적인 제약을 사용하고, 배치 안에서의 최소 label 데이터 개수를 설정한다.

 

Pseudo labeling

기존의 pseudo label연구들은 hard label을 사용한다고 한다(지금도 그렇다). 여기서는 soft label을 사용한다(Entropy minimization이라고 할 수 있다, 근데 개인적으로 EM을 사용하였을 때 많은 클래스의 데이터셋에 대하여 낮은 성능을 기록했고 수렴하지 못했는데 단순히 EM을 사용하는 것이 아니라 추가적인 method 를 추가해야 좋은 거 같다). 여기서는 2가지 규제항을 추가한다.

 여기서 C는 클래스이고 $ p_{c} $는 각 C에 대한 uniform 분포이고 $ h_{c}$ 값은 모든 데이터의 클래스의 평균값이라고 할 수 있다(모델의 output에 대한 ). 이것은 저자의 prior라고 할 수 있는데 모든 클래스의 평균 값이 같아야한다는 생각이 반영되었다고 할 수 있다. 여기서 $ p_{c} $ 는 1/C 이고 $ h_{c} $가 1/C값과 똑같아 나와야 이 loss가 줄어진다고 할 수 있다. 만약 모델이 어느 한 클래스가 어려워 이 값이 낮다면 loss가 커지는 것을 알 수 있다(뭔가 dino에서의 centering과 느낌 비슷하다).

이 규제 항은 Entropy Minimization이다. 따라서 위의 규제 항이 모든 클래스의 평균이 비슷하게 되도록 output을 뱉는다면 이 규제항은 최대한 한 쪽 class로 예측하도록 하는 것이다.

 여기서 살짝 의문점은 그렇다면 EM을 두번 수행하는 것이 아닌가 생각이 든다. 왜냐하면 l에서 이미 저자가 soft label을 사용한다고 했기 때문이다.

 

모델이 내뱉는 값을 pseudo label로 사용하는 것은 당연히 틀릴 수 있으며 이를 confirmation bias라고 하며, 이는 계속 사용되기 때문에 이러한 경향을 훈련이 진행될 수록 더 커진다고 할 수 있다(틀린 라벨로 예측한 이미지는 다른 이미지에 영향이 가기 때문이다). 따라서 여기서는 mixup 이라는 방법을 사용하는데 이는 다음과 같이 표현될 수 있다.

 

이는 모델이 훈련 데이터에 대해 한쪽으로만 linear하게 하는 것을 규제한다고 한다. 한마디로 mixup  자체도 soft label을 사용하는 것이니 decision boundary가 부드러워지는 효과를 낳을 것이다. 따라서 mixup을 적용한다면 다음과 같이 재정의 할 수 있다.

이렇게 soft label, mixup 을 사용함으로써 confirmation bias를 줄일 수 있었다고 한다. 추가적으로 mixup 된 데이터에 대해서 훈련을 진행하면서 second forward 에서는 unmixed 된 데이터들에 대해 예측한다고 한다. 

 

그런데 이렇게 mixup만 사용한다면 한 배치 안에 labeled 데이터가 많이 없을 경우 훈련 초기에는 학습이 잘 안되며 문제가 생길 수 있다고 한다(여기서는 little correct guidance 라고 표현한다). 따라서 저자는 labeled 데이터에 대해 oversampling을 한는데 배치 안에 최소 k개의 labeled 데이터를 포함하는 것을 말한다. 

 

Experiment

아래 figure는 저자의 방식으로 pseudo label을 생성하는 것의 효율성을 보여준다.

왼쪽은 mixup이 적용안돼었을 때, 가운데는 mixup, 오른쪽은 mixup + 최소 k개의 label 데이터를 포함했을 때이다. 보면은 오른쪽에 decision boundary가 더 부드럽게 잘 그어지는 것을 알 수 있는데 왼쪽을 보자면 decision boundary 가 linear하게 그어졌음을 확인할 수 있다. 이렇게 비교하면서 confirmation bias가 완화될 수 있다고 한다.

 

 

위 figure는 틀리게 예측한 데이터들에 대한 loss추이다. epoch가 진행될 수록 mixup을 사용하지 않는 알고리즘이 더 커지는 것을 확인할 수 있다.

 

다음은 test error를 나타내는 표이다.

cifar100기준 4000 label 일 때 62.5% 정도의 정확도를 기록하는 것을 알 수 있다.