공부 내용
- Sequential Model
- Recurrent Neural Network
- Long Short Term Memory
Sequential Model
- Sequential Data를 처리하는 모델
- sequential Data는 길이(차원)를 알 수 없으므로 FC layer나 Cnn을 사용할 수 없음
-> 입력의 길이와 상관없이 동작할 수 있는 모델 구현 필요
Naive sequence model
- 기본적인 sequential model
- 입력이 들어왔을 때 다음 번 입력에 대한 예측을 함
- t시점에서는 이전 시점들의 입력을 고려(1부터 t-1까지)
-> 고려해야 할 과거의 정보량(The number of inputs varies) 점점 늘어남
Autoregressive model
- past timespan r을 고정하여 t 시점에서 과거의 입력 r개만 고려함
-> 훨씬 계산이 쉬워짐
Markov model(first-order autoregressive model)
- 현재는 바로 전 과거에만 dependent하다고 가정
-> 많은 정보를 버릴 수 밖에 없는 단점
- joint distribution을 표현하기 쉽다는 장점을 가짐
Latent autoregressive model
- 중간에 hidden state가 들어감
-> hidden state가 과거의 정보를 요약
- 다음번 state는 이전 hidden state 하나에 dependent
Recurrent Neural Network
- Sequential Model의 방법론을 이용하여 구현한 Neural Network
- 자기 자신으로 돌아오는 순환 구조 존재
-> 입력 xt 뿐만 아니라 이전 cell state에도 dependent
- 시간 순서대로 풀어서 그릴 수 있다.
-> 입력이 많은 fc layer처럼 표현된다.
Short vs Long term dependencies
- RNN은 과거의 정보들을 계속해서 취합한다.
- 거리가 가까운 과거의 정보는 그래도 고려가 잘 되는 편
- 거리가 먼 과거의 정보는 무시되는 경향이 있음(RNN의 단점)
- Long term dependencies 문제를 해결하기 위해 LSTM 등장
Vanishing / exploding gradient
- RNN은 계속 중첩되는 구조를 가진다.
- 계속해서 똑같은 Weight를 곱하고 nonlinear를 통과시켜야 한다.
- sigmoid 사용 시 : gradient vanishing 문제 발생 -> 값이 의미가 없어짐
- relu 사용 시 : gradient exploding 문제 발생 -> 값이 폭발적으로 증가
Long Short Term Memory
Core Idea
- 중간에 흘러가는 Cell state가 핵심 아이디어
-> 유용한 정보와 유용하지 않은 정보를 조작해서 다음으로 넘김
기본 구조
- Input Xt
- Output (hidden state) ht
- cell state
- hidden state
- forget gate
- input gate
- update cell
- output gate
Forget Gate
- 어떤 정보를 버릴 지 결정하는 gate
- sigmoid activation function 사용 (0 ~ 1 사이 값)
- ft는 어떤 정보를 살리고 버릴 지 결정
- cell state에 어떤 정보를 저장할 지 말지 결정하는 gate
- it : cell state에 올리고자 하는 정보
- Ct~ : cell state에 올릴 정보 후보
Update Cell
- Ct와 Ct~를 잘 섞어서 cell state 업데이트
-> 버릴 정보는 버리고 올릴 정보는 올린다.
- ft * Ct−1 활용 버릴 정보는 버림
- it와 Ct~ 활용 올릴 정보를 올림
Output Gate
- updated cell state 조작해서 어떤 값을 밖으로 내보낼지 결정하는 gate
-> ot 와 updated cell state Ct을 element-wise multiplication
Gated Recurrent Unit(GRU)
- reset gate와 update gate 두 gate로 이루어진 simpler architecture
- LSTM보다 성능 높은 경우 꽤 많이 있다
LSTM과 차이점
- output gate가 없음 -> 파라미터가 적어짐
- cell state 없이 hidden state만 존재