kmhana.tistory.com/4?category=838050
을 우선 보시는걸 추천드립니다.
2. Active Learning을 위한, 딥러닝
- Core-set
- Loss for Active Learning
- Discriminative Active Learning
중 Loss for Active Learning에 대해서 소개하고자 합니다.
※ 저자가 설명해주신 리뷰 영상입니다.
www.youtube.com/embed/9oWC8S2gpyk?start=1
1시간 정도니깐 한번 보시는것도 좋을거 같습니다.
루닛(Lunit)에서는 CBAM(Convolutional Block Attention Module)논문과 더불어 지속적으로 좋은 논문을 내고 있습니다.
아쉽게도 루닛 블로그에는 이 Loss for Active Learning의 리뷰가 없어,
이 논문에 대해서 리뷰를 하고자 합니다.
종합 : ⭐⭐⭐⭐⭐
1. 논문 중요도 : 5점
2. 실용성 : 5점
설명 : 2019년도 제 기준 인상깊은 논문 중 하나 입니다.
- 딥러닝으로 학습 과정에서 End-to-End로 Active Leaning을 진행합니다.
- 굉장히 좋은 아이디어를 사용했습니다.
- 실용성도 좋습니다. Task에 무관(Task-agnostic)하며, AL을 위한 추가 Cost가 필요 없습니다.
- 단, Diversity관점에서는 약점이 있습니다.
( * 개인적인 의견이며, 제 리뷰를 보시는 분들에 도움 드리기 위한 참고정도로 봐주세요)
Loss for Active Learning 의의
딥러닝이 AL을 같이 학습하자!
1. Task와 무관(Task-agnostic)한 AL
→ Classification 뿐만아니라, Detection, Human Pose estimation에서도 사용가능
2. 딥러닝 모델을 End-to-End로 학습하여, AL을 할 수 있음
∵ Loss Prediction Module( Margin Ranking loss로 구성) 제안
Introduction
AL에서는 3가지 접근법이 있다.
※ 참고자료: kmhana.tistory.com/5?category=838050
1. Uncertainty-based
- 간단하다.
- Task 별로 Uncertainty를 정의해야한다(Task에 의존된다).
2. Diversity-based
- Task에 덜 의존하지만, Feature space에 대한 수정은 필요하다
3. Expected Model Change
- 작은 모델에서만 실용적으로 쓸수 있음
아이디어
배경 : 어떤 Task던지 어떤 Model 이던지, Loss를 통해서 학습
→ 이 Loss를 이용한 AL이라면, Task-agnostic하지 않을까?
발전 : 데이터의 Loss를 예측(Prediction)할 수 있다면
→ 이 Loss가 높은 데이터를 고르면 되지 않을까?
제안 : Loss Prediction Module
- Uncertainty 접근법으로 볼 수 있으나, 통계적으로 Uncertainty를 추정하는 것이 아니라
Input data에 대해 추정된 Loss에 기반함
* hard example mining과의 차이 : hard example mining은 레이블링 있는 데이터 중 어려운것을 고르는 Task
모델 개요
Loss Predicted Module 구성:
- Global Average Pooling(GAP) 를 통해 모델 중간 Block들의 Output을 압출
* Loss Prediction Module에서 각 Mid Block - GAP 사이에 Conv를 추가해 보았으나, 성능 향상은 없었음
- Concat → FC → Loss 예측값 (scalar인 \( \hat{l} \) ) 추론
수식 :
- \( \Theta_{target} \) : Target Model
- \( \Theta_{loss} \) : Loss Prediction Module
- \( \hat{y} = \Theta\left ( x \right ) \) : Targe Task 수행 (ex : Classification, Detection 등 )
- \( \hat{l} = \Theta_{loss}\left ( h\right ) \) : Predicted Loss
- \( h \) : Feature set of \( x \) from \( \Theta_{target} \)
- \( \mathit{L}_{K}^{0} \) : 0-회차에 사람이 레이블링 한 K개의 데이터
- \( \mathit{U}_{N-K}^{0} \) : 0-회차에 사람이 미-레이블링된 N-K개의 데이터
- \( \lambda \) : Scaling을 위한 값 ( \( \lambda = 1 \) )
-
target model과 Loss predicted Module 결합된 최종 Loss
$$ L_{target}\left ( \hat{y},y \right ) + \lambda \cdot L_{loss}\left ( \hat{l},l \right ) $$
저자는 최종 Loss 중 Predicted Loss \( \hat{l} \) 를 어떻게 구현할지 고민하게 된다.
MSE vs Ranking Loss :
MSE \( \left ( \hat{l} - l \right )^2 \) 는 적합하지 않았다.
-
Loss Prediction Module을 학습하기 위한, Label ( Target Model의 Loss 값 \( l \) )은
딥러닝 모델이 학습이 진행되는 동안 특정 값(S)으로 수렴하게된다.
-
MSE로 학습 경우, Predicted Loss가 특정 값(S)을 예측하도록 학습이 된다.
-
Loss Prediction 결과로는 중요한 데이터를 뽑을 수 없음(실험 : 성능 저하됨)
Ranking Loss(Margin Ranking loss) : Mini-Batch내의 샘플간의 비교를 사용
- \( \xi \) : Marigin 값 ( \( \xi = 1 \) 사용 )
-
\( x^{p} = \left ( x_{i}, x_{j} \right ) \) : Batch size B 일 때, B/2 data pair를 만든다.
-
두 \( \hat{l_{i}}, \hat{l_{j}} \) Loss 추론 값 간의 Gap이 Margin( \( \xi \) ) 만큼 차이나도록 학습
학습을 위한 최종 Loss :
실험 설정
Classification 중심으로 정리했습니다
* 궁금하신 분은 Object Detection과 Pose Estimation 결과는 논문에서 보시면 좋을거같습니다.
- 초기 데이터 구성 : K = 1000 (label된 데이터)
- 1회 시, 선별할 데이터 수 : 1000 건
- FC hidden Node : 128-dim
- Random Subset : M = 10,000
※ 전체 데이터에서 바로 뽑지 않고 Subset(M)을 우선 추출한 후, 그 안에서 Top-K를 추출한다.
1. 선별된 데이터간 Correlation 문제를 해결
2. Diversity 확보를 위해서
- Model : ResNet-18
* 사용 모델
- Mini-batch : 128 / Epoch : 200
- 학습 스케줄 : Loss Prediction Module은 120 Epoch까지만 학습
- 5회 반복 실험
※ Active Learning은 편차가 발생하기 때문에 반복 실험을 진행합니다.
실험 결과
그림 4(Fig. 4) 결과 :
-
Loss for Active learning(Ranking loss)의 결과가 가장 좋음
-
Loss for Active learning(MSE)는 Random보다는 좋았으나, 다른 방법론의 성능이 더 좋았음
그림 5(Fig. 5) 결과 :
-
Loss의 예측(Prediction)이 잘되고 있는지를 보여주는 그림이다.
-
Ranking acc는 순위가 맞으면 1, 틀리면 0 인 Binary score로 Test 정확도를 측정
-
Loss의 Ranking을 0.9 이상으로 맞출 수 있음
-
단, Task가 어려워질 경우, Ranking acc는 저하됨
-
Loss for AL : 실제 Loss와 예측된 Loss와 비교시 높은 상관성(Correlation = 0.68) 이 나왔으며,
* 저자는 Loss for AL이 더 효과적으로 informative data point를 뽑는 증거라고 설명합니다.
-
Uncertainty : 실제 Loss가 작은 data도 선별합니다.
한계점
- Diversity와 Density는 고려되지 않았음.
- 어려운 Task일 수 록, Loss Prediction Accuracy와의 연관성이 떨어짐
* Loss Prediction Acc ↑ = 높은 Loss가 학습하기 좋은 Data Point (Informative)
- 향후 : 데이터의 분포를 고려하면서, Loss Prediction Accuracy를 높히는 연구 계획
리뷰를 마치며..
-
Loss를 예측하는 Loss라니!
-
간단하면서도 성능이 좋은, 너무 좋은 아이디어 였다.
-
다음 연구가 기대가 된다.
'실용적인 AI > Active Learning' 카테고리의 다른 글
Active Learning vs Auto Labeling (0) | 2021.02.02 |
---|---|
Active Learning을 위한 딥러닝 - Discriminative Active Learning (5) | 2021.02.02 |
Active Learning을 위한 딥러닝 - Core-set (2) | 2021.02.02 |
Active Learning 이란? - 기본전략 (4) | 2021.01.22 |
Active Learning 이란 - 기본 (2) | 2021.01.22 |