UlMFit의 효과
기존에 CV쪽에서는 Transfer Learnin을 많이 하고, NLP에서는 사실 프로젝트마다 모델을 처음부터 만들었었다. from scratch로 하게 되는 경우 시간도 많이 소요될 뿐더러 재활용도 불가능하다.
공부하면서 가장 중요한 것만 간단히 요약하고자 한다.
발표자료
논문스터디에서 같이 스터디했던 지현님께서 모델에 대해서 정리하여 발표하셨다.
Discriminative fine-tuning
각자 다른 learning-rate로 파라미터를 업데이트 시킴
여기서 2.6이란 값은 실험으로 얻은 거겠지만, 2.6은 1보다 크다는 게 중요하다. 즉, universal한 지식을 갖고있는 앞단의 Layer에 대한 변동을 최소화한다는 것
Slanted Triangular Learning Rates
다이나믹하게 learning을 잡기 위한 방법 삼각형 모양으로 learning-rate가 일정 cut-fraction까지는 올라가게 됨 그러나, cut-fraction까지 배치가 돈 이후의 epochs 이후론 learning-rate가 감소하게 됨
Concat-Pooling
N개의 embedding에 대하여 Time에 대한 정보손실을 막기 위한 방법
h: hidden state / T: time / hc: concat 각 embedding에 대한 중요특징을 Time에 대하여 max-pooling / mean-pooling을 추출
Gradual unfreezing
Universal한 Language Model을 활용하기 위하여 last layer부터 unfreezing Classifier와 가까운 layer일수록 general한 지식을 갖고있지 않음 즉, unfreezing 대상은 universal한 지식을 갖고 있는 layer이므로 Fine-tuning시 이를 활용하여 위하여 점차적으로 unfreezing
Chain-thaw
BPT3C는 backpropagation을 계산하나 Large Input sequences에 대응하기 위한 방법론 일정한 배치 length (b)를 기준으로 document들을 분리함
배치로 나누기 때문에 많은 input에 대하여 대응이 가능하며, 위에 대한 batch를 backpropagation을 계산함
- 이전 배치의 hidden state는 다음 배치의 초기값으로 이용
Bidirectional LM
일반적인 LM은 n-gram의 형태지만, Bidirectional 모델을 활용하여 Embedding의 뒤의 sequence을 활용하여 더 정교한 모델을 만들 수 있음
repo="ghk829" issue-term="pathname" theme="github-dark" crossorigin="anonymous" async>