728x90
순차 데이터 (Sequential Data)
- 데이터 집합 내의 객체들이 어떤 순서를 가지고 있는 데이터
- 데이터들의 순서에 따라 해당 데이터의 의미가 달라짐
- 가변적인 데이터의 길이를 가짐
- 순서가 달라질 경우 의미가 손상됨
Temporal Sequence
- 시간에 민감한 데이터
- 유효기간이나 트랜잭션 시간 등 시간 표시기와 함께 데이터가 저장됨
Time Series
- 일정한 시간차를 가진 데이터
- 시간 경과에 따라 변화하는 데이터로 타임스탬프와 함께 데이터가 저장됨
심층 신경망 & 순차 데이터
Input으로 음성 데이터가 들어왔을 때 입력되는 음성의 길이가 매번 다른 문제가 발생한다.
Output의 경우 변역 결과가 될 수 있는 문장이 많기 때문에 one hot vector로 예측하기 힘듦
-> 심층 신경망으로 순차 데이터를 처리하기 위해서는 input과 Output에 문제가 있음
RNN(Recurrent Neural Network)
- 유닛 간의 연결이 순환적 구조를 가짐
- 순차 데이터가 가지고 있는 데이터 순서의 의미와 가변성을 처리할 수 있음
ARCHITECTURE
- 기존의 DNN은 각 층마다 weight가 독립적으로 존재했으나, RNN은 순환 구조를 통해 파라미터를 모두 공유함
- parameter Sharing으로 인해 과거의 정보다 현재의 데이터에 영향을 줌
즉, 기존의 DNN은 가중치가 time step에 따라 별로도 존재했지만 RNN은 가중치가 time step마다 동일하다.
$$ h_{t}(=y) = tanh(W_{xh}*X_{t}+W_{hh}*h_(t-1)+b) $$
위의 수식으로 학습을 진행한다.
Memory system
순차데이터에 대해 올바른 답을 하기 위해서는 입력을 받을 때마다 내용을 기억해야 한다.
Memoryless system: 이전 입력을 기억하지 않는 시스템
종류
tasks에 맞게 적절한 타입을 고르면 된다.
Vanilla RNN은 입력이 길어질수록 Gradient Vanishing 문제가 발생하기 때문에 잘 사용하지 않고 이를 보완하기 위해 LSTM이 연구되었다.
https://heung-bae-lee.github.io/2020/01/12/deep_learning_08/
728x90
'NLP' 카테고리의 다른 글
[NLP] LSTM(Long Short-Term Memory) (0) | 2023.05.26 |
---|---|
[NLP] RNN 실습 - Numpy, keras 구현 (0) | 2023.05.26 |
[NLP] 자연어데이터 전처리, NLTK (0) | 2023.04.03 |
[NLP] 한국어 자연어처리 (0) | 2023.04.03 |
[NLP] 자연어처리의 이해 (0) | 2023.04.03 |