Recurrent Neural Network

CSH_tech·2023년 9월 6일
0

개요

RNN은 먼저 들어온 값의 가중치를 뒤에 들어온 값의 가중치에 더 함으로써 중요도를 누적시키는 순서에 따른 중요도와 단어 자체의 중요도를 통해 결과를 도출한다.
몇 개의 단어를 사용할 것인지 결정하는 것이 중요하다.

구조

절차

  • 텍스트 데이터 스칼라값으로 대체
  • 스칼라값을 벡터로 변환
  • RNN perceptron에 순차적으로 데이터 입력
  • Recurrent를 통해 순차 데이터 처리
  • 결과 도출

1.텍스트 데이터 스칼라값으로 대체

Tim is man => 1 2 3

2.스칼라값을 벡터로 변환

  • one-hot encoding
    Tim is man: [[1,0,0], [0,1,0], [0,0,1]]
    데이터의 수만큼 zero padding을 통해 값을 채워준다. 그러므로, 데이터가 많아지면 많아질수록 처리해야할 데이터의 양도 늘어난다.
  • word embedding
    Tim: [0.2,0.1,0.3,0.4,0.5]
    is: [0.3,0.1,0.3,0.4,0.5]
    man: [0.2,0.1,0.6,0.4,0.5]
    데이터의 크기를 결정하여 단어별로 고정된 크기의 실수 벡터로 변환한다.

3.순차적으로 데이터 처리

  • 데이터가 입력되면 가중합을 통해 hidden state을 출력한다. 이때, 활성화 함수는 hyperbolic tangent이므로 값은 -1 ~ 1로 고정되어 있다.
  • hidden state는 순환을 위해 다시 퍼셉트론에 입력됨과 동시에 다음 layer에 값을 전달한다.
  • 순환된 hidden state는 다음 데이터의 가중합을 계산할 때 같이 계산된다.

4.결과

hidden state는 다음 layer에 계속 전달되지만 마지막 hidden state를 다음 layer에서 사용한다.

profile
개발 초보자

0개의 댓글