자기회귀(AR, Autoregressive)
자기회귀는 시계열 데이터의 현재 값이 이전 값들의 선형 조합으로 설명될 수 있다고 가정
AR(p) 모델에서 p는 시차의 수. 예를 들어, AR(5) 모델은 현재 값이 이전 5개의 값에 의존한다고 가정.
차분(I, Integrated)
차분은 데이터의 비정상성을 제거하여 시계열이 정상성을 가지도록 변환하는 방법.
I(d)에서 d는 차분의 횟수. 예를 들어, 1회의 차분(d=1)은 현재 값에서 이전 값을 빼서 생성된 차분 값을 사용합. 데이터의 추세를 제거
이동평균(MA, Moving Average)
이동평균은 시계열 데이터의 현재 값이 이전의 예측 오차의 선형 조합으로 설명될 수 있다고 가정.
MA(q) 모델에서 q는 이동평균의 시차 수. 예를 들어, MA(2) 모델은 현재 값이 이전 2회의 예측 오차에 의존한다고 가정.
저차원 벡터
스파스한 방법 - 원핫인코딩에 비해서 저차원이다.
또한 원핫인코딩은 0또는 1로만 이뤄져있는 반면, RNN은 float으로 이뤄져있어서, 밀집벡터이다
모델 설계시 고려해야할 사항
해결해야할 문제의 복잡성
가지고 있는 데이터
가지고 있는 리소스
RNN 작동원리
이전 타임스텝에서 생성된 hidden state vector가 전달된다.
전달된 hidden state vector와 한 단어의 임베딩 벡터가 합쳐진다.
기본적으로 입력이 2개이다.
return_sequences
True : 각 타임스텝에서 생성된 hidden state를 결과에 모두 반환한다.
False : 마지막 hidden state 만 결과에 반환한다.
LSTM 특징
1) 게이트 사용 : 오래전 단어의 정보의 효육적 사용
2) 기억셀 사용 : 오래전의 단어의 내용을 보다 잘 기억한다.
RNN의 단점
장기의존성 문제
오래전에 사용된 단어의 정보가 잘 전달 되지 않는다.
장기의존성 문제 극복 -> 어떤 단어에 가중치를 줄것인지 더 잘표현
1) gate : 정보의 양을 조절. 시그모이드 활성화 함수를 사용하여 0~1 사이의 값을 출력한다. (input-gate, forget-gate, output-gate)
2) cell state : 이전의 중요 정보를 더 잘 기억하기 위해 추가로 입력되는 값
기본적으로 ct-1을 업데이트하여 ct를
forget gate : 새로운 정보


-> 얼만큼 잊을지(얼만큼 남길지) 정해진다
-> 시그모이드 : 비율
inputgate : 새로운 기억셀

-> 새롭게 추가되는 정보들의 긍부정 역할을 나타냄
-> 메모리셀에서 얼마나 버릴지 결정
-> tanh 으로 -1~1 사이
output gate : 히든스테이트벡터를 더 나은 표현으로 전달한다.

-> 업데이트 된 값들을 받아서 최정 출력
기억셀과 히든 스테이트
SOTA (시대별 최고 모델)

정의
입력 시퀀스를 받아서 츨력 시퀀스를 생성하는 모델
인코더
RNN, LSTM 등의 구조를 사용
입력 시퀀스를 고정길이의 벡터로변환(hidden state vector)
디코더
출력 시퀀스 생성
소프트 맥스 함수를 이용하여 다은 단어에서 가장 확률이 높은 단어가 나온다(corpus 범위안의 단어)

seq2seq 단점
이전 차원의 시퀀스가 고정 길이의 벡터로 반환 -> 입력길이에 상관없이 고정길이이다.
장기 의존성 문제 -> lstm 이여도 시퀀스길이가 길어지면 한계가 있다.
순차처리이기 때문에 속도가 느리다.
병렬 처리하므로 . (포지셔닝임베딩으로 순서정보를줌)
장기 의존성 문제 해결의 키
정의

-> 인코더의 유사도를 계산하여서 디코더에 반환한다.
-> 입력 시퀀스의 다른부분에 집중한다.
설명

-> today를 예측하려면 오늘은 이란 단어에 가중치를 더 준다.
-> 입력시퀀스의 어떤 가중치를 줄것인지가 어텐션 스코어
찾고자하는 타겟의 벡터와 입력 시퀀스를 내적한다.
오늘은 금요일입니다 -> today is Friday 여기서 today를 찾으려면, today 벡터와 오늘은 금요일입니다 의 벡터를 내적하여 가장큰 토큰을 찾는다
가장 내적값이 큰 값에 가중치를 준다(유사도)

-> 이 값을 소프트맥스로 0~1 사이로 만든다
-> 그 뒤 각 단어의 원래 벡터에 곱한다.
-> 가중치가 곱해진 각 단어의 벡터를 모두 더하여 하나의 벡터를 반환한다.
-> 이렇게 나온 벡터와 이전 히든스테이트 벡터를 콘켓한다.
유사도=가중치=어텐션스코어
디코더가 출력 생성의 여러 단계에서 입력 시퀀스의 다양한 부분에 집중할 수 있도록함
디코더 출력 생성할때 인코더 영역에서 전달되는 값에서 어디에 더 집중할 것인지 결정
쿼리벡터, 키벡터 벨류