티스토리 뷰

RNN

DNN, CNN 등의 작동 방식을 보면, layer의 값들이 다음 layer를 지나면서 연산을 한다. 
하지만 RNN은 은닉층에서 나온 결과값이 다시 은닉층으로 돌아가 새로운 입력값과 연산을 수행하는 순환구조이다.

즉, DNN과 CNN은 은닉층에서 나온 결과값이 출력층 방향으로 이동하지만. RNN은 은닉층으로 되돌아가 순환한다는 점에서 큰 차이가 있다. 

 

RNN은 크게 2가지 단점을 가지고 있다.

단점1 (long term Dependency, 장기의존성) 
앞에 단어가 중요한 단어인데 문장이 길어졌을 때 앞에 단어를 고려하지 못하는 경우를 말한다. 즉, 단어간의 사이가 멀어질수록 잘 기억을 하지 못한다.

단점2 (vanishing gradient)
layer가 깊어질수록 vanishing gradient 문제가 일어날 확률이 높아진다. 

 

이러한 RNN의 문제를 해결하기 위해 LSTM 모델이 형성되었다.


LSTM 


LSTM은 3개의 gate와 1개의 cell state가 존재한다. (forget gate, input gate, cell state, output gate)

[STEP1] Forget gate
cell state에서 어떤 정보를 버릴 것인가를 결정하는 것이며, 이것은 "forget gate layer"의 시그모이드 층에서 결정한다.

[STEP2] Input gate
어떤 새로운 정보를 cell state에 저장/추가할 것인가하는 업데이트 정보를 결정
  1) "input gate layer" 이라고 불리는 시그모이드 층에서 어떤 값을 업데이트할지 결정
  2) tanh 층에서는 state에 추가될 수 있는 새로운 후보 값(벡터, 틸다C(t))를 생성

[STEP3] Cell state 업데이트 
이제 오래된 cell state C(t-1)을 새로운 cell stat인 C(t)로 업데이트할 차례이다.
전 단계에서 무엇을 할지(어떤것을 잊을지, 어떤것을 새롭게 업데이트할지)는 이미 결정하였으니 이제 실제로 업데이트 진행

[STEP4] Ouptut gate
 마지막으로 우리는 무엇을 출력(output)할지 결정한다. 
이 출력은 현재 cell state인 C(t)를 가지고 정하지만, 모든 C(t)를 사용하지 않고, 일부만 필터링하여 출력한다.
(1) 첫째로, 우리는 시그모이드 층을 써서 현재 cell state 중에서 어떤 부분만 출력을 할지를 정한다. -> o(t) 
(2) 둘째로, 우리는 cell state를 tanh 함수(-1과 1사이의 값을 출력)를 사용하고 위에서 구한 o(t)와 곱하여 최종적으로 출력할 부분을 결정한다.

이 구조를 통해 LSTM은 vanishing gradient 와 long term dependency 해결할 수 있다.

g(t)만 필요했던 RNN에 비해서 LSTM은 input 양을 조절하는 i(t), foget 양을 조절하는 f(t), output 양을 조절하는 o(t)까지 총 3개의 파라미터가 더 필요하다. 정리하면, LSTM은 RNN에 비하여 파라미터가 1개에서 4개로 늘어나 4배가 더 필요하게 되었다고 할 수 있다. 

참고 : https://hyen4110.tistory.com/25


GRU

 

GRU는 2개의 gate와 1개의 hidden state가 존재한다. (update gate, hidden state, reset gate)

 

1. GRU의 등장 배경
(1) LSTM은 RNN의 치명적인 한계점이었던, 'Long-term dependency' 문제를 해결하면서 긴 시퀀스를 가진 데이터에서도 좋은 성능을 내는 모델이 되었지만, 복잡한 구조 때문에 RNN에 비하여 파라미터가 많이 필요하게 되었다.


(2) 파라미터가 많아지는데 데이터가 충분하지 않은 경우, 오버피팅이 발생하는데, 이러한 단점을 개선하기 위하여 LSTM의 변형인 GRU가 등장하게 되었다. 

2. GRU란?
(1) LSTM의 forget gate와 input gate를 통합하여 하나의 'update gate'를 만든다. 

(2) Cell State와 Hidden State를 통합한다.  GRU는 LSTM에 비하여 파라미터수가 적기 때문에 연산 비용이 적게 들고, 

구조도 더 간단하지만, 성능에서도 LSTM과 비슷한 결과를 낸다. 


(3) output gate는 없어지고, reset gate로 대체한다.
  
(4)LSTM에서는 forget과 input이 서로 독립적이었으나, GRU에서는 전체 양이 정해져있어(=1), forget한 만큼 input하는 방식으로 제어한다. 이는 gate controller인 z(t)에 의해서 조절된다. z(t)가 1이면 forget gate가 열리고, 0이면 input gate가 열린다.

 

참고 : https://hyen4110.tistory.com/26

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함