데이터 전처리: 도구 및 기법 – Weak Supervision(Snorkel)
ㅁ 도구 및 기법
ㅇ 정의:
약한 감독(Weak Supervision)은 완전한 정답 레이블 없이 불완전하거나 노이즈가 있는 다양한 소스(휴리스틱 규칙, 외부 데이터베이스, 크라우드소싱 등)로부터 라벨을 생성하여 학습 데이터를 만드는 기법이며, Snorkel은 이를 자동화하고 통합하는 대표적인 오픈소스 프레임워크이다.
ㅇ 특징:
– 수작업 라벨링 비용을 절감하고 대규모 데이터셋을 빠르게 구축 가능
– 라벨링 함수(Labelling Function)를 통해 규칙, 모델 예측, 외부 리소스 등을 조합
– Snorkel은 다양한 소스로부터 생성된 라벨을 확률적으로 통합하여 노이즈를 줄임
– 라벨 품질이 원천 소스 품질과 다양성에 크게 의존
ㅇ 적합한 경우:
– 라벨링 비용이 매우 높거나 전문 지식이 필요한 경우
– 완벽한 라벨이 아닌 대략적인 라벨로도 모델 학습이 가능한 경우
– 데이터 양은 많지만 라벨이 적거나 없는 경우
ㅇ 시험 함정:
– Weak Supervision은 항상 라벨 품질이 높다고 오해하기 쉬움 (X)
– Snorkel은 라벨링을 완전히 자동화하여 사람 개입이 필요 없다고 함 (X)
– Weak Supervision은 반지도학습과 동일하다고 함 (X)
– 다양한 소스의 라벨을 결합해 노이즈를 줄일 수 있다 (O)
ㅇ 시험 대비 “패턴 보기” 예시:
– “Weak Supervision은 휴리스틱 규칙, 외부 지식 등을 활용해 라벨을 생성한다” (O)
– “Snorkel은 라벨링 함수로부터 생성된 라벨을 확률적으로 통합한다” (O)
– “Weak Supervision은 항상 정확한 라벨을 제공한다” (X)
– “Snorkel은 반지도학습의 한 종류로, 라벨 없이 학습한다” (X)
ㅁ 추가 학습 내용
Weak Supervision 주요 학습 정리
1. Weak Supervision 개념
– 완전한 정답 라벨이 아닌, 불완전·노이즈·부분적인 라벨을 사용하여 학습하는 방법
– 라벨링 비용 절감과 대규모 데이터 활용 가능
2. Snorkel의 핵심 구성 요소
– 라벨링 함수(Labelling Function): 규칙, 패턴, 외부 지식 등을 이용해 데이터에 라벨을 부여하는 함수
– 라벨 모델(Label Model): 여러 라벨링 함수의 출력을 통합하여 최종 라벨 확률을 추정하는 모델
– 데이터 증강과의 차이점: 데이터 증강은 입력 데이터를 변형하여 학습 데이터를 늘리는 것이고, Weak Supervision은 라벨 생성·보정에 초점
3. 유사 개념 비교 포인트
– Semi-supervised Learning: 일부 라벨 데이터와 대량의 비라벨 데이터를 함께 학습
– Self-training: 모델이 비라벨 데이터에 대해 예측한 라벨을 다시 학습에 사용
– Active Learning: 모델이 불확실성이 높은 데이터를 선택해 사람에게 라벨링 요청
– Weak Supervision: 다양한 약한 라벨 소스를 결합해 대규모 라벨 데이터 생성
4. Snorkel 동작 과정
(1) 라벨링 함수 작성
(2) 라벨 모델 학습
(3) 최종 데이터셋 생성 후 다운스트림 모델 학습에 사용
5. 라벨 품질 평가 지표
– 정밀도(Precision)
– 재현율(Recall)
– F1-score
– 노이즈 비율(Noise Rate)