오랫동안 방치해 놓던 블로그를 다시 시작하면서, 읽었던 논문들을 리뷰하는 시간을 가지고자 한다. 이 글은 연구실 내부 세미나때 발표한 내용을 바탕으로 후에 정리한 내용이다.
ICCV2021 에서는 Semi-supervised Active Learning for Semi-supervised Models: Exploit Adversarial Examples with Graph-based Virtual Labels 이라는 논문이 발표되었다.
BackGround :
익히 알고 있듯, 데이터가 수집될 때 아무 Annotation이 없는 상태, 즉 Raw한 데이터로서 수집된다. 하지만 Unsupervised Learing의 접근방식이 아닌 이상, Label은 필요하다. 이때 전체 중 조금의 데이터를학습한 모델을 바탕으로 전체 데이터를 라벨링하는 방식을 Semi-supervised Learning이라고 일컬으며, 라벨링 한 데이터를 바탕으로 학습하는 것을 Active Learning이라 일컫는다.
이중 Active Learning은 Waste data problem(학습된 데이터와 유사한 데이터만을 활용하는 문제)를 가지고 있다. 따라서, Active Learning은 단순 Active Learning만을 활용하지 않고 주로 SSL(Semi supervised Learning)과 같이 활용된다.
두가지 방법론을 활용하는 방법은 다음과 같이 구분된다.
Method
- SSL Task Model
- 수많은 Unlabeled data가 있을때, Labeled Data와 Conjunction을 고려해, 성능을 향상시키는 방법
- SSL -> AL
- SSL 기법을 활용해 Semi labeling을 한 후, AL 을 통해 샘플의 Annotation을 평가하는 기법
- AL -> SSL
- Labeled Data로 SSL을 학습. 하지만 SSL은 기본적으로 정확하기 힘들기 때문에 AL으로 labelled 샘플을 검증. 또한 성능 향상된 SSL을 바탕으로 위의 작업을 반복.
제안된 구조도
해당 논문에서는 SSL -> AL 기법을 활용하여 Learning Architecture를 구성해 제안하였다. 구조도는 다음과 같다.
상단의 이미지에서 확인할 수 있듯, 구조도는 크게 3가지 방식으로 구분된다.
- Label Propagator
- Graph-based propagation model
- Graph – propagate 방식 : Clustering
- Virtual adversarial Generator
- SSL을 Boosting 하기 위해, Virtual adversarial Generator가 사용됨
- 경계선 부근에 있는 데이터를 추출하기 위함.
- Virtual Adversarial Generator 는 경계선 부근에 있는 데이터의 Fragile함을 이용함.
- Boundary Limitator
- Unlabeled data의 hard case 를 추출하기 위해 rerank system를 활용함.
Label Propagation
먼저 그래프베이스 라벨 프로파게이터 네트워크를 학습하기 위해 labelled 데이터 부터 활용한다.이미지 데이터에서 백본 네트워크를 통해 Representation을 추출한다. 이후, 추출된 Representation을 바탕으로 i번째 데이터와 j번째 데이터 간의 Similarity 를 계산한다. 공식은 위에 적혀 있는 공식과 같다. 이때, knn 을 통해 rj와 유사한 데이터 k개를 추출한 뒤 $r_i$와 계산한다. 이 식을 통해 $r_i$와 $r_j$간의 Adjacency matrix를 구성한다. 이후, 전처리된 값을 graph propagator를 통해 데이터를 학습한다.
먼저, 노테이션을 설명한다. A틸다 는 A에 아이덴티티 메트릭스를 더한 것이다. 또한 D 는 A의 Degree matrix 이다.
그리고 해당 연구에서는 실험 네트워크를 간단히 구성해 레이어 2단, 첫째 레이어에는 Relu / 둘째 레이어에는 Softmax 알고리즘을 적용 했다. 모든 학습이 끝나고난 뒤, Unlabeled data의 adjancency Matrix 를 구하는 과정이 필요하다. 이는 labeled데이터와의 거리를 판단해, Unlabeled data에 가장 유사한 Label를 밴치마킹해 진행되기 때문이다.
Virtual adverserial Generator
이 단계의 주 목적은 라벨링의 경계선을 Smoothing 하기 위함이다.
과정음 다음과 같이 진행된다.
- 먼저 전단계에서 받은 Label과, representation을 input value로 virtual adversarial generator에 넣는다.
- Virtual adverarial Generator 로 받은 Representation adv 를 받아 기존 representation과 더한다. 이를 통해 데이터에 noise를 줘 Label의 Boundary 주변에 있는 데이터의 형질을 변환시켜 Boundary에 넣기 애매한 데이터를 구분할 수 있다.
- KLD 값이 높은 Top M sample 을 Annotation Candidate로 설정한다.
KLD 값이 높다는 뜻은 Perbulation에도 불구하고 하나의 Sample로 올바르게 Label되었다는 것을 의미한다. 따라서, 올바른 Label로 Predicted되었음을 의미한다.- KLD : KL(ˆy u i , y¯ u i )
Virtual adversarial Generator의 R_adv를 계산하는 방식은 다음과 같다.
먼저 KL divergence 는 두 확률 분포의 차이를 계산하는데 사용하는 함수이며, 값이 낮을수록 두 분포가 유사하다는 특징을 가지고 있다. VAG는 KL 다이벌젼스가 가장 높은 R_adv를 구하여 이를 할당한다.
Boundary Limitator
M개의 올바른 데이터를 Sampling한다고 할지라도 이중, 잘못 Labeled된 데이터가 있을 가능성을 무시할 수 없다. 따라서, 다음과 같은 과정을 통해 데이터를 분류하고 애매한 데이터를 Oracle Labeling, 즉 Human labeling을 받아야 하는 데이터를 확인한다.
- 각 Annotation Candidate(sample M)의 다른 Label간의 Entropy를 계산
- 가장 Entropy 가 높은 Candidate 를 찾음 >> 데이터 중 가장 분산도가 높은 K개를 찾는다.
- 선택된 Candidate를 Oracle(Human)에게 Labelling을 요구
Entropy를 구하는 공식은 아래와 같다.
###(Latex 확인용) $E_{i}^{u} = -\sum_{c}^{C}$ = $P(\overline{y}{ic}^{u} | r{i}^{u} )$*$\log{P(\overline{y}{ic}^{u} | r{i}^{u})}$
이렇게 걸러낸 최대한 정확한 Label 데이터로 재학습을 진행 하는것이 SSL -> AL 방식인 것이다.
Experiment
이와 같이 해당 논문은 Hypher parameter가 꽤 존재한다. (M , K)
이를 확인하기 위해 연구진은 CIFAR-100 데이터를 통해 실험하였다.
먼저 성능평가이다.
REVIVAL은 해당 논문이 제안하는 방법론이다.
SL-REVIVAL은 해당 방법론을 SL 방식만 적용한, 즉 Semi Labeling을 바탕으로 학습하지 않은 방법을 이야기 한다. 62%의 성능을 보였으나, AL의 방법론을 적용한 모델의 경우 모델의 정확도가 점점 상승함을 보인다.
위의 그림은 hypher parameter를 확인하기 위함이다. M은 약 10000개 가량이 가장 정확함을 확인하였고, K의 경우 약 20의 경우가 가장 정확함을 확인하였다.
'AI' 카테고리의 다른 글
Contrastive Clustering (0) | 2023.06.08 |
---|---|
Wind Tunnel: Towards Differentiable ML Pipelines Beyond a Single Model (0) | 2023.01.27 |
딥러닝 -03 Recurrent Neural Network (0) | 2020.04.04 |
딥러닝 -02 CNN 학습 (0) | 2020.03.31 |
딥러닝 01 - 기초 정리 XOR 문제 해결 과정 (3) | 2020.03.22 |
댓글