GPT 1 논문
BackGround(related work)
- semi-supervised learning - unsupervised learning pre training 과 fine-tuning을 조합한 것
- Transformer - 다양한 task에 좋은 성능, 더 긴 문장 기억하는데 적합(architecture)
- Unsupervised pre-training - 좋은 시작점을 찾는 것이 목표
- pre-training 은 규제 전략으로도 좋고, 딥러닝 네트워크의 좋은 generalization인 방법이라고 밝혀짐
- Auxiliary training objectives - 중요하진 않지만 downstream task에서 성능 향상을 가져옴
- 초기 Auxiliary training objectivesdusrnsms 광범위한 범위의 nlp task(POS tagging, language modeling, …)를 사용
- 최근에는 관련있는 task의 objective를 사용함
- 본 연구에서는 unsupervised learning pre training에서 이미 언어학적인 aspects를 학습하는 것을 보일것임(근데 사용하긴함)
Motivation
- 대부분의 딥러닝 방법들은 상당한 양의 정제된(labeled)데이터가 요구
- 하지만 대부분의 unlabeled data는 많고 labeled data는 적어 학습이 어려운 문제가 있음
- 그래서 이 unlabeled data를 이용한다면 많은 시간과 비용을 들이는 annotation 작업을 대체 가능 → Unsupervised learning은 지도학습에 의존성을 줄여주고 상당한 성능의 향상을 가져올 수 있다.
-
- 어떤 목적 함수(optimization objective)가 가장 좋은지 불분명(task마다 다르기때문)
- 학습된 representation을 target task로 transfer시키는 효과적인 방법 불분명
- semi-supervised approach
- unsupervised learning pre training 과 fine-tuning을 조합
- 다양한 task에 이용할 수 있고 약간의 adaptation로 transfer할 수 있는 보편적인 representation 학습 하는 것이 목표
- unlabeled data와 labeled data가 같은 도메인일 필요는 없음
- unlabeled data로 language modeling objective를 이용해서 초기 파라미터 학습(nsupervised learning pre training)
- labeled data로 task에 맞게 조금씩 조정 (fine-tuning)
framework
- unsupervised pre-training
- unsupervised corpus of tokens $U = {u_1, ... , u_n}$ (contiguous sequences of text)
- objective(Likelihood) : $\theta$와 함께 모델링된 Neural net (SGD로 학습)
- $L_1(U) = \sum_i logP(u_i|u_{i-k},...,u_{i-1};\theta)$
- k는 size of context window
- Use multi-layer decoder + multi-headed self attention operation
- multi layer transformer의 decoder로 학습
- $h_0 = U*W_e + W_p$ (W_e는 token embedding, W_p는 positional embedding)
$h_l = transformerblock(h_{l-1}) \space\space \forall i \in [1.n]$
$P(u) = softmax(h_nW_E^T)$
- position wised feedforward layers to produce an output distribution over target tokens
- Supervised fine-tuning
- unsupervised pre-training이후 파라미터 선택
- labeled dataset($C$) 있다고 가정(input)
- 사실은 pre-training model을 거쳐 나온 activation
- $P(y|x^1,...,x^m) = softmax(h_l^mW_y)$,
- x는 인풋, W_y는 fine tuning에 필요한 추가 파라미터
- objective(Likelihood) $L_2(C) =\sum_{(x,y)} logP(y|x^1,...,x^m)$,
- Auxiliary objective
- improving generalization, accelerating convergence
- $L_3(C) = L_2(C) + \lambda * L_1(C)$
- Specific NLP task : task에 맞게 조금씩 수정이 필요함.
- Classification
- Entailment (inference)
- Similarity (paraphrase)
- Multiple Choice (QA)
Experiment