티스토리 뷰


바닐라 RNN은 길이가 길어지면 맨 앞쪽 내용이 점점 희석되는 단점이 있다.
이런 단점을 해결하기 위해 나온 모델이 LSTM / GRU 모델이다.
두 모델의 성능은 비슷하다고 하지만, GRU가 LSTM보다 연산 수가 적다고 한다.

RNN의 원리는 직관적으로 이해가 가능하지만, LSTM 내부 구조는 직관적으로 복잡하기에 어떻게 사용하는지 정도만 알고 갔는데, 내부적으로 어떤 의미가 있는지 나름대로 해석하고 부여하여 정리해보고자 한다.

https://wikidocs.net/60762 해당 링크의 설명을 참고하여 나름대로 의미를 부여해 보겠다.

LSTM의 내부구조는 위의 그림과 같다. RNN과 다른점은 Cell state라는 것을 가지게 되는데, Cell state는 어떤 어떤 정보를 기억할 지 저장해 놓은 것이다.

그럼 내부의 단계를 하나씩 살펴보며 의미를 생각해보고자 한다.

첫번째로 입력 게이트이다. 식을 한번 살펴보자.

이처럼 '어느 강도로 새로운 상태 vecotr를 반영' 할 것인지 나타내는 것이다.
그 후 Cell state에 단순 더해주며 update를 수행한다. (즉, 현재 시점의 vetor를 반영)

두번째로 삭제 게이트를 보자.
해당 과정은 기존 Cell state에서 내용을 지우는 역할을 한다. 그럼 어떻게 해서 지우는 역할을 할까?

입력 게이트는 단순 합(+)을 통해 Cell state에 반영해줬지만, 삭제 게이트는 단순 곱(x)을 통해 기존 Cell state의 내용을 몇 % 정도 남기는 것이다.( 몇 % 남긴다는 뜻은, 어느정도 데이터를 삭제 했다고 볼 수 있다. 그래서 삭제 게이트)

마지막으로 출력 게이트이다. 즉, 다음 단계로 넘길 h vector를 뽑아주는 게이트이다.

맨 위의 식은 동일하다.
tanh를 사용하여 -1 ~ 1까지 Cell state의 vector별 강도를 표현하고,
update된 Cell state와 상태 vector을 단순 곱을 통해 새로운 h vector를 출력한다.

이렇게 LSTM은 삭제, 입력 , 출력 게이트 3단계를 통하여 필요한 정보를 오랫동안 남기기 위해 모델을 구성하였다.

GRU도 이와 유사하다. 즉, LSTM을 보든, GRU의 내부를 보든 x, + 의 의미만 잘 파악 하면 된다고 생각한다.

개인적으로 x은 삭제, +는 정보 삽입이라 생각하고 공부하면 납득갈만한 이야기를 만들 수 있다고 생각한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함