IEEE TCSVT, 2023

 

Preliminary

  1. Instance-based methods: 인스턴스 분류기를 슈도라벨을 이용해서 학습하고, Bag-level로 집계하는 방식
  2. Attention based bag level MIL: instance feature을 뽑은 후에, 이를 집계해서 bag label을 예측함. 주로 Attention weight을 이용하여 이를 instance-level classification처럼 이용.

 

Motivation: 기존 방법들의 단점

  1. Instance-base method: Bag label을 그대로 인스턴스 label로 할당하는 방법을 의미함. Instance pseudo label(할당된 라벨)의 노이즈가 많음. 실제 인스턴스 라벨을 모르기 때문에, 인스턴스 분류기의 품질을 모르고, 성능에 차이가 많이남 (Figure A).
  2. Bag-based method:
    1. Instance level classification 성능이 안좋음: 쉽게 식별가능한 인스턴스에 대해서만 Attention score가 높게 할당하여 학습되는 경향. 모든 positive 인스턴스를 고려하는 것이 아니라는 것 -> 몇 개의 인스턴스만 Attention score 엄청 높고 나머지 인스턴스는 낮게나옴
    2. Bag-level classification도 강건하지 않음: 몇개의 인스턴스만 스코어가 엄청 높아 이 스코어에 의존적으로 예측하다보니 Bag-level classification도 강건하지 않음. 만일 attention score가 높은 예측이 틀린경우, bag classification도 틀림(특히, positive instance가 몇 없는 경우). 논문내에서는 "laziness"라고 하여, 쉬운것만 배우려고하는 게으름(lazy)을 의미

 

 

Method


방법론 개괄: instance-based MIL에 1)contrastive learning, 2)prototype learning을 합친 INS을 제안

 

이 방법론의 주된 목적은 instance classifier을 학습하는 것. instance-based이기 때문.

  1. 임의의 패치($x_{i,j}$)을 하나 샘플링
  2. 이 패치를 서로 다른 방법으로 증강하여 View1(Query view), View2(Key view)을 생성
  3. Query view branch: Query view을 인코더에 전달하여 특징값을 뽑고, instance classifier와 projector에서 슈도라벨과임베딩 벧터를 얻음. 표기로는 클레스 예측($\hat{y}^{i,j} \in \mathbb R^{2}$)와 임베딩벡터 ($q_{i,j} \in \mathbb R^{d}$)에 해당.
  4. Key view branch: key view을 별도의 인코더에 넣고, 다시 projector에 넣어 임베딩 벡터($k_{i,j}\in \mathbb R^{d}$)을 획득.
  5. MoCo을 이용한 학습(Instance-level Weakly Supervised Contrastive learning):
    1. Enqueue: 인코더와 프로젝터의 학습은 MOCO 방식, Pico으로 업데이트. MoCo의 방식대로 key encoder의 값을 dictionary 에 enqueue 해서 넣음. 넣을 때, 슬라이드 이미지의 라벨에 따라 다르게 처리하여 넣음. MIL문제에서는 negative slide에서는 모두 negative patch이기 때문에, 모두 예측클레스를 사용하는게 아니라 0을 넣음. 반대로, positive slide에 대해서만 classifier을 추론시 킴. 그리고, 예측된 클레스( $\hat{y}^{i,j} $), 임베딩값($k_{i,j}$))을 넣음
    2. Contrastive learning: contrastive learning을 하기 위해서 positive, negative pair가 필요한데, 본문에서는 Family and Non-family Sample selection 이라고 표현.
      1. Family set $F(q_{i,j})$: 패밀리 샘플들은 2개의 집합의 합집합임. 첫 번째 집합은 같은 이미지로부터 나온 두 임베딩임 ($q_{i,j}, k_{i,j}$). 나머지 집합은 예측된 라벨과 같은 라벨을 지닌 이미지들임(즉, $\hat{y}_{i,j}$와 같은 임베딩값들을 의미함.
      2. Non-family set $F'(q_{i,j})$: Family set의 여집합을 의미. 즉, 여기서는 다른 예측 클레스 라벨(또는 negative slide)을 가진 임베딩인 경우.
    3. Positive key, Negative key selection: SuperCon(https://analytics4everything.tistory.com/303) 과 같은 알고리즘으로 contrastive learning을 진행. 차이라면, SuperCon에서는 instance label이 hard label로주어졋다면, 이 논문에서는 instance classifier와 negative bag을 이용해서 얻었다는 차이

    6. Prototype-based Psudo label (PPLG): Instance classifier을 학습하기 위한 방법. 주요가정: 고품질의 feature representation을 얻기위해서 정확학 psuedo labels을 할당해야함.

  • $s_{i,j}$: 슈도 라벨을 의미함. one-hot vector로 2차원으로 표현. [0, 1] 또는 [1, 0]임.
  • $\mu_{r}$: prototype vector을 의미함. $r$은 라벨을 의미함.

자세한 방법은 아래와 같음

  1. 2개의 슈도라벨을 생성: 프로토타입 벡터 ($\mu _{r} \in \mathbb R ^{d}, r=0,1$)을 생성. r은 라벨을 의미함. 즉 d차원을 가진 프로토타입 벡터를 생성
  2. 프로토타입 벡터 업데이트:
    1. True negative guided update: 패치가 negative positive bag에서 획득된 경우, 해당 패치도 negative일 것임. 따라서, $s_{i,j}=0$을 직접할당. 그리고 프로토타입 벡터도 이 임베딩값($q_{i,j}$)을 할당.
    2. Poistive update: positive prototype vector 
    3. 쿼리임베딩($q_{i,j}$)과 두 프로토타입($\mu_{r}$)과 내적. 내적값이 더 가까운쪽으로 학습하기위해서, onehot 인코딩으로 내적값을 [0, 1], 또는 [1, 0]으로 만듬
    4. 슈도라벨을 모멘텀 업데이트: $s_{i,j} = \alpha s_{i,j} + (1- \alpha ) z_{i,j}, z_{i,j} = onehot(argmax( q_{i,j}^{T}, \mu_{r))$
    5. 프로토타입 업데이트: 프로토타입 벡터($\mu_{c}$)을 classifier에 포워딩하여 얻은 클레스에 맞게 업데이트합니다.
    6. 슈도 라벨 업데이트: 식(7), 식(8)
    7. Bag constraint: mean pooling을 이용해서 bag embedding을 진행

 

    7. Loss

  • Bag loss: 패치 임베딩을 Mean pooling하여 라벨과 계산 (식10)
  • Total loss: $\mathcal{L}=\mathcal{L}_{IWSCL} + \mathcal{L}_{cls} +\mathcal{L}_{bc}$

 

 

 

 

반응형

+ Recent posts