Data Science/AI

RNN, LSTM에 대해 알아보자 |

토마토. 2021. 9. 25. 18:40

참고 -

https://wikidocs.net/22886

https://pythonkim.tistory.com/57

 


index

 

RNN

RNN이란?

RNN task 종류

RNN의 작동 원리

RNN의 사용 예시

RNN의 단점

 

LSTM

RNN의 한계

LSTM의 해결 매커니즘

LSTM의 구조

LSTM의 변형 모델들


RNN

RNN이란?

Recurrent Neural Network

 

RNN은 sequence data를 처리하는 모델이다.

음성 인식, 자연어 처리 등은 딱 현재 단어만을 안다고 처리할 수 없으며, 앞뒤 문맥을 함께 고려해야 한다.

 

해당 세션에서 같이 다루었던 LSTM 또한 기본적으로 RNN에 속한다.

 

이전까지 배운 신경망은 Feed Forward Neural Network라고 한다.

Hidden layer에서 output layer방향으로만 향하기 때문이다.

RNN은 결과값을 output방향으로 보내면서, 다시 Hidden layer의 다음 계산으로도 보내는 특징을 가지고 있다.

 

 

RNN task 종류

one to many

: image captioning - one(image vector), many(sequence of words)

many to one

: sentiment classification - many(sequence of words), one(sentiment)

many to many

: machine translation - many(sequence of words), many(단어 순차 데이터) - sequence to sequence

many to many

: noun classification - many(sequence of words), many(classifier of each word)

 

 

RNN의 작동 원리

h_t를 만들 때, h_t-1의 정보도 만영해서 만든다.

h

y

loss function

RNN의 사용 예시

language model

RNN의 단점

long-term dependency

: 데이터가 너무 길면, 뒤로 갈 수록 앞쪽 데이터 입력을 까먹는다.

backward pass에서 gradient를 계산할 때 점점 작아진다. 이 현상을 'gradient vanishing'이라고 하고

이를 해결한 모델이 LSTM이다.

 

LSTM

RNN의 한계

LSTM의 해결 매커니즘

LSTM의 구조

LSTM의 변형 모델들