728x90

- RNN

 

RNN 기본동작도

※바이어스(bias) : 통계적 추정결과가 체계적으로 한 쪽으로 치우치는 경향을 보임으로써 발생하는 오차

 

RNN의 경우 기존 뉴럴네트워크의 기존 layer의 parameter값들은 독립적으로 존재하였고 그것을 해결하기 위해 RNN이라는  모델이 제안되었습니다.

 

RNN의 구조는 tanh(하이퍼블릭 탄젠트)로 게이트가 이루어져 있고, 순차적인 데이터를 학습하며 각 layer의 parameter들을 공유합니다.

 

즉, 위의 수학식대로 학습데이터들이 학습을 진행하게되며 주가,여객기의 탑승 승객 등등 여러 분야의 예측에 사용이 되고 있습니다.

 

RNN의 장점

 

1. 순서, 시간등을 모델링 할때 특정 feature(특징)값을 잡아내는데 강점을 보이게 됩니다.

2. input과 output의 길이를 다양하게 적용이 가능합니다.

 

RNN의 단점

 

1. 입력 데이터와 출력 데이터 사이의 길이(간격)이 멀어질수록 연관 관계가 줄어드는 장기의존성의 문제가 있습니다.

 

RNN의 장기 의존성 설명사진

 

- LSTM

 

LSTM의 경우 RNN의 장기의존성 문제를 셀스테이트를 추가해서 해결한 모델이며, 모델의 구성도는 밑에 이미지와 같습니다.

 

LSTM구성도

총 4개의 게이트로 이루어져 있고, 각각의 게이트들은 맡은 업무에 대해서 수행을 합니다.

1. cellstate

 

가장먼저 셀스테이트의 경우는 이전셀에 사용되어진 정보를 합과 곱연산을 통해 정보를 저장하는 역할을 합니다. 위의 이미지에서

Ct-1이 셀스테이트입니다.

 

2. Input gate layer

 

sigmoid layer가 새로운 정보 중에 어떤 것을 cell state에 담을 것인지를 결정하는 게이트이며,  tanh layer에서 새로운 데이터의 후보 값을 만들어내고, cell layer에 합칠 준비를 합니다.

 

[Input gate]

 

3. Forget gate layer

 

ht-1 과 xt를 입력 받아서 sigmoid함수를 통해값이 1이면 값을 유지하고, 0이면 값을 버리고, 이전 cell state에서 forget gate 출력 값을 곱해서 cell state를 update 합니다. 

그 후 input gate의 출력 값을 곱하여 cellstate에 더합니다.

 

[Forget gate]

 

4. Output gate layer

 

어떤 값을 출력할지를 결정하는 게이트이며, cell state의 어떤 부분을 출력할지 sigmoid layer에서 정합니다.

cell state를 tanh 하여 나온 -1과 1 사이의 값을 sigmoid 출력 값과 곱하여 최종 출력 값을 연산합니다.

 

[Output gate]

 

여기까지가 LSTM의 동작원리였고, LSTM의 장단점을 살펴보면

 

장점 

 

1. 순서, 시간등을 모델링 할때 feature값을 잡아내는데 강점을 보임      

2. input과 output의 길이를 다양하게 적용 가능      

3. RNN의 문제였던 장기의존성 문제를 cell state라는 레이어가 있어서 해결가능

 

단점

 

1. 메모리가 덮어씌워질 가능성이 있다.      

2. 다른 RNN계열보다 연산속도가 느리다.

 

- GRU

 

GRU는 LSTM과 비슷한 역할을 하지만, 더 간단한 구조로 이루어져 있어서 계산상으로 효율적입니다.

기존의 LSTM에서 사용되는 Cell state 계산(은닉 상태 업데이트)을 줄였습니다.

특정 문제에서는 LSTM보다 더 딥러닝 작업에 효율이 높은 레이어입니다.

GRU 구성도

GRU의 경우도 LSTM과 마찬가지로 4가지의 연산 과정을 거치게 됩니다.

 

1. Reset Gate

 

과거의 데이터를 리셋시키는 것을 목적으로 하는 게이트이며, sigmoid연산을 통해 과거의 데이터를 얼마나 리셋시킬지에 대한 값인 r(0과 1 사이)을 출력합니다.

 

[Reset Gate]

 

2. Update Gate

 

과거와 현재의 정보 업데이트 비율을 결정하는 게이트이며, 출력 값 u는 현시점에서의 가져가야 할 데이터 양을 결정하는 값이고 

1-u는 잊어버려야 할 데이터 양입니다.

 

[Update Gate]

3. 데이터 선정

 

말 그대로 데이터를 선정하는 단계이며, 과거의 출력 값 데이터를 그대로 이용하지 않고, 리셋 데이터로 출력한 값을 이용하여 pointwise 곱 연산을 합니다.

연산 결과의 경우 tanh 함수를 한번 거치게 합니다.

 

[데이터 선정]

4. 출력 값 계산

 

u는 데이터 중 얼마나 가져갈 것 인지를 1-u는 얼마나 잊을 것 인지를 의미하며, tanh를 거친 h~는 현시점에서 리셋된 데이터를

의미하고 해당 데이터중 가져갈 것을 연산한다.

이전의 h에서 얼마나 잊을지를 연산하여 이것들을 모두 합한 값이 출력 값이 된다.

 

[출력 값 계산]

 

여기까지가 GRU의 동작과정이고 GRU의 장단점을 설명하면

 

장점 

 

1. 연산 속도가 빠르다      

2. 메모리가 LSTM처럼 덮여 씌여질 가능성이 없다   

 

단점      

 

1. 메모리와 결과값의 컨트롤이 불가능하다.

 

 

위에서 설명한 모델들은 RNN계열의 딥러닝이며, 현재 가장 대중적으로 많이 사용되고 있는 모델들입니다.

상황에 맞게 딥러닝 모델을 구현하실때 사용하시길 바랍니다.

 

참고 자료 및 블로그

 

ailab.chonbuk.ac.kr/ai_lecture2018_spring/res/4.RNN-%EA%B0%95%EC%9D%98%EC%9E%90%EB%A3%8C.pdf

davinci-ai.tistory.com/30

728x90

+ Recent posts