본문 바로가기

데이터사이언스/ML & DL

[딥러닝] RNN 순환신경망과 LSTM

출처 : AIT-2


시작에 앞서..

 

PyTorch로 시작하는 딥러닝 입문

이 책에서도 RNN, LSTM, GRU 등의 순환신경망에 대해 설명을 아주 자새히.. 그리고 굉장히 공학적으로(?) 설명하고 있다.

심화학습을 원한다면 아래의 책 정독 필쑤🙌🏻

https://wikidocs.net/60762

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

또는 이 블로그 글에서도 RNN, LSTM, GRU에 대해 도식과 함께 잘 설명하고 있으니 참고.

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

 

Understanding LSTM Networks -- colah's blog

Posted on August 27, 2015 Humans don’t start their thinking from scratch every second. As you read this essay, you understand each word based on your understanding of previous words. You don’t throw everything away and start thinking

colah.github.io

 


본론

RNN (Recurrent Neural Networks 순환신경망) 

인공신경망의 한 종류로, 유닛간의 연결이 순환적 구조를 갖는 특징을 갖고 있다. 이러한 구조는 시변적(시간에 따라 변하는) 동적 특징을 모델링 할 수 있도록 신경망 내부에 상태를 저장할 수 있게 해준다.

https://ko.wikipedia.org/wiki/%EC%88%9C%ED%99%98_%EC%8B%A0%EA%B2%BD%EB%A7%9D

 

순환 신경망 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

 

 

RNN의 작동 원리

RNN의 경우 학습했던 데이터를 그 다음 순서에 정답데이터로 사용해 (누적 학습의 개념) 학습을 이어간다. 그래서 시계열 + 동적인 특성을 갖는 데이터에게 적합하다. 보통 최적화 함수로는 확률(probability)여야 하므로 'Tangent Hyperbolic', 'Sigmoid'를 주로 사용한다.

 

 

 

RNN 문제점

다음과 같이 곰을 판독하기 전에 나무와 다람쥐 데이터가 들어왔다고 가정하자. 이 두 가지 데이터로는 새로운 이미지가 개인지 늑대인지 (다음 버전에 늑대를 개와 판별하기 때문에) 알 수 없다. 명확히 나무나 다람쥐는 둘 중에 그 어떤 것과도 비슷하지 않기 때문에, 분류 결과에 늑대나 개일 확률 데이터는 발생하지 않는다.

 

이렇게 상관 없는 데이터가 인풋으로 들어온 이후, 숲에 있는 동물에 대한 이 학습모델은 다시 역전파(Backpropagation) 과정을 통해 처음 데이터로 돌아간다. (So the information about being in the forest comes all the way back from the bear.)

 

설상가상으로, 매 데이터를 지날때 마다 시그모이드 함수를 지나면 학습한 내용은 점점 왜곡되는 경향이 있다. 신경망 학습과정에서 역전파 를 사용해 다시 처음 학습포인트인 곰으로 돌아가면 "Vanishing Gradients" 현상이 발생한다.

 

RNN은 이러한 학습 특성 상 단기 메모리를 가지고 학습하므로 Vanishing 현상이 발생할 수 밖에 없고, 그래서 LSTM (Long Short Term Memory) 방식이 대체안으로 등장한다.

 

 

 


 

 

LSTM (Long Short Term Memory)

딥러닝 분야에서 사용되는 RNN 아키텍처다. 표준의 Feed-Forward 신경망과 달리 LSTM은 피드백연결을 가지고 있다. 장기 메모리와 단기 메모리에 들어갈 정보를 나눠 학습한다.

https://en.wikipedia.org/wiki/Long_short-term_memory

 

Long short-term memory - Wikipedia

The Long Short-Term Memory (LSTM) cell can process data sequentially and keep its hidden state through time. Long short-term memory (LSTM) is an artificial recurrent neural network (RNN) architecture[1] used in the field of deep learning. Unlike standard f

en.wikipedia.org

 

 

기존의 RNN은 단기 메모리만을 가지고 recurrently 학습을 했다면, LSTM은 단기 메모리와 장기 메모리를 나눠 학습 후, 두 메모리를 병합해 이벤트 확률을 예측한다. 그래서 과거의 정보를 훨씬 잘 반영한다는 장점이 있다.

 

 

 

LSTM의 작동방식 

LSTM은 본격적인 연산 전에 장기 / 단기 정보를 담은 메모리를 분류하고, 이 메모리와 이벤트를 기반으로 각각 Long term memory, Short term memory에 적합한 내용을 따로따로 학습시킨다.  아래의 그림에서 더욱 쉽게 이해할 수 있다. 

 

 

LSTM Gates

LSTM 모델 내에는 4가지 게이트가 존재한다.

 

1. Forget Gate : 장기메모리에서 학습에 크게 고려하지 않아도 될 정보를 삭제(forget) 한다.

2. Learn Gate : 단기메모리와 이벤트가 함께 들어가 최근에 학습한 정보 반영 + 불필요 정보 삭제

3. Remember Gate : 1,2 단계를 거친 메모리들과 이벤트를 모아서 장기메모리가 기억하도록 만든다.

4, Use Gate : 1,2의 메모리를 사용해 어떤 정보를 사용 + 과거에 알고 있던 정보 + 지금 배운 정보를 조합해 예측결과를 도출한다. 이때 예측결과물은 새로운 단기 메모리가 된다.

 

Gates에 대한 자세한 설명은 아래 게시물에 더 자세히 게시했다. 참고 바람!

https://pleasurehwang.tistory.com/20

 

[딥러닝] LSTM의 4가지 Gate

LSTM의 복습 : 여러 노드를 가진 LSTM 여러 노드를 가진 LSTM 실제 LSTM 모델은 이러한 과정을 거치는 노드가 여러 개 연결 되어 있는 형태를 가진다. 참고 : LTM = Long Term Memory , STM = Short Term Memory..

pleasurehwang.tistory.com

 

 


 

GRU (Gated Recurrent Unit)

Forget Gate + Learn Gate 를 합친 Update Gate와 Update Gate의 결과물과,

Working Memory를 결합하는 Combine Gate로 이루어진 모델이다.

 

이 모델은 오직 하나의 워킹 메모리만 입출력으로 받으며, 앞서 본 LSTM보다 훨씬 간단한 구조를 갖고 있다.

출처 http://colah.github.io/posts/2015-08-Understanding-LSTMs/

추후 이 부분은 여러 자료 조사를 통해 정리. 

https://blog.naver.com/winddori2002/221992543837

 

 

 

Peephole Connections

기존 Forget Gate의 구조도. 여기서 STM + Events를 충분히 반영해서 ft를 구했다.

반면 LTM은 Forget Factor가 곱해지면서 불필요한 의미가 삭제되는데, 이 과정에서 LTM에 있는 정보가 과소 반영되는 경향이 있다. 왜냐하면 ft를 도출하는 데 하나도 반영되지 않은데다, 이 과정을 통해 forgotten되기 때문이다.

 

 

그래서 ft를 도출할 때 LTM을 신경망이 반영할 수 있도록 디자인 할 수 있는데, 이를 "Peephole Connection" 이라 부른다.

LTM은 Peephole Connection을 통해 더 많은 학습과정 결정에 access 할 수 있다.

모든 Forget gate (with Sigmoid)에 Peephole Connection 을 반영하면, LTM의 정보를 더 많이 반영한 학습이 가능하다.