본문 바로가기

Research

Self-training Research papers

#self-training

#self-learning

#semi-supervised learning

 

 

1. ATSO: Asynchronous Teacher-Student Optimization for Semi-Supervised Image Segmentation, CVPR, 2021

- Medial image와 Driving image에 대해 semi-suprvised image segmentation을 하는 논문

- Teacher로부터 pseudo label을 받아 학습하는 student model은 성능이 낮고, 쉽게 고점에 도달하는 학습을 한다.

- 이 현상을 lazy mimicking이라고 명명하고 이 현상을 완화하는 논문.

- 다른 기법과 구분되는 두 가지

  (1) 학습 모델을 계속 이어가기보다 중간 학습 모델로 초기화하는 전략 사용(완전 처음으로 돌아가는 것이 아니고 어느 정도 초기 학습된 모델을 계속 사용)

  (2) unlabled 데이터셋을 두 subset으로 나눠 학습해서 서로 pseudo label을 만드는 과정과 다시 합쳐서 학습하는 과정 등 dataset을 굉장히 분리하고 합치는 과정이 많음.

 

- ATSO algorithm (Asynchronous teacher-student optimization)

Input: datset T= S + R (Labled된 S와 unlabled된 R)

Output: training set을 학습한 모델 M

(1) labled된 S 데이터셋에서 scratch부터 모델 M을 학습

(2) unlabled 데이터셋 R을 두 개의 subset으로 분리. R(1) R(2)

(3) 학습된 모델 M을 두 개의 subset 데이터셋에 할당

(4) R(2)를 학습한 모델 M(2)를 가지고 R(1)을 추론. 새로운 pseudo label 생성되면 이것을 R(1) 업데이트.

    마찬가지고,R(1)을 학습한 모델 M(1)을 가지고 다른 subset인 R(2)를 추론. R(2)의 라벨을 업데이트.

(5) *각 subset에 대해 학습을 진행했던 모델 M을 (3)에서 초기화한 모델 M으로 재할당.(방금 학습한 거 무효화)

(6) subset dataset인 R(1)과 R(2)를 labeled 데이터셋인 S와 다시 합침. 

    그룹은 여전히 두 개로 유지. 

    new dataset(1) = S + R(1)  

    new dataset(2) = S + R(2)

(7) 두 새로운 데이터셋에 대해 각각 모델 M으로 각각 fine-tune 학습.

(8) 과정(4)~(7) 을 t만큼 반복.

(9) 마지막으로 S + R(1) + R(2) 다 합친 데이터셋으로 재학습.

 

 

 

2. Rethinking Pre-training and Self-training, arXiv, 2020

Object detection과 segmentation에 한해서

- data augmentation과 labled data가 많은 경우 pre-training은 구리다.

- pre-training과 다르게 self-training은 항상 옳다.

- pre-training과 self-training 같이 쓰면 더 좋다.

새로운 아이디어 제안보다는 이것저것 실험한 논문

 

- Self-training

이 전 연구들을 참고해서 simple한 모델 사용. 

(1) 예를 들어 CoCo dataset과 Label을 이용해서 teacher model 학습

(2) Unlabled된 imageNet dataset에 대해 teacher model로 pseudo label 생성

(3) student model은 imageNet+pseudo label과 COCO datsaet+label을 모두 학습을 하면서 loss를 최적화(학습)

(4) 실험해본 결과 일반적인 loss function은 불안정함. loss normalization technique를 제안함.

 

 

 

3. Billion-scale semi-supervised learning for image classification, arXiv, 2019

classification을 위한 semi-supervised learning 사용, network로 주로 ResNext 모델을 테스트함.

- Learning pipeline

(1) labled 데이터셋에 대해 teacher model 학습

(2) 학습된 teacher model을 가지고 unlabled 데이터셋에 대해 추론 & 새로운 라벨 생성(pseudo label)

(3) 새로운 student 모델을 {unlabled dataset+pseudo label}에 대해 학습

(4) 학습된 student 모델을 labeled 데이터셋에 대해 Fine-tune

 

- Data selection and lableling

top-K개의 example을 고르는 전략 사용. Unlabled 데이터셋의 각 이미지에 대해, 추론 후 logit의 softmax prediction vector을 얻어낸 후 가장 높은 score P를 갖는 클래스들을 구한다.

 

 

 

 

4. Meta Pseudo Labels, CVPR, 2021

- ImageNet ReaL dataset Rank #1 등등 많은 데이터셋에 대해 상위 랭크에 있는 classficiation model

- Student의 성능에 따라 Teacher model 또한 영향을 받아 업데이트하는 방식.

- EfficientNet-L2 을 backbone으로 사용.

- Noisy Student 사용. 단점 개선.

 

https://www.youtube.com/watch?v=yhItocvAaq0

 

 

 

5. A Closer Look at Self-training for Zero-Label Semantic Segmentation, CVPR, 2021

- 업데이트 예정

(1) SPNet 구조를 백본으로 cross entropy 를 최적화하도록 학습. (fine-tued)

(2) 학습된 모델 P를 이용해서 데이터셋 y(labeled + unlabeled) 에 대해 추론 -> pseudo label y^를 얻음

(2) unlabled된 이미지에 대해 data agumentation을 여러가지 적용, 각 agumentation data에 대해 학습된 SPNet의 추론 -> pseudo label 획득

(3) 각 pseudo label에 대해 inverse agumentation 연산-> 교집합 구함-> 최종 pseudo label 생성 => 최종 Hard Label

(3) 기존 label y와 hard pseudo label y- 에 대해 각각 cross entropy를 구해서 합산 = 최종 loss

(4) SGD model 업데이트.