1 minute read

RNN의 한계

RNN은 이전 단계의 정보를 계속해서 전달받아 다음 단계의 출력에 영향을 미치도록 설계되었다. 하지만 여기서 처리해야 하는 데이터의 길이가 길어지면 문제가 생긴다.

데이터가 신경망의 여러 단계를 거쳐 흘러가는 동안, 이전에 있던 정보의 Gradient가 계속 곱해지면서 0에 가깝게 줄어든다. 즉 vanishing gradient 현상이다.

결과적으로 RNN은 바로 직전의 몇 단어(단기 정보)는 기억하지만, 문장 앞부분에 있던 정보(장기 정보)는 잊어버리게 된다. 예를들어 문장 맨 앞에 나온 주어가 단수인지 복수인지에 따라 문장 맨 뒤의 동사 문법을 맞춰야 할 때, RNN은 이것을 처리하지 못한다. (e.g. The cat (that lived in the small village with three other pets for ten long years) was sleeping. 에서 pets나 years에 솎아서 was 대신 were를 생성하는 오류가 생길 수 있다.)

LSTM 에서 Cell State

LSTM은 이런 장기 기억 문제를 해결하기 위해서 RNN의 Hidden State 외에 Cell State라는 새로운 정보 전달 경로를 도입했다.

Cell State는 정보가 전달되는 메인 경로 역할이다. 복잡한 연산을 거의 거치지 않고 전체 시퀀스를 따라 일직선으로 흘러가서 이전 단계의 중요한 정보가 손실되거나 변형되지 않고 먼 뒤쪽 단계까지 원형에 가깝게 전달될 수 있다.

LSTM 에서 Gate 구조

Lstm은 Cell State에 어떤 정보를 추가하거나 삭제할지 정밀하게 제어하기 위해 Gate라는 세 가지 구조를 사용한다.

Gate는 Sigmoidal 신경망 레이어와 곱셈 연산으로 구성되어 있으며, 0과 1 사이의 값을 출력하여 정보의 통과 비율(0~100%)을 결정한다.

  1. Forget Gate Forget Gete는 이전 Cell State의 정보 중 어떤 것으르 버릴지 결정한다.

작동 방식은 현재 단계의 입력값과 이전 단계의 Hidden State를 입력으로 받아 sigmoid 함수를 적용한다. 결과값이 0에 가까우면 그 정보는 완전히 삭제되고, 1에 가까우면 정보를 그대로 유지한다.

  1. Input Gate Input Gate는 현재 들어온 새로운 정보 중 어떤 것을 Cell State에 저장할지 결정한다.

작동 방식은 먼저 Sigmoid layer가 어떤 정보를 업데이트할지 선택하고, hanh layer가 현재 들어온 정보를 바탕으로 Cell State에 추가할 새로운 후보값들을 만든다. 이후 디 두값을 곱해서 저장할 새로운 정보의 양과 내용을 결정한 뒤 Forget Gate를 거친 기존 Cell State에 더해준다. 즉, Cell State가 최종 없데이트되는것이다.

  1. Output Gate Output Gate는 업데이트된 Cell State를 바탕으로, 현재 단계에서 외부로 출력할 값(다음 단계로 전달할 Hidden State)를 결정한다.

작동 방식은 먼저 현재 입력값과 이전 Hidden State를 바탕으로 Sigmoid layer를 통과시켜 출력할 부위를 결정한다. 이후 업데이트된 Cell State의 값을 -1과 1 사이로 정규화하기 위해 tanh 함수를 거치게 한다. 마지막으로 이 두 값을 곱해서 최종 Hidden State를 출력한다.

Tags:

Categories:

Updated:

Leave a comment