[모두를 위한 딥러닝2] RNN #1 basics

YSL·2021년 8월 23일
0

모두를 위한 딥러닝2

목록 보기
18/23

  • pytorch에서 RNN을 구현하기 위해서는
    rnn = torch.nn.RNN(input_size , hidden_size) : 셀 A를 선언하는 과정
    outputs, _status = rnn(input_data) : input X를 셀 A에 집어넣고 결과물 h를 반환받는 과정
    • input_data : 3개의 차원을 가지는 tensor로 정의되는데, batch_size, sequence_length, input_size를 필요로 함

  • input_data(batch_size, sequence_length, input_size)
    output_data(batch_size, sequence_length, hidden_size)

예시

단어 'Hello'를 RNN에 입력하는 과정

  • input size : 셀 A가 선언될 때 사용자가 미리 A에게 알려주어야 함
  • 1-hot encoding :
    단어를 구성하는 문자들을 사전식으로 나열 ->
    문자의 개수(중복제외)만큼의 크기로 벡터를 만들기 ->
    각각의 문자의 인덱스에 해당하는 자리를 1로 켜고 나머지는 0으로 끄기



    output_data로 몇 개의 차원을 가진 벡터를 출력받을지 결정해주는 과정
  • Hidden State : 셀 A에서 output으로 나가지 않고 숨겨진 상태로 다음번 input에 같이 전달되는 값
  • Q. hidden size를 결정하는 것이 어떻게 output size에 영향을 줄까?
    A. A에서 출력 직전에 똑같은 값이 2개의 가지로 갈라져 하나는 output/ 나머지 하나는 hidden state가 됨
    => output size = hidden state



  • Sequence Length : 입력하는 데이터의 개수

  • input_data로 sequence_length와 batch_size를 잘 입력하면, output_data에 별도로 사용자가 입력하지 않아도 모델이 자동으로 파악함


0개의 댓글

관련 채용 정보