본문 바로가기
728x90

DL/NLP18

BERT 2023. 3. 22.
Transformer 4 - GPT / BERT / 그 외 파생모델들 GPT(Generative Pre-trained Transformer) 언어모델(Language Model) 마지막 단어를 생성해내는 것을 잘해서 문장 생성에 뛰어남 단방향 attention을 사용 Transformer의 Decoder를 사용 BERT(Bidirectional Encoder Representations from Transformers) 마스크 언어모델(Masked Language Model) 문장 중간의 빈칸에 들어갈 단어를 잘찾아서 문장의 의미를 추출하는데 뛰어남 양방향 attention을 사용 Transformer의 Encoder를 사용 https://ratsgo.github.io/nlpbook/docs/language_model/bert_gpt/#gpt BERT & GPT prati.. 2023. 3. 14.
Transformer 3 - Residential Add / Normalization Residual Connection 2015 ResNet에서 소개된 잔차연결을 적용함. ResNet 잠깐 알아보기 Q9. 상식적으로 56개의 레이어를 갖는 네트워크는 20개의 레이어를 갖는 네트워크보다 성능이 좋아야 합니다. 하지만 그렇지 않았죠! 이유가 무엇인가요? >>네트워크가 깊어질 수록 Optimize(Train)하는 것이 어렵기 때문에, 얕은 네트워크가 더 좋은 성능을 보이게 된다. Q10. Residual Block은 굉장히 간단한 수식으로 표현이 가능합니다. 수식을 적어보세요. >>y = f(x) + x https://itrepo.tistory.com/36 (7) ResNet (Residual Connection) ResNet (2015)¶ ResNet은 2015년도 ILSVRC 에서 우승을.. 2023. 3. 14.
Transformer 2 - Multi Head Attention / Scaled Dot-Product Attention / Masking / Position-wise Feed Forward Network / Query, Key, Value 잠깐! 잊어버리니깐, 다시 한 번 더.. 트랜스포머 모델이란? Encoder는 input sequence를 continuous한 representation으로 바꾸고, Decoder는 이 representation을 output sequence로 바꾼다. 최종 Output은 Probability가 나옴! 먼저 0. Inputs을 embedding 후 positional encoding 하고 1. Encoder 돌리고 x 6번 Multi-Head Attention 잔차 Add + Normalization ---------------- FFW layer 잔차 Add + Normalization 2. Decoder 돌리고 x 6번 Masked - Multi-Head Attention (현재 위치보다 더 뒤에 .. 2023. 3. 14.
Transformer 1 - Positional Encoding Seq2seq의 Encoder-Decoder를 6개 쌓아올린 모델. Enc-Dec x 6 은 아니고, Enc x 6 + Dec x 6임. RNN, LSTM 등의 기존 문장의 연속성을 무시 이를 무시하니 병렬구조가 가능해져서 연산속도가 엄청 빨라졌음. seq2seq처럼 context vector를 중간 병목으로 쓰지 않음. Self attention, 즉 내가 들어가서 내가 나오는 재귀적인 구조임. 문장의 문맥 + 단어의 순서 (위치)까지 attention에 담았음. 논문 : https://arxiv.org/pdf/1706.03762.pdf (Attention is all you need (2017)) 각 모듈이 하는 일을 간단하게 정리하면, Positional Encoding: 입력 문장의 단어들에 위치.. 2023. 3. 9.
모델 발전과정 3 - GNMT (Google's Seq2seq 8 layers w. Residual) Google's Neural Machie Translation System 2016년 구글의 신경망 번역 시스템 8개 층을 쌓은 Encoder-Decoder 구조 Residual Connection 사용 Bahdanau Attention 채택 토큰 처리를 하지 않고 단어를 그대로 복사하여 적당한 위치에 배치하는 Copy Model을 사용 장점 정확도가 올라감 학습속도 빨라짐 기울기 소실 문제 해결가능 https://norman3.github.io/papers/docs/google_neural_machine_translation.html Google's Neural Machine Translation System. 그리고 \(sigmoid, tanh\) 등의 함수와 element-wise 연산인 \( (\.. 2023. 2. 28.
모델 발전과정 2 - Attention (Bahdanau / Luong) Attention https://arxiv.org/pdf/1409.0473.pdf 0. Abstract The models proposed recently for neural machine translation often belong to a family of encoder–decoders and encode a source sentence into a fixed-length vector from which a decoder generates a translation. In this paper, we conjecture that the use of a fixed-length vector is a bottleneck in improving the performance of this basic encoder.. 2023. 2. 28.
모델 발전과정 1 - SLM / NNLM / RNN / Seq2seq 언어 모델(Language Model) 주어진 단어들을 보고 다음 단어를 맞추는 모델 단어의 시퀀스를 보고 다음 단어에 확률을 할당 하는 모델에서 주변 단어를 보고 중심 단어를 예측하는 형태로 발전하게 됨. 통계적 언어 모델 (Statistical Language Model) 단점 한 번도 본 적 없는(학습 데이터에 존재하지 않는) 단어 / 문장에 대해서는 확률을 부여할 수 없다. 따라서 언어 모델이 아우르는 범위를 넓히기 위해 다양한 단어를 포함하는 데이터가 필요하다. (양까지 충분하다면 정의하는 확률이 일반적이므로 더욱 좋다.) 신경망 언어 모델 (Neural Network Language Model : NNLM) NNLM의 시초는 Feed-Forward 신경망 언어 모델인데, 지금의 Embeddin.. 2023. 2. 27.
벡터화 발전과정 4 - 워드 임베딩 (Word2Vec / FastText / GloVe) 2003년 요슈아 벤지오(Yoshua Bengio) 교수가 NPLM(Neural Probabilistic Language Model) 이란 모델을 통해 제안된 워드 임베딩. 하지만 이 모델은 너무 느렸다. 2013년, 구글이 NPLM의 정밀도와 속도를 개선하여 Word2Vec을 만들었고, 그 이후로 FastText나 GloVe 등과 같은 방법들이 제안되었다.. Word2Vec 원핫보다 저차원이고, neighbor words간 유사도를 가짐 word2vec은 워드임베딩 종류의 하나이고, Unsupervised or Self learning 이라고도 한다. 왜냐하면 그 유의미한 Dense Vector들을 자기가 학습하면서 기울기를 조정하여 업데이트해가기 때문이다. 분포 가설(Distributional Hyp.. 2023. 2. 23.
벡터화 발전과정 3 - 임베딩 (Embbeding) / Sparse - Dense - Embedding vector 희소 벡터 (sparse vector) 들이 난무하는 DTM, TF-IDF, 원-핫 벡터 단어장에는 0이 너무 너무 많다. 단어장의 크기가 커지면, 그만큼 차원이 늘어면서 차원의 저주(curse of dimensionality)가 시작된다. 차원의 저주란, 희소벡터의 비율이 같은 일정 데이터를 2D에 표현했을 때보다, 3D로 표현했을때 더 density가 떨어진다는 뜻이다. 골다골증인 것처럼 데이터에 구멍이 송송송송 빈다. 데이터가 많으면 많을 수록 표현이 잘 되고 좋은 것은 맞지만, 필요없는 0 같은 노이즈가 많이 끼면 오히려 학습에 방해가 되고, 학습을 마치더라도 유의미한 결과라고 하기 어렵다. 그래서 Sparse vector 를 Dense vector 로 바꾼다. 즉, 벡터 하나하나 의미가 있는 아.. 2023. 2. 22.
728x90