HANA : Have A Nice AI

모두를 위한, 하나를 위한 AI

실용적인 AI/Active Learning

Active Learning을 위한 딥러닝 - Discriminative Active Learning

KM-Hana 2021. 2. 2. 00:04

* 크롬으로 보시는걸 추천드립니다 *

 

kmhana.tistory.com/4?category=838050

2. Active Learning을 위한, 딥러닝 

   - Core-set

   - Loss for Active Learning

   - Discriminative Active Learning(DAL)

 

Discriminative Active Learning에 대해서 소개하고자 합니다.

arxiv.org/pdf/1907.06347.pdf

 

※ 저자가 설명해주는 블로그입니다.

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 AdaptionActive 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

Generator와 Discriminator 학습 과정

기본 아이디어만 봤을때는 DAL과 GAN이 같아보일 수 있지만 학습과정에서 차이가 크다.

 

  • DAL에서는 Domain Adaption이 미분되지 않으며,

     \( \mathcal{U}  \rightarrow  \mathcal{L} \)을 수행한다(Discrete + Non-differentiable decision).

  • 즉, discriminator loss를 최대화 할 수 있는 \( \mathcal{U}\)를 고른다. = 기존의 \( \mathcal{L}\)에서는 볼 수 없었던 Sample
  • 저자는 DAL이 GAN의 ObjectiveNon-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 구현 및 실험

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 번외편을 작성할 예정이다.