황유진 연구원과 제출한 논문에서 받은 리뷰 중, 해당 논문에 대해서도 성능 비교 실험에 추가해달라는 코멘트가 있었습니다. 이에 제가 작성한 리뷰를 살펴보니, 해당 논문을 자세하게 리뷰한 적이 없어 이번에 리뷰로 작성하게 되었습니다. 이번에 리뷰하려는 논문은 Classification에 대한 Active Learning 연구입니다.
CVPR 2022, Active Learning by Feature Mixing
- Title: [CVPR 2022] Active Learning by Feature Mixing
- Code: GitHub
Introduction
Active Learning의 목표는 모델 학습에 필요한 데이터 양을 최소화하면서 높은 성능을 유지하는 것입니다. 이를 위해 모델 학습에 가장 도움이 될(가치있는) 데이터 샘플을 선택하고, 해당 샘플에 레이블을 달아 모델을 학습시킴으로써 레이블링 비용을 줄이고, 효율성을 높일 수 있다는 강력한 장점을 가집니다. 즉, 충분한 성능을 달성하기 위해 더 많은 데이터를 수집하고, 이에 대한 레이블링을 수행한 뒤 더 복잡한 모델로 학습시키는 기존의 방법보다 Active Learning (이하 AL)이 효율적인 알고리즘이라고 할 수 있습니다.
AL에서 어떤 샘플이 가장 유용한지를 선택하기 위해 다양한 전략이 존재하지만, 대표적인 두 가지는 Uncertainty 기반 샘플링과 Diversity 기반 샘플링이 존재합니다. 불확실성 기반 샘플링은 모델이 예측하기 가장 어려운 샘플을 선택하는 것이고, 다양성 기반 샘플링은 데이터 분포를 가장 잘 대표하는 다양한 샘플을 선택하는 것입니다. 최근에는 이 두 가지 접근 방식을 결합한 하이브리드 방법도 많이 사용되고 있습니다.
일부 Uncertainty 샘플링은 위의 이미지처럼 “비숑인지 술떡인지 헷갈리는 불확실한 샘플”을 찾기 위해 모델의 출력을 사용합니다. 그러나 저자는 단순히 모델의 출력만을 사용하여 불확실한 샘플을 찾을 경우, 고차원 데이터로부터 모델의 현재 상태를 완전히 전달하기 어렵다고 생각하였습니다. 따라서 저자는 Feature를 함께 사용하는 방식을 제안하였습니다.
상단 그림이 저자가 제안하는 ALFA-Mix에 대한 개요입니다. ALFA-Mix는 labeled 데이터와 unlabeled 데이터를 혼합하여, 새로운 Feature를 학습하는 방식입니다. 조금 더 구체적으로 설명하자면, labeled 데이터와 unlabeled 데이터의 feature를 선형 결합(interpolation)하여 모델에 입력하고, 이 과정에서 예측이 얼마나 일관되지 않은지를 관찰하였습니다. Feature가 변형되었을 때, 변형되기 전과 예측이 달라진다면, 해당 unlabeled sample은 모델이 헷갈려 한다는 의미로 모델이 아직 학습하지 못한 새로운 정보를 포함하고 있다고 판단하였습니다. ALFA-Mix는 특히 고차원 데이터(예: 이미지, 비디오)와 적은 데이터 상황에서 효과적이었음을 여러 실험을 통해 확인하였습니다.
Methodology
Problem Definition (Notation)
- Labeled 데이터셋 𝐷_𝑙
- unlabeled 데이터셋 𝐷_u
- Deep Learning Network: f = f_c⊙ f_e
- Encoder f_e
- Classifier f_c
- Pseudo-label y^*_z=argmax_y f_c^y(z;\theta_c)
- latent representation (Feature) z = f_e(x; \theta_e)
- Un-labeled Feature Z^u = {f_e(x), ∀x∈D^u}
- Labeled Feature Z^l = {f_e(x), ∀x∈D^l}
- Anchor: Labeled Feature의 클래스 별 평균 Z^*
Feature Mixing
Feature Mixing의 핵심 아이디어는 Labeled Feature와 Unlabeled feature를 섞어서 새로운 Feature를 생성하는 것입니다. Encoder로 부터 나온 Feature를 일부 수정하여 새로운 Feature를 생성한 뒤, 이를 Classifier에 넣었을 때 예측값이 수정하였을 때 모델이 이미 잘 알고있는 샘플이라면 feature가 일부 수정되더라도 동일한 예측값을 발생할 것입니다. 그러나 값이 변한다면 모델이 불확실하게 알고있다는 샘플인 셈이죠.
이번 챕터에서는 Labeled 와 Unlabeled 를 어떻게 혼합하는지 그 자세한 방식에 대해 알아보겠습니다. 놀랍게도 그 과정은 아주아주 간단합니다.
먼저, Labeled feature와 Unlabeled Feature를 각각 z^*, z_u 로 표기하겠습니다. 이 두 Feature를 선형 결합하여 다음과 같은 새로운 Feature \tilde{z_𝛼}=𝛼𝑧^∗+(1−𝛼)z_u를 만듭니다. 여기서 interpolation 계수를 의미하는 α는 0과 1 사이의 값입니다. 이렇게 아주 간단하게 새로운 Feature \tilde{z_𝛼}를 생성하였습니다.
이 때, z^*는 Labeled feature 전체가 아닌, 클래스 단위로 feature를 평균 낸 값입니다. 저자는 이를 Anchor라고 명명하였습니다. CIFAR-10 데이터셋이라고 가정한다면 10개의 클래스가 있을테니, anchor는 총 10개가 되겠죠. Labeled feature가 아닌 평균값인 Anchor를 사용하는 이유는, 수많은 Unlabeled sample과 Labeled sample끼리 선형 결합을 할 때 매핑되는 경우의 수를 줄이기 위해서 입니다. 그리고 모델의 예측이 변하는지를 고려하여 충분히 뚜렷한 Feature를 찾기 위해, Unlabeled Feature는 모든 Anchor와 Interpoloation됩니다.
이제 새롭게 생성된 Feature \tilde{z_𝛼}를 사용하여 모델이 예측한 레이블이 어떻게 변화하는지 구해야합니다. (수식 (1) 에 따르면 𝛼 값이 매우 작을수록 labeled 가 unlabeled feature에 미치는 영향이 매우 작아 Feature 변화로 인한 예측값 변화에 큰 영향을 미치지 않을 것이기에, 예측값 변화를 통해 불확실한 데이터를 찾을 수 있다는 것이 저자의 아이디어) 따라서 저자는 예측한 레이블이 얼마나 변화하는지를 정량화 하고자, pseudo-label의 변화와 interpolation 로 인해 발생하는 loss를 사용하였습니다. 이 과정에서 Loss의 변화를 계산하기 위해 저자는 테일러 전개를 사용하였습니다.
따라서 전체 Labeled set 경우, 최대 Loss를 선택하면 다음과 같은 수식으로 나타낼 수 있습니다
이 수식은 두 가지 정보를 포함하고 있습니다. 첫째, labeled 데이터와 unlabeled 데이터의 feature 차이입니다. 이 차이는 모델이 새로운 feature를 학습하는 데 얼마나 도움이 되는지를 결정할 수 있습니다. 둘째, Unlabeled 데이터에 대한 loss의 gradient. 이는 모델이 해당 feature에 얼마나 민감한지를 나타냅니다. 해당 수식을 통해 labeled과 Unlabeled feature가 완전히 다르더라도,모델이 일관성이 있는 결과를 발생하면 loss 변화가 없으므로, 해당 feature는 모델에 큰 도움이 되는 샘플이 아니라고 간주된다는 것이죠.
지금까지 보면 결국 𝛼를 어떻게 설정해야하는지가 굉장히 중요할 것 같습니다. 그런데 이 𝛼는 하이퍼 파라미터 입니다. 학습되는 인자가 아니죠. 따라서 저자는 최적의 𝛼를 선정하기 위해 이를 최적화할 수 잇는 공식을 제안하였습니다.
Optimising the Interpolation Parameter α
앞서 설명드린 것처럼 Interpolation Parameter 𝛼의 최적화는 labled 와 unlabeled 데이터를 혼합하여 모델의 예측 변화 관찰 시 아주 중요한 부분인데요.
본 논문에서는 적절한 α 값을 수동으로 선택하는 것이 어렵기 때문에, Unlabeled 데이터에 대해 적합한 𝛼 값을 선택하기 위한 최적화 접근 방식을 제안하였습니다: 바로 loss 함수의 변화를 최대화하는 α 값을 찾는 것입니다. 즉, 수식 (3)을 이용하여 𝛼 값을 최적화하는 수식은 다음과 같습니다:
여기서 𝜖은 Mixing 정도를 조절하는 하이퍼파라미터입니다. 이 최적화 공식은 각 unlabeled 데이터와 anchor 데이터에 대해 가장 어려운 𝛼 값을 선택하도록 설계되었습니다.
저자는 이 최적화 문제를 빠르게 해결하기 위해 dual norm formulation를 사용하며, 2-norm을 사용하여 다음과 같은 근사 해 정의하였다고 합니다.
이 근사 해를 통해 𝛼 값을 효율적으로 최적화할 수 있으며, 실험 결과 최종 결과에 큰 영향을 미치지 않음을 확인하였다고 합니다.
Candidate Selection
이제 데이터를 선택하는 단계까지 왔습니다. 위에서 feature를 선형결합하는 방식에 대해 설명드렸는데, 이 때 알파 값은 매우 작아야 잘 동작한다고 합니다. 그렇다는 것은 Unlabeled feature에 Labeled Feature를 아주 조금 섞는 것이고, 이를 노이즈가 추가되는 것이라고도 해석할 수 있죠. 결국 저자는 feature에 노이즈를 추가했을 때 예측값이 변화하는 그런 불확실한 샘플을 선택하는 것을 목표로 하였습니다. 위에서 설명한 방식으로 선택된 후보 집합은 아래와 같이 정의됩니다.
이 과정에서 후보 집합의 크기는 예산(B)보다 클 수 있습니다. 게다가 이렇게 선택된 샘플들은 latent space에서 결정 경계 근처에 위치하는 경향이 있습니다. 따라서 그 안에서도 최대한 다양한 샘플을 선택하는 것이 이상적으로 보입니다. 이는 동일한 영역에서 선택된 대부분의 샘플이 동일한 새로운 feature를 공유할 수 있기 때문입니다. 다시말해 대표하는 feature를 찾는게 효율성 입장에서 유리하다는 말이죠.
이를 위해, 저자는 후보 집합을 feature 유사성에 따라 B개의 그룹으로 클러스터링하고, 각 클러스터의 중심에 가장 가까운 샘플을 선택하였습니다. 이렇게 하면 I 집합에 의해 표현되는 공간의 밀도를 B개의 샘플로 적절히 근사할 수 있습니다. 이를 위해 k-평균(k-means) 알고리즘을 사용하였습니다.
지금까지 설명한 Feature Mixing 의 알고리즘은 상단 그림으로 요약할 수 있습니다.
Experiments and Results
Overall Results
저자가 제안하는 ALFA-Mix는 다양한 데이터셋, Budget 크기, 네트워크 아키텍처(총 30가지 설정)에서 다른 방법들과 비교 실험을 수행하였습니다. 상단 그림 4와 같이, 각 설정에서 ALFA-Mix는 대부분의 경우 다른 방법들보다 우수한 성능을 보였습니다. 예를 들어, CDAL 및 BADGE과 비교할 때, ALFA-Mix는 30개의 실험 중 각각 12.3 및 10.6개의 실험에서 더 나은 성능을 보인반면, ALFA-Mix가 성능이 떨어진 경우는 거의 없었습니다. 전체적으로 ALFA-Mix는 거의 모든 실험에서 다른 방법들과 비교하여 뛰어난 성능을 보였습니다.
특히 Vision Transformer와 같은 사전 학습된 네트워크를 사용할 때, ALFA-Mix는 CDAL, BADGE을 포함한 다른 모든 AL 방법보다 우수한 성능을 보였고, 특히 데이터가 적은 상황에서 그 성능이 더 좋은 것을 보였습니다
ALFA-Mix는 비디오 분류 작업 성능도 비교하였는데, HMDB 데이터셋을 사용했을 때, 처음 두 번 라운드에서 랜덤 샘플링보다 5% 이상, 마지막 라운드에서는 3% 이상의 정확도 향상을 보였습니다. 또한 처음 세 번의 라운드에서 다른 방법론들에 비해 2% 이상의 성능 향상을 보였습니다.
Ablation Study
Learning Ablations.
상단 그림이 입력 데이터 유형, 네트워크 아키텍처, 네트워크 초기화 방식, Budget 크기 등의 다양한 조건에서 ALFA-Mix가 다른 AL 방법들보다 얼마나 자주 더 나은 성능을 보이는지를 평가한 결과입니다. 저자가 제안하는 방법론은 이러한 조건들과 상관없이 대부분의 경우 다른 AL 방법들보다 일관되게 우수한 성능을 보였습니다. 특히, 사전 학습된 네트워크를 사용할 때 ALFA-Mix는 랜덤 샘플링보다 99%의 경우 더 나은 성능을 보였다고 합니다.
특히, Budget이 작을 때 ALFA-Mix가 더 뛰어난 결과를 보였는데, BADGE보다 46%의 실험에서 더 나은 성능을 보였습니다. 처음 5번의 라운드에서, 각 방법이 최대 50개의 샘플을 선택할 때 저자가 제안하는 방법론은 60% 이상의 실험에서 다른 방법보다 뛰어난 결과를 보였습니다.
Diversification
후보 집합 𝐼에서 최종적인 데이터를 선택할 때의 다양성을 실험으로 비교한 결과를 6(a)에서 확인할 수 있습니다. 후보 집합에서 최종 샘플을 선택하는 방법으로 세 가지 방식으로 비교 실험을 수행하였습니다. 첫째, 후보 집합에서 균등하게 Uniform 샘플링을 하는 방법입니다. 둘째, α의 노름(norm) 값을 이용하는 방법입니다. 작은 노름 값은 모델의 예측을 작은 변화로도 변경할 수 있음을 나타냅니다. 셋째, Symmetric KL-Divergence를 사용하는 방법입니다. 이는 Unlabeled 인스턴스의 예측값 분포와 혼합 변형 예측값 분포 간의 분포 변화를 평가합니다. 그 결과 Kmeans가 Kmeans++보다 가장 적합하게 높은 성능을 발생시키는 것을 확인하였습니다
Learning the Interpolation Parameter.
그림 6(b)에서 볼 수 있든, interpolation parameter α에 대한 학습 과정을 생략하면, 후보 집합에서 선택되는 샘플 수가 크게 줄어듭니다. 이는 클러스터링 중에 선택되는 샘플의 다양성에 부정적인 결과를 가져올 수 있따고 합니다.
Anchor
그림 6(c)는 다양한 anchor를 사용하는 경우에 대한 영향을 보여주는데, 앵커를 기반으로 하는 것이 다른 방법론보다 뛰어난 성능을 보였다고 합니다.
Conclusion
supplementary까지 보면, 해당 논문의 저자는 고차원 데이터 뿐만 아니라 여러 아키텍처에 대한 변형까지 일반화 성능을 보이기 위한 무수히 많은 실험으로 feature mixing이 잘 동작함을 보였습니다. 최신 방법론들을 보면 결국 아주 많고 다양한 실험을 바탕으로 얼마나 유의미한 성능을 내는 지가 중요한 것 같습니다.
좋은 리뷰 감사합니다.
해당 방법론은 동일 class의 두 이미지의 feature의 mixing을 통해 구한 feature로 예측할 경우 동일한 예측 결과가 나와야 한다는 아이디어를 통해 결정 경계에 있는 unlabeled 데이터를 선별하는 것으로 이해하였습니다.
그런데 해당 방법론이 결국은 경계 선에 있는 헷갈리는 데이터를 선별하기는 하였으나, 결정경계에서 잘못 예측되어있는 데이터는 네트워크에서 고려를 못하게 되는 것으로 이해하였는데,
이는 active learning에서 해결하고자 하는 문제는 아니라 어쩔 수 없는 것일까요?? 혹은 주변의 헷갈리는 데이터로 대신 학습하였으니 점차 해결되는 문제일까요..?
안녕하세요 이승현 연구원님 좋은 질문 감사합니다.
우선 이해하신 내용이 정확하게 맞습니다.
말씀하신 대로, pseudo-label의 부정확성까지는 고려하지 못하긴 합니다.
다만 본 논문의 목적은 부정확성보다는 헷갈리는 데이터를 찾는거다 보니 이를 고려하지 않는 듯 합니다.
즉, 헷갈리는 샘플의 pseudo-label이 틀렸다 한들, 다음 라운드에서 정답값을 부여하고 재학습하기 때문이죠