RNN / LSTM / GRU

하영영·2023년 6월 12일
0

NLP

목록 보기
11/17
post-thumbnail

1) RNN

: 시계열 데이터(시간에 따라 변하는 데이터)를 처리하기에 좋은 뉴럴 네트워크 구조
EX) 음성인식, 번역기, 감정 분석, 음악 생성기


CNN은 이미지 구역별로 같은 weigth를 공유한다면,
RNN은 시간별로+과거와 현재가 같은 weight를 공유한다



기본가정

  • First Order System
    : 현재 시간의 상태가 이전 시간의 상태와 관련이 있다고 가정
    (이 시스템은 외부 입력 없이 자기 혼자서 돌아간다(autonomous system)

과정

실제 구조


Many-to-Many ex) 번역
Many-to-one ex) 예측 / seq2seq
One-to-many ex) 생성



many-to-one 예시
-> seq2seq





🎀 RNN 단점보완 -> LSTM과 GRU

  • 무한대로 발산 or 0으로 발산..(exploding/vanishing gradient)
    -> 해결 : Gate RNNs..
    (수도꼭지처럼 일정 수준에서 멈춰준다)



2) LSTM(Longh short-term memory)

  • Gate 구조 추가(gradient flow를 제어할 벨브 역할)
  • 4개의 MLP 구조

  • Forget Gate : 얼마나 잊어버릴까?
  • Input Gate : 얼마나 사용할까?
    -> 두 데이터를 Cell state에서 적절히 섞는다.
    -> Cell을 합쳐서 Output Gate로 넘긴다.

  • LSTM은 3개의 gate(forget, Input, output)를 가지고 있고
  • 이 gate들은 cell state를 보호하고 제어한다.



🌟 구조 상세설명 🌟

참고 사이트


LSTM의 반복 모듈에는 4개의 상호작용하는 layer가 들어있다.
3개의 Gate가 있고, 이 Gate들은 Cell State를 보호하고 제어한다.


Gate

  • Gate는 시퀀스 데이터의 흐름을 제어하고
  • 어떤 정보를 저장하고 삭제할지를 결정한다.
    Gate 사용으로 LSTM이 장기 의존성 정보를 유지할 수 있게 됨

Cell State

  • <선택된 정보들>을 < cell state>와 조합하여 사용하게 됨
    장기 의존성 정보를 업데이트하고 전달할 수 있게 됨


    즉, GateCell State를 통해 LSTM은 장기적인 의존성 정보를 기록하고 학습할 수 있어, 더 긴 시퀀스 데이터를 처리할 수 있다.






  • 최종출력은 은닉상태 h_t가 된다.








3) GRU(Simplification of LSTM)

: LSTM 모델이 너무 복잡하기 때문에 간소화시킨 버전

  • Cell state가 없음
    LSTM에서는 cell, hidden 둘다 초기화 해주지만, GRU에서는 hidden만 초기화 시켜줌






🎀 LSTM VS GRU

  • 둘다 RNN보다는 좋다.
  • 둘 중 뭐가 좋은지는 확실히 말할 수 없음
















profile
NLP 공부중

1개의 댓글

관련 채용 정보