일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CoMatch
- semi supervised learnin 가정
- ConMatch
- mocov3
- shrinkmatch
- CGAN
- adamatch paper
- 최린컴퓨터구조
- Entropy Minimization
- 컴퓨터구조
- mme paper
- WGAN
- shrinkmatch paper
- dann paper
- Meta Pseudo Labels
- SSL
- UnderstandingDeepLearning
- Pseudo Label
- remixmatch paper
- cifar100-c
- CycleGAN
- conjugate pseudo label paper
- GAN
- BYOL
- dcgan
- 딥러닝손실함수
- tent paper
- 백준 알고리즘
- simclrv2
- Pix2Pix
- Today
- Total
Hello Computer Vision
비전공생의 BERT(2019) 논문 리뷰 본문
https://arxiv.org/abs/1810.04805
BeiT나 SSL 관련 논문을 볼 예정인데 BERT를 먼저 봐야겠다 생각해 논문을 살펴보았다. 일단 자연어처리 부분 논문이기 때문에 자세한 부분까지 다 이해할 수 없었기 때문에 큰 맥락에서 이해해보려고 노력했다.
Introduction
기존의 연구들은 pre-trained representation을 억제한다고 합니다. 이 representation이라 함은 뒤에서도 나오지만 문장에 대한 이해를 나타내는 거 같네요. 이러한 단점들은 기존 모델들이 unidirectional(단방향성)하기 때문이라고 합니다. 한가지 대표적인 예로 OpenAI에서 발표한 GPT 가 나오는데, 이 구조는 left- to - right 구조이기 때문에 모든 토큰들이 단지 이전 토큰한테서만 영향을 받는다고 합니다.
BERT는 Bidirectional Encoder Representations from Transformers의 약자이다. 따라서 BERT에서는 이러한 단점들을 masked language 모델과 bidirectional(양방향성) 을 이용해 완화시킨다고 합니다. 이러한 방법들을 이용해서 다양한 downstream task들을 수행할 수 있고 NLP 쪽에서 SOTA 를 달성했다고 합니다. 추가로 Transformer의 구조는 Encoder와 Decoder두가지 부분이 다 있지만 BERT에서는 Encoder부분만을 사용합니다.
BERT
기본적으로 2가지 단계로 이루어지는데 pre-training, fine-tuning 으로 이루어진다.
위 이미지가 BERT의 구조이며 살펴보면 두 단계의 구조가 모두 같음을 확인할 수 있다. BERT는 기본적으로 Transformer구조를 가지고 있는데 BERT(base)의 하이퍼 파라미터는 L(Transformer block): 12, H(Embedding size): 768, A(Self attention head): 12 로 구성되어 있으며 base의 총 파라미터는 110M이고 이는 GPT 와 비교를 위해 같은 크기로 세팅되었다.
Embedding vector는 초기부터 훈련시킨 것이 아니라 WordPiece Embedding을 사용하는데 이는 30,000개의 단어가 임베딩 되어있다. 매 문장 첫번째에는 [CLS] 가 들어있고 2문장 이상이 들어갈 때는 [SEP]가 들어가 있다.
BERT의 큰 특징이라고 할 수 있는 Masked LM. 각각의 sequence에서 15%를 랜덤하게 mask하는 과정을 거친다고 한다. 그러나 이러한 과정에서도 문제(downside)가 있는데, 이러한 mask 토큰은 pre-trained 할 때만 사용되고 fine tuning할 때는 용되지 않기 때문에 두 단계에서의 mismatch가 발생할 수 있다고 한다. 그렇기 때문에 저자들은 해결책을 제시하는데
1) 15%의 masked 토큰중에서 80%는 그대로 mask
2) 10%는 mask를 하는 것이 아닌 random 토큰으로 대체
3) 10%는 아무 것도 하지 않고 그대로
직관적으로 생각할 수 있는 문제는 random으로 토큰을 바꾸는 것인데 이는 큰 비중을 차지하는 것이 아니기 때문에 성능이 큰 문제가 없다고 한다.
두번째로 중요한 특징인 NSP(Next Sentence Prediction). NLP에서는 Question Answering과 Natural Language Inference 를 수행하는 것이 중요한데 이러한 task를 수행하려면 두 문장에 대해 relationship을 이해해야 한다고 합니다. 따라서 이러한 task를 수행하기 위해 저자들은 50% 확률로 두개의 이어지는 문장을 훈련하며, 50%확률로는 전혀 관계없는 문장2개를 합친 것으로 훈련시킨다고 합니다. 이러한 단순성으로도 훌륭한 성능을 보인다고 합니다.
pre-training을 위해 사용된 데이터들은 BookCorpus와 Englist Wikipedia의 데이터들을 훈련시켰다고 합니다.
지금까지는 pre-trained 과정이었고 fine tuning하는 과정은 더 간단하고 비용이 들지않는다고 합니다. pre-trained 된 모델에서의 파라미터들은 모두 fine tuning과정에서 업데이트 될 수 있습니다. 논문에서는 다양한 fine-tuning task들을 수행하는데요, GLUE, SQuAD v1.1 ... 등을 수행하고 각각 SOTA를 달성합니다.
위 이미지는 BERT와 다른 모델들의 성능을 비교한 것이고, 다음 이미지는 모델의 크기에 따라 어느정도 성능이 좋아지는지 실험한 표입니다.
재밌게 읽은 논문이었습니다. 지금 알고봐서 그런건지 모르겠지만 mask 를 이용해 예측하는 방법은 비전분야에서도 충분히 중요한 방법이 될 수 있을 거 같습니다. 다음에는 VAE 나 BeiT 논문을 읽어볼 예정입니다.
References
https://arxiv.org/abs/1810.04805
'Self,Semi-supervised learning' 카테고리의 다른 글
비전공생의 BYOL(Bootstrap your own latent, 2020) 논문 리뷰 (0) | 2023.05.05 |
---|---|
비전공생의 Distilating the Knowledge in a Neural Network(2015) 리뷰 (0) | 2023.04.30 |
비전공생의 SimCLR(2020) 논문 리뷰 (2) | 2023.04.12 |
비전공생의 MoCo(2020) 논문 리뷰 (0) | 2023.04.11 |
Contrastive Learning 에 대한 이해 (0) | 2023.03.27 |