HANA : Have A Nice AI

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

실용적인 AI/Active Learning

Active Learning 이란? - 기본전략

KM-Hana 2021. 1. 22. 01:29

Activ Learning의 기본을 먼저 보고싶으신 분은, 이전 포스트

 

Active Learning 이란 - 기본

dsgissin.github.io/DiscriminativeActiveLearning/about/ About An introduction to the active learning framework, from classical algorithms to state of the art methods for neural networks. A new method..

kmhana.tistory.com

를 참고해주세요!

 

 

Active Learning의 기본적으로 알아야할 

기초적인 쿼리전략(Query Strategies)를 간단하게 기술하고자 한다.

 

※ 쿼리전략(Query Strategies) 란? : 모델이 중요한 데이터를 찾기위한 전략

 

 

주요 기초 쿼리전략은 다음과 같다.

   - Uncertainty Sampling

   - Query By Committee

   - Expected Model Change

   - Density Weight Method

 

 

1) Uncertainty Sampling

목표 : Decision Boundary에 가까운 샘플을 고르자.

설명 :

  • '모델이 헷갈리는 데이터 = 학습에 필요한 데이터' 라는 생각에서 시작된다.
  • 모델 입장에서 '헷갈리는 데이터'가 무엇일까? 라는 질문에 답은 Decision Boundary에 가까운 샘플이다.
  • Decision Boundary에 가까운 데이터는, 즉, 헷갈리는 불확실성(Uncertainty)이 높은 데이터이다.

      * Decision Boundary(결정 경계) : 카테고리의 분류(그룹)를 나누는 경계선

 

이 간단한 아이디어지만, 굉장한 일리가 있다.

[Decision Boundary]

방법 : 모델 입장에서의, 데이터의 불확실성(Uncertainty)를 측정하는 방식은 크게 3가지가 있다.

 

[예시 : 추론 결과(확률)값]

1. Top(Least) Confidence : 최대 확률값이 가장 낮은 데이터를 선별

[Top Confidence 수식]

  - D-1 : top confidence는 0.9

  - D-2 : top confidence는 0.5

  - D-2의 top confidence < D-1 top confidence 이므로, top confidence가 낮은 D-2 선택

 

2. Margin Sampling : Top-1 confidence와 Top-2의 confidence의 차이가 낮은 

  - D-1의 마진 : 0.9-0.05 = 0.85

  - D-2의 마진 : 0.5-0.3 = 0.2

  - D-2 마진 0.2 < D-1 마진 0.85 이므로, Margin이 낮은 D-2 선택

 

3. Maximum Entropy : Entropy가 높은 데이터를 선택

[Maximum Entropy 수식]

  - D-1의 Entropy : 0.171

  - D-2의 마진 : 0.447

  - D-2 Entropy 0.171 > D-1 Entropy 0.447 이므로, Entropy가 높은 D-2 선택

 

장점 :

  1. 구현하기 매우 쉽다.

  2. 성능이 생각보다 좋다.

  3. 게다가, 딥러닝과의 연계도 생각보다 좋다.

  4. 실험상, Uncertainty 기법 중, Maximum Entropy가 더 좋은 경우가 많았다.

 

  ※ 딥러닝에 Active Learning을 적용해보고 싶다면, Uncertainty(Entropy)를 강추한다.

    '이렇게 간단한데 좋을까?'라는 의문이 들 수 있지만, 놀랍게 성과가 좋다.

 

  단점 :

   - Outlier에 영향을 많이 받음. 

 

      º Outlier인 데이터의 추론 확률 값은 모델이 예측하기 어렵다.

        예를 들어, 3class 추론 확률값이 0.3, 0.3, 0.3으로 나올 가능성이 높으며, 이상치는 Entropy(Uncertainty)가 높다.

 

   - 다른 치명적인 단점이 있다. 데이터를 선별할 때 Diversity(다양성)가 무시되었다.

 

      º Diversity(다양성)가 무시 = 데이터 분포가 고려되지 X

        이는 나중에 Core-set에서 Diversity(다양성)의 개념과 함께 설명하겠다.

 

2) Query By Committee

목표 : 여러모델을 통해, 마치 앙상블 처럼. 데이터를 선별해 보자

설명 :

  • 여러 모델(Committee 위원회) 에서 투표하여 중요 데이터를 선별
  • 여러모델에서 추론한 결과가 다르다 = 헷갈리는 데이터 = 불확실성(Uncertainty) 높음
  • 앙상블의 Vote 개념을 Active Learning에서 사용
  • Vote Entropy를 사용 할 수도 있다 ( Vote 확률 → Entropy 계산)

[Vote Entropy 수식]

    * M : 사용 모델 수(size of ensemble)

 

  장점 : 

   - 구현이 어렵지 않다.

   - 앙상블이 좋은건 당연하고, 이를 쓴 Active Learning의 효과도 좋다... 하지만!

 

  단점 :

   - 하나의 모델을 학습하는데 많은 비용이 드는 딥러닝에선 쓸수가 없다.

   - 딥러닝 모델 학습 * 앙상블모델 수 * Active Learning 반복수 = Active Learning을 통한 자원절감 ↓

   - 딥러닝을 쓰기엔, 배보다 배꼽이 큼

 

 

3) Expected Model Change 

※ 이 방법에 대해서는 앞으로 중요하게 다루지 않을 예정이라. 장단점과 더불어 좀 더 설명드리고자 합니다.

 

목표 : 모델을 가장 잘 업데이트 할 수 있는 데이터가 중요하다!

설명 :

  1. RNN에서 class별 Norm Gradient를 계산(Backpropagation)한다.
  2. 계산된 기대값이 큰 데이터를 선별한다.

[EGL 수식]

  장점 : 

   - EGL 방식이 모델(Estimator)의 분산을 줄인다고 증명함

 

  단점 :

   - RNN(Speech)에 한정적인 성능을 보일 수 있음( 논문 저자는 몇까지 처리를 추가했음)

   - CNN 실험에서는 낮은 성능을 보여줌 → Task마다의 성능이 크다는 건 큰 단점이다.

[실제 Entropy(Uncertainty)와 AL간의 상관계수]

* 위의 그림은 실제 entropy의 순위와, AL(Active Learning)이 중요하게 판단하는 데이터 순위간의 연관성을 볼 수 있다.

 

 - EGL은 Entropy(Uncertainty)와 전혀 상관이 없다. 

 - (b) 그림에서의 '빨간 원'은 EGL이 중요하게 판단한 데이터 이다.

   : 침묵, 짧은 Speech, filler words(ex, Um..) 같은 데이터를 뽑았다고 한다. 

    → 저자는 이 데이터가 모델학습에 중요한 데이터인지, Outlier 인지는 추가 연구가 필요하다고 남겨두었다.

 

    º 위의 사실이 단점이라고 할 수는 없으나, 다른 실험들에서의 EGL의 성능이 낮게 나왔으며,

      Uncertainty와 Gradient의 크기 간의 무상관원인으로 꼽고 있다.

 

    º  '이런 아이디어가 있었구나.' 정도 알아두면 좋을 것 같다.

      Gradient의 크기를 활용하는 idea가 매우 좋다고 생각하지만 성능이 아쉽다.(더 좋은 AL로 개선하길 기원한다.)

 

 

4) Density Weight Method

※ 이 방법에 대해서는 앞으로 중요하게 다루지 않을 예정이라. 장단점과 더불어 좀 더 설명드리고자 합니다.

 

목표 : 이왕이면, 불확실성 + 밀집도가 높은 곳에 있는 데이터를 뽑자

 

설명 :

  • Outlier에 취약한 Uncertainty의 단점을 커버하기 위해서, Density개념을 추가했다
  • 밀집도가 높은 곳에 위치한 데이터는 Outlier일 가능성이 낮다.(Outlier는 Feature Space상, 멀리 떨어져 있다)
  • 밀집도를 계산하는 방법에 따라서, 여러가지가 파생되었다.

대표 논문 :

Paper : Active Learning with Sampling by Uncertainty and Density for Word Sense Disambiguation and Text Classification - 2008

* 재밌는 아이디어가 있어서, 나중 이 논문에 대해서 한번 더 다룰 예정이다. 

Paper : Active Learning With Sampling by Uncertainty and Density for Data Annotations - 2010

[Density based 방식의 이해]

* 위의 그림에서, Decision Boundary와 가까운 A와 B data 중, 밀집도(Density)가 높은 B가 A에 비해서 우선된다.

  • 밀집도를 계산하는 방법 :  Sampling by Uncertainty and Density(SUD) - K-Nearest-Neighbor-based Density

      º K = 20으로 설정 일때, S(x) = { s1, .. , Sk  }

      º data point x와 가까운 Nearest-Neighbor 20 개를 찾고 → cosine similarity를 계산하여, 더한다. = Density

      º Density( k-Nearest-Neighbor의 Cosine similarity 합)  X Entropy(Uncertainty)

      º 가장 높은 Sampling by Uncertainty and Density (SUD)를 선택한다.

  장점 : 

   - Outlier에 취약한 Uncertainty의 단점을 커버하기 위해서, Density 개념을 추가했다.

 

  단점 : 

   - Outlier를 확실하게 방지 할 수 있지만, '밀집도(Density)가 높은 데이터가 꼭 좋은 데이터 일까?' 라는 의문이 있다. 

   - Unlabeled 데이터에서는 부적합할 수 있다.

   

 

 

5) 마치며

   - 기본적인 쿼리 전략(Uncertainty, Committee, Gradient, Density)에 대해서, 다루었다.

   - Uncertainty는 간단하지만, 꽤 좋은 성능을 보여준다.

   - Active learning의 진입장벽이 낮아서, 실산업에서 많이 시도해볼만하다.

   - 다음에는 좀 더 딥러닝에 적합한 Active Learning을 소개하고자 한다.