ROKO
[coursera] Sequence Models: Week 1 본문

Notation
- Let x is sequence, then
: data indexed with position in x : word in the training examples : length of sequence data x

dictionary에 자주 언급되는 단어들을 모아놓고 dictionary 크기만큼의 one-hot vector로 mapping하여 단어를 표현한다.
Sequence data를 standard network로 다루기 힘든 이유는 input, output이 데이터마다 다르기 때문이다. 가장 큰 표현을 벡터 크기로 고정하고 빈 공간은 padding하는 방법이 있지만 비효율적이다. 그리고 다른 문제점은 서로 다른 위치에서 학습한 데이터의 정보를 공유하지 않는다는 것이다. 1번째와 2번째에서만 사람의 이름이 언급된 데이터로 학습할 경우 그 이후에 언급되는 이름은 이름이라고 예측하기 어려울 것이다. 결론은 sequence data를 다루기 위한 neural architecture가 필요하다.
Recurrent Neural Network

Backpropagation Through Time

Examples of RNN architecture

many-to-many를 2 part로 나누어서 encoder-decoder 구조로 볼 수 있다.
Language model

Training set: large corpus of english text
Special token
- <eos>: end of sentence token
- <unk>: unknown token (not in vocabulary)
Sampling a sequence from a trained RNN
<unk> 토큰이 생성되는게 싫다면 추론시 <unk> 토큰을 rejection하고 resampling하면 된다.
문장 생성시 초기값으로 영벡터를 넣어주면 학습된 분포에서 가장 높은 확률값이 softmax 를 통해 나온다. 하지만 이렇게 되면 계속 같은 문장만 생성하게 될 것이다. 그땐 그냥 첫번째 단어를 random selection을 통해 초기화 하면 해결된다.
Character-level language model
data의 길이가 길어져 word-level language model 보다 long range 정보를 학습하는데 어렵고 computational cost가 크다. 하드웨어가 발전하면서 일부 분야는 character-level 을 발전시키려는 노력도 있지만 현재는 character, word-level 둘 다 잘 쓰이지 않는다.
Vanishing Gradients with RNNs
Gradient exploding의 경우 gradient clipping으로 완화하면 되지만 gradient vanishing 의 경우는 clipping으로 해결할 수 없어 심각한 문제다. 이런 문제를 해결하기 위해 LSTM, GRU 와 같은 구조가 제안되었다.

GRU
= memory cell
LSTM
= memory cell
이후 LSTM의 Gate들 수식 안에
Bidirectional RNN (BRNN)

BRNN의 단점은 예측을 위해서 전체 입력 sequence를 받는 과정이 필요하다는 것이다. 따라서 real-time application으로 쓰기에는 부적절할 수 있지만 대부분의 작업에서 문장 전체를 이해하는 작업이 많기 때문에 무작정 나쁘다고 하기에도 어렵다.
Deep RNN

은닉층이 하나가 아닌 여러개인 RNN이다.
'Artificial Intelligence > Deep Learning' 카테고리의 다른 글
[coursera] Sequence Models: Week 3 (0) | 2024.07.09 |
---|---|
[coursera] Sequence Models: Week 2 (0) | 2024.07.09 |
[coursera] Convolutional Neural Networks: Week 4 (0) | 2024.07.03 |
[coursera] Convolutional Neural Networks: Week 3-2 (0) | 2024.07.03 |