안녕하세요 정의철 연구원입니다. 제가 이번에 리뷰할 논문은 ‘Active Learning for Open-set Annotation’이란 논문입니다. 기존 Active Learning 방법론 연구들은 모두 closed-set 상황에서 적용된 논문이여서 Open-set 상황에서 기존 Active Learning 방법론을 적용시키면 효율이 떨어지는 문제를 가지고 있었습니다. 이번에 리뷰할 논문은 Open-set Annotation 상황에서도 Active Learning을 적용시킬 수 있는 방법을 연구한 논문입니다. 그럼 리뷰 시작하도록 하겠습니다.
1. Introduction
딥러닝 모델의 성능은 주로 방대한 양의 라벨링된 데이터에 의존을 하게됩니다. 하지만 방대한 양의 데이터를 라벨링는 것은 비용이 많이드는 문제를 갖고 있습니다. Active Learning(AL)은 이러한 대규모 데이터 라벨링 문제를 해결하기 위해 고안된 방법이며 전체 데이터를 레이블링하는 대신 정보량이 높은 데이터 하위 집합을 선택하는 방법론입니다.
AL 기술에는 대표적으로 uncertainty-based methods와 diversity-based methods가 있습니다. uncertainty-based methods는 모델의 불확실성을 활용하여 언라벨 데이터에서 가장 정보량이 높은 샘플을 선택하는 반면, diversity-based methods은 최대한의 다양성을 나타내는 샘플을 선택함으로써 모델 학습을 향상시킵니다. 기존의 액티브 러닝 방법은 일반적으로 라벨링된 데이터와 언라벨된 데이터가 모두 동일한 클래스 분포에서 추출된 closed-set 상황에서 적용됩니다. 그러나 실제로는 언라벨된 데이터셋에 unknown 클래스의 데이터가 대량으로 포함되어 있을 것 입니다. unknown 클래스에 대해 부연 설명을 하자면 예를 들어 개와 교양이를 분류하는 테스크를 수행하는 classifier가 있을때 언라벨된 데이터셋에 개, 고양이뿐만 아니라 판다,오리 등이 개, 고양이는 known 클래스 판다나 오리 등이 unknown 클래스에 속하게 됩니다. 판다나 오리 이미지들은 원하는 분류기를 훈련시키는 데 필요하지 않으므로, 이러한 이미지들에 라벨을 붙이는 것은 라벨링의 예산 낭비로 이어질 것입니다.
한편,closed-set 상황에서 적용된 액티브 러닝 방법론은 이러한 관련 없는 이미지들을 정확하게 구별하지 못하고 더 많은 불확실성이나 정보를 포함한다 판단하여 라벨링할 데이터로 선택합니다. 따라서 opened-set 상황에서 적용될 수 있는 액티브 러닝 방법론이 필요합니다. 이를 위해서는 가정 정보량이 많은 데이터를 쿼리하면서 불필요한 클래스의 데이터를 정확하게 식별할 수 있어야 합니다. 본 논문에서는 이 문제를 Open-set Annotation(OSA) task로 정의합니다.
그림 1에서 보듯이, unlabeled set에는 K개의 known 클래스와 L개의 unknown 클래스가 포함되어 있으며, 여기서 L>K입니다. 목표는 unknown 클래스의 예제를 정확하게 걸러내는 동시에, 가능한 한 효율성이 높은 known 클래스의 쿼리 세트를 선택하는 것입니다. 이러한 문제를 해결하기 위해 저자 LfOSA(Open-Set Annotation에서 학습)라는 새로운 액티브 러닝 프레임워크를 제안합니다. 이 프레임워크에는 detector와 classification 모델이 포함되어 있습니다. 구체적으로, detector는 Gaussian Mixture Model(GMM)을 사용하여 각 데이터의 max activation value(MAV) 분포를 모델링하여 unlabeled open-set의 데이터를 known와 unknown set으로 나눕니다. 그런 다음 known set에서 더 큰 확신을 가진 데이터가 라벨링에 선택되어 쿼리 세트를 구성합니다. 라벨링 후, classification 모델은 업데이트 된 known 클래스로 다시 학습을 하게 됩니다. 여기서 헷갈릴 수 있는 부분은 쿼리 세트에 unknown 클래스의 예제 또한 포함될 수 있다는 것입니다. 이러한 unknown 데이터들은 detector를 업데이트하기 위한 train 데이터로 사용되어, detector가 unlabeled open-set에서 known 클래스의 데이터를 식별하는 데 더 높은 리콜을 유지할 수 있도록 합니다.
2. Algorithm
LfOSA의 프레임워크는 Fig2와 같으며 주로 세 가지 구성 요소로(detector training, active sampling, classifier training) 구성됩니다. 그럼 순차적으로 이 세 가지 구성 요소에 대해 알아보겠습니다.
Detector training
먼저 Detector 모델은 known,unkown 클래스를 구분해야하기에 K개의 known 클래스가 있을때 unkown 클래스를 추가하여 K+1로 클래스를 구분하게 됩니다. 그래서 Loss는 크로스 엔트로피로 구성되어있고 입력데이터는 모델 구조도에서처럼 labeled, Invalid set에서 가져오게됩니다. 이를 통해서 디텍터를 학습하게 됩니다.
여기서 qct는 softmax를 뜻하는데 변수로는 last fully- connected layer의 c-th activation value를 사용하게 됩니다. 그리고 T는 temperature를 뜻합니다. T로 스케일링 하는 이유는 activation value의 구분을 더 극대화해주기 위함인데 T가 1일때는 그냥 소프트맥스 형태를 띄고 T값이 줄어들수록 각 확률의 차이를 더 키워줄 수 있게됩니다. 그래서 저자는 T의 값을 0.5로 설정하여 확률 값들의 차이를 더 구분짓게 만들어 주었다고 합니다.
Active sampling
Detector training를 학습시킨 후, maximum activation value (MAV)을 활용해서 Active sampling을 수행합니다. 예를 들어 데이터 xi에 대해 예측된 클래스 c에 대해 해당하는 maximum activation value (MAV) mavci를 정의합니다.
학습된 Detector의 예측에 따라 언라벨된 데이터들은 K + 1개의 클래스로 분류됩니다. 그 다음 mavc 값을 활용하여 Gaussian Mixture Model (GMM)을 학습시키게 됩니다. Gaussian Mixture Model (GMM)은 확률 분포를 모델링하는데 사용되는 통계 모델입니다. 이 모델은 여러 개의 가우시안 분포를 조합하여 복잡한 데이터의 분포를 모델링하는데 사용되고 각 가우시안 분포는 데이터의 특정 부분을 대표하며, 이러한 분포들의 혼합으로 전체 데이터의 분포를 표현합니다. GMM은 기본적으로 각 가우시안 분포의 평균, 분산 및 혼합 계수를 추정하여 모델을 구축합니다. 따라서 GMM은 클러스터링을 하는데 사용되는 모델이라고 보시면 될 것 같습니다.
여기서 Wc는 클래스 c의 확률이고 모든 클래스의 확률을 합집합 시킨 후 정렬합니다.
다음으로, 가장 높은 확률을 가진 b개의 예제를 쿼리 집합으로 선택하여 주석을 요청합니다. 수식으로는 wi에 임계값 τ를 설정하여 쿼리 집합 Xquery를 얻을 수 있습니다. 여기서 τ는 b번째의 확률과 동일하여 정렬된 wi에 대해 b개의 예제만 선택가능하게 해줍니다.
레이블을 쿼리한 후, 레이블이 지정된 집합과 unknown 집합은 각각 Xqueryknown와 Xquery unknown에 추가함으로써 업데이트됩니다. 이후 레이블된 데이터 집합 DL을 기반으로 cross-entropy loss를 최소화하여 K-클래스 Classifier를 훈련시키게 됩니다.
Algorithm
LfOSA 알고리즘을 다시 한 번 정리하면 다음과 같습니다.
- Input으로 detector fθD 와 classifier fθC , labeled set DL 와 invalid set DI 가 주어집니다.
- DL데이터를 사용해 detector를 학습시킵니다.
- detector에 unlabelde set를 입력으로하여 Interence 시킨후 mavci 값을 뽑습니다.
- mavc 값을 활용하여 Gaussian Mixture Model (GMM)을 학습시킵니다.
- Wc의 확률을 합집합 시킨 후 정렬시킵니다.
- 가장 높은 확률을 가진 b개의 예제를 쿼리 집합으로 선택하여 주석을 요청합니다
- 레이블을 쿼리한 후, 레이블이 지정된 집합과 unknown 집합은 각각 Xqueryknown와 Xquery unknown에 추가함으로써 업데이트됩니다.
- 레이블된 데이터 집합 DL을 기반으로 cross-entropy loss를 최소화하여 K-클래스 Classifier를 훈련시키게 됩니다
3. Experiments
다음은 실험파트입니다. 먼저 데이터 세트로는 CIFAR10, CIFAR100, Tiny-Imagenet datasets을 사용합니다. 그리고 Open set 상황을 가정하기 위해 mismatch ratio를 사용하는데 mismatch ratio이란 총 클래스 수에서 known 클래스 수의 비율을 나타냅니다. 예를 들어 CIFAR10에서 mismatch ratio를 20%사용한다면 known 클래스 2개 unknown 클래스 8개가 됨을 뜻합니다. 그리고 평가지표로는 recalli과 precisioni이 있습니다.
recalli는 i번째 쿼리 후에 얼마나 많은 known 데이터가 쿼리되는지 계산하고 precisioni는 i번째 쿼리에서 known 데이터가 쿼리된 비율을 나타냅니다. Baselines으로는 1.Random 2.Uncertainty 3.Certainty 4.Coreset 5.BALD 6.OpenMax을 사용합니다.
먼저 recall,precision에 대한 실험입니다. 첫 번째, 두 번째 및 세 번째 행은 각각 CIFAR10, CIFAR100, Tiny-Imagenet datasets으로 실험한 결과이고 첫 번째, 두 번째 및 세 번째 열은 각각 20%, 30% 및 40% mismatch ratio에서의 결과를 나타냅니다. 사용된 데이터셋이나 mismatch ratio에 관계없이, 제안된 LfOSA 방법은 항상 모든 경우에 다른 방법보다 우수한 성능을 보입니다.
Classification의 성능에 대해서, LfOSA는 모든 경우에 일관되게 좋은 성능을 보여줍니다. 특히 CIFAR100에서는 다른 AL 방법들과 비교하여, LfOSA는 각각 20%, 15% 및 12%의 성능 향상을 달성합니다. 또한, unknown 비율이 증가함에 따라 LfOSA와 다른 방법들과 차이가 더욱 뚜렷해집니다. 이러한 결과는 제안된 LfOSA 방법이 OSA문제를 효과적으로 해결할 수 있음을 나타냅니다.
Fig 7과 Fig 8은 각각 openness, batch size에 대한 실험을 나타냅지다. 여기서 openness란 unlabeled pool에 open-set 데이터들이 있는지 나타냅니다. 예를 들어 CIFAR100에서 openness가 0%라면 기존 AL에서 연구되었던 환경과 동일한 closed-set을 의미합니다. openness을 0%에서 90%까지 증가시키면서 실험한 결과 openness이 0% 또는 매우 작을 때, LfOSA는 다른 방법과 비슷하지만 openness이 커지는 경우 recall,precision 모두에서 성능이 높아짐을 확인할 수 있습니다. Fig 8에서는 batch size 크기에 대한 효과를 실험합니다. b = 500, 1000, 1500, 2000, 2500일 때로 나누어 실험을 진행하고 일관되게 최고의 성능을 달성합니다.
마지막으로 LfOSA의 각 구성 요소에 대한 효과를 실험합니다. 여기서 w/o temperature, high temperature는 T가 각각 1과 2로 설정된 것을, w/o detector ,w/o classifier, . w/o invalid set은 각각 detector, classifier, invalid set이 사용되지 않음을 나타냅니다. Dichotomies는 detector를 대체하기 위해 이진 분류를 사용하는 것을 의미합니다. 이 실험 결과를 통해서 LfOSA의 구성 요소를 제거하거나 대체하면 성능이 하락하며 각 구성요소의 중요성에 대해 저자는 말하고 있습니다.
4. Conclusion
본 논문에서는 real-world large-scale annotation tasks를 위한 open-set annotation(OSA) 문제를 제시합니다. 이는 unlabeled open-set에서 target model training을 위한 known 클래스의 예제를 식별하는 것을 목표로합니다. 이를 위해 detector와 classifier를 분리하여 known 클래스의 예제를 정확하게 선택하기 위한 액티브 러닝 프레임워크인 LfOSA를 제안합니다. 이는 known, unknown 데이터를 모두 활용하여 detector를 훈련합니다. detector의 activation value는 Gaussian model에 활용되어 각 데이터의 max activation value (MAV)분포를 추정하고 MAV 분포를 기반으로, unlabeled data에서 known classes를 알 수 있고 이를 주석을 위한 쿼리 집합으로 구축할 수 있습니다. classifier는 그런 다음 레이블된 데이터로 업데이트됩니다. 이후 실험 결과를 통해 open-set annotation 상황에서 LfOSA 접근 방식의 우수성을 보여줍니다.
안녕하세요 의철님 좋은 리뷰 감사합니다.
리뷰를 읽으며 궁금한 점이 생겨 질문합니다. LfOSA 알고리즘에서 GMM(Gausian Mixture Model)에 대해 설명해주셨는데, 여러개의 가우시안 분포를 조합한다는 점이 와닿지가 않네요. 표준편차값을 다르게하는 여러가지 가우시안 분포를 계산한 후에 더하여서 모델링을 하는 방법인가요?
감사합니다.
안녕하세요 성준님 좋은 질문 감사합니다.
GMM은 여러 개의 가우시안 분포를 조합하여 복잡한 데이터를 모델링하는 확률적 생성 모델엔데 각각의 가우시안 분포는 데이터가 특정 클러스터에 속할 확률을 나타내게 됩니다. 따라서 이러한 분포들이 조합되어 전체 데이터의 분포를 설명합니다. 이때 각각의 데이터에 대해 여러 개의 가우시안 분포에 대한 확률 밀도 함수를 계산합니다. 그리고 각 가우시안 분포의 가중치를 고려하여 각 분포에 대한 확률을 조합합니다. 이러한 가우시안 분포들을 EM(Expectation-Maximization) 알고리즘을 사용하여 가우시안 분포의 평균, 공분산 및 가중치를 조정하며, 데이터에 가장 적합한 GMM을 찾는다고 이해하시면 될 것 같습니다.
감사합니다.
안녕하세요, 정의철 연구원님, 좋은 리뷰 감사합니다. 세미나에서 다뤄주셨던 내용인데 재밌네요.
읽다보니 몇가지 궁금한 것이 생겨 질문 남기겠습니다.
1. Detector 모델은 known/unknown 클래스를 구분하는 2진 분류기인 것인가요 아니면 k개의 known class+ 1개의 unknown class를 분류하는 다중 분류기인가요? 식만을 보면 k+1개의 다중분류같긴 한데 Figure1에서 보면 먼저 known/unkown을 구분하고 AL을 수행하기에 헷갈려서 질문 드립니다.
2. Detector training 부분에 나와있는 softmax 식에서 temperature를 나눠주는 이유가 무엇인가요? 가장 높을 값을 취하는것 이외에 confidence값 자체를 활용하는 부분이 있나요? T값을 0.5로 사용하는것 같은데 이 값은 어떻게 결정한 것인가요?
감사합니다.
안녕하세요 재연님 좋은 질문 감사합니다.
1. Detector 모델은 k개의 known class+ 1개의 unknown class를 분류하는 다중 분류기가 맞습니다. Figure1은 Open-Set Annotation상황의 문제 정의를 설명한 그림으로 이해하시면 될 것 같습니다.
2. 낮은 temperature을 사용하여 scailing 과정을 거치면 기존에 가장 높게 출력된 값은 더 높은 출력 값을 내뱉게 됩니다. 따라서 어떤 클래스에 속할 confidance를 더 높여 주게 됩니다. 이후 클러스터링을 위해 GMM모델이 사용되는데 GMM은 각 데이터가 특정 군집에 속할 확률까지 고려한 방법론입니다. 따라서 temperature scailing을 적용시키면 어떤 데이터가 특정 군집에 속할 확률이 더 높아지고 데이터의 구분을 더 명확하게 해주기위해 적용되었다고 이해하시면 될 것 같습니다. 추가로 0.5의 값은 실험을 통해 얻어진 값입니다.
감사합니다.
안녕하세요. 좋은 리뷰 감사합니다.
Open-set Annotation이라는 환경에 대해서 active leaning을 수행하는 것이 흥미가 생겨 읽어봤는데 상당히 재밌는 방법론인 것 같습니다. 리뷰를 읽으며 궁금한 점이 있어 질문 드립니다. 리뷰에서 detector는 Gaussian Mixture Model(GMM)을 사용하여 각 데이터의 max activation value(MAV) 분포를 모델링하여 unlabeled open-set의 데이터를 known와 unknown set으로 분리한다고 이해하였는데요. 궁금한 점은 이 논문에서 분포를 모델링하기 위한 모델로 굳이 GMM을 사용한 이유가 궁금합니다. 혹시 GMM 이외의 모델을 사용하여 따로 실험을 수행한 것이 있을까요? 제가 알기로는 GMM은 굉장히 오래전에 나온 모델로 지금은 GMM을 대체하기 좋은 많은 모델들이 나와있을 것이라 생각되는데 GMM을 사용할 수 밖에 없었던 이유가 있었는지가 궁금합니다. 아니면 이런 모델을 사용하고도 성능이 높게 나온다는 의미로 받아들어야 하는 걸까요?
감사합니다.
안녕하세요 주연님 좋은 질문 감사합니다.
GMM은 데이터를 확률적으로 모델링하기 때문에 각 데이터 포인트가 여러 가우시안 분포에 속할 확률을 나타낼 수 있습니다. 이는 클러스터링 뿐만 아니라 데이터 포인트의 불확실성을 고려하는 데 유용하기 때문에 저자는 GMM모델을 사용한 것 같습니다.
감사합니다.
안녕하세요. 리뷰 잘 읽었습니다.
지난 번 세미나 들은 이후 리뷰를 다시 읽어보니 간단한 궁금증이 생겼는데,
해당 open-set annotation에서는 기존 AL의 uncertainty-based 방법의 uncertainty를 통해 annotation 대상을 분별하는 과정이 존재하지 않는 것인가요?
실험 파트에서 uncertainty를 측정할 뿐, 이 값을 통해 annotation 대상을 분류하는 과정이 보이지 않아, 단순 GMM 모델링에 의존하는지에 대해 궁금합니다.