1. RNN(Recurrent Neural Network)
- 입력과 출력을 시퀀스 단위로 처리하는 모델이다.
- MLP와 차이점은 자기 자신으로 돌아오는 구조가 존재한다.

1.1 시퀀스 데이터(Sequence Data)
- 소리(음성), 문자열(문맥, 단어의 사용, 의도 등이 반영된), 주가(시간순서대로 반영된) 등의 데이터
- 시계열(time-series) 데이터는 시간 순서에 따라 나열된 데이터로 시퀀스 데이터에 속한다.
- 단, 과거 정보 또는 앞뒤 맥락 없이 미래를 예측하거나 문장을 완성하는 건 불가능하다.

1.2 시퀀스 데이터를 다루는 방법
- 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용할수있다

- 아래의 조건부확률은 과거의 모든 정보를 사용하지만 시퀀스 데이터를 분석할 때 모든 과거 정보들이 필요한 것은 아니다
$X_t \sim P(X_t|X_{t-1},...,X_1)$
- 시퀀스 데이터를 다루기 위해서 길이가 가변적인 데이터(빨간색 부분)를 다룰 수 있는 모델이 필요하다.

- 고정된 길이 $\tau $만큼의 시퀀스(예 : $X_t$ 부터 $X_{t-3}$ 까지)만 사용하는 경우 AR($\tau $)(Autoregessive Model) 자기 회귀 모델이라고 부른다.
- 또 다른 방법은 바로 이전 정보를 제외한 나머지 정보들을 $H_t$라는 잠재변수로 인코딩해서 활용하는 잠재 AR모델이다.
- 이러한 잠재변수를 신경망을 통해 반복해서 사용하여 시퀀스 데이터의 패턴을 학습하는 모델이 RNN이라고 하는 것이다.

1.3 RNN의 기본적인 모형
- 가장 기본적인 RNN 모형은 MLP와 유사하다.
( $W^{(1)},W^{(2)}$ 은 시퀀스와 관계없이 불변하는 행렬 )

- 그러나, 아래의 모델은 과거의 정보를 다룰 수 없다. 왜냐하면, t번째 데이터만 즉, 현재시점의 데이터만 다루기 때문이다.

- RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링한다.
(주의할 점은 가중치 행렬 $W_{X}^{(1)}, W_{H}^{(1)}, W^{(2)}$ 은 t에 따라 변하지 않는다. 변하는 것은 오로지 잠재변수 $H_t$ 이다.)

- RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산한다. 예를들면, $X_1 $ 부터 $X_t $ 까지 모든 예측이 이뤄진다음에 맨 마지막 시점의 Gradient에서 과거까지 Gradient가 흐른다. 이를 Backpropagation Through Time(BPTT)라 한다.

- BPTT를 통해 RNN의 가중치 행렬의 미분을 계산해보면 아래와 같이 미분의 곱으로 이루어진 항이 계산된다.
( $l(y_t,o_t)$ : 시간 t에서의 손실함수)

- 위 식에서 $\prod_{j=i+1}^{t}\partial h_{j-1} f(x_j,h_{j-1},w_h) $ 값이 1보다 크면 미분값이 커지고, 1보다 작으면 미분값이 작아질 확률이 높다. 이 항을 모든 시점에서 적용하게 되고 시퀀스 길이가 길어지면, RNN 학습이 불안정하기 쉽다. 즉, BPTT를 통한 역전파 알고리즘 계산이 불안정 해진다.
1.4 기울기 소실(gradient vanishing)의 해결책
gradient값이 0으로 줄어들면 문제가 발생할 수 있는 데, 앞선 미래시점에 gradient 값이 있고, 과거시점에 갈수록 0으로 줄어들면, 이전 시점에 대한 예측 모델 반영이 되지 않아 무시 될 수 있어 과거 정보가 유실된다고 한다.
1.4.1 Truncated BPTT
모든 시점에 대해서 계산하는 것이 아니라, 미래의 정보들에서 몇 개는 끊고, 오로지 과거의 정보들에 해당하는 블럭을 나눠서 역전파 연산을 하는 것

- 기울기 소실과 같은 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스를 처리하는 데 문제가 있다. 이를 해결하기 위해 등장한 RNN은 LSTM, GRU이다.
2. Sequential Model
- 시퀀스 데이터를 처리하는 모델
2.1 가장 기본적인 Sequential Model
입력이 들어왔을 때, 다음 입력에 대한 예측을 하는 모델이다.

2.2 Autogressive Model
- 과거의 고정된 데이터(past timespan)들만 활용하는 특징이 있다.

2.3 Markov Model
- first-order autoregressive Model
- Markov Property의 특징은 현재는 바로 전 과거에 의존(dependent)하는 것에 가정한다.
- 아래의 결과값과 같이 joint distribution하기 쉽다는 장점이 있다.

2.4 Latent autoregressive Model
- 과거의 정보를 고려할 수 없는 경우
- Hidden state가 과거의 정보를 요약(summary)해서 나타낸다.

2.5 RNN의 기본구조
이전의 입력이 현재의 입력으로 들어오고 그 현재의 입력은 과거의 입력이 되어 다음 현재의 입력으로 들어오는 데, 이를 Sequential하기 풀어낸것이다.

- Short-term dependencies
ex) 음성인식, 문장

- Long-term dependencies
- RNN 학습이 어려운 이유

h1,...,h4의 수식처럼 gradient값이 0으로 줄어들고(즉, 유효한 정보가 줄어들기 때문에), activation이 반복적으로 이뤄지기 때문에 학습 시 네트워크가 폭발(exploding)하기 때문에 학습이 제대로 이뤄지지 않는다.
2.6 LSTM(Long Short Term Memory)


- 핵심 : 중간에 흘러가는 cell state

- Forget Gate : 이전의 cell state에서 어떤 정보를 버릴 지 결정하는 게이트

- Input Gate : cell state에 어떤 정보를 올릴지 결정한다

- Update cell : cell state를 업데이트 함, 즉, 버릴 정보는 버리고, 입력할 정보를 올리는 것을 말한다.

- Output Gate : 어떤 값을 내보낼 지 결정하는 것

2.7 GRU(Gate Recurrent Unit)
- 게이트가 두개(Reset gate and Update gate)이다.
- cell state가 없고, hidden state가 없기 때문에 Output Gate가 없다.

3. Transformer
- RNN과 다르게 재귀적인 구조가 없고, attention이라 불리는 구조를 활용한 sequence transduction model
- Sequential 모델의 한계를 극복하기 위해 나온 모델

Transformer는 기계어 번역, 이미지 분류 등에 활용된다.
주어진 sequence를 다른 sequence를 바꾼다.

※ 중요한 점
1. n개의 단어가 어떻게 한번에 처리가 되는가?
2. Decoder와 Encoder가 주고 받는 정보가 무엇인가?
3. Decoder가 어떻게 Generation하는 지?
1번의 경우
입력값이 Encoder의 Self-Attention과 Feed Forward Neural Network를 거치고 두 번째, 세 번째,... 레이어를 거친다.

(Encoder와 Decoder에 있는 Self-Attention은 Transformer의 기반이 된다.)
예를 들면 NMT 문제를 푼다고 가정하자.
'BoostCamp AI Tech - U Stage' 카테고리의 다른 글
| BoostCamp AI Tech - Day16 (0) | 2021.02.15 |
|---|---|
| BoostCamp AI Tech - Day15 (0) | 2021.02.05 |
| BoostCamp AI Tech - Day13 (0) | 2021.02.04 |
| BoostCamp AI Tech - Day12 (0) | 2021.02.02 |
| BoostCamp AI Tech - Day11 (0) | 2021.02.01 |
댓글