ML Data Lifecycle in Production - week4

제이린·2022년 1월 5일
0

[Coursera] MLOps

목록 보기
2/3

Advanced Labeling

Semi-supervised Learning

사람이 라벨링한 데이터의 lable 클래스가 feature space에서 클러스터링되거나 구조화되는 방식을 통해 유추하여 라벨링되지 않은 데이터와 결합

Label propagation - 그래프 기반

데이터 포인트의 subset에 레이블이 있음

  • 레이블이 있는 데이터와 없는 데이터의 유사성 또는 community 구조를 기반으로 레이블 할당
  • 이 외에도 다양한 기술이 있음

Active Learning

데이터가 불균형한 경우, 학습 단게에서 rare class(가장 도움이 되는 레이블)를 선택하는데에 유용. 표준 샘플링 방식이 정확도를 향상시키는데 도움이 안되면 사용할 수 있음. semi-도 active learning에 포함된다고 볼 수 있음

모델 학습에 가장 도움이 되는 라벨링된 example을 선택해서 실행하는 것

  • Margin Sampling : 경계에서 가장 가까운, 가장 불확실한 점 선택 → 새로 경계 그리기 → 그 다음으로 가장 불확실한 점 선택 → ...
  • Cluster-based sampling : feature space에서 다양한 클러스터링 방법을 사용해서 다양한 포인트 set 선택
  • Query-by-committe : 여러 모델을 훈련하고, 그 중 불일키가 가장 높은 data point를 선택
  • Region-based sampling : (new!) high level에서 input space를 구분되는 영역으로 나눠서, 그 영역들에서 active learning을 실행

Weak Supervision

하나 이상의 source의 정보를 이용해 레이블을 생성하는 방법

  • subject matter experts
    • 이런 경험적 방법론을 구성하는데에 가장 일반적으로 쓰임
    • coverage set & coverage set의 true label 확률 기대값(noise 있다? = correct일 확률이 있다)
  • 라벨링을 자동화할 수 있는 heuristics의 목록(??)
  • 결과 label은 우리가 아는 deterministic label보다 노이즈가 있음
  • 레이블이 지정되지 않은 데이터에 대해 하나 이상의 noisy 조건부 분포로 구성

    noisy source 각각의 관계성을 결정하기 위해, 각 supervision source의 신뢰성을 생성모델 학습을 통해 learn

방법
1) true label을 모르는 unlabeled data로 시작
2) weak supervision source를 몇 개 섞어 넣음
*노이즈가 있고 불완전한 자동화 라벨링을 적용하는 경험적인 방법들(???)

Snorkel

  1. 라벨링 안된 데이터 + 라벨링 functions = noise가 많은 라벨 생성
  2. 생성모델로 de-noise & 중요도를 가중치로 다른 labeling function에 부여
  3. de-noise된 라벨이 있는 discriminative model을 훈련

Data Augmentation

기존 데이터를 약갼 변형해서 많은 데이터를 생성, 모델의 성능을 개선하고 real example에 없는 새로운 valid example을 만들어내서 feature space의 coverage를 개선하는 것.

  • 하지만 잘못된 답을 배우거나 원치 않았던 노이즈가 발생할 수 있음
  • 과적합을 줄이고 모델의 일반화 능력을 높일 수 있음!
# ex
def augment(x, height, width, num_channels):
   x = tf.image.resize_with_crop_or_pad(x, height + 8, width + 8)
   x = tf.image.random_crop(x, [height, width, num_channels])
   x = tf.image.random_flip_left_right(x)
   return x

다른 고급 기술

  • 비지도 데이터 증강 ex. UDA, GAN을 이용한 semi-supervised learning
  • 정책 기반 데이터 증강 ex. AutoAugment

Preprocessing Different Data Types

Time series data

이벤트가 발생한 시간을 기록한 data point의 나열

  • 과거의 데이터를 이용하여 정확히 미래를 예측하고자 함
  • 데이터의 주기성과 계절성을 플롯으로 확인

윈도우 전략

ex. 6시간 과거 데이터로 1시간을 예측하려는 모델의 window

  • Sampling
    • 1시간에 6번씩 기록 but 큰 차이 없다? 한 시간에 1개씩만 대표적으로 뽑아서 진행

Sensors & Signals

Signal : 센서에 의해 수집된 실시간 데이터(timestamp) "시계열 데이터"
ex. accelerometer data - 스마트폰(센서)으로부터 수집된 사람 움직이는 시그널

Human Activity Recognition (HAR)

사람의 활동을 제대로 인식하기 위해서는 센서 데이터를 적절하게 segmentation해야 함(윈도우 전략과 비슷)

1. 분할

  • segment를 기반으로 feature extraction, classification, validation 등이 이루어짐
  • 길이는 context와 sampling rate에 따라 바뀌지만 주로 1~10초
  1. 변환
  • 모델링을 위해 변환이 필요함
  • Spectrograms : 신호를 주파수 & 시간 함수로 표현한 것. intertial data points 사이의 강도 차이를 잘 나타냄.
  • 정규화 & 인코딩, Multichannel, Fourier 변환 등

0개의 댓글