[딥러닝] 순환신경망(순차 데이터)

Peter·2021년 7월 8일
0

딥러닝

목록 보기
36/47

순차 데이터

  • 진행 방향을 담은 데이터
  • 데이터들이 시간 순서대로 기록돼있음

순차 데이터의 일반적 표기

  • 데이터 벡터 요소가 벡터
  • '온라인 숫자'의 요소는 1차원, '심전도'의 요소는 3차원
  • 심전도 요소는 시간당 3개의 데이터가 생성되므로 3차원

  • 훈련집합은 위와 같이 표현
  • x = "Aprill is the cruelest month"
  • y = "사월은 가장 잔인한 달"

순차 데이터인 문자열의 표현 방법

사전(dictionary or term)을 사용하여 표현

  • 사람이 많이 사용하는 단어를 키값으로 구축된 딕셔너리
  • 주어진 데이터를 분석해 데이터에 등장한 단어 추출해 구축
  • 결국 단어의 수만큼의 차원을 만들어둠(원핫코드랑 비슷한느낌)
  • 사전을 사용한 데이터 표현 방법
    - 단어가방
    - 원핫코드
    - 단어 임베딩

단어 가방

  • 데이터에 등장하는 단어 각각의 빈도수를 세어 m차원의 벡터로 표현 m은 차원의 크기
  • 단순 빈도수를 계산하기 때문에 문장의 시간성에 담긴 정보를 파악할 수 없음
  • 한마디로 시간성 정보가 사라짐

원핫 코드

  • 한 단어를 표현하기 위해 m차원 벡터를 사용해야함(비효율)
  • 단어 간의 유사성 측정 불가

단어 임베딩

  • 단어 사이에 상호작용을 분석, 새로운 공간으로 변환
  • 변환 과정은 학습이 말뭉치를 훈련집합으로 사용해 알아냄
  • 어느 한 단어와 유독 같이 등장하는 빈도가 잦은 단어를 관련 단어라고 하는 개념?

순차 데이터의 특성

특징이 나타나는 순서가 중요

  • 대표적으로 "아버지가 방에 들어가신다."를 "아버지 가방에 들어가신다."로 바꾸면 의미가 크게 훼손
  • 비순차 데이터에서는 순서를 바꿔도 무방

샘플마다 길이가 다름

  • 입력 차원이 샘플마다 다름
  • 순환 신경망은 은닉층에 순환 연결을 부여하여 가변 길이 수용

문맥 의존성

  • 비순차 데이터는 공분산이 특징 사이의 의존성을 나타냄
  • 순차 데이터에서는 공분산은 의미 없고, 대신 문맥 의존성이 중요함
    - "그녀는 점심때가 다 되어서야 ... 점심을 먹었는데, 철수는 ..."에서 "그녀는"과 "먹었는데"는 강한 문맥 의존성을 가짐
    - 특히 이 경우 둘 사이의 간격이 크므로 장기 의존성이라 부름 <-LSTM으로 처리
profile
컴퓨터가 좋아

0개의 댓글