Transformer(1)에서는 Transformer의 Self-Attention과 Scaled Dot-Product Attention에 대해 설명했다. 이번에는 Multi-Head Attention과 Attention외의 모듈들인 Block-Based Model, Positional Encoding, Learning Rate Scheduler에 대해...
[DSLAB] Transformer (2)
[DSLAB] Transformer (1)
Transformer는 2017년 Attention is All You Need라는 구글에서 발표한 논문에서 제안되었다. Transformer는 기존에 Seq2seq과 같이 Encoder-Decoder 구조를 그대로 사용하였으나 RNN을 사용하지 않고 Self-Attention을 사용한 새로운 모델이다. Long-Term Dependency R...
[DSLAB] Beam Search And BLEU
Seq2seq와 같은 모델에서 출력값을 생성하는 알고리즘에는 여러가지 방법이 있다. 대표적으로 Greedy Decoding, Exhaustive Search, Beam Search가 있다. Greedy Decoding: 출력값을 생성하는 현재 시점에서 가장 확률이 높은 값을 선택하는 것 Exhaustive Search: 매 time step...
[DSLAB] Sequence-to-Sequence And Attention
Sequence-to-Sequence 모델은 앞서 나왔던 RNN의 구조 중 Many-to-many의 형태에 속한다. 입력이 Sequence, 출력도 Sequence인 형태에서 입력 Sequence를 모두 읽은 후 출력 Sequence를 예측하는 모델이다. Seq2seq의 구조 Sequence-to-Sequence의 구조는 입력된 문장을 읽어...
[DSLAB] LSTM, GRU
앞서 설명한 Vanishing/Exploding Gradient Problem을 일으키는 Long-Term-Dependency는 RNN의 고질적인 문제이다. 이를 해결하기 위해 나온 모델이 바로 LSTM이다. LSTM은 장단기 메모리(Long Short-Term Memory)의 약자로 단기 기억으로 저장하여 상황에 맞는 정보를 꺼내 사용함으로써 장기 ...
[DSLAB] Character-level Language Model
Character-Level Language Model 요즘 자연어 처리에서의 최신 트렌드는 GPT와 같은 거대언어모델(LLM)이라고 할 수 있다. 하지만 LLM을 알기 위해서는 먼저 언어모델을 알아야 한다. 언어 모델(Language Model)은 이전에 등장한 문자열을 기반으로 다음에 등장할 단어를 예측하는 테스크이다. 그 중에서도 간단한 C...
[DSLAB] Word Embedding
사람이 사용하는 언어의 문장에는 여러 단어가 존재하고 각 단어에는 여러가지 의미가 있을 수 있으며 비슷한 의미를 가진 단어와 정반대의 의미를 가진 단어들과 같이 언어에는 여러 복잡한 의미가 얽혀있다. 그렇다면 이러한 단어를 컴퓨터가 쉽게 인식하고 처리하게 하려면 어떻게 전달해야할까? 간단하게 생각하면 단어를 벡터화 시키면 된다. 단어의 벡터화를 ...
[DSLAB] RNN
Recurrent Neural Network(RNN)은 기본적으로 시퀀스 데이터가 입력 또는 출력으로 주어진 데이터를 처리하는데 특화된 신경망 구조로 현재 타임스텝에 대해 이전 스텝까지의 정보를 기반으로 예측값을 산출하는 딥러닝 모델이다. RNN의 구조 RNN은 위의 그림처럼 데이터 x1, x2 … xT은 각 타임 스텝의 입력으로서 순차적으로...
[DSLAB] 기존의 자연어 처리 기법
자연어 처리(NLP)를 본격적으로 공부하기 전에 기존에 사용하던 자연어 처리 기법인 Bag-of-Words Representation과 이를 활용한 Naive Bayes Classifier에 대해 알아보고자 한다. Bag-of-Words Bag-of-Words는 입력된 문장의 단어를 수치화하는 방법중에 하나로 문장 안 단어의 순서를 고려하지 ...
UsernameNotFoundException이 발생하지 않는 이유
이슈발생 Spring Security를 사용하여 로그인 및 인증 기능을 구현하던 도중에 알 수 없는 오류가 발생했다. 로그인 시에 아이디가 DB에 존재하지 않을 때 MemberDetailsService에서 UsernameNotFoundException을 발생시키고 SecurityConfig에서 failureHandler를 통해 "존재하지 않는 ...