[ Active Learning ]
Motivation of Active Learning
잠재적으로 뛰어난 기계를 두고, 사람이 모든 라벨링을 진행??
어떤 데이터가 필요한지를 기계가 판단 & 사람에게 라벨링을 부탁하는건?
\(\rightarrow\) Active Learning
1. Active Learning
기계가 라벨링이 필요한 데이터 중 자동적으로, 그리고 점진적으로 가장 정보량이 많은 데이터를 선택하는 것을 목표로 한다.
-
step 1) 초기 라벨링된 일부 데이터를 이용해 모델은 학습을 시작
-
step2 ) 라벨링이 이루어지지 않은 데이터 중 학습에 중요한 것들에 대해 라벨링을 요구
2. Active Learning Scenario
( 참고: Learner = 모델 )
## 1) Membership Query Synthesis
Learner가 데이터를 생성 & 이에 대한 label을 인간에게 요청
2) Stream-Based Selective Sampling
들어오는 개별 Unlabeled 데이터들을 (정보량에 따라) labeling 가치 여부를 판단!
( query strategy를 통해 평가 )
- option 1) require label
- option 2) discard
3) Pool-based Sampling
(Unlabeled) Data pool에서 정보량을 측정
그 중, 정보량이 많은 data들을 선택!
3. Query Strategy
Q) Which data instance to label??
Example
Output value ( after softmax )
(Class A, Class B, Class C)
- \(d1\) = ( 0.9, 0.09, 0.01 )
- \(d2\) = ( 0.2, 0.5, 0.3 )
1) Least Confidence (LC)
- \(d1\) = 0.9
- \(d2\) = 0.5
\(\rightarrow\) ask label of \(d2\)
2) Margin Samping
- \(d1\) = 0.9-0.009 = 0.81
- \(d2\) = 0.5-0.3 = 0.2
\(\rightarrow\) ask label of \(d2\)
3) Entropy Sampling
Entropy ( = Uncertainty )
\(\mathrm{H}(X)=-\sum_{i=1}^n \mathrm{P}\left(x_i\right) \log \mathrm{P}\left(x_i\right)\).
- \(d1\) = 0.115
- \(d2\) = 0.447
\(\rightarrow\) ask label of \(d2\)
4. Summary
Overall procedure of Active Learning
-
Step 1) Data Collection ( = Unlabeled )
- Step 2) Label some data
- (1) Labeled data : \(D_L\)
- (2) Unlabeled data : \(D_U\)
- Step 3) Train the model
- using \(D_L\)
- Step 4) Select some unlabeled data to be labeled
- Step 5) Repeat Step 3&4 ( until threshold )
Reference
https://littlefoxdiary.tistory.com/52