Recent Posts
Archives
Tags
- CodeUp6016
- CodeUp6014
- CVPR2021
- Baekjoon
- CodeUp6011
- Class Aware Sampling
- 이것이 취업을 위한 코딩테스트다
- Vision Transformer
- Computer Vision
- 비전공자를 위한 HTML/CSS
- CodeUp
- CodeUp6012
- Domain Adaptation
- ComputerVision
- ICLR2021
- Feature Augmentation
- 백준
- ViT
- Attention
- Consistency Regularization
- transformer
- CodeUp6013
- Maximum Mean Discrepancy
- Python
- 코드업
- CodeUp6015
- Pseudo Label
- Segmentation Map
- Semi Supervised Learning
- Contrastive Domain Discrepancy
Link
IT 정리용 블로그!
[논문] SimPLE: Similar Pseudo Label Exploitation for Semi-Supervised Classification 설명, 정리 본문
Computer Vision
[논문] SimPLE: Similar Pseudo Label Exploitation for Semi-Supervised Classification 설명, 정리
집가고시퍼 2021. 7. 23. 21:11- Introduction
Semi-Supervised Learning(SSL)의 문제는 제한된 labeled data에서 학습한 정보를 어떻게 일반화하여 unlabeled data로 전할 수 있는가이다. 가까운 데이터는 동일한 label을 share할 확률이 높다는 가정인 continuity assumption을 따라서, Label Propagation을 포함한 많은 접근법이 고안되었다. 서로 다르게 augment된 unlabeled 데이터들 간에 consistency를 만드는 것이 최근 연구동향이다. Consistency regularization을 제외한 몇 다른 방법들도 연구되고 있다. MixMatch, ReMixMatch, FixMatch 등의 방법은 labeled 혹은 unlabeled 데이터에 augmentation을 적용해 학습하도록 한다. 하지만 Label Propagation은 주로 labeled 데이터와 unlabeled 데이터의 관계에 집중한다.
본 논문에서는 다른 unlabeled 샘플들 간의 관계를 파악하려 한다. 이를 위해 novel Pair Loss를 도입해 높은 confidence를 가진 유사한 unlabeled 샘플들 간의 거리를 최소화하려 한다. 그 후 label과 pseudo label을 사용해 supervised cross entropy loss와 unsupervised L2 distance loss를 구한다. 이 두 term들은 decision boundary가 밀도가 낮은 지역으로 지나가게 하고, 동일한 샘플의 다른 variation이 consistency를 가지도록 만든다. 마지막으로 새롭게 제안된 Pari Loss를 사용해 유사성이 높은 unlabeled 샘플들 간의 consistency를 다른 샘플의 pseudo label을 사용해 만든다.
정리하자면, 1. 새로운 unsupervised loss term을 사용해 높은 confidence를 가지고 서로 유사한 unlabeled 데이터쌍으로부터 정보를 얻는다. 2. MixMatch family와 새 pair loss를 결합하여 semi supervised learning을 위한 새로운 SimPLE 알고리즘을 제시한다. - Related Work
1. Consistency Regularization
모델의 input에 변형이 가해져도 모델의 반응은 일정히 유지돼야 한다는 아이디어. 가장 간단하게는 Loss term을 이용해 구현할 수 있다. \( ||P_{model}(y|A(x);\theta) - P_{model'}(y|A(x);\theta)||_{2}^{2}\ \ \ \ (1) \). \(A(x)\)는 stochastic transformation을 말한다. 이 아이디어에서 더 나아가면 input 대신 모델\(model'\)을 변형할 수 있다. 또한 많은 논문들에서는 \(L_{2}\ norm\)을 줄이는 것 보다 cross emtropy를 줄이는 방법을 택한다.
2. Augmentation Anchoring
Augmentation Anchoring은 consistency regularization의 한 방법으로, input에 다른 레벨의 변형을 가하는 것을 포함한다. 약하게 변형된 input에 대한 모델의 출력을 anchor로 사용한다. 그리고 심하게 변형된 input에 대한 모델의 출력을 anchor에 정렬하려 한다. 약한 변형은 easy augmentation(horizontal flip 등)을 말하고, 심한 변형은 hard augmentation(Gaussian blurring 등)을 말한다.
3. Pseudo Labeling
Pseudo label은 모델에 의해 만들어진 인공적인 라벨을 말하고, 모델을 학습하는데 사용된다. 가장 높은 예측확률을 가진 클래스를 pseudo label로 택한다. 하지만 pseudo label은 pre-train된모델을 fine tune할 때만 쓰인다. Pseudo label의 엔트로피를 줄이려고 하며, unlabled sample의 cluster 사이에 있는 decision boundary가 low density region에 위치하도록 한다. Pseudo label을 위해 사용할 수 있는 강력한 방법은 confidence threshold를 도입해 pseudo label을 filter하게 하는 것이다. Threshold(\(\tau_{c}\)) 이하의 confidence를 가지는 pseudo label은 고려하지 않는다.
4. Label Propagation
Label propagation은 graph기반의 방식으로, labeled와 unlabeled 샘플로 노드를 만들고, 그 샘플들 간의 유사성을 weighted edge로 사용한다. 기존에는 transductive한 방법으로 여겨졌지만, 최근들어 inductive한 세팅에서 pseudo label을 얻기 위한 방법으로 사용되고 있다. CNN으로 feature들 간의 유사성을 측정하고, affinity graph를 만들기 위해 각 샘플은 가장 유사한 K개의 neighbor와 연결된다. 대부분의 edge들은 0에 가까운 weight를 가진다. 여기에서도 threshold \(\tau_{c}\)를 사용한다.
- Method
L-class classification에서, \(X = (x_{b},y_{b};b\in (1,...,B))\)는 labeled 데이터의 batch라 하고, \(U = (u_{b};b\in (1,...,B))\)는 unlabeled 데이터의 batch라 하자. \(p_{model}(\tilde{y} |x;\theta )\)는 input \(x\)와 파라미터 \(\theta\)를 사용한 softmax 예측 결과라 하자.
본 논문에서 제시한 알고리즘은 Augmentation anchoring을 사용한다. 약하게 augment된 샘플에서 온 pseudo label은 anchor의 역할을 하고, 강하게 augment된 샘플들을 anchor에 정렬시키려 한다. Weak augmentation은 random crop, random horizontal flip을 포함한다. 강한 augmentation은 RandAugment나 random affine이나 color jitter 같은 어려운 transformation 등을 포함한다.
Pseudo labeling을 사용하기 위해, 동일한 unlabeled 샘플의 약하게 augment된 버젼들에 대한 모델의 예측값의 평균을 pseudo label로 사용한다. K개의 약한 perturbation을 사용하는데, 이는 K개의 강한 perturbation을 사용하거나 하나의 perturbation을 사용하는 것 보다 안정적이다. 그 뒤 sharpen operation (2)을 사용해 label의 distribution의 temperature를 올린다.$$ Sharpen(p,T) := \frac{p^{\frac{1} {T}}} {1^{T}p^{\frac{1} {T}}}\ \ \ \ (2) $$Pseudo label distribution의 peak가 sharpen되었기 때문에, 네트워크는 샘플을 decision boundary에서 멀리 떨어뜨릴 것이다.또한 모델이 매 스텝 label을 guess할 때마다, 모델의 exponential moving average를 사용한다.
Loss에는 supervised loss \(L_{X}\), unsupervised loss \(L_{U}\), pair loss \(L_{P}\)를 사용한다. $$ L = L_{X} + \lambda_{U}L_{U} + \lambda_{P}L_{P}\ \ \ \ (3) $$$$ L_{X} = \frac{1} {|X'|}\sum_{x,y\in \hat{X}}H(y,p_{model}(\tilde{y}|x;\theta))\ \ \ \ (4) $$$$ L_{U} = \frac{\sum_{u,q\in \hat{U}}1_{(max(q)>\tau_{c})}||q - p_{model}(\tilde{y}|u;\theta)||_{2}^{2}} {L|\hat{U}|}\ \ \ \ (5) $$\(L_{X}\)는 약하게 augment된 labeled 샘플들의 cross entropy loss를 계산한다. \(L_{U}\)는 강하게 augment된 샘플들과 그들의 pseudo label의 confidence threshold \(\tau_{c}\)로 filter된 \(L_{2}\) distance를 나타낸다. \(L_{U}\)는 동일한 sample의 다른 perturbation들의 consistency만 다룰 뿐, 다른 sample들 간의 consistency를 다루지는 않는다. 여기서 ~는 weak augmentation, ^는 strong augmentaiton을 의미한다.
Unlabeled 샘플들 간의 관계를 파악하기 위해 Pair loss term을 사용한다. 이를 통해 다른 unlabeled 샘플들 간 정보가 implicit하게 전파되도록 한다. Pair loss에선 unlabeled point p의 high confidence pseudo label을 anchor로 사용한다. pseudo label이 p와 유사한 unlabeled 샘플들은 그들의 prediction을 심한 perturbation에도 anchor에 align해야 한다. Fig 3에서 이 선정 process를 보여준다. similarity threshold는 confidence threshold를 adaptive하게 확장시켰다. Pseudo confidence가 threshold 아래에 있는 샘플들은 loss에 의해 선택될 수 있고, 높은 confidenc level로 push된다. Pair loss는 다음과 같이 정의한다. $$ L_{P} = \frac{1} {\binom{K'B}{2}}\sum_{i,j\in[|U'|], i\neq j,(v_{l},q_{l})=U_{i}',(v_{r},q_{r})=U_{j}'}\varphi_{\tau_{c}}(max(q_{l}))\ \ \ \ (6) $$$$ \varphi_{\tau_{s}}(f_{sim}(q_{l},q_{r})),\ \ \ f_{dist}(q_{l},p_{model}(\tilde{y}|v_{r};\theta)) $$\(\tau_{c}, \tau_{s}\)는 confidence threshold와 similarity threshold를 나타낸다. \(\varphi_{t}(x) = 1_{x>t}x\)는 threshold t에 의해 조절되는 threshold function이다. \(f_{sim}(p,q)\)는 두 probability vector p, q의 유사성을 측정한다(\(f_{sim}(p,q) = \sqrt{p}^{T} \sqrt{q}\ \ \ \ (7)\)). \(f_{sim}(p,q) \in [0,1]\)이므로, distance function \(f_{dist}(p,q) = 1-f_{sim}(p,q)\)로 사용한다.Fig 3
이 과정에서 낮은 confidence를 가진 label p는 거의 선택되지 않고, 높은 confidence threshold를 통과할 수 있는 label p는 거의 one hot distribution을 가진다. 따라서 또다른 label q가 q의 similarity threshold에 fall in 하기 위해서는 q 또한 높은 confidence를 가져야 한다. 이 성질 때문에 pari loss는 파라미터 \(\tau_{s},\tau_{c}\) 값에 크게 민감하지 않다.
학습 과정에서 샘플들의 미니 배치에 대해, SimPLE는 우선 labeled와 unlabeled 샘플에 weak과 strong augmentation 모두를 가한다. unlabeled 샘플의 pseudo label은 평균을 취해 구하고, unlabeled 샘플을 약하게 augment한 예측값을 sharpen한다. 마지막으로 augment된 샘플과 pseudo label을 이용해 loss term을 최적화한다.
테스트 과정에서 SimPLE은 예측을 하기 위해 weight에 exponential moving average를 사용한다. - Experiments
모든 실험에서 Wide ResNet 28-2를 backbone으로 사용했고, AdamW with weight decay를 사용했다. 또한 매 train step마다 exponential moving average(EMA)를 사용했다. 본 실험에서는 MixMatch와의 공정한 비교를 위해 MixMatch에 Augmentation Anchoring을 더한 버젼(MixMatch Enhanced)을 사용했다고 한다. 모든 label을 사용하지 않았을 때 다른 방법들과 비교해 좋은 결과를 얻었다(Table 2, 3).
Transfer 실험에서도 좋은 성능을 보였다(Table 4). Pretrained model을 사용해도 scratch부터 학습시킨 것과 거의 비슷한 성능을 보였지만, 5~100배 빨리 수렴되었다고 한다. - Conclusion
본 논문에서는 새로운 unsupervised objective인 Pair loss를 도입해 높은 confidence를 가진 pseudo label들 중 특정 threshold를 넘는 similarity를 보이는 것들의 distance를 줄이려 했다.
'Computer Vision' 카테고리의 다른 글
Comments