본문 바로가기

Research

Self-traning에 대한 고찰... (contemplation on Self-Training)

Self-training에서 Teacher/Student 방식을 사용하는 이유

- 명확히 정의한 문헌을 찾지 못했다...

- 큰 범주인 semi-supervised learning은 일반적으로 단일 Network를 사용하지만 Self-training은 Teacher-Student 파이프라인이 굳어진 모양새다.. 

- Pseudo Label이 지정된 데이터의 풍부함과 Augmentation과 같은 정규화 방법의 사용 덕분에 학생은 교사보다 더 나은 모델이 되는 방법을 배운다. [1][2]

- Teacher/Student pipeline은 self-training의 효과적인 방식이다. 조금 덜 정확하지만 뭔가 updated(변화되는, 갱신되는) 점을 학습하고 더 강력해지는 모델을 훈련하는 데 목적이 있다. teacher-student pipeline을 최적화는 지식 증류(Knowledge distillation)의 변종이라고 할 수 있다. [4]

- Noisy Student[2] 논문에서 처음 제시한 Teacher/Student 방식은 "Knowledge Expansion"으로써, Student가 경량화 목적과는 다르게, Teacher보다 더 좋아야 되기 때문에 Student에 noise(augmentation) 을 넣고 크기도 같거나 Teacher보다 좋아야 한다는 점.

 

*comment

더보기

- 비슷한 방식으로 학습하지만 사람의 개입이 존재하는 "Active Learning"은 단일 Network를 5~20%의 Label data로 학습시키고 동일 Network로 Unlabelded data에 대해 추론 후 불확실한 하위 데이터를 사람에게 request 한다. Deep Active Learning에 관한 survey papers [5], [6]에서도 마찬가지로 self-learning 혹은 student에 언급은 거의 없다시피 한다.(즉 active learning에서는 단일 네트워크가 주류이며 써봤자 앙상블을 이용해 여러 개의 결과물을 취합하여 불확실한 데이터를 거르는 방법이 존재하긴 한다)

 

- 왜 Teacher 하나만 학습하지 않고 굳이 Student를 별도로 두고 학습시키는가...?

추측되는 점은, Teacher는 만들어내는 pseudo Label을 그대로 학습에 사용한다면, 설령 하위 confidence data를 걸러낸다 하더라도 다시 자신이 만들어낸 답안을 믿어버리는 현상이 나타날 것으로 보인다. (물론 self-traing 자체가 이런 단점을 가지고 있지만) 만약 student를 따로 둔다면 고정된 답안을 제공하면서 동시에 augmentation 등을 사용하면서 Student가 표현력만 배우도록 유도하는 게 아닌가 싶다.. 지식 증류와 유사 방식이되 네트워크 압축을 목표로 하지 않고 다양한 표현력과 데이터 수를 바탕으로 지식 증류를 하는 방식이 아닌가 싶다...

 

- 하지만 그래도 찝찝할 수밖에 없는 이유는, self-traing 최신 논문들도 결국 Teacher-student 역할을 서로 바꿔 재학습 하거나 Teacher를 주기적으로 갱신하기 때문에 굳이 두 개의 네트워크를 번갈아가면서 학습해야하나 싶다... .. 그냥 두 개의 네트워크를 썼더니 결과적으로 더 낫기 때문인가?? 더군다나 많은 self-training 논문들을 보면 high-confidence 를 필터링하지 않는 경우도 많다............

 

Large-scale semi-supervised learning에서 권고사항 [3]

- teacher/student 패러다임을 함께 학습해라. student와 teacher가 같은 아키텍처여도 상관없다.

- Fine-tune은 반드시 진짜 라벨을 가지고만 해라.

- Large-scale의 unlabel dataset은 성능의 핵심(key)이다.

- pre-training을 할 때 학습 많이 해라. 

- 추론을 통해 만들어진 pseudo label의 분포는 균일해야 한다.(균형)

- pre-training을 weak supervision으로 할 때 성능이 더 좋아진다.

 

 

Self-training의 단점, 문제점

- 처음 잘못된 라벨을 생성하면 계속 잘못된 학습을 진행하게 됨. 나름 모델이 높은 확률이라고 맞다고 생각하지만, 사실은 틀린 답인 경우. (신뢰도가 높은 것으로 보이지만 잘못된 예측, 아웃라이어(outlier)). 모델 학습에 악영향을 끼친다.

- 수렴을 단정 짓기 어렵다... 판단하기 어렵다.

- Self-training의 한계: Pre-trained 된 모델로부터 전이 후 fine-tune을 수행하는 것보다 Self-training은 더 많은 연산을 필요로 한다. (*당연하지만.. 새 Network도 같이 키워야 하고 Teacher/Student 변경 혹은 과정 반복(generation)으로 모델을 견고하게 하는 게 일반적이므로.. 전체 시간은 훨씬 오래 걸린다.) pre-trained model을 사용하면 빨리 수렴하기 때문에 학습 속도는 1.3x에서 8x로 줄어들 수 있다. 또한 pre-trained 모델은 PASCAL segmentation과 같은 low-data 응용에 필요하다. [5]

 

 

 

[1] Pham, Hieu, et al. Meta pseudo labels. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021.

[2] Qizhe Xie, Minh-Thang Luong, Eduard Hovy, and Quoc V Le. Self-training with noisy student improves imagenet classification. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2020.

[3] Yalniz, I. Z., Jégou, H., Chen, K., Paluri, M., & Mahajan, D. (2019). Billion-scale semi-supervised learning for image classification. arXiv preprint arXiv:1905.00546.

[4] Huo, X., Xie, L., He, J., Yang, Z., Zhou, W., Li, H., & Tian, Q. (2021). ATSO: Asynchronous Teacher-Student Optimization for Semi-Supervised Image Segmentation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 1235-1244).

[5] Zoph, B., Ghiasi, G., Lin, T. Y., Cui, Y., Liu, H., Cubuk, E. D., & Le, Q. V. (2020). Rethinking pre-training and self-training. arXiv preprint arXiv:2006.06882.

[6] Ren, P., Xiao, Y., Chang, X., Huang, P. Y., Li, Z., Chen, X., & Wang, X. (2020). A survey of deep active learning. arXiv preprint arXiv:2009.00236.

[7] Schröder, C., & Niekler, A. (2020). A survey of active learning for text classification using deep neural networks. arXiv preprint arXiv:2008.07267.