transfer learning으로 보통은 pretrained model을 주로 사용. 다른 기법들도 이미지, 그것도 classification에서 주로 활용되는듯 싶다.
하지만 모델이 뭘 배웠느냐는 관점에서 보면 transfer learning이 잘 안되는 것 같다.
빠른 수렴에 이득인것이지 정확도에는 그렇게 이점이 없다는 논문도 있고...
하지만 데이터 개수가 적을 때에는 확실히 도움이 되는 것 같다. 예를들면 STL10과 같은 작은 데이터셋.
같은 맥락에서, 현재 내가 다루고 있는 의료 도메인의 경우, 마찬가지로 데이터를 만드는 데에는 한계가 있으니. 다른 도메인의 의료 데이터에서 지식을 transfer 하여 성능개선을 도모하는건? 아직까진 ImageNet pretrained 불러와서 쓰거나 아예 처음부터 학습하는 편인데.
그래서 읽게된 첫 논문이다.
최근 아카이브에 올라왔지만 워낙 메이저 그룹이라 나중에 어디 좋은 데 붙었다고 뜨겠지 뭐...
"Multi-Task Self-Training for Learning General Representations"
Golnaz Ghiasi*, Barret Zoph*, Ekin D. Cubuk*, Quoc V. Le, Tsung-Yi Lin Google Research, Brain Team
{golnazg,barretzoph,cubuk,qvl,tsungyi}@google.com
https://arxiv.org/pdf/2108.11353.pdf
Abstract.
multi-task self-training (MuST)를 제안한다.
각기 다른 데이터셋, 다른 task의 teacher들로부터 student 모델에 지식을 마구마구 던져준다는 아이디어이다.
실험은 image recognition (classification, detection, segmentation)과 3D geometry estimation (depth and surface normal estimation)에서 모두 사용.
specialized supervised learning도 있고, self-supervised learning 형태로 다른 task에서의 knowledge를 가져온 것도 있다고 한다.
Keywords
specialized teacher, general student. labeled, unlabeled 활용
보통 general하게 잘 되는 pretrained model을 가져오고, downstream task에다가 fine-tuning을 하는 식인데.
이 모델은 이런저런 정보를 각기 다른 teacher에서 주겠다는거라 컨셉이 재밌다.
그런데 general 하게 잘 되는 feature가 존재하나?
저번에 ICLR 21이었나?에서 얀 르쿤 교수님이 general purpose의 model같은건 없으니 각각 모델을 잘 만들라는 얘기가 문득 생각나는데...ㅋㅋ
역시 우리가 일반적으로 잘 알고있고, 실제로도 잘 되는 시나리오는 downstream task와 동일한 task에서 학습된 teacher network를 가지고 supervision 주는 형태다.
그런데 이미 NLP쪽에서는 general representation에 대해서 벌써 나온다고 한다.
- Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, and Colin Raffel. mt5: A massively multilingual pre-trained text-totext transformer. In NAACL, 2020.
- Kevin Clark, Minh-Thang Luong, Urvashi Khandelwal, Christopher D. Manning, and Quoc V. Le. Bam! born-again multi-task networks for natural language understanding. In ACL, 2019
게다가, 아래 논문에 따르면 'self-training'의 pseudo label을 통해서 'pretraining'보다 더 좋은 feature를 배울 수도 있다고 한다.
Barret Zoph, Golnaz Ghiasi, Tsung-Yi Lin, Yin Cui, Hanxiao Liu, Ekin D. Cubuk, and Quoc V. Le. Rethinking pre-training and self-training. In NeurIPS, 2020.
따라서 이 논문에서 또한 pseudo label만 가지고도 좋은 feature를 배울 수 있는지를 연구했다고 한다.
그래서 teacher model이 인퍼런스한 정보로 만든 pseudo label을 사용했는데, 예를 들면 아래와 같다.
이렇게 생긴걸 가지고 student를 학습했는데, 놀랍게도 특정 task를 위해 학습했던 teacher model의 성능을 보존했다. 이게 의미하는 바는 pseudo label만으로도 지식을 전달을 할 수 있다는 것.
그러면 같은/다른 태스크, 데이터셋에 따라서 knowledge transfer가 가능할지 불가능할지가 궁금하다.
이 논문에서는 MuST를 제시함으로써 이에 대한 실험을 했으니, 모델을 알아보자.
간략하게 설명하면 이렇다.
- teacher는 Labeled dataset에서 학습. 특정 태스크 및 데이터셋에 특화된 모델이다.
우리는 이걸 specialized teacher라고 부르기로 했어요. - 이제 이 모델들을 활용해서, 더 큰 데이터셋에서도 레이블을 생성한다! (=pseudo label)
예를 들면, ImageNet에다가 classification한 것도 teacher 모델 중 하나로 있다고 하자.
그러면 이것들을 합쳐가지고 object detection이나 depth estimation을 'ImageNet'에서도 만든다는 생각을 하면 됨. - 이것들을 활용해서 multi-task learning을 한다. 누가? student가.
이 student는 그러면 detection도 하고 depth도 맞출 수 있는거다.
컨셉은 그렇지. 실제 실험은 어떻게 했을까?
4개의 teacher model을 뒀다.
backbone은 resnet + FPN 기반의 작은 모델을 사용했고, 4개의 각 task끼리 전부 파라미터를 공유한다.
- classification
- semantic segmentation
- object box detection
- depth estimation
각각의 task를 위해서 몇개의 conv 연산이라든가 prediction을 위한 head가 필요해서, 이 부분들은 각각 따로 가지고 있다.
그러면 결과적으로 성능이 어땠을까?
각각의 specialist teacher들의 성능에 준하거나 outperform하기도 한다고 한다!
최근에 SimCLR, MoCo등의 self-supervised learning 알고리즘을 보면 종종 supervised 성능을 뛰어넘기도 했다.
이 논문의 MuST가 semantic segmentation 및 depth estimation task에서 SimCLR 정도는 큰 폭으로 이겼다고 한다.
게다가 데이터셋의 양(scalability)에 따라서 transfer 가능한 것도 다르다.
SimCLR의 경우 ImageNet (1.3M images)에서는 supervised learning에 준하는 성능을 보이지만, JFT (300M images)같은 경우는 그렇지 않다고 한다.
이에 비해 MuST는 ImageNet, JFT에서 모두 SimCLR를 훨씬 뛰어넘으며, JFT의 6가지 task중 5가지에 대해서는 supervised의 성능도 이긴다고 한다!
심지어, ALIGN* 같은 굉장히 잘 학습된 checkpoint에서마저 성능을 더욱 향상시킬수 있다는 것을 보여줬다.
저 ALIGN은 billions of 겁나 많은 데이터를 보면서 학습이 된건데, 이걸 또 finetuning을 해가지고 최종적으로 detection, segmentation, and depth estimation에서 성능을 더 올릴 수 있다고 한다!
* Chao Jia, Yinfei Yang, Ye Xia, Yi-Ting Chen, Zarana Parekh, Hieu Pham, Quoc V. Le, Yun-Hsuan Sung, Zhen Li, and Tom Duerig. Scaling up visual and vision-language representation learning with noisy text supervision. CoRR, abs/2102.05918, 2021. https://arxiv.org/pdf/2102.05918.pdf <- 이거 한번 읽어봐야겠다. 대체 뭘 해서 영끌한거야...
Related Works
Multi-Task Learning
Self Training
Representation Learning
인터넷 끊겨서 게시물 2번 날렸다.............
빡쳐서 걍 대충 씀
student는 ResNet-FPN의 경우 pretrained 파라미터 불러오고 나머지는 랜덤이닛.
finetuning은 어떻게 하는거지. appendix 읽어도 모르겠다.
CIFAR-100에서 하는거라면, CIFAR-100에서도 multitask로 학습 하는건가?
classification loss 발생할때만 GT 쓰는거고 나머지는 pseudo label로 학습하는?
1. 모두 같은 ImageNet 데이터셋에서 pretrain을 하고, 여러가지 downstream task에서 finetuning한 실험.
결과를 보면 supervised, SimCLR보다 거의 좋다.
2. 각 task별로 중요도같은게 있나?
detection 추가될 때 성능이 가장 많이 오르는 것으로 보인다.
암튼 supervised보다 잘 나오는거면, 유사한 도메인 데이터 활용해서 MuST 사용해서 성능 올려보는건 시도 해볼만한듯
'AIML 분야 > KD, MultiTask, Foundation Model, Fusion등' 카테고리의 다른 글
[그냥 뭔지 찾아보기] CLIP: Connecting Text and Images (0) | 2021.12.15 |
---|---|
[Surgical Vision + Transfer Learning] Cross-surgery transfer learning for surgical step recognition 논문 읽기 (0) | 2021.10.27 |
Refine Myself by Teaching Myself :Feature Refinement via Self-Knowledge Distillation (0) | 2021.03.19 |
Born-Again Neural Network 코드 조지기 (0) | 2021.01.04 |
Born-Again Neural Networks 매우 잠깐 구경 (0) | 2020.12.29 |
댓글