ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Data Sampling
    AI 2020. 12. 28. 01:41

    Data Sampling

    • 머신러닝에서 입력 데이터가 많아지면 처리 속도가 현저히 떨어지게 된다. 이 때문에 머신러닝의 처리 속도를 빠르게 하기 위해서 대표되는 데이터로 최적화한 후, 이 데이터를 활용하여 모델을 학습할 필요가 있다.
    • 머신러닝에서 데이터 샘플링은 데이터를 일부 정리해서 최적의 입력 데이터로 만드는 과정을 의미한다.
    • 딥러닝의 경우 일반적으로 데이터 샘플링은 데이터셋을 학습,검증,테스트 데이터셋으로 나누는 것을 의미한다.
    • 데이터 샘플링 방법
      • 확률적 샘플링 : 통계에 기반한 방법
        • 단숨 랜덤 샘플링 : 전체 데이터에서 무작위로 샘플을 추출하는 방법
        • Two-Stage Sampling : 전체 n개의 데이터를 m개의 하위 모집단으로 분리하는 방법
          • m개의 하위 모집단을 선택 --> m개의 하위 모집단 중에서 n개의 데이터를 단순 랜덤 샘플링
        • Stratified Sampling
          • 모집단을 여러 개의 층으로 구분 --> 각 층에서 n개씩 랜덤하게 데이터를 추출하는 방법
        • Cluster Sampling : 모집단이 여러 개의 군집으로 구성되어 있는 경우
          • 군집 중 하나 혹은 여러 개의 군집을 선정해서 선정된 군집의 전체 데이터를 사용하는 방법
          • ex) A대학교에서 학과와 학년을 정해서 해당 데이터를 모두 학습
        • Systematic Sampling : 1에서 n까지 모든 데이터에 번호를 매겨 일정 간격마다 하나씩 데이터 추출
          • 일반적으로 시계열 데이터의 대표값을 샘플링하는데 주로 사용한다.
      • 비확률적 샘플링 : 사람의 주관이 개입된 방법
        • Convenience Sampling : 데이터를 수집하기 좋은 시점이나 위치를 선정하여 샘플링
          • 표본이 모집단에 비해 대표성이 떨어진다는 단점이 있다. 따라서 통계적 추론 (표본을 통한 일반화) 이 불가능하다.
        • Purpose Sampling
          • 목적에 가장 적합한 대상으로 생각하는 대상을 선택하는 방법
          • 목적에 가장 적합한 대상은 주관적으로 선택하기 때문에 이 또한 대표성이 떨어진다.
        • Quota Sampling
          • 모집단을 세그먼트로 구분하여 각 세그먼트에 표본 수를 나타내는 쿼타를 할당하게 된다.
          • 세그먼트 내에서는 주제와 관련된 특성이 비슷해야하며 세그먼트 사이에는 서로 다른 모집단을 나누어줘야 한다.
          • 층별 샘플링과 방법은 유사하지만, 확률에 따라 선택하지 않고 주관적 판단에 의해 선택된다는 차이가 있다.

     

    Multi-Label Data Sampling

    • 일반적으로 데이터 샘플링을 위해서 Stratified Sampling을 많이 사용한다. 하지만 일반적인 Stratified Sampling은 Multi-Label 데이터의 특성을 고려하지 못한다.
    • Multi-label 데이터셋이라도 모든 클래스에 해당하는 데이터가 충분한 데이터셋에서는 Stratified Sampling을 사용하여 샘플링을 진행하여도 아무런 문제가 없다.
    • 하지만 클래스의 수가 많아지고 데이터의 수가 충분하지 않다면 Tail Label 들이 존재하게 된다. Tail Label은 아래 그림과 같이 클래스에 포함된 데이터셋의 수로 정렬하였을 때 데이터가 매우 적은 레이블들을 의미한다.
    • 일반적으로 클래스가 매우 많은 데이터셋에서는 대부분의 레이블이 이 Tail Label에 해당한다.

    • 그렇다면, 이러한 데이터를 일반적인 Stratified Sampling을 을 통해 어떻게 될까?
    • 아래의 그림은 Multi-label 데이터를 Stratified Sampling을 통해 학습, 테스트 데이터셋으로 샘플링했을 때 Tail Label의 데이터 분포를 나타낸다. 그림에서 보이는바와 같이 일부 클래스에서는 한 쪽으로 데이터가 몰리는 현상이 발생한다. 이는 실험에 있어 문제를 일으키지는 않는다.

     

    'AI' 카테고리의 다른 글

    Sequence To Sequence  (0) 2021.01.03
    Word Embedding  (0) 2020.12.29
    Recommend Algorithm  (0) 2020.12.23
    Neural Network architectures  (0) 2020.11.05
    Attention is all you need  (0) 2020.06.16

    댓글

Designed by Tistory.