RNN(순환신경망)

서효정·2022년 7월 22일
0

TIL

목록 보기
3/3
post-thumbnail

RNN(Recurrent Neural Network)

RNN은 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델로 유닛간의 연결이 순환적 구조를 갖는 특징을 가지고 있다.

RNN 등장배경

기존 모델의 한계점

  • 전부 은닉층에서 활성화 함수를 지난 값은 오직 출력층 방향으로만 향함(한 방향)
  • 시퀀스 데이터 처리 성능이 낮음
  • 가중치가 데이처의 처리되는 순서와 상관없이 업데이트 되어 이전 샘플을 기억하지 못함
  • 피드 포워드 신경망은 입력의 길이가 고정되어 있음

RNN의 기존 모델과의 차이점

  • 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보낸다
  • 다양한 길이의 입력 시퀀스를 처리할 수 있다
  • 자연어 처리에 대표적으로 사용되는 인공 신경망
  • 타임스텝: 입력 시퀀스의 길이(input_length)



RNN의 유형

  • One to one(SimpleRNN): 가장 기본적인 모델
  • One to many: 하나의 이미지를 문장으로 표현
  • Many to one: 단어 시퀀스에 대해서 하나의 출력을 하는 구조 ex. 감정분류, 주가등락을 통한 회사 파산 여부 분류
  • Many to many
    • 여러 개의 단어를 입력받아 여러 개의 단어로 구성된 문장을 명사, 동사, 형용사 등으로 구분 반환
    • 입력 시퀀스가 다른 시간 단계에서 비디오의 각 프레임의 기능 표현인 비디오 분류에도 사용



RNN의 용어

셀(cell): RNN의 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드(RNN의 반복 단위, 개별)
메모리셀(memory_cell): 이전의 값을 기억하는 일종의 메모리 역할을 수행하는 셀(RNNcell, 전체)
은닉상태(hidden_state): 은닉층의 메모리셀에서 나온 값이 출력층 방향 또는 다음 시점의 자신(다음 메모리셀)에게 보내는 상태


RNN의 역전파: BackPropagation Through Time (BPTT)

  • 모델에 맞는 역전파 방법으로 기울기(오차의 변화에 대한 가중치의 변화)를 찾아 성능을 높임, 경사하강법과 오차 역전파를 이용해 학습
  • RNN은 기존 신경망의 역전파롸 달리 타임 스텝별로 네트워크를 펼친 다음 역전파 알고리즘 사용
  • 타임스텝의 역방향으로 역전파를 통해 가중치 비율을 조정하여 오차 감소 진행
  • 오차 값들을 합한 값을 역전파함으로써 현재시간의 오차를 과거시간의 상태까지 역전파


RNN의 학습과정

  • 벡터화(Vectorization)
    입력값을 영어로, 출력값을 한국어로 번역할 때
    문자열 데이터를 벡터 형태 변환하여 입력

    • 매개변수
      • num_words : 단어 빈도에 따라 유지할 최대 단어 수입니다. 가장 일반적인 단어 만 유지됩니다.
      • filters : 각 요소가 텍스트에서 필터링될 문자인 문자열입니다. 기본값은 문자를 제외한 모든 구두점과 탭 및 줄 바꿈 '입니다.
      • lower : 부울. 텍스트를 소문자로 변환할지 여부입니다.
      • split : str. 단어 분할을 위한 구분 기호입니다.
      • char_level : True이면 모든 문자가 토큰으로 처리됩니다.
      • oov_token : 주어진 경우, 그것은 word_index에 추가되고 text_to_sequence 호출 중에 어휘 밖의 단어를 대체하는 데 사용됩니다.

    • 벡터화 과정
      1) Tokenizer 인스턴스를 생성
      2) fit_on_texts와 word_index를 사용하여 key value로 이루어진 딕셔너리를 생성
      3) texts_to_sequences를 이용하여 text 문장을 숫자로 이루어진 리스트로 변경
      4) pad_sequences를 이용하여 리스트의 길이를 통일화

  • 활성화함수
    입력값으로 영어를, 출력값으로 한국어를 번역할 때
    출력층의 활성함수로 'softmax' 사용하며 각 확률로 나타난 점수는 데이터가 해당 품사 중 하나에 속할 확률을 의미 (총합은 1)


RNN의 한계점

  • 기울기 소실/폭발 문제
    복잡한 연산으로 인한 기울기 문제 발생
    시간을 통한 역전파는 일반 역전파보다 훨씬 많은 곱셈과 연산 도입
    해결방법: Truncated-Backpropagation Through Time
  • 장기 의존성
    RNN은 비교적 짧은 시퀀스에 대해서만 효과를 보임
    시점이 길어질수록 앞의 정보가 뒤로 충분히 전달되지 못하는 현상
    해결방법: Long Short Term Memory Network(LSTM)
profile
Data Analyst

0개의 댓글