하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.
Self-training with Noisy Student improves ImageNet classification
2월 27th, 2020 Posted by 룬룬
1. Introduction
- 레이블된 데이터는 그 수의 한계가 있기에 레이블된 되지 않은 데이터를 이용해서 ImageNet의 정확도를 올리고자 한다.
- ImageNet보다 훨씬 많은 unlabled 이미지를 이용하였고, 이 이미지들은 ImageNet의 카테고리로는 분류되지 않는 이미지들도 있다.
- Self-training 프레임워크를 사용하여,
- 레이블된 이미지를 이용하여 teacher 모델을 학습하고,
- Teacher 모델를 통해 레이블되지 않은 이미지에 대해 pseudo label을 생성한다.
- 레이블된 이미지와 pseudo label을 가지는 이미지를 모두 이용하여 Student 모델을 학습한다.
- Pseudo label을 갱신해가며 이 과정을 몇번 반복한다.
2. Self-training with Noisy Student
- 알고리즘의 개략적인 부분은 위에서 설명한 바와 같다.
- Pseudo label은 soft하거나 hard할 수 있다.
- Soft는 continuous distribution으로 생각하면 된다.
- 알고리즘은 semi-supervised learning에서 사용하는 self-training의 한 종류이다.
- 한가지 큰 다른점은 student 모델에 noise를 지닌 소스를 더 많은 준 것이다.
- Noise 소스에 teacher가 pseudo label을 지정함에 따라 noise가 제거되면서 결과적으로 성능을 높일 수 있다.
- Dropout, Stochastic depth, data augmentation에서처럼 student 모델이 고의적으로 노이즈를 받도록 훈련하면 노이즈가 없이 훈련된 teacher 모델보다 더 일관된 결과를 내게 된다.
- Teacher와 student 모델은 같을 수도 있고 달라질 수도 있다.
- 하지만 Noisy Student가 잘 작동하려면 더 많은 데이터를 받아들이기에 student 모델이 충분히 커야 한다.
- 이를 위해 ResNet만큼의 capacity를 갖는 EfficientNet을 사용하였고, teacher 모델보다 student 모델이 더 큰 모델을 갖도록 하였다.
- 추가로 ImageNet에서처럼 레이블되지 않은 데이터도 각 클래스당 동일한 수를 갖도록 하였다. 부족한 클래스는 복제하여 사용하였고, 남는 클래스는 confidence가 높은 이미지를 선택하였다.
- 또한 실험적으로 soft label이 더 안정적이었다.
3. Experiments
Add a Comment Trackback