티스토리 뷰

개발공부/🤖 DL & ML

[RNN] LSTM과 GRU

2022. 11. 10. 23:13

1️⃣  LSTM (Long Short Term Memory)

 

▶  LSTM 이란?

 

Long Short Term Memory  =  장단기 메모리   →   장기 의존성과 단기 의존성을 모두 기억할 수 있다는 의미

 

-  Vanilla RNN의 기울기 소실 문제를 해결하고자 등장했다.

-  새로 계산된 hidden state를 출력값으로도 사용한다.

-  Vanilla RNN과 내부 연산 방식만 다르고 입력값, 출력값은 Vanilla RNN처럼 사용할 수 있다.

(Vanilla RNN을 사용한 부분의 모델을 LSTM으로 바꿔서 사용 가능)

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

💡  RNN의 장기 의존성 문제

 

RNN은 시계열 데이터와 같은 순차 데이터의 경향성을 학습하는 데 훌륭한 성능을 제공한다.

하지만 모델 학습에 사용하는 데이터의 길이(sequence)가 길어질수록 학습 성능이 저하되는 문제가 있다.

 

이는 거리가 먼 입력값과 출력값 사이에 역전파 되는 기울기 값이 점점 0에 수렴하는 기울기 소실 문제 때문

→  길이가 긴 시계열 데이터에서 장기 의존성을 학습하는 데 약점

 

 

 

 

 

 

 

Cell State

 

:  기울기 소실 문제를 해결하기 위한 핵심 장치

 

-  장기적으로 기억할 정보를 조절한다.

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

 

게이트 (Gate)

 

3종류의 게이트가 4개의 FC Layer로 구성된다.

 

-  𝑊𝑓  :  망각 게이트 (Forget Gate)

-  𝑊𝑖 , 𝑊𝐶  :  입력 게이트 (Input Gate)

-  𝑊𝑜  :  출력 게이트 (Output Gate)

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

 

1)  망각 게이트 (Forget Gate)

 

기존 cell state에서 어떤 정보를 잊을지 결정하는 게이트

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

-  𝜎  :  sigmoid 함수

-  [ℎ𝑡−1, 𝑥𝑡 ]  :  ℎ𝑡−1벡터와 𝑥𝑡 벡터를 concatenate 하는 연산    ex)  [1 2 3] 과 [4 5 6] 을 concatenate하면 [1 2 3 4 5 6]

 

 

 

 

 

 

2)  입력 게이트 (Input Gate)

 

현재 입력 받은 정보에서 어떤 것을 cell state에 저장할지 결정

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

→  새로운 Cell State는 Forget Gate와 Input Gate의 정보를 통해 갱신된다.

 

 

 

-  * 연산자는 벡터의 각 원소별로 곱하는 연산 (Hadamard Product)    ex) [1 2 3] ∗ [4 5 6] = [4 10 18]

 

 

 

 

 

 

 

3)  출력 게이트 (Output Gate)

 

다음 hidden state와 출력값을 계산

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

-  새로 계산된 cell state(Ct)를 사용

 

 

 

 

 

 

 

 

 

2️⃣  GRU (Gated Recurrent Unit)

 

▶  GRU 란?

 

Gated Recurrent Unit  =  게이트를 가지는 순환 유닛

 

 

-  LSTM이 가지는 3개의 게이트를 2개로 간소화하고 Cell State를 없앴다.

→  파라미터 수가 감소하여 LSTM보다 빠른 학습 속도를 가짐

→  그럼에도 성능은 일반적으로 LSTM과 비슷한 수준

 

-  LSTM과 마찬가지로 새로 계산된 hidden state를 출력값으로도 사용한다.

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

 

 

GRU의 게이트

 

2종류의 게이트가 2개의 FC Layer로 구성된다.

 

-  𝑊𝑟  :  리셋 게이트 (Reset Gate)

-  𝑊𝑧  :  업데이트 게이트 (Update Gate)

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

1)  리셋 게이트 (Reset Gate)

 

기존 hidden state의 정보를 얼마나 초기화할지 결정하는 게이트

(LSTM의 망각 게이트와 비슷함)

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

→  Reset Gate의 결과를 통해 새로운 hidden state의 후보를 계산한다.

 

 

 

 𝑟𝑡 ∗ ℎ𝑡−1 부분이 점선을 통해 𝑊𝑖로 전달

 

 

 

 

 

 

2)  업데이트 게이트 (Update Gate)

 

기존 hidden state의 정보를 얼마나 사용할지 결정하는 게이트

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

 

 

→  Update Gate의 결과를 통해 새로운 hidden state를 계산한다.

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

-  Update Gate의 정보만이 새로운 hidden state 계산에 사용된다.

(Update Gate가 LSTM의 Forget Gate와 Input Gate를 하나로 합친 것과 유사한 역할)

 

 

 

 

 

 

 

 

3️⃣  RNN 모델 활용

 

▶  모델 학습을 위한 손실 함수 계산

 

 

이미지 출처 : 엘리스 CNN/RNN 4장 강의자료

 

 

 

주로 사용하는 손실 함수 𝑓

 

-  회귀 분석  :  Mean Squared Error (MSE)

-  분류 작업  :  Cross Entropy

 

 

 

 

 

 

▶  RNN 기반 모델 활용

 

RNN/LSTM/GRU 모델은 회귀 분석과 분류 작업에 모두 활용 가능

 

 

회귀 분석

:  각 시점의 출력값이 어느 정도일지 예측

 

ex)  주가 예측, 기온 예측, ...

 

 

 

 

 

분류 작업 

:  각 시점의 데이터가 어느 클래스일지 예측

 

ex)  문장에서 다음 단어 예측, 각 단어의 품사 예측, 상품 리뷰의 긍정/부정 분류, ...

 

 

 

 

 

 

 


 이 글은 엘리스의 AI트랙 5기 강의를 들으며 정리한 내용입니다.

반응형
프로필사진
개발자 삐롱히

프론트엔드 개발자 삐롱히의 개발 & 공부 기록 블로그