본문 바로가기
Machine-Learning/Basic

[ML] Semi-Supervised Learning (Active Learning)

by AteN 2023. 1. 29.

Active Learning

Active Learning은 적은 수의 Labeled Data를 활용하여 Unlabeled Data에 대한 Annotation을 수행, 해당 데이터를 재 학습하는 과정을 통해 모델의 성능을 높이는 방법 중 하나이다

이때, Annotation 할 데이터를 무작위로 추출하지 않고, 적절한 Query 전략을 통해 현 모델 기준 불확실성이 높은 데이터를 우선적으로 Annotator에게 Labeling 해줄 것을 요청하는 것이 Active Learning의 핵심이다

 

학습 데이터를 확보하는 과정은 데이터를 수집하는 거소가 수집한 데이터에 유의미한 라벨을 붙이는 것으로 구성되어 있다. 일반적으로 유의미한 라벨을 붙이는 것이 데이터를 수집하는 것에 비해 시간과 비용이 많이 든다

그렇기에 같은 수의 데이터에 라벨을 붙여서 학습할 때, 성능이 높게 나올 수 있도록 데이터를 선별한다면 효과적으로 딥러닝 모델을 학습할 수 있을 것이다.

 

Active Learning의 구조는 크게 4단계로 구성되어 있다

  1. 초기 학습 데이터를 이용해 딥러닝 모델을 학습
  2. 라벨이 되지 않은 데이터 중 모델에게 도움이 되는 데이터를 선별
  3. 선별한 데이터에 사람이 분류해 라벨을 표기
  4. 선별한 데이터를 기존 학습 데이터와 변합한 후, 딥러닝 모델 학습

 

 

Query Strategies for Active Learning

 Active Learning의 샘플링 전략에는 크게 4가지로 정의할 수 있으며 유용한 샘플링을 정의하는 기준은 접근 방식에 따라 다르다 

Heuristic Approach

: 확실하지 않는 예측 확률을 갖는 sample

Uncertianty sampling

: 초기 학습된 모델의 확싣도가 가장 낮은 데이터부터 물어보고, Decision Boundary 근처에 있는 애매한 데이터들을 Query를 통해 확인하고자 하는 방법

Least Confident

모델이 예측한 (각 클래스에 속할 확률) 중 Top1 확률이 가장 낮은 데이터부터 Query

Margin Sampling

모델이 예측한 (각 클래스에 속할 확률) 중 Top1, Top2 확률의 차이가 가장 적은 데이터 부터 Query

 

Entropy Sampling

모델이 예측한 (각 클래스에 속할 확률) 중 엔트로피(무질서)가 가장 큰 데이터로 부터 Query

scipy.stats.entropy - SciPy v1.9.2 Manual

 

scipy.stats.entropy — SciPy v1.10.1 Manual

[2] Thomas M. Cover and Joy A. Thomas. 2006. Elements of Information Theory (Wiley Series in Telecommunications and Signal Processing). Wiley-Interscience, USA.

docs.scipy.org

Ensembel Approach

: 여러 모델이 서로 다르게 예측하는 어려운 sample

Query-By-Committee

C개의 Committee(=model)의 Disagreement정도가 높은 데이터부터 Query

Distribution Approach

: 다른 sample들을 대표하는 중심 sample

Core-set

Bayesian Approach

: Bayesain Neural Network의 Uncertainty가 큰 sample

BALD_Dropout(Bayesian Active Learning by Disagreement)

 

Expected Model Change

현재 모델을 가장 크게 변경시키는 데이터 부터 Query를 날림

기타 참고 sampling

 

▶️ Reference

댓글