순차 데이터 (Sequential Data)
- RNN으로 주로 처리
- 시간성 데이터
- time series data, 심전도 신호, 주식 시세, 문장, 음성 신호, ...
순차 데이터의 표현
- 필기체도 접선 벡터의 sequence로 간주 가능
- 일반적인 표기
- 텍스트 순차 데이터의 표현
- 단어를 각 벡터로 표현해 벡터 sequence로 저장
- 예) "April is the cruelest month"
- "April", "is", ... 처럼 하나의 단어를 벡터로 저장
- 사전을 사용하여 표현
- 단어들을 벡터로 표기하는 방법
- 단어 가방 (Bag of Words)
- 원핫 코드
- 존재하는 단어의 수와 동일한 차원의 벡터를 사용
- 단어에 지정된 하나의 element만 1 로 표기
- 차원의 저주 발생 가능성 큼
- 단어 임베딩
- 원핫 코드의 차원 문제 해결
- 저차원으로 단어 embedding 함
- 단어 가방 (Bag of Words)
- 단어를 m차원의 벡터에 저장
- 원핫 코드랑은 다름
- 원핫 코드는 단어 하나당 하나의 벡터
- BoW는 전체 하나의 벡터
- 정보 검색 (Information Retrieval)에 주로 사용됨
- 단점
- 순서를 고려하지 않기 때문에 시간성 정보가 사라짐
- 기계 학습에 부적합
- 원핫 코드
- 해당 단어의 위치만 1로 표시
- 단점
- 한 단어를 표현하는데 m차원 벡터를 사용
- 단어 간 유사도 측정 불가
- 단어 임베딩
- Word to Vector
- 단어 사이의 상호작용을 분석하여 새로운 저차원의 한점으로 (vector로) 변환하는 기법
- 벡터 간의 거리를 통해 단어 유사성 파악 가능
- 예) 'Cho2014b'는 =30000차원 → 620차원
순차 데이터의 특성
- 순서가 중요
- 길이가 다 다름
- 문맥 의존성 존재
- 비순차 데이터와 다르게 공분산 의미 없음
- 순서에서 나타나는 문맥 의존성 중요시
- 장기 의존성
- 단어 간의 순서에서 거리가 먼 두 단어에서 나타나는 의존성
- 잘 처리해야 순차 데이터도 잘 처리 됨
- RNN: 장기 의존성 처리 취약
- LSTM: 장기 의존성 처리 능숙
순환 신경망 (RNN)
- 순환 신경망 = RNN
- 시간 데이터, 순차 데이터를 효율적으로 처리하는 학습 모델
- 길면 장기 의존성 떨어짐
- 생성 모델로 활용하기도 함
구조