issues
search
njs03332
/
ml_study
3
stars
0
forks
source link
2022/02/10 - 2022/02/17
#19
Open
givitallugot
opened
2 years ago
givitallugot
commented
2 years ago
단비: 4.3
유리: 5.4
선미: 6.2
2/20(일) 11시에 뵈어요
njs03332
commented
2 years ago
5.3 예제: 문서 분류에 사전 훈련된 임베딩을 사용한 전이학습
전이학습 (transfer learning): 한 작업에서 훈련된 모델을 다른 작업의 초기 모델로 사용하는 방식
https://ruder.io/transfer-learning/
다른 머신러닝 기법들 정리
semi-supervised learning: 데이터의 일부 레이블되어있는 경우에 사용. 적응 양의 labeled data와 많은 양의 unlabeled data를 이용해 학습하는 방식.
semi-supervised learning에서 얻은 많은 인사이트들은 transfer learning에도 적용 가능함 (label되지 않은 데이터를 최대한으로 활용하고자 하는 기법이라는 공통점)
self-supervised learning: 레이블이 없는 데이터를 기반으로, 스스로 학습 데이터에 대해 supervision을 수행함으로서 학습하는 방식
보통 pre-trained 모델 생성과 downstream task라는 두 단계로 구성
pre-trained 모델: 대량의 unlabeled data를 이용해 전반적인 특징 학습 (예: BERT, CBOW, skip-gram 등)
이 때, 일반적인 문장을 그대로 활용하기 때문에 레이블링이 필요 없음. (self-supervision, 스스로 레이블 생성)
downstream task: 소량의 labeled data를 활용하여 사용 목적에 맞게 pre-trained model을 fine tuning
transfer learning과의 차이점: TL의 경우 pre-trained task에서 human-provided label을 사용하지만, SSL에서는 스스로 레이블을 생성하여 사용
https://coblob.com/blogs/Transfer-Learning-or-Self-Supervised-Learning-What-would-you-choose-5b21ca3eeb7f6fbccd471818
https://arxiv.org/abs/2007.04234
이 범주가 항상 명확히 구분되는 건 아닌 것 같지만, 위의 정의에 따르면 교재의 5.2 -> 5.3 사례는 transfer learning보다는 self-supervised learning에 해당하는 듯..?
5.3.2 Vocabulary, Vectorizer, DataLoader
SequenceVocabulary 클래스 (Vocabulary 클래스를 상속함)
특수 토큰 4개 사용: UNK, MASK, BEGIN-OF-SEQUENCE, END-OF-SEQUENCE
MASK: Embedding 층의 마스킹 역할 수행. 가변 길이의 시퀀스가 있을 때 손실 계산을 도움
BEGIN-OF-SEQUENE, END-OF-SEQUENCE: 시퀀스 경계에 관한 힌트를 신경망에 제공
2/20(일) 11시에 뵈어요