8/5 Today I Learned -1

boks·2024년 8월 5일
post-thumbnail

📖 학습한 내용

  • RNN
  • ARIMA
  • LSTM
  • seq2seq
  • attention

📖 핵심내용

📌 ARIMA

ARIMA 모델은 3가지 구성 요소

  • 자기회귀(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회의 예측 오차에 의존한다고 가정.

📌 RNN

  • 저차원 벡터
    스파스한 방법 - 원핫인코딩에 비해서 저차원이다.
    또한 원핫인코딩은 0또는 1로만 이뤄져있는 반면, RNN은 float으로 이뤄져있어서, 밀집벡터이다

  • 모델 설계시 고려해야할 사항
    해결해야할 문제의 복잡성
    가지고 있는 데이터
    가지고 있는 리소스

  • RNN 작동원리
    이전 타임스텝에서 생성된 hidden state vector가 전달된다.
    전달된 hidden state vector와 한 단어의 임베딩 벡터가 합쳐진다.
    기본적으로 입력이 2개이다.

  • return_sequences
    True : 각 타임스텝에서 생성된 hidden state를 결과에 모두 반환한다.
    False : 마지막 hidden state 만 결과에 반환한다.

📌 LSTM

  • LSTM 특징
    1) 게이트 사용 : 오래전 단어의 정보의 효육적 사용
    2) 기억셀 사용 : 오래전의 단어의 내용을 보다 잘 기억한다.

  • RNN의 단점
    장기의존성 문제
    오래전에 사용된 단어의 정보가 잘 전달 되지 않는다.

  • 장기의존성 문제 극복 -> 어떤 단어에 가중치를 줄것인지 더 잘표현
    1) gate : 정보의 양을 조절. 시그모이드 활성화 함수를 사용하여 0~1 사이의 값을 출력한다. (input-gate, forget-gate, output-gate)
    2) cell state : 이전의 중요 정보를 더 잘 기억하기 위해 추가로 입력되는 값

gate <<<<<---- 다시 봐서 고쳐야한다.

기본적으로 ct-1을 업데이트하여 ct를

  • forget gate : 새로운 정보


    -> 얼만큼 잊을지(얼만큼 남길지) 정해진다
    -> 시그모이드 : 비율

  • inputgate : 새로운 기억셀

    -> 새롭게 추가되는 정보들의 긍부정 역할을 나타냄
    -> 메모리셀에서 얼마나 버릴지 결정
    -> tanh 으로 -1~1 사이

  • output gate : 히든스테이트벡터를 더 나은 표현으로 전달한다.

    -> 업데이트 된 값들을 받아서 최정 출력

  • 기억셀과 히든 스테이트

📌 Seq2Seq

  • SOTA (시대별 최고 모델)

  • 정의
    입력 시퀀스를 받아서 츨력 시퀀스를 생성하는 모델

  • 인코더
    RNN, LSTM 등의 구조를 사용
    입력 시퀀스를 고정길이의 벡터로변환(hidden state vector)

  • 디코더
    출력 시퀀스 생성
    소프트 맥스 함수를 이용하여 다은 단어에서 가장 확률이 높은 단어가 나온다(corpus 범위안의 단어)

  • seq2seq 단점
    이전 차원의 시퀀스가 고정 길이의 벡터로 반환 -> 입력길이에 상관없이 고정길이이다.
    장기 의존성 문제 -> lstm 이여도 시퀀스길이가 길어지면 한계가 있다.
    순차처리이기 때문에 속도가 느리다.

병렬 처리하므로 . (포지셔닝임베딩으로 순서정보를줌)

📌 Attention

  • 장기 의존성 문제 해결의 키

  • 정의

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

  • 설명

    -> today를 예측하려면 오늘은 이란 단어에 가중치를 더 준다.
    -> 입력시퀀스의 어떤 가중치를 줄것인지가 어텐션 스코어

어텐션 스코어 계산 방법(유사도 계산)

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

-> 이 값을 소프트맥스로 0~1 사이로 만든다
-> 그 뒤 각 단어의 원래 벡터에 곱한다.
-> 가중치가 곱해진 각 단어의 벡터를 모두 더하여 하나의 벡터를 반환한다.
-> 이렇게 나온 벡터와 이전 히든스테이트 벡터를 콘켓한다.

유사도=가중치=어텐션스코어

encoder decoder attention

디코더가 출력 생성의 여러 단계에서 입력 시퀀스의 다양한 부분에 집중할 수 있도록함
디코더 출력 생성할때 인코더 영역에서 전달되는 값에서 어디에 더 집중할 것인지 결정

self attention

  • 정의
    입력된 텍스트 데이터 내에 존재하는 단어들 간의 관계 파악
    문장의 문맥정보를 결정하기 위해 입력이 서로 작용하는 매커니즘
    동음이의어 구분 가능해진다

쿼리벡터, 키벡터 벨류

📖 이후 학습 계획

  • attention, transformer
profile
설계엔지니어의 변신

0개의 댓글