X

RNN (Recurrent Neural Network)

I. 순환 신경망, RNN

가. RNN (Recurrent Neural Network)의 개념

  • 음성인식, 자연어 등 현재 입력 데이터와 과거 데이터를 고려하여 순차 데이터를 처리하는 순환 신경망 모델

나. RNN의 특징

과거-미래
영향 구조
– 루프 구조를 통해 과거의 데이터가 미래에 영향을 줄 수 있는 구조
경사 하강법 – 함수의 기울기로 최소값 탐색 알고리즘
– 2, 3차원 알고리즘 통해 지역 최소값 결정

II. RNN 구성도 및 구성요소

가. RNN의 구성도

나. RNN의 구성요소

구성요소 설명
시간 – 순차적으로 연결된 시간의 흐름
입력 – 해당 시간에 입력된 자극이나 입력 값
은닉 계층 – 시간 경과 후 재사용 위해 저장한 배열 정보
출력 – 이전 상태와 입력 값을 연산하여 나온 결과
  • 음성인식, 언어 모델링, 번역, 이미지 캡셔닝 등에 활용
  • 초기 RNN은 시간 순서상 갭이 커질수록, 과거와 현재 두 정보 연결이 어려우므로 장기 의존성 문제 해결 위한 LSTM 개발
  • BPTT(Back Propagation Through Time), LSTM(Long Shot Term Memory), GRU(Gate Recurrent Unit) 등 사용
  • BackPropagation Trough Time : 백프로퍼게이션을 자기자신으로 오는 weight에 대해서도 n번의 시간만큼 학습시키는 것.(MLP에서의 input weight는 당연히 학습하고, 추가로 타임에대해서도 누적시켜서 n번 에러를 전파함.)

 

III. RNN 대표 알고리즘, LSTM (Long Short Term Memory)

가. LSTM 구성도

나. LSTM의 구성요소

구분 설명
셀 스테이트 – 정보가 다음 단계로 전달되게하는 선형 체인
게이트 – 정보들이 선택적으로 들어가도록 하는 장치
시그모이드
레이어
– 각 요소가 얼마의 영향을 주게 되는지 결정
– 0: 결과에 영향X, 1: 미래 결과에 확실한 영향
  • 시그모이드 레이어가 게이트를 통해 셀 스테이트에 영향을 주어 과거의 데이터를 현재에 비추어 판단 가능
Categories: 알고리즘/AI
도리:

View Comments (3)

  • RNN이 현재 INPUT DATA를 처리할때 저장된 과거 DATA를 참고해서 경사 하강법을 이용하여 오류 범위를 줄이기 위한건지요? 다르게 얘기하면 현재 INPUT DATA 처리시 정확성을 높이기 위해 과거 DATA를 참고

    • RNN 기반 딥러닝 시 경사 하강법을 이용한 RTRL 방식 또는 오차 역전파를 이용한 BPTT 방식으로 각 노드의 가중치를 업데이트 하여 오차를 최소화 합니다. RNN은 말씀대로 정확성을 높이기 위해 과거 데이터를 참고하여 시계열 데이터(예를 들어 음성의 문맥 등) 처리에 활용합니다. RTRL 방식과 BPTT 방식은 따로 검색 등을 통해 확인해보시기 바래요^^