[CVPR 2021] Multiple Instance Active Learning for Object Detection

지난번 리뷰에서 Active Learning + Object Detection 에 대해 알아보겠다고 했는데요, 이번에는 두번째 시간입니다. 지난 리뷰는 Object Detection에 Active Learning 을 적용한 것 자체에 큰 의의가 있던 연구였습니다. 다시말해, Classification에 한정지어 연구되었던 AL을 Object Detection으로 확장시켰을 수는 있었지만, 여전히 많은 개선점이 존재했습니다. 예를 들어, 여러 인스턴스가 존재하는 이미지에 대한 대응이 어려웠는데요, 이번 논문에서는 Multiple Instance 이미지에도 대응하여 가치를 부여할 수 있는 연구를 수행하였습니다.



1. Introduction

Active Learning(이하 AL)은 인공지능 모델이 학습할 데이터를 스스로 선택할 수 있을 때, 보다 적은 학습 데이터 샘플로도 더 나은 성능을 달성할 수 있다는 가정에 기초하여 활발하게 연구되어 온 분야입니다. 보통 AL에서는 데이터의 Uncertainty(불확실성)를 어떻게 정의하고 측정할지에 초점을 맞추고 연구가 진행되었습니다. 그러나 대부분의 AL 연구가 이미지 분류(Classification)에 집중되어 있고, Object Detection(이하 OD) 에서는 이미지 내 여러 인스턴스의 위치까지 고려해야하다보니 상대적으로 연구가 덜 진행되었습니다. 게다가 이전 AL+OD 방법들은 주로 인스턴스 단위의 Uncertainty를 이미지 Uncertainty으로 단순화하여 평균내는 방식을 사용했으나, 이는 *Negative Instance 불균형을 간과하게 만들어 부정확한 Uncertainty이 계산될 수 있습니다.

Task.png

이에 대응하여, 저자들은 Multiple Instance Active Learning for Object Detection (MI-AOD) 방법을 제안하였습니다. MI-AOD는 Unlabeled 데이터셋에서 정보량이 많은 이미지를 선택하기 위해, Instance Uncertainty를 학습하고 재조정하는 것을 목표로 합니다. 이를 위해 Instance Uncertainty Learning (IUL) 모듈을 도입하여, Labeled 데이터셋으로 학습된 두 개의 classifier의 예측 불일치를 이용하여 Uncertainty를 평가하였습니다. 추가로, multiple instance learning(MIL)을 통해 인스턴스 Uncertainty과 이미지 Uncertainty 사이의 관계를 설정하고, 이미지 Uncertainty을 재조정하였습니다. 이를통해 MI-AOD는 정보가 풍부한 인스턴스는 강조하고, 잘못 예측되었거나 노이즈인 인스턴스를 억제하여, Labeled-Unlabeled 데이터 사이의 갭을 줄일 수 있게 도울 수 있었습니다.

2. Method

본 논문에서는 각 이미지를 여러 인스턴스가 포함된 ‘인스턴스 백’으로 간주하였습니다. 여기서 중요한 가정 하나는 labeled set의 데이터 분포가 실제 데이터 분포와는 다르게 다소 편향되어 있다는 것입니다. 이는 unlabeled set에서 정보가 풍부한 인스턴스들, 즉 가치가 있는 인스턴스들이 labeled set 분포와 다른 지점에 존재할 가능성이 높다는 의미입니다. 따라서, 저자는 이러한 지점에 위치한 인스턴스를 효과적으로 찾아내는 기준을 설정하고자 하였습니다. 즉, labeled set과 unlabeled set 분포 차이를 극복하여, 불확실성이 높은 인스턴스를 선택함으로써 AL 효율을 극대화하고자 한 것이죠.

2.1 Instance Uncertainty Learning

저자는 각 이미지 내의 여러 객체, 즉 Instance들을 분석하기 위해 두 개의 분류기를 사용하였습니다. 다양한 Instance로 구성된 각 이미지에 대해서, 두 개의 분류기가 각각의 Instance에 대해 독립적으로 예측을 수행합니다. 이 두 분류기는 같은 Instance에 대해 서로 다른 결과를 발생할 수도 있으며, 이 때 나타나는 예측값의 차이를 통해 해당 Instance의 불확실성을 측정하게 됩니다.

여기서 두 분류기의 예측 불일치를 최대화하는 것이 중요합니다. 즉, labeled set에서 두 분류기가 서로 다른 예측을 할수록, 그 Instance는 불확실성이 높다고 할 수 있습니다. 왜냐? 서로 다른 초기화가 적용된 동일한 구조의 분류기 2개를 동일한 데이터로 학습을 시켰을 때, 어떤 데이터에 대해 서로 다른 출력을 발생시킨다면 그 데이터에 대해서 모델의 불확실성이 높다고 판단할 수 있겠죠. 또한 불확실성이 높은 Instance는 정보가 풍부하다고 여겨지므로, unlabeled set에서 이러한 Instance들을 찾을 수 있는 능력을 가지는 것이 중요합니다.

이에 따라 저자가 제안하는 모델은 상단 Fig.3 (a) 과 같이 3개의 브런치로 구성됩니다. RetinaNet 기반의 검출기 하나, 그리고 두 개의 인스턴스 분류기 2개죠. 따라서 Labeled dataset을 사용하여 세 가지의 브런치를 학습합니다.

  • FL은 인스턴스 분류를 위해 사용되는 Focal Loss
  • SmoothL1은 바운딩 박스의 위치를 위해 사용되는 Smooth L1 loss
  • \hat{y_i^{f_1}}, \hat{y_i^{f_2}} 는 각각 첫 번째와 두 번째 분류기가 예측한 클래스 확률
  • \hat{y_i^{f_r}} 는 Regressor가 예측한 바운딩 박스의 위치
  • y_i^{cls}, y_i^{loc}는 각 인스턴스의 실제 클래스와 loc GT

이 과정에서 사용되는 Loss 함수 (1)은 두 분류기의 예측 불일치를 최대화하면서도, Labeled set에 대한 검출 성능을 유지하도록 도울 수 있습니다. 이렇게 함으로써, 불확실성을 효과적으로 학습하고 이를 기반으로 정보가 풍부한 Instance를 효율적으로 추출할 수 있게 됩니다.

Maximizing Instance Uncertainty

저자는 정보가 풍부한 인스턴스를 찾아내기 위해 두 개의 분류기의 예측 불일치를 최대화하고자 하였습니다. Fig.3 (b)와 같이 이 과정에서 인코더의 역할을 하는 \theta_g​는 freeze되어 labeled-unlabeled셋의 분포는 유지시킵니다. 그러면서 f_1, f_2 모든 인스턴스에 대한 예측 불일치를 최대화하도록 세밀하게 다시 tunning 합니다. 이와 동시에 labeled set에서의 검출 성능을 유지해야하기 때문에, loss를 아래와 같이 설계하였습니다

이 loss 함수는 두 분류기가 생성하는 예측 간의 불일치를 측정하는 것으로, 더 큰 불일치를 보이는 인스턴스는 더 큰 불확실성을 가지며, 따라서 더 정보가 풍부하다고 간주됩니다. 이 때, 수식 (3)이 두 분류기 f_1, f_2가 예측한 결과 간의 절대 차이를 나타냅니다.

Minimizing Instance Uncertainty

앞에서 f_1, f_2의 분류기 차이가 더 커지도록 학습을 하여, 인스턴스의 불확실성을 최대화하였습니다. 그 다음 단계로 다시 예측 불일치를 최소화하여 labeled set과 unlabeled set의 분포 편향을 줄이고, 이들의 특성을 가능한 한 일치시켜야 합니다. 이 과정에서 분류기의 파라미터인 \theta_1, \theta_2는 고정되고, 백본의 파라미터 \theta_g​는 예측 불일치 손실을 최소화하도록 업데이트 됩니다. Fig.3 (c)에서 이 과정을 확인할 수 있습니다.

즉, 예측 불일치를 최소화함으로써, labeled set과 unlabeled set의 feature가 서로 더 잘 맞게 조정됩니다. 이러한 최소화 과정은 활성 학습 주기마다 여러 번 반복되며, 이를 통해 인스턴스의 불확실성 학습과 두 데이터셋 간의 인스턴스 분포가 점진적으로 조화를 이루는 효과를 발생시킨다고 합니다.

특히, 이 과정은 비지도 학습 과정으로 설명할 수 있다고 합니다. 여기서 unlabeled set 정보(즉, 예측 불일치)를 활용하여 검출 모델의 성능을 개선하게 되는데, 간단히 말해, 초기에 불확실성이 높은 인스턴스를 식별하고, 그 후에는 모델이 이러한 불확실성을 줄이도록 학습하여 전반적인 데이터의 일관성과 모델의 정확성을 향상시키는 것이죠. 이는 labeled로만 학습한 모델이 unlabeled 데이터에서도 잘 작동하도록 만든다고 합니다.

지금까지 2.1 Instance Uncertainty Learning 방법론 그림과 함께 정리해보겠습니다. 우선 2개의 분류기를 사용하여 labeled set으로 각 인스턴스를 구분하게 학습합니다. 그 다음 f_1, f_2의 instance uncertainty 를 최대화하도록 학습하여 불확실성을 구분합니다. 이 과정 중 unlabeled와 labeled 사이의 분포가 벌어졌을 테니 다시 이 간극을 줄이도록 최소화하도록 재학습 합니다.

2.2 Instance Uncertainty Re-weighting

Multiple Instance Learning(MIL)은 인스턴스 불확실성과 이미지 불확실성 사이의 간극을 메우기 위해 제안되었습니다. 이를 위해 저자는 이미지를 ‘인스턴스 백’으로 취급하고, 각 인스턴스의 분류 예측을 사용하여 전체 백의 라벨을 추정하고자 하였습니다. 이 과정에서 인스턴스의 불확실성 점수를 재조정하며, 이는 Expectation-Maximization 과정을 통해 인스턴스의 불확실성을 전체 백에 걸쳐 재조정하고 잘못된 인스턴스를 필터링하는 역할을 수행하고자 하였습니다.

MIL 절차를 위해, MIL 분류기(f_{mil})를 추가적으로 사용하였습니다. 그리고 앞서 정의한 인스턴스 분류기 f_1, f_2와 병렬적으로 학습되며, 각 이미지에서 여러 인스턴스의 분류 점수를 계산하는 역할을 수행합니다. 여

기서 f_{mil}N×C 행렬로, 각 인스턴스에 대한 클래스 c의 점수를 나타낸다고 합니다. y_{cls}^{i,c}​ score는 다음과 같은 두 조건을 만족할 때 커지게됩니다:
(1) 인스턴스 x_i​가 클래스 c에 속하며,
2) 해당 인스턴스의 분류 점수가 다른 인스턴스의 점수보다 훨씬 높을 때.
다시 말해, 이는 그 인스턴스가 해당 클래스에 속할 가능성이 높음을 의미합니다.

따라서 classfication loss l_{imgcls} 은 인스턴스의 MIL 점수와 분류 출력을 기반으로 계산되고, labeled set은 초기 모델 학습할 때만 사용되고 이후에는 unlabeled set으로 인스턴스 불확실성을 재조정하게 됩니다. 위의 loss는 MIL 점수가 높은 인스턴스를 활성화시키고, 점수가 낮은 인스턴스를 배경으로 간주하여 억제할 수 있습니다.

결과적으로, 저자는 이를 통해 불확실성이 높은 인스턴스를 정확하게 식별하고, 중요한 정보를 담은 인스턴스를 강조하고자 한 것이죠. 아래 그림 Fig.4 (a)가 지금까지 설명한 부분입니다.

Uncertainty Re-weighting

그 다음으로, 인스턴스의 불확실성을 이미지의 불확실성과 일치시키기 위해 불확실성 재조정(Uncertainty Re-weighting) 절차에 대해 설명드리겠습니다. 이 과정에서는 각 클래스에 대한 이미지 분류 점수를 점수 벡터 w_i​로 모으고, 이를 사용하여 인스턴스의 불확실성을 재조정한다고 합니다.

w_i = \hat{y}^i_{cls}는 각 인스턴스의 클래스에 대한 분류 점수를 나타내는데, 이를 활용하여 인스턴스의 불확실성에 다시 가중치를 부여하여 계산합니다. 높은 이미지 분류 점수를 가진 인스턴스는 더 중요하게, 낮은 점수를 가진 인스턴스는 억제되는 효과가 있습니다. 이를 위해 저자는 loss 함수를 아래 수식 8과 같이 수정하였습니다.

이 과정에서 MIL 분류기의 파라미터(\theta_{f_{mil}})도 포함하여 전체 파라미터를 업데이트하였습니다

unlabeled에 대해서는 Eq. 9를 사용하여 loss를 최적화하였습니다 여기서는 인스턴스 분류기의 출력을 사용하여 pseudo-label을 추정하고, 이를 기반으로 loss를 계산합니다. 이 때, 배경과 헷갈릴 수 있는 인스턴스를 구분하기 위해 최대 인스턴스 점수를 사용하였다고 합니다.

이 과정을 반복적으로 최적화함으로써, 동일 클래스 내에서 정보가 풍부한 객체 인스턴스가 통계적으로 강조되고, 배경 인스턴스는 억제될 수 있게됩니다. 이러한 방식으로 이미지 분류 손실을 최소화하면, 인스턴스 불확실성과 이미지 불확실성 사이의 갭을 줄일 수 있게 되는 것이죠. 앞서 저자가 주장했던 multi-instance 중에 negative instance에 대한 영향을 줄일 수 있는 방법을 찾은 것이죠

지금까지의 내용을 정리하면 그림 2의 2행에 해당합니다. 여러번 학습을 해야해서 다소 복잡한 면이 있었떤 것 같습니다.

2.3 Informative Image Selection

MI-AOD의 학습 사이클은 지금까지 설명한 2.1 IUL과 2.2 IUR이 포함됩니다. 이러한 단계를 지나고 unlabeled 데이터 중 가장 정보가 많은 이미지를 선택해야하는 데, 수식 (3)에서 정의된 상위 k개의 인스턴스 불확실성을 기반으로 결정됩니다.

3. Experiments

3.1 Performance

우선 다양한 AL 방법들과 MI-AOD 방법을 비교하였습니다. 실험에는 PASCAL VOC, MS COCO 데이터셋을 사용하여 RetinaNet과 SSD와 같은 다른 OD 모델을 사용하였습니다. 또한 mAP로 성능을 평가하였습니다.

MI-AOD는 RetinaNet과 SSD 두 종류 모두에서 다른 방법들보다 높은 성능을 보였습니다. 특히, labeled 샘플의 비율이 5%, 7.5%, 그리고 10%일 때 각각 18.08%, 7.78%, 5.19% 이라는 성능 향상을 보였습니다. 20%의 샘플을 사용했을 때는 72.27%의 검출 mAP 를 달성하여, CDAL 방법보다 3.20% 높은 성능을 보였습니다.

MS COCO 데이터셋에서도 MI-AOD는 더 많은 카테고리, 더 조밀한 객체, 그리고 더 큰 스케일 변화를 포함하는 환경에서 우수한 성능을 보입니다. labeled 샘플의 비율이 2.0%, 4.0%, 그리고 10.0%일 때, 각각 Core-set과 CDAL 방법을 0.6%, 0.5%, 2.0% 그리고 0.6%, 1.3%, 2.6%로 능가하는 성능을 보여주었습니다.

3.2 Ablation study

각 모듈 별 효과


IUL (Instance Uncertainty Learning)을 사용했을 때, PASCAL VOC 데이터셋에서는 마지막 학습 주기에서 검출 성능이 70.06%로 증가하여 Random보다 2.97% 높았습니다. CIFAR-10는 2.0%의 샘플을 사용할 때 이미지 분류 성능이 7.06% 증가한 58.07%. 이 결과들은 인스턴스 불확실성 추정을 위한 IUL의 효과를 보였다고 하빈다.

IUR (Instance Uncertainty Re-weighting)를 사용했을 때, Tab1과 Tab3을 보면 초기 학습 주기에서 성능이 5.04%에서 17.09%까지 향상되며, 마지막 주기에서는 IUL과 비교하여 1.28%, Random과 비교하여 1.39% 높았다. 또한, 전체 이미지를 사용한 학습에서는 IUR을 포함한 탐지기가 IUR이 없는 탐지기보다 1.09% 더 나은 성능을 보입니다. 이는 IUR 모듈이 방해가 되는 인스턴스를 억제하고 더 대표적인 인스턴스를 강조하여 더 좋은 성능을 보였다고 합니다.

3.3. Model Analysis

그림 6은 학습된 불확실성과 재조정된 불확실성, 그리고 인스턴스의 이미지 분류 점수를 시각화한 것. IUL만 사용할 경우, 배경에서의 방해 인스턴스가 존재하거나 진짜 Positive 인스턴스를 놓칠 가능성이 있는 반면, MIL은 관심이 있을만한 인스턴스에 높은 이미지 분류 점수를 할당하면서 배경을 억제하는 결과를 보였습니다. 그 결과, IUR은 이미지 분류 점수를 활용하여 인스턴스의 불확실성을 정확하게 예측하도록 재조정할 수 있게 됩니다.

그림 7을 통해 각 AL 주기마다 선택된 TP 인스턴스의 수를 확인 가능. MI-AOD는 모든 학습 주기에서 더 많은 TP를 찾음. 이는 MI-AOD 접근법이 TP 객체를 더 강조하고 방해가 되는 인스턴스를 필터링함으로써, OD 성능 향상에 도움이되는 데이터 선택에 유리함을 확인.

4. Conclusion

본 논문을 통해 MI-AOD는 인스턴스의 불확실성과 이미지 불확실성 사이의 관계를 모델링하고, 정보가 풍부한 인스턴스를 강조하며 소음 인스턴스를 억제하여 보다 좋은 성능을 내는 결과를 확인할 수 있었습니다.


가장 뛰어난 성능을 보였다는 것은 실험이 입증하지만, 학습 과정이 너무 많고, 학습해야하는 분류기도 너무 많다는 측면에서 학습 시간 및 복잡도에 의문이 생기긴 했습니다. 다만 두 개의 분류기를 사용하여 불확실성을 예측한다는 아이디어 자체는 재밌었던 것 같습니다. 그리고 여전히 localization 에 대한 정보는 불확실성을 계산하는 데에 고려되지 않는다는 점이 저에게 궁금증을 유발하였습니다: 정말 중요하지 않은 정보기에 고려하지 않는 것인지, 아님 너무 어려워서인지.. 이와 관련한 후속 논문은 없는지 다음 리뷰에서 살펴보겠습니다.

Author: 홍 주영

3 thoughts on “[CVPR 2021] Multiple Instance Active Learning for Object Detection

  1. 안녕하세요.
    예전에 세미나에서 보여주셨던 논문인 것 같은데 그때도 그랬지만 지금 다시 봐도 내용이 쉽지는 않네요.

    궁금한 점이 있는데, 리뷰 글 초반 부분 (“주로 인스턴스 단위의 Uncertainty를 이미지 Uncertainty으로 단순화하여 평균내는 방식을 사용했으나, 이는 *Negative Instance 불균형을 간과하게 만들어 부정확한 Uncertainty이 계산될 수 있습니다.” )에서 “Negative instance imbalance”라는 단어가 언급되는데 negative instance imbalance가 뭔가요?

    둘째로 instance의 class를 구분하는 분류기의 예측 값 사이에 오차를 계산하여 불확실성을 나타내는데, 이 분류기는 각자 같은 모델 구조에 각자 학습이 되는 방식인가요? EMA 방식은 아닌 것이죠?

    마지막으로, 모델 학습이 학습 초기에는 labeled set으로 학습을 하고 그 이후에는 unlabeled set으로 학습이 되는 것처럼 비춰지는데, 수식2에서 L_det와 L_dis에 대한 loss 텀은 labeled set에서 사용이 되고 unlabeled set에서는 GT가 없으니 L_det loss를 제외한 L_dis loss만 적용된다고 이해하면 되나요?

    감사합니다.

  2. 안녕하세요 주영님 좋은 리뷰 감사합니다.
    본문에서 두 개의 분류기 (f_1, f_2)의 차이가 더 커지도록 학습을 하여, 인스턴스의 불확실성을 최대화한다고 하셨는데, 저는 이 문장을 읽고 저자가 의도적으로 두 분류기의 불일치를 최대화 하는건가라는 생각이 들었습니다. 그게 맞다면 Loss 함수(1)의 수식에서 두 분류기의 불일치를 최대화하는것 같은데 그렇게 만들어주는 부분이 Focal Loss인가요? Focal Loss가 어떤 역할을 하는지가 궁금합니다.
    그리고 f_1, f_2의 차이가 더 커지도록 학습을 하는 이유는 무엇인가요? 이렇게 하면 분류기의 성능이 더 않좋아 질 것 같은데 그냥 train dataset으로 각각 학습시킨뒤에 예측 불일치가 큰 데이터를 사용하면 안되는건가요?
    감사합니다.

  3. 리뷰 잘 읽었습니다.

    2.1절, Fig3-(a) 에 대한 간단한 궁금증이 있습니다. 그림을 보아하니 labeled set pretraining 단계에서도 3가지 loss term이 결합된 l_det 이 사용되는 것으로 보여집니다. (a) 단계에서는 아직 feature extractor g 가 freeze 되기 전이기 때문에 3가지 loss term의 계산 결과가 모두 g에 반영될 것 같은데, 이 과정 속에서 두 분류기를 통해 계산된 서로 다른 두 Focal Loss가 함께 반영이 되어버린다면 뭔가 모델이 헷갈려하면서 noise로 동작할 수도 있을 거 같은데,, 이 부분은 제가 잘못 이해했거나, 혹은 잘못 생각하고 있는 부분인가요??

    감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다