전체 글 (28) 썸네일형 리스트형 [딥러닝 NLP] 17. BERT(MLM, NSP), SBERT 다양한 자연어처리 태스크가 트랜스포머로 대체되어가는 추세에 따라 트랜스포머 계열의 BERT, GPT, T5 등의 사전 훈련된 언어 모델들이 등장했다. 이번 장에서는 그 중 가장 유명한 BERT를 공부한다. 그의 파생 모델에는 ALBERT, RoBERTa, ELECTRA 등이 있다. ALBERT : A Lite BERT for Self-supervised Learning of Language Representations RoBERTa : A Robustly Optimized BERT Pretraining Approach ELECTRA : Efficiently Learning an Encoder that Classifies Token Replacements Accurately # 17-01 NLP에서의 사전.. [딥러닝 NLP] 16. Transformer # 16-01 Transformer 란? 트랜스포머: 기존 seq2seq 모델의 한계를 보정하기 위해 Attention을 사용하는 것이 아니라, 아예 Attention만으로 인코더-디코더 구조를 설계한 것으로, RNN을 사용하지 않았음에도 RNN보다 우수한 성능을 보임 1. 트랜스포머의 주요 하이퍼파라미터 d_model: 인코더와 디코더의 입출력 크기, 임베딩벡터의 차원 num_layers: 인코더와 디코더로 이루어진 층의 개수 num_heads: 어텐션을 분할 수행할 병렬의 개수 d_ff: 피드포워드 신경망의 은닉층 크기 2. 트랜스포머 기본구조 기존 seq2seq는 인코더와 디코더가 각각 t개의 시점을 가졌다면, 트랜스포머는 인코더와 디코더 자체가 N개식 쌓여있는 구조이다. 3. 트랜스포머의 입력: .. [딥러닝 NLP] 15. Attention(Dot-Product Attention, Bahdanau Attention) seq2seq 모델은 고정된 크기의 벡터로 압축하는 과정에서 정보가 손실되고, RNN의 고질적 문제인 기울기 소실 문제가 존재한다. 이로 인해 입력 시퀀스가 길어질수록 출력 시퀀스의 정확도가 떨어진다. 이를 보정하기 위한 attention 기법을 알아보자. # 15-01 Attention Mechanism 1. Attention이란? 디코더에서 출력 단어를 예측하는 매 시점마다 인코더의 전체 입력 문장을 다시 참고하는 것. 이 때, 전체 입력 문장 중에서도 해당 시점에서 예측할 단어와 관련된 입력 단어에 더 집중(attention)한다. 여러 종류의 Attention이 있지만, Attention Score를 구하는 방법만 다르다. 'dot' attention은 루옹 어텐션이라고도 하며, 'concat' .. [딥러닝 NLP] 14. RNN encoder-decoder encoder-decoder 구조: 하나의 RNN을 인코더, 또 다른 하나의 RNN을 디코더라는 모듈로 명명하고 두 RNN을 연결한 구조로, 주로 입출력의 길이가 다를 경우 사용한다. (ex.번역기, 텍스트 요약) # 14-01 시퀀스-투-시퀀스(seq2seq, Sequence-to-Sequence) seq2seq: 입력된 시퀀스로와는 다른 도메인의 시퀀스를 출력하는 데 사용 (ex. 챗봇, 기계번역, 내용 요약, Speech to Text) 1. seq2seq의 구조 -위의 그림에서는 이해를 위해 바닐라 RNN으로 표현했으나 실제로는 LSTM 혹은 GRU를 사용 -훈련과정에서는 교사 강요(teacher forcing) 사용 (1) 인코더 -입력문장의 모든 단어들을 임베딩벡터로 변환 -현재 시점을 t라고.. [딥러닝 NLP] 13. Subword Tokenizer(BPE, SentencePiece, Huggingface) 기계가 모르는 단어(OOV, 신조어 등)에 대해 어떻게 대처해야할까? Subword segmentation는 하나의 단어를 여러 서브워드로 분리해서 단어를 인코딩 및 임베딩하는 전처리 작업으로, 이러한 작업을 수행하는 토크나이저를 Subword Tokenizer라고 한다. ex) birthplace = birth + place 이번 장에서는 Subword Tokenizer의 주요 알고리즘인 BPE와 그 변형, 실무에서 주로 사용하는 Tokenizer들을 학습한다. # 13-01 BPE(Byte Pair Encoding) BPE(Byte Pair Encoding): 1994년에 제안된 데이터 압축 알고리즘으로, 연속적으로 많이 등장한 바이트 쌍을 하나의 바이트로 치환 ex) aaabdaaabac 에서 Z=.. [딥러닝 NLP] 12. Tagging Task 실습(NER, POS) 태깅 작업이란 각 단어가 어떤 유형에 속해있는지 알아내는 작업을 의미하며 대표적인 2가지 예시는 다음과 같다. -개체명인식(NER, Named Entity Recognition): 사람, 장소, 단체 등 어떤 유형인지 알아내는 작업 -품사태깅(Part-of-Speech Tagging): 단어의 품사가 명사, 동사, 형용사인지를 알아내는 작업 이번 장에서는 RNN 다대다 구조를 이용해 개체명인식과 품사태깅을 실습해본다. # 12-01 케라스를 이용한 태깅 작업 개요 -다대다 문제이므로 return_sequences=True를 설정해 출력층에 모든 은닉상태 값을 보냄 -양방향 RNN 사용 -지도 학습에 속하며, X와 y데이터는 쌍을 이루는 병렬 구조이다. -시퀀스 레이블링: 입력시퀀스 X에 대하여 레이블 시.. [딥러닝 NLP] 11. CNN(Convolution Neural Network) # 11-01 CNN for NLP 이전에 NVIDIA 딥러닝 기초 강좌를 수강하며 이미지 처리를 위한 CNN에 대해 공부했었다. 또한 CNN for sentence classification 이라는 논문을 리뷰하며 NLP를 위한 CNN도 공부했으므로 링크만 남기고 넘어간다. https://222ys.tistory.com/10 텍스트분류를 위한 신경망 설계도만 한 번 더 짚고 넘어간다. 크기가 4인 커널 2개, 3인 커널 2개, 2인 커널 2개를 사용해 6차원 벡터 2개, 7차원 벡터 2개, 8차원 벡터 2개를 얻는다. 얻은 6개의 벡터에 대해 맥스 풀링을 해 6개의 스칼라 값을 얻고, 전부 연결(concatenate)해 하나의 벡터로 만든다. 이렇게 얻은 벡터를 뉴런이 2개인 출력층에 완전 연결(Den.. [딥러닝 NLP] 10. Text Classification 실습(RNN, LSTM, GRU, Naive Bayes, BiLSTM) 이번 챕터에서는 RNN 계열의 신경망 바닐라 RNN, LSTM, GRU를 사용하여 텍스트 분류를 실습한다. # 10-01 바닐라 RNN으로 스팸메일 분류(이진분류) 다대일 구조의 바닐라 RNN 모델 설계 from tensorflow.keras.layers import SimpleRNN, Embedding, Dense from tensorflow.keras.models import Sequential embedding_dim = 32 # 임베딩백터 차원 hidden_units = 32 # 은닉상태 크기 model = Sequential() model.add(Embedding(vocab_size, embedding_dim)) model.add(SimpleRNN(hidden_units)) model.add(D.. 이전 1 2 3 4 다음