Recurrent Neural Network

‍이세현·2024년 11월 17일
1

Sequential Data

  • 순차 데이터의 예시
    • 음성 신호, 문장, 주식 시세, 심전도 신호 등
  • 언어 데이터를 컴퓨터가 처리할 수 있도록 숫자로 나타내는 방법
    1. 모든 단어가 담긴 Dictionary 크기만큼 One-hot 인코딩 형태의 벡터로 표현하는 방법
      • 아주 큰 벡터가 필요하고
      • 모든 단어는 서로 내적하면 0이므로, 단어 간의 유사성을 측정할 수 없다.
    2. Word2vec, Glove 등 학습된 단어 임베딩을 사용하는 방법
      • 각 단어 벡터는 모든 차원에서 실수 값을 가지고, 두 벡터 내적 값이 크면 유사한 의미를 가진다.
  • 순차 데이터의 특성
    1. 데이터가 나타나는 순서가 중요하다.
    2. 문장 길이의 가변성
    3. 문맥 의존성이 있다.
      • 앞 문장의 정보를 알아야 한다.
    • MLP는 순차데이터의 특징을 제대로 처리하기 어렵다.

RNN

  • 순차 데이터를 처리할 수 있도록 MLP를 확장한 것
    • 은닉층이 하나이고, 은닉 노드 사이를 연결하는 가중치가 존재한다.
      • Recurrent Edge: t1t-1 시점에 발생한 정보를 tt 시점으로 전달하여 이전 정보를 기억한다.
    • 가중치 행렬 U,V,WU, V, W와 bias는 모든 시점에 대해 공유된다.
  • RNN의 종류
    • Many-to-one RNN
      • 예) 입력 문장을 label로 분류하는 감정 분석
    • Many-to-many RNN
      • 예) 기계번역
  • RNN에서 Forward Pass
    1. 은닉층 값을 Update 한다.
      • tt 시점의 은닉층 값은 직전 시점 은닉층 값과 현재 시점의 입력값의 영향을 받는다.
    2. 출력층 값을 계산한다.
      • 현재 시점의 은닉층 값에 행렬곱을 수행한다.
  • 순차 데이터의 특성
    1. 계산 과정에서 순서 의존성이 생기므로 단어가 반대로 입력되면 결과가 달라진다.
    2. 단어의 개수만큼 RNN을 펼쳐 가변성 문제를 해결할 수 있다.
    3. tt 시점의 연산은 모든 단어의 영향을 받으므로 문맥 의존성을 파악할 수 있다.
  • 가중치 행렬이 모든 시점에서 공유되므로 Gradient는 모든 시점에서의 편미분 값을 모두 더해 계산한다.

Variants of RNN

  • RNN의 한계
    1. 순차 데이터의 왼쪽에서 오른쪽으로(단방향) 정보가 입력된다.
      • 미래 시점의 입력에 힌트가 있는 경우도 많다.
      • 양방향 RNN은 반대 방향으로 정보가 흐르는 은닉층 gg가 추가되어 두 은닉층 결과로 최종 출력을 계산한다.
      • Bi-directional RNN은 기계 번역에 많이 활용된다.
    2. 데이터 길이가 길 경우 장기 의존성을 파악하기 어렵다.
      • 학습 과정에서도 Gradient vanishing이 발생한다.
      • LSTM은 매 시점마다 입력 게이트, 출력 게이트를 개폐하여 장기 의존성을 파악한다.
    3. Transformer
      • 단어를 순차적으로 입력받지 않고 문장 전체를 한번에 입력으로 받아 장기 의존성 문제를 해결한다.
      • Attention mechanism: 문장을 구성하는 각 단어 간 상관관계를 모델링한다.
      • 문맥 정보로 강화된 feature 기반으로 최종 예측을 수행한다.
profile
Hi, there 👋

0개의 댓글

관련 채용 정보