크크루쿠쿠

RNN(Recurrent Neural Network) 본문

DeepLearning/부스트캠프 AI Tech

RNN(Recurrent Neural Network)

JH_KIM 2021. 8. 12. 11:06

RNN (Recurrent Neural Networks)

 

Sequential Model

Sequential data -> 길이가 fixed 된 것이 아니라 dimension을 알 수가 없다 -> CNN, Fully Connected 사용할 수 없음.

- Naive sequence Model

고려해야 될 과거 정보가 증가함.

-> 가장 쉬운 방법으로는 Fix the past timespan

- Markov model (first-order autogressive model)

바로 전 과거 data에만 의존함.

-> 버려지는 정보가 많음

 

- Latent autoagressive model

 Output만 보면 이전 정보만 보는것 같지만 Hidden state에 과거 정보가 요약되어 있음.

 

Recurrent Neural Network 

-> 입력이 굉장히 많은 FC layer로 표현 할 수 있음.

 

- Short-term dependencies

가장 큰 단점.

먼 과거의 정보가 미래까지 살아 남기가 쉽지 않다.

ReLU 사용시 exploding gradient

 

- Vanilla RNN

LSTM

Long Short Term Memory -> 단점 해결

 

Previous cell state : Network 밖으로 출력X, t 까지 input된 t+1개의 data summary 해줌

- Core idea

cell state -> 컨베이어 벨트 생각하면 됨. 어떤 정보가 중요하고 아닌지 조작해서 넘겨줌.

 

Forget Gate : Decide which information to throw away. 시그모이드를 통과하기 떄문에 항상 0과 1 사이의 값.

그 값으로 어떤 정보를 버릴지 말지 결정함.

 

Input Gate : Decide which information to store in the cell state. 

 

 

 

 

 

input data를 무조건 넣는게 아님. 

it -> previous hidden cell state와 input으로 만듦 -> 어떤 정보를 올릴지?

Ct -> cell state의 후보 값들

이 두가지를 합쳐서 state를 update할 재료를 만듦

 

Update cell

 

Ouput Gate

어떤것을 밖으로 내보낼지

2

GRU

gate가 2개뿐임 -> reset gate, update gate

No cell state, only hidden state

hidden state가 곧 ouput임

 

똑같은 language model에 대해서 LSTM을 사용할 때보다 GRU가 더 성능이 좋은 경우가 보임.

Comments