* 크롬으로 보시는걸 추천드립니다 *
kmhana.tistory.com/4?category=838050 중
2. Active Learning을 위한, 딥러닝
- Core-set
- Loss for Active Learning
- Discriminative Active Learning(DAL)
Discriminative Active Learning에 대해서 소개하고자 합니다.
※ 저자가 설명해주는 블로그입니다.
dsgissin.github.io/DiscriminativeActiveLearning/
굉장히 잘 정리해주었습니다.
다양한 Active Learning에 대한 인사이트를 얻을 수 있으므로 AL에 대해서 공부하시는 분들께 꼭 추천드립니다.
종합 : ⭐⭐⭐⭐
1. 논문 중요도 : 5점
2. 실용성 : 4점
설명 : 복잡하지 않으면서, 재미있는 아이디어를 구현했다.
- Deep learning 모델의 Feature를 활용
- Binary Classifier(레이블링 여부)를 활용하여, Active Learning을 학습
- 블로그의 설명이 상세히 진행되어 참고할 만한 자료가 많습니다.
- 단, End-to-End 학습이 되지 않습니다.
( * 개인적인 의견이며, 제 리뷰를 보시는 분들에 도움 드리기 위한 참고정도로 봐주세요)
Discriminative Active Learning(DAL) 요약
- Large Query Batch size에 적합 → 딥러닝 학습에서 중요한 부분
- Binary Classification Task를 통해, 모델이 Data를 구별할 수 있는지 없는지를 판단.
- 다른 Task에 확장 가능 ( 저자는 다른 Task에 대한 실험까지는 진행하지 않았음)
∵ Task 별, classifier를 따로 구축하지 않았기 때문에
Related Work
※ 참고자료: kmhana.tistory.com/5?category=838050
1. Uncertainty-based
- 딥러닝 모델은 Over-Confidence 됨
→ Drop out을 통해, 좀 더 나은 Confidence를 얻을 수 있음
2. Margin
- Decision Boundary의 Margin을 이용
- Decision Boundary의 가까운 데이터를 탐색, But 딥러닝 모델에서 Decision Boundary를 고려하긴 어려움
∵ Non-Linear, Multi-Layer
※ 파생된 개념이 Adversarial Active Learning : 틀리는 이미지를 합성해서 Decision Boundary를 대략적으로 추정함
3. Expected Model Change (EGL)
- 훈련된 Classifier에 의해 유도된 사후분포를 활용
- 훈련된 작은 모델에서만 실용적으로 쓸수 있음
- Speech에 데이터에만 적합했음
4. Core-set
- \( \varepsilon \)-Cover with Integer Program
※ kmhana.tistory.com/6?category=838050 참고하시면 좋을거 같습니다.
- Integer Program : Outlier를 고려하여, 좀 더 Robust하게 데이터를 선별
DAL 개요
아이디어
-
최대한 실제 데이터의 분포를 반영하고자 함
-
High-Dimensional Data나 Multi-Modal Data에도 적합
(* Multi-Modal Data : 여러 종류(Text, Image 등)의 혼합된 데이터
기존 방법 :
- 나이브(Naive)한 방법은 Density 기반이나, parameterized Modeling Method를 통해, Distribution을 학습 및 활용
- 하지만, 고차원문제에서 더 학습시키기 어려울 뿐만아니라, 분해시키기 어려워. 부적합하다.
아이디어 진행과정 :
1. 우리는 이미 Unlabeled pool(True Distribution을 반영한)이 존재
2. 지금 가지고 있는 데이텃과 확실하게 다른, 새로운 샘플을 뽑아 보자!
3. Unlabeled Pool과 Labeled Set을 구별할 수 없다면!
→ 우리의 Labeled set은 이미 충분하게, 분포(True Distribution)를 반영하고 있을 것이다.
4. 반대로 우리가 뽑아야할 샘플은!
→ 높은 확률로 lableled Set과 차이가 나는 샘플이면서, + Informative 해야한다!!
즉, Bianry Classification이다! → Labeled VS UnLabeled
: 간단한 Binary로 Active Learning이라는 어려운 문제를 풀어보겠다.
수식
- \( \chi \) : Original Input Space / \( \hat{\chi} \) : Learned Representation Using \( L \)
- \( \Psi : \chi \rightarrow \hat{\chi} \) 매핑하는 것이 목적
- \( \Psi \left ( x \right ) \) : Target Task로 학습된 모델에서 추출된 Representation
- \( \hat{P} \left ( y \mid \Psi \left ( x \right ) \right ) \) : Binary Model - Labeling 된거냐 안된거냐
Selection 함수 :
$$ \arg \max_{x \in \textit{u} } \hat{P} \left ( y \mid \Psi \left ( x \right ) \right ) $$
- 위 식을 만족하는, top-K Sample을 선택
Domain Adaption
- Binary로 학습한 분포( \( \mathcal{D}_{S} \) ) 와 Target Task( \( \mathcal{D}_{T} \) )의 분포는 같을까?
- 다르다면 얼마나 다를까 측정이 필요
※ Generate Adversarial Net에서도 나오는 개념
- jaejunyoo.blogspot.com/2017/01/domain-adversarial-training-of-neural-2.html 참고
the hypothesis class is the set of possible classification functions you're considering;
For a decision tree learner, the hypothesis class would just be the set of all possible decision trees.
- 학습한 분포( \( \mathcal{D}_{S} \) ) 와 Target Task( \( \mathcal{D}_{T} \) )의 분포간의 거리를 구하고자 함.
- 두 분포가 같다면(매우 가깝다면) DAL의 목적이 달성됨
- \( \mathcal{H} \) : 가능한 Classification Fucntion ( 가설 클래스)
- \( \mathcal{H}-divergence \) : X에대한 \( \mathcal{H} \)가 중졌을 때, 학습한 분포( \( \mathcal{D}_{S} \) ) 와 Target Task( \( \mathcal{D}_{T} \) )간의 거리
* 해석 : hypothesis class중 하나의 모델 \( h \)가 \( \mathcal{D}_{S} \)와 \( \mathcal{D}_{T} \)에서 모두 x를 1이라고 하면,
→ \( \mathcal{H}-divergence \)는 0이 된다.
즉, 모델 \( h \)가 두 분포의 차이를 구별하지 못하면, Supremum(상한) = 0 이 됨
- \( \mathcal{D}_{S} \)에서 학습된 분류기(Classifier)의 \( \mathcal{D}_{T} \) Test error는 \( \mathcal{H}-divergence \)와 관련된 Term으로 Bound 됨
- 위에 내용을 DAL에 적용해보자
- predictor based on the labeled examples → work well on the unlabeled examples
- labeled 및 unlabeled의 분포가 같으면 됨
- \( \mathcal{D}_{S} \) : Labeled Set - \( \mathcal{D}_{S} = \frac{1}{\left | \mathcal{L} \right |}\sum_{x \in \mathcal{L}}\delta \left ( x \right ) \)
- \( \mathcal{D}_{T} \) : Unlabeled Set - \( \mathcal{D}_{T} = \frac{1}{\left | \mathcal{U} \right |}\sum_{x \in \mathcal{U}}\delta \left ( x \right ) \)
- 변경된 \( \mathcal{H}-divergence \) :
Solving this problem is equivalent to finding a classifier in \( \mathcal{H} \) that discriminates between \( \mathcal{L} \) and \( \mathcal{U} \).
\( d_{\mathcal{H}} \left ( \mathcal{D}_{T} , \mathcal{D}_{T} \right ) \) 를 최소화시키기 위해서,
1. 각 Iteration에서, \( d_{\mathcal{H}} \left ( \mathcal{D}_{T} , \mathcal{D}_{T} \right ) \)의 상한(Supremum)을 만족하는 \( h \) 을 찾는다.
2. 레이블링을 통해서, \( d_{\mathcal{H}} \left ( \mathcal{D}_{T} , \mathcal{D}_{T} \right ) \)를 줄인다.
DAL의 저자는 Domain Adaption이 Active Learning의 핵심으로 여기면서 연구했다고 판단이 됨
Unsupervised Domain Adaption과의 비교
DAL의 저자는 "Unsupervised domain adaptation by backpropagation" 논문과 비교를 진행함
"Unsupervised domain adaptation by backpropagation"
- Target domain에 잘 일반화(Generalize)되는 신경망을 학습
- 학습되는 Representation의 요구사항
1. Source domain의 학습 loss를 최소화
2. Bianry classificaiton(Source와 Target Representation을 구별하는) Loss를 최대화
- Classification과 Domain Adaption이 부분이 결합(jointly)되어있음
반면, DAL은 Classification과 Domain Adaption이 분리되어있음
1. Representation은 Classificatoind을 통해 최적화
2. 학습된 Representation을 기반으로, Sample Query통하여, Domain Adaption을 수행함
- DAL 저자는 Unlabeled Pool도 같이 학습하는 방식을 고민하며, 향후 연구로 남겨둠
- Blog에 해당 실험 결과를 볼 수 있음
GAN 과의 비교
Domain Adaption관점에서 GAN과 유사한 점이 있다.
GAN의 Generator는 Source Distribuion과 Target Domain을 유사하도록 학습하고,
Discriminator는 이를 구별한다.
GAN의 Generator에서 생성된 분포는 미분가능하며,
discriminator loss D(G(z))\( \mathcal{D}\left ( \mathcal{G}\left ( z \right ) \right ) \)를 최대화시키도록 학습한다.
* Generatorg학습 시, discriminator는 Freeze
기본 아이디어만 봤을때는 DAL과 GAN이 같아보일 수 있지만 학습과정에서 차이가 크다.
- DAL에서는 Domain Adaption이 미분되지 않으며,
\( \mathcal{U} \rightarrow \mathcal{L} \)을 수행한다(Discrete + Non-differentiable decision).
- 즉, discriminator loss를 최대화 할 수 있는 \( \mathcal{U}\)를 고른다. = 기존의 \( \mathcal{L}\)에서는 볼 수 없었던 Sample
- 저자는 DAL이 GAN의 Objective를 Non-differential한 경우까지로 확장했다고 이야기한다.
+ 게다가, GAN처럼 Mode가 붕괴되는 상황도 방지함
- GAN을 Active Learning에 적용하려는 시도는 있었지만, 성능이 좋지 않았음
Core-set과의 비교
- 공통점 : Cover Unlabeled Data
- 차이점 : DAL은 \( \varepsilon \)-Cover와 같은 목적을 최적화하지 않음
- Not Uniform Density 경우, 차이가 크게 발생 : Core-set경우 Density를 무시
- Sparse한 영역의 Sample을 과도하게 선별한다.
- 하지만, DAL은 실제 분포를 정확하게 반영한다.(Density까지 고려함0
※ 저자는 이것이 꼭 좋다고는 말하지 않는다. 왜냐하면, Sparse Region에 대한 샘플링이 유리할 경우도 있기때문에.
분명한 것은, Core-set이나 다른 Uncertainty기반과는 다른 접근법의 Active learning이다.
DAL 구현 및 실험
- mini-queries \( n \)을 통해, 전체 \( K \) Budget을 나누어서 Query하면 유사한 데이터가 덜 뽑힌다.
= Diversity ↑
- mini-queries \( n \) ↑ 증가 시 : 성능은 좋아지나, 특정 시점이상 부터는 저하됨 (\( n \) = 10~20 추천)
AL 속도는 Trade off 됨
Binary Model
-
Perceptron 사용
-
Generalization 보다는 어려운 데이터에 Fitting에 초점
-
낮은 Capacity 사용 : 큰 모델은 loss를 쉽게 0으로 만들지만, AL에는 부적합
-
Early Stopping 성능향상에 도움을 줌 = \( \mathcal{U}\)가 \( \hat{P}\left ( y = u \mid \Psi\left ( x \right ) \right )\) 낮아지 않도록 함
-
실험 : Unlabeled Pool이 labeled set 보다 10배 컸을 경우, Training acc가 98% 정도만 만족하면 됨
평가
- 평가기준 : Query Batch Size
-
20회 반복 실험
-
Adam : 0.001
- Valdiation은 Random 20 %만으로 지정
비교 방법론
DAL 실험결과
- Core-set은 Batch가 작을 경우 성능 저하
- Uncertainty가 유사한 샘플을 뽑는 경향은 있지만, 심하진 않음
- EGL : 특정한 Class에 대한 편향이 발상함
Ranking Comparison
Uncertainty 순위(Ranking) vs AL 알고리즘 선별 순위 비교
- Fig 3- b : DFAL은 Non-Convex인 딥러닝모델에서도, Uncertainty-based와 유사한 역할을 한다.
- Fig 3- c : DAL은 Uncertainty와는 완전히 다른 관점에서 Query를 수행한다.
마무리 코멘트
-
간단한 Binary Classifier로 Active Learning을 수행한 아이디어가 참신하다.
-
다음 단계의 아이디어가 궁금하다.
-
Active learning에서의, Domain Adaption이라는 개념의 중요성을 알게되었다.
-
Discriminative Model이 End-to-End가 되지 않는것은 아쉽지만, Unlabeled Pool 특성상 최선의 선택으로 보여진다.
※ [ 2. 딥러닝을 위한, Active Learning ] Part가 끝이 났다. 재미있는 AL 논문을 발견하면 추가하고자 한다.
그 전까지, Active Learning 번외편을 작성할 예정이다.
'실용적인 AI > Active Learning' 카테고리의 다른 글
Active Learning vs Auto Labeling (0) | 2021.02.02 |
---|---|
Active Learning을 위한 딥러닝 - Learning Loss for Active Learning (0) | 2021.02.02 |
Active Learning을 위한 딥러닝 - Core-set (2) | 2021.02.02 |
Active Learning 이란? - 기본전략 (4) | 2021.01.22 |
Active Learning 이란 - 기본 (2) | 2021.01.22 |