ML\DL

RNN(Recurrent Neural Network)

메린지 2022. 3. 7. 16:45

1. RNN (Recurrent Neural Network)

  • 순환신경망 - 딥러닝 모델은 연속적 데이터가 아닌 현재 snap shot을 분석
    -> 데이터의 순서에 따른 정보를 효과적으로 분석하지 못함
  • 기존 딥러닝 모델에 시간적인 측면 가미
    -> 데이터의 순서에 따른 영향도를 효과적으로 분석
  • 연속적인 데이터를 분석하는데 최적화된 모델

 2. RNN의 적용분야

  • Sequential data를 분석하는데 사용
    -> 자연어 처리, 음성 처리, 시간에 따른 센서 데이터 처리 등

3. RNN의 주요 키워드

  • 시간
    -> RNN의 데이터는 시간 순서대로 입력됨
    -> 과거의 데이터가 미래의 출력에 영향을 줄 수 있음
  • 기억
    -> 시간 따라 입력된 데이터들을 종합한 기억을 가짐
    -> 과거의 기억은 현재의 새로운 데이터에 따라 새로운 기억으로 보정

4. RNN의 특징

  • 다른 모델과는 다르게 은닉층의 출력이 같은 은닉층의 입력으로 들어감
  • 과거에 발생한 사건들을 종합한 맥락 정보를 현재 시점의 입력 데이터 분석 시 사용

5. RNN Unfolding

  • 순환되는 RNN 구조를 시간 순서대로 펼친 구조
  • hidden layer는 동일하며 시간에 따라 새로운 input과 output이 생성

6. RNN의 가중치(weight)

  • Timestamp: 입력신호(x)의 순서
  • 두 개의 입력 신호(x, h)를 처리하는 2개의 가중치 존재
    -> W - x : 해당 step(t)의 입력신호를 처리하는 가중치
    -> W - h : 이전 step(t-1)의 입력 신호를 처리하는 가중치

7. RNN의 이용 모델링 유형

  • 기본 구조를 변형해 다양한 유형 문제에 적용 가능
    -> one to many
    -> many to one
    -> many to many

8. RNN의 한계 (장기 의존성 문제) -> 너무 마지막 cell에 치중

  • 입력 데이터의 시퀀스가 길어질 경우 학습 정보가 시퀀스가 지나감에 따라 희미해지는 현상

(예) 나는 한국에서 태어났고 이름은 김철수이고 키는 180이고 몸무게는 80킬로그램이고 모국어로 말한다.
-> 모국어..? 어디 모국어..

  • 장기 의존성 해결 방안
    -> LSTM
    -> Seq2Seq
    -> Attention (이게 제일 짱)

9. LSTM(Long Short Term Memory)

  •  LSTM의 핵심 아이디어: Cell state
    -> cell state는 모델에 있어 컨베이어 벨트같은 role
    -> 각 sequence 별 입력되는 데이터와 달리, 모델의 전체 시퀀스에 거쳐 필요한 정보 전달
  • Cell state(Ct)를 통해 전달되는 정보
    -> Forget Gate: 이번 스텝(t)에 입력된 데이터([ht-1, xt]) 중 잊어야하는 정보 선정
    -> Input Gate: 이번 스텝(t)에 입력된 데이터([ht-1, xt]) 중 중요 정보 선정
    -> output Gate: Forget gate와 Input Gate의 정보를 이용해 다음 스텝으로 넘길 정보 선정

10. GRU(Gated Recurrent Unit)

  • LSTM은 각 Gate의 숫자가 과도하고 구조가 복잡한 단점
  • GRU는 LSTM에서 불필요 Gate를 제거하고 단순화한 모델
  • LSTM보다 단순하지만 비슷한 성능

11. RNN의 응용

  • NLP Task: AI스피커, 챗봇, 번역기 등
  • 비 NLP Task: 추천시스템, 주가 예측
  • 다른 모델과 연결: 사진 설명하기(CNN), 썸네일 추출(CNN, 강화학습)