시계열데이터(3)
-
Attention(어텐션)
이번 포스팅은 seq2seq의 개선에 이어 Decoder위주로 설명을 할 것이다. 이번 장에서 완성되는 어텐션은 seq2seq처리에서 아주 강력한 기능을 보이고 있으며 그 구조도 상당히 직관적이다. 어텐션을 짧게 표현하자면 넘어오는 데이터중 필요한 정보만 "주목"시키는 기술이다. 이 말을 이해하기 위해서 천천히 구조를 파악해보도록 하자. Encoder개선 Encoder부분 Attention은 전 포스팅에 글을 올려놨지만 이번 글이 어텐션이 주제인 만큼 간단하게 짚고 넘어 가겠다. Encoder파트 attention의 주된역할은 고정길이 벡터 개선이였다. 시계열 데이터가 커지면 커질 수록 고정길이 벡터는 입력데이터를 표현하기 점점 어려워 지기 때문이다. 그렇기에 입력데이터에 따른 크기의 유동적인 조절이 필..
2021.08.17 -
seq2seq(Sequence to Sequence)
지금까지 우리는 단어의 분산표현과 언어모델들을 공부하였다. 특히 전 장에서 LSTM의 구조를 배웠다. 이제 이 언어모델을 실제 활용 하여 AI에게 새로운 문장을 만들게 할 수 있게되었다. 그리고 언어모델의 구조를 응용하여 챗봇이나 번역시스템등 여러가지 활용이 가능하다는 것을 이번에 알게 되었다. 이번 장에서 포스팅 할 내용은 Encoder와 Decoder의 구조와 그 2개를 결합해 seq2seq 즉 시계열 데이터를 시계열 데이터로 변환하는 작업을 진행 해 볼 것이다. seq2seq의 전체모습 위 사진이 seq2seq의 전체적인 모습이다. 현재 모델의 목적은 번역이다. 구조안에 들어있는 요소들은 다 저번에 포스팅 했던 것들이라 충분히 알고있으리라 생각한다. 그렇다면 문제는 이러한 결합구조가 어떤 의미를 띄..
2021.08.04 -
RNNLM(RNN Language Model)
이번에는 저번에 했던 RNN과 TimeRNN에 이어 TimeEmbedding,TimeAffine,TimeSoftmaxWithLoss를 만들고 이 모든걸 합쳐 RNNLM을 공부했다. 기본적으로 Time이붙으면 시계열 데이터를 처리하는 계층이라고 보면되는데 TimeRNN의 순차적인 forward로직의 포인트만 알고있으면 나머지 TimeEmbedding,TimeAffine,TimeSoftmaxWithLoss은 이미 저번에 배웠던 것에서 크게 변하는 것없이 구현가능하다. TimeEmbedding Embedding은 저번포스팅에 word2vec로직에서 나왔던 계층이다. 그 때는 단어의 분산표현을 저장할 가중치 행렬에서 단어의 인덱스를 받아 원하는 행을 뽑아오는 로직이였다. 이 TimeEmbedding또한 그 역할..
2021.07.28