소소하지만 소소하지 않은 개발 공부/머신 러닝 교과서

[머신러닝교과서] 순차 데이터 모델링의 개념

still..epochs 2023. 1. 31. 16:37

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다.

* https://github.com/rickiepark/python-machine-learning-book-3rd-edition

 

GitHub - rickiepark/python-machine-learning-book-3rd-edition: <머신 러닝 교과서 3판>의 코드 저장소

<머신 러닝 교과서 3판>의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub.

github.com

 

 

16.1 순차 데이터 소개

16.1.1 순차 데이터 모델링: 순서를 고려한다

시퀀스 원소들은 특정 순서가 있으므로 상호 독립적이지 않다. 일반적으로 지도 학습을 위한 머신 러닝 알고리즘은 입력 데이터가 독립 동일 분포(Independent and Identically Distributed, IID)라고 가정한다. 즉, 훈련 샘플이 상호 독립적이고 같은 분포에 속한다는 의미이다. 상호 독립 가정에 기반한다는 점에서 모델에 전달되는 훈련 샘플의 순서는 관계가 없다. 

 

이런 예로 이전에 사용해 보았던 붓꽃 데이터셋이 있다. 붓꽃 데이터셋에서 각 꽃은 개별적으로 측정되었고 한 꽃의 측정값이 다른 꽃의 측정값에 영향을 미치지 않는다.

 

하지만 스퀀스를 다룰 때는 이런 가정이 유효하지 않다. 시퀀스의 정의가 순서를 고려하기 때문이다. 특정 주식의 가격을 예측하는 것이 이런 경우에 해당한다. 예를 들어 N개의 훈련 샘플을 가지고 있다면 각 훈련 샘플은 특정한 날의 이 주식 가격을 나타낸다. 다음 3일 동안의 주식 가격을 예측하는 작업이라면 훈련 샘플을 랜덤 순서로 사용하는 것이 아니라 날짜 순서대로 정렬된 이전 주식 가격을 고려하여 트렌드를 감지하는 것이 합리적이다.

 

 

16.1.3 시퀀스 모델의 종류

시퀀스 모델링에는 언어 변역(예를 들어 영어 텍스트를 독어로 번역), 이미지 캡셔닝(captioning), 텍스트 생성과 같은 애플리케이션이 많다. 하지만 적절한 구조와 방법을 찾으려면 여러 종류의 시퀀스 모델링 작업 사이의 차이점을 이해하고 구별할 수 있어야 한다. 

  • 다대일(many-to-one): 입력 데이터가 시퀀스이지만 출력은 시퀀스가 아니고 고정 크기의 벡터나 스칼라이다. 예를 들어 감성 분석에서 입력은 텍스트(예를 들어 영화 리뷰)이고 출력은 클래스 레이블(예를 들어 리뷰어가 영화를 좋아하는 지를 나타내는 레이블)이다.
  • 일대다(one-to-many): 입력 데이터가 시퀀스가 아니라 일반적인 형태이고 출력은 시퀀스이다. 이런 종류의 예로는 이미지 캡셔닝이 있다. 입력이 이미지이고 출력은 이미지 내용을 요약한 영어 문장이다.
  • 다대다(many-to-many): 입력과 출력 배열이 모두 시퀀스이다. 이런 종류는 입력과 출력이 동기적인지에 따라 더 나눌 수 있다. 동기적인 다대다 모델링 작업의 예는 각 프레임을 레이블링하는 비디오 분류이다. 지연이 있는 다대다 모델의 예는 한 언어에서 다른 언어로 번역하는 작업이다. 예를 들어 독일어로 번역하기 전에 전체 영어 문장을 읽어 처리한다.