안녕하세요 정의철 연구원 입니다. 이번에 제가 소개할 논문은 [AAAI 2024] Entropic Open-set Active Learning이란 논문입니다. 지금까지 읽어보았던 Active Learning 논문들은 모두 Closed-set의 상황에서 진행된 연구였는데 Active Learning 관련 논문들을 서베이 하던 중 Open-set Active Learning에 관한 연구 보게 되었고 무슨 내용을 다루는지 궁금하여 이번에 소개하게 되었습니다. 그럼 리뷰 시작하겠습니다.
Introduction
딥러닝 방법은 classification , segmentation, object detection에서 높은 성능을 보였습니다. 그러나 이러한 작업을 해결하는데 있어 딥러닝 모델의 성능은 주로 방대한 양의 라벨링된 데이터에 의존을 하게됩니다. 하지만 방대한 양의 데이터를 라벨링는 것은 비용이 많이드는 문제를 갖고 있습니다. Active Learning(AL)은 이러한 대규모 데이터 라벨링 문제를 해결하기 위해 고안된 방법이며 전체 데이터를 레이블링하는 대신 정보량이 높은 데이터 하위 집합을 선택하는 방법론입니다. AL 기술에는 대표적으로 uncertainty-based methods와 diversity-based methods가 있습니다. uncertainty-based methods는 모델의 불확실성을 활용하여 언라벨 데이터에서 가장 정보량이 높은 샘플을 선택하는 반면, diversity-based methods은 최대한의 다양성을 나타내는 샘플을 선택함으로써 모델 학습을 향상시킵니다.
그러나 일반적으로 AL 기술은 closed-set에서만 좋은 성능을 보인다고 합니다. closed-set이란 클래스가 알려진 데이터로만 구성된 데이터 집합을 의미합니다. 그러나 실세계 데이터, 즉 open-set에서는 클래스가 있는 데이터도 있고 클래스가 없는 데이터도 포함이 되기 때문에 AL의 방법론을 적용시켰을 때 성능이 동일하게 나오기는 힘들 것입니다. 그 이유 중 하나는 기존 AL 방법론 들이 annotation을 위한 데이터를 선별할 때 클래스가 정해지지 않는 데이터를 정보량이 많은 데이터로 판별하기 때문입니다. 이러한 문제는 이후 AL의 연구에 있어서 해결해야할 과제라 할 수 있습니다.
open-set AL의 기본적인 접근 방식은 closed-set의 분류기를 훈련시키고 엔트로피 점수를 사용하여 known,unknown 샘플을 분리하는 것입니다. 이후 훈련이 어느 정도 진행이되면 closed-set의 분류기는 known 데이터에 대해서는 낮은 엔트로피를 unknown 데이터에 대해서는 높은 엔트로피를 갖게 될 것입니다. 그러나 아무리 분류기가 잘 학습이 되었다 할 지라도 known,unknown 샘플을 완벽하게 분리할 수는 없을 것 입니다. 이러한 문제를 해결하려는 여러 연구들이 있었지만 기존의 논문들은 known 샘플들에만 중점을 두고 unknown 샘플을 효율적으로 활용하지는 않는다고 합니다.
이를 해결하기 위해 저자는 새로운 AL 방법론을 제안합니다. 이 방법론은 두 가지 다른 엔트로피 점수를 사용하고 통합합니다. 첫 번째 엔트로피 점수는 known 분류기의 출력을 사용하여 계산됩니다. 이 점수는 known 데이터 분포에 대해서 샘플의 불확실성을 측정합니다. 두 번째 엔트로피 점수는 distance-based을 활용하는데 이는 unknown 데이터 분포에 대해서 샘플의 불확실성을 측정하는데 사용이 됩니다. 마지막으로, 모든 언라벨 샘플에 대해 두 가지 엔트로피 점수를 결합하여 AL을 수행합니다. 또한 저자는 샘플의 다양성을 보장하기 위해 클러스터링도 사용했다고 합니다.
Methodology
저자가 제안한 방법론의 구조도는 위와 같고 F, C, G은 각각 CNN 기반 feature extractor , K 클래스에 대한 이진 분류기 ,DL ∪ DAU에서 (K + 1)개의 분류를 위한 확률 벡터를 생성하는 fully connected layer C(·)를 의미합니다. 그리고 Sc는 Closed-set 엔트로피 점수를 Sd는 Distance-based Entropy Score를 의미합니다.
Problem Formulation
open-set AL에서는 K개의 클래스에 대한 분류 문제에 대해 AL을 수행합니다. 여기서 K는 known 클래스의 수를 나타내고 라벨링된 데이터 세트는 DL , known,unknown 샘플이 혼합된 언라벨 데이터 세트는 DU 로 표기합니다.
각 AL 사이클에서 쿼리 전략은 언라벨 데이터 세트에서 b개의 샘플로 구성된 배치 Xactive를 선택하고, 이들의 레이블을 오라클로부터 쿼리합니다. Xactive에는 known으로 쿼리된 샘플 Xk와 unknown으로 쿼리된 샘플 Xu가 포함됩니다. 여기서 Xu의 샘플의 클래스는 0으로 라벨링되고 이를 active unknown이라 부릅니다. 이후 Xu 샘플을 active unknown 집합 DAU에 추가하고 라벨링된 데이터 세트를 DL = DL ∪ Xk로 업데이트합니다. 업데이트된 DL은 target model T (·)의 학습 데이터로 사용됩니다.
Training Binary Classifiers
각 Gi를 i번째 known 클래스의 샘플을 positive으로, 나머지 known 샘플을 negative으로하여 훈련합니다. 주어진 이미지 x에 대해 f = F (x)로 x의 추출된 특성을 나타내고, pi = σ (Gi (f))로(σ는 소프트맥스) Gi에 의해 positive 클래스로 분류될 확률을 나타냅니다. Gi의 손실 함수는 다음과 같습니다:
여기서 nl은 배치의 known 샘플 수입니다. 이 손실 함수는 (BCE) (Saito and Saenko, 2021)의 수정 버전으로 각 샘플에 대해 positive와 가장 가까운 negative decision boundaries만 업데이트한다고 합니다. 이 손실함수를 사용하는 이유는 negative 클래스에 많은 샘플이 포함되어 있어 BC(Binary Classifiers)가 negative 클래스로 편향되는 것을 완화하기 위함이라고 하네요.
Closed-set Entropy
주어진 샘플 x에 대해 Closed-set 엔트로피 점수는 다음과 같이 정의됩니다
여기서 Hi(x)는 Gi의 엔트로피이고 Sc는 BC의 average normalized entropy를 측정합니다.
High Sc on Unknown Samples
Eq. (1)을 통해 BC는 훈련하는 동안 known 샘플에 대해 낮은 엔트로피를 생성하지만, 모든 unknown 샘플에 대한 높은 엔트로피는 보장되지 않습니다. unknown 샘플의 높은 Sc를 얻기 위해 DAU에서 목적 함수는 다음과 같이 변형됩니다.
이 손실을 최소화하는 것은 각 Gi의 엔트로피를 최대화하는 것과 동일한데 이는 unknown 샘플에 대해 균일한 확률 p = [ 1/ 2 , 1/2 ]를 출력할때 손실이 최소화 될 수 있음을 논문에서는 증명하고 있습니다.
Training for Distance-based Entropy Scoring
open-set AL에서는 Sc만 사용할 경우 known 카테고리와 가까운 거리에 있는 unknown 샘플이 선택된 가능성이 있습니다. 따라서 더 높은 정밀도를 달성하기 위해 Distance-based 엔트로피 점수 Sd를 사용합니다. Sd를 계산하기 위해 DAU 샘플을 활용하게 됩니다. 일반적으로 unknown 샘플은 그들의 gt 레이블에 가까운 분포에 위치하면서 다른 카테고리들로부터 떨어져 있으므로 낮은 Sd를 나타냅니다. 반면에 known 샘플은 모든 unknown 카테고리로부터 멀리 떨어져 있어 높은 Sd를 나타냅니다.
Distance-based Entropy
Sd를 계산하기 위해서는 DAU 샘플에 대한 정확한 카테고리 라벨들이 없기에 FINCH 클러스터링 알고리즘을 사용하여 샘플들을 클러스터링합니다. 이때 클러스터 수를 K로 고정하고 각 클러스터의 중심을 다음과 같이 계산합니다.
Sd는 다음과 같이 정의됩니다.
여기서 qi(x)는 샘플 x가 i번째 클러스터에 속할 확률이고, T는 temperature입니다. 기본적으로 샘플의 클러스터 중심으로부터의 거리를 계산하고, 확률 벡터 [q1(x), q2(x), …, qK (x)]를 형성하고, 이를 정규화된 엔트로피로 계산합니다.
Low Sd on Unknown Samples
F (·)의 크로스 엔트로피 손실을 사용하여 일반적으로 known 샘플이 feature space에서 ci에 대해 높은 거리를 갖도록 훈련하므로 높은 Sd값이 보장됩니다. 그러나 모든 active unknowns 샘플들을 하나의 open-set class로 취급하므로 unknown 샘플에 대한 낮은 Sd 값은 보장할 수 없습니다. 따라서 저자는 각 클러스터 내에서 더 밀집성을 높이고 서로 다른 클러스터 사이의 거리를 유지하기 위해 피쳐를 정규화합니다. 구체적으로, DAU 샘플의 샘플 x에 대해 Tuplet 손실을 사용하여 F(x)와 클러스터 중심 cy^ 사이의 거리를 줄이고 cy^로부터의 거리와 cj != y^ 사이의 거리 사이의 큰 거리를 갖도록 설계합니다. 이 손실은 다음과 같이 작성할 수 있습니다
Query Strategy
이제 최종적인 Query Strategy는 다음과 같이 표현됩니다.
known, unknown 샘플에 따라 엔트로피 점수는 어떻게 생성되는지 다시 정리를 해보면 known 샘플은 해당하는 known 카테고리에가깝게 형성이 되고 (Sc ↓) unknown 카테고리에 대해서는 멀게 형성이 됩니다(Sd ↑). 반면에 unknown 샘플은 그 반대로 적용됩니다 (Sd ↓ 및 Sc ↑). 결과적으로 S(x)를 활용하여 known, unknown 샘플을 효과적으로 분리할 수 있게 됩니다.
Overall Loss
최종적인 목적함수는 다음과 같습니다.
Experiments
저자는 CIFAR-10, CIFAR-100, TinyImageNet 데이터셋을 사용하여 실험을 진행합니다. CIFAR-10 및 CIFAR-100 데이터셋은 각각 50000개의 훈련 이미지와 10000개의 테스트 이미지를 포함하며 TinyImageNet은 200개의 카테고리에 속하는 100000개의 훈련 이미지와 20000개의 테스트 이미지를 포함하는 데이터셋입니다. 저자는 각각의 데이터셋에 대해 mismatch ratio의 비율을 달리하며 실험을 진행합니다. 여기서 mismatch ratio는 |K| /|K|+|U| 로 정의되는데 여기서 |K|는 known 클래스의 수이고 |U|는 unknown 클래스의 수입니다.
실험 결과 Fig 3, 4, 5를 확인해보면 제안된 접근 방식이 거의 모든 데이터셋과 mismatch ratio에서 다른 baseline을 능가하는 것을 볼 수 있습니다. 구체적으로, 저자의 방법은 CIFAR-100에서 mismatch ratio이 20%인 경우 MQNet 및 LfOSA와 비교하여 각각 3.88% 및 6.00%의 차이를 보이고 mismatch ratio가 증가함에 따라, LfOSA와 표준 AL 방법 간의 성능 격차가 줄어드는 것을 관찰할 수 있습니다. Fig 6에서는 다양한 AL 방법들과 비교하여 known 샘플을 고르는 정밀도 실험을 진행합니다. 이 그림에서 볼 수 있듯이 저자의 접근 방식은 다른 AL 방법들보다 좋은 precision 결과를 보이는 것을 확인할 수 있습니다.
정리를 하자면 본 논문에서는 known,unknown 클래스 분포를 활용하여 open-set active learning 문제를 해결하기 위한 새로운 프레임워크를 제안합니다. 구체적으로 known 카테고리 분포에 대한 샘플의 불확실성을 측정하는 Closed-set Entropy 점수와 unknown 카테고리 분포에 대한 불확실성을 측정하는 Distance-based Entropy 점수를 포함합니다. 이러한 엔트로피 점수를 활용하여 known,unknown 샘플을 효과적으로 분리하고, 이어서 클러스터링을 통해 가장 정보량이 많은 샘플을 선택하는 open-set active learning의 한 방법론이라 할 수 있겠습니다.
안녕하세요, 좋은 리뷰 감사합니다.
이번 로보틱스 제안서 작업에 Active learning 내용이 들어가는 데 이해를 하는 게 어려웠었던 기억이 있어 관심을 가지고 읽게 되었습니다. known/unknown 문제를 풀기 위해 많은 분야에서 문제 해결을 위해 사용되고 있는 것 같습니다.
간단한 질문 2가지만 드리고자 합니다.
1. 식(2)의 close-set entropy 같은 경우 k개의 클래스만큼 entropy 값들에 대한 평균을 취하는 것으로 보이는데 여기서 사용되는 log(2)는 어떻게 나오는 건가요?
2. Distance-based Entropy 섹션에서 사용되는 FINCH clustering은 K-means와 거리를 고려하는 것은 동일하나, temperature 값을 고려하여 좀 더 잘 clustering을 하는 건가요? temperature를 통해 확률까지 고려할 수 있다고 이해하면 될지 궁금합니다.
감사합니다.
안녕하세요 희진님 좋은 질문 감사합니다.
1. 본문의 Hi(x) 수식의 그래프 형태를 설명드리면 (0,1) 범위에서 x=1/2 대칭인 위로 볼록한 함수를 갖습니다. 그리고 이때 x=1/2에서 최댓값 log2를 갖기때문에 스케일링 해주기위해 포함된게 아닐까 생각합니다.
2. temperature의 경우 softmax의 분포를 조정해주는 매개변수입니다. temperature를 적용시키는 이유는 softmax의 결과가 엔트로피가 작거나 랜덤성이 작을 수 있습니다. 따라서 무작위성을 늘리기 위해 temperature로 스케일링해주게 되고 이 결과로 분포가 균일해지고 엔트로피 값이 증가하는 효과를 준다고 생각하시면 될 것 같습니다.
감사합니다.
안녕하세요, 정의철 연구원님, 좋은 리뷰 감사합니다. open set에 대한 AL은 생각해 본 적이 없는데, 좋은 주제안깃 같습니다. 특히 known/unknown을 분류한 뒤 known class를 분류하는게 신선했네요.
마지막 experiment 부분에서 질문이 있는데, 저자들이 제안한 방법 말고 다른 방법들은 open-set에 대해서 어떻게 처리하나요? 그리고,figure6의 precision 그래프는 어떻게 해석해야 하나요? 이 부분에 대해서 추가적으로 알려주시면 감사하겠습니다.
감사합니다.
안녕하세요 재연님 좋은 질문 감사합니다.
다른 논문들에서도 일반적으로 mismatch ratio를 사용해서 open-set 환경을 만들어 실험을 진행하곤 합니다. 그리고 precision에 대한 설명을 제가 본문에 빠트려서 수정했습니다. precision실험은 known 샘플을 고르는 성능을 평가한 그래프라고 이해하시면 될 것 같습니다.
감사합니다.
안녕하세요. 좋은 리뷰 감사합니다.
BCE loss(수정 버전)에서 각 샘플에 대해 positive와 가장 가까운 negative 결정 경계들만을 업데이트한다고했는데, 가장 가까운 decision boundary만 업데이트 하는 것인지,, 혹은 기준이 따로 있어서 그 안에 드는 negative decision boundary들을 다 업데이트 하는지 궁금합니다. .. .. 또 이 손실함수를 사용하는 이유가 BC가 negative class로 bias되는 것을 완화하기 위함이라고 하셨는데 BC가 뭔가요 ?
감사합니다.
안녕하세요 윤서님 좋은 질문 감사합니다.
BC는 Binary Classifier를 의미합니다. BCE 손실 함수의 수식을 보면 -log(pi)-min(log(1-pj))이 되어있음을 확인할 수 있습니다. 이 수식에서-min(log(1-pi))를 추가시키는 이유는 i번째 decision boundary에 속하지만 다른 decision boundary와도 가깝게 속해있어 경계를 더 구분짓기 위해 사용하는 방법입니다. 예를 들어 총 3개의 클래스가 있을때 첫 번째 클래스에 속하는 이미지에 대해 p1의 확률값이 0.9이고 나머지 클래스의 확률 값이 각각 0.8,0.2를 가질때 여기서 negative decision boundaries는 0.8의 확률값을 가진 두번째 클래스가 되며 이를 손실함수에 포함시키겠다는 의미입니다.
감사합니다.