[KBS 2020] Knowledge based domain adaptation for semantic segmentation

안녕하세요,
오늘도 늘 먹던 분야의 논문을 가지고 왔습니다.

다만 KBS 라고 하는 저널은 많은 분들이 처음 보실거라 생각이 드는데요,
이는 Knowledge Based System (KBS) 라고 하는 저널입니다.
Impact Factor가 8 이상으로 꽤나 높은 Q1 급의 저널입니다.

뭐 아무튼, 해당 논문에 투고된 DA 논문 리뷰를 시작하도록 하겠습니다.


1. Introduction

사실 Domain Adaptation 기법으로 Semantic Segmentation task를 수행하는 논문을 많이 리뷰하였고,
이 글들의 초반부 내용들은 대부분 유사합니다.
annotation cost가 매우 크고, 그렇기 때문에 큰 규모의 labeled sourcedataset으로 부터 정보를 받아와 unlabeled target dataset의 성능을 최대치로 끌어올리는 것이 DA의 목적이고, 이때 source domain과 target domain 사이의 domain gap(discrepancy)를 줄이는 것이 핵심 포인트가 되겠죠.

앞선 많은 DA 방식들은 mapping 에 의존하게 됩니다.
다시 말해 feature level에서 source domain의 feature를 target domain으로 최대한 유사하게 mapping 함으로써 둘 사이의 domain shift를 최소화 하는것이죠.
성공적으로 domain shift를 최소화 했을 때 source dataset으로 학습 된 모델이 target dataset에서도 잘 동작하리라 하는 기대로 mapping 을 수행하게 되는것입니다.
그리고 여기서 보통의 방식들은 adversarial 방식을 채택해서 source domain에서 target domain으로 feature의 분포를 맞추게 됩니다.

비록 앞서 설명드린 feature mapping 방식을 통해 source와 target 사이에 존재하던 domain gap을 어느정도 잘 해결하긴 하였지만, 저자는 여기서 신박한 관점의 문제를 정의하게 됩니다.

feature mapping을 통해 DA를 수행하는 알고리즘(algorithm) 사람(human) 사이에는 근본적인 차이가 있다는 것이죠.
신경망 모델(알고리즘,algorithm)은 새로운 domain에 적응(adapt)할 때 feature mapping을 통해 수행했지만,
사람은 기존에 살던 곳과 다른 환경(environment, domain)에 적응할 때 feature mapping이 아니라 knowledge(지식) 을 사용한다는 뜻입니다.

조금 더 자세하게 살펴봅시다.
사람은 살고 있는 주변 상황을 knowledge(지식) 으로 학습하고, 이를 사람의 인식체계에 저장하게 됩니다.
이렇게 저장된 knowledge는 A가 아닌 B, C 등 새로운 장소(domain) 에 가던 동일하게 유지되고, 그대로 사용되겠죠.

저자는 사람(human)의 이런 적응-인식 체계에 영감을 받아서 새로운 domain에 가도 동일하게 유지되는,
즉 source와 target에 무관한 공통 지식(common knowledge) 개념을 제시하게 됩니다.
source와 target에 무관하게 공통되는 지식을 사용함으로써 source to target adaptation을 더 성공적으로 수행하고자 하는 것입니다.

앞서 설명드린 공통 지식(common knowledge) 라는 개념을 나타낸 것이 위 그림입니다.
사실 중요한 내용이 내포되어 있는것은 아니고, 기존 DA 에서는 위 하늘색 화살표가 나타내는 Feature mapping 기반 adaptation을 수행했다면, 본 논문에서는 아래의 빨간색 화살표가 나타내는 knowledge 기반 adaptation을 수행하겠다~ 뭐 이런 뜻입니다.

본 논문에서는 knowledge 라는 개념을 semantic classes에 대한 descriptions로 사용하게 됩니다.
말이 조금 어려울 수도 있는데, 각 class에 해당하는 text로 부터 추출된 embedding vector를 knowledge 라고 칭하는 것입니다.
이에 대한 설명과, 본 논문의 전체 동작 과정에 대해선 아래 method에서 자세하게 설명드리도록 하겠습니다.


2. Method

위 파이프 라인이 본 논문에서 제안하는 전체 architecture 이며, Knowledge Based Domain Adaptation Network (KDN) 이라고 불립니다.
그리고 이는 Feature Extractor (FE) 와, Knowledge based Domain Adaptation module (KD) 로 구성됩니다.

사실 FE 는 그냥 feature를 추출하는 단계입니다.
Deeplab V2 라고 하는 유명한 CNN 기반의 segmentation network를 사용하게 되는데, 해당 network를 3 단계로 나눠서 중간 중간에 KD 모듈이 도입된 것을 볼 수 있네요.
자세히 보면, 첫 번째 FE 모듈은 resolution이 점점 감소하는 흔한 encoder 형태이지만, 두 번째와 세 번째 FE 모듈은 resolution이 그대로 유지되는 것을 볼 수가 있습니다.
이는 Deeplab V2 모델의 특성 때문인데요, 성공적인 segmentation 예측을 수행하기 위해서 위치 정보를 그대로 보존하길 바랬던 Deeplab V2의 저자들은 encoder 단계에서 1/8 (혹은 1/16) 이상으로 resolution 이 감소되지 않도록 ASPP (Atrous Spatial Pyramid Pooling) 를 설계하였습니다.

사실 본 리뷰가 Deeplab V2 리뷰는 아닌지라 자세한 설명은 생략하고,
본 논문의 핵심은 KD 모듈의 설계 기법에 있습니다.
그리고 이는 아래 3가지 단계로 구성되어 있습니다.

  1. Knowledge loading
    각 source domain과 target domain에서 추출된 high level feature로 부터 common knowledge 를 load 한 뒤,
    설계한 triangular constraint를 통해 align을 맞춰 나가는 과정.
  2. Knowledge filtration
    앞서 load된 knowledge를 weight matrix에 embedding 시킴으로써 특정 입력 scene에 따라 filtering 하는 과정.
  3. Knowledge fusion
    위 단계에서 filtering된 knowledge가 원본 image feature와 합쳐짐으로써 DA가 수행되는 단계.
    이때 앞서 구한 weight matrix가 사용됨.

네, 이런 간단한 설명으로 이해하기 쉽지 않으실겁니다.
이해하기 수월하도록 자세한 설명들은 아래 2.1. 부터 진행하겠습니다.

2.1. Knowledge loading

위 구조 중 빨간색 영역으로 표시한 부분이 Knowledge loading 을 수행하는 부분입니다.

각 class를 나타내는 text로 부터 추출된 Semantic vector가 있을텐데,
이를 기반으로 triangular constraint 방식을 사용해서 source 와 target domain의 knowledge를 정렬하는 것입니다.
(L_{dis}를 기준으로 세 부분에서 화살표가 들어오고 있고, 이 때문에 triangular constraint라는 이름을 붙인것인데 아래에서 더 설명드리겠습니다.)

그런데 앞선 Introduction에서 저자가 밀고 나가는 주장이 뭐였을까요?
source domain이건 target domain이건 상관없이 공통되는 common knowledge가 있을테고, 이를 잘 설계하는 것이 저자가 원하는 바였습니다.
예를 들어 자동차(car)는 언제나 4개의 바퀴를 가지고 있고, sidewalk는 보통 road 옆에 분포되어 있는 등의 structural knowledge가 있겠네요.

그러나 보통의 semantic segmentation에서는 scene의 contextual(내용) information에 강하게 의존하기 때문에 앞서 설명드린 structural(구조) knowledge를 loading 하는 것은 매우 어렵다고 합니다.
그래서 저자는 오히려 context-indepent한 knowledge 를 load 하도록 파이프라인을 설계하게 됩니다.
(각 domain의 contextual information에 강하게 의존하는 상황이기 때문에 common knowledge 는 오히려 context-independent 한 knowledge 여야 domain-invariant한, 공통되는 정보이기 때문이죠)
위 그림에서 보이는, class word를 통해 Embedding 된 semantic vector를 사용하게 됩니다.

자 이제 그림과 함께 동작 과정을 살펴봅시다.
class word를 통해 표현된 semantic vector의 경우 미리 pretrained 된 모델을 사용해서 추출하게 되는데 n의 길이를 가지는 vector형태입니다. (본 논문에서 n은 300으로 세팅했다고 합니다.)
각 class마다 1개의 vector가 생성되므로 Vec\in\mathbb{R}^{cls \times n} 의 shape을 가지게 되겠죠.

그리고 source와 target domain에서 FE(Feature Extractor) 모듈을 통해 추출된 각 feature F_s, F_t 가 있을겁니다. 이때 F\in\mathbb{R}^{HW \times C} 이고, 각각 H: height, W: width, C: channel 을 의미하게 됩니다.

해당 feature 를 통해 knowledge K_s, K_t (K\in\mathbb{R}^{cls \times n}) 를 표현할 수 있게 되는데, 학습 가능한 function인 \Phi를 통해 모델링 하게 되고 표현 식은 아래와 같습니다.

function \Phi 는 간단하게 2개의 convolution layer로 구성되어 있고, 해당 두 layer를 각각 C_0, C_1 이라고 해 보겠습니다. 이는 1×1 의 conv이기 때문에 결국 channel 수만 변하게 될 것이고, 각 conv layer의 output shape은 F_0 \in\mathbb{R}^{HW \times n}, F_1 \in\mathbb{R}^{HW \times cls} 으로 저자는 세팅하였습니다.

사실 \Phi가 2개의 convolution layer라고 설명은 드렸지만, output knowledge K 가 단순 F를 conv연산 2번한 결과로 선정한 것은 아닙니다. 그렇게 되면 K\in\mathbb{R}^{cls \times n} 라는 결과는 나오지 않게 되죠. 이를 위해 저자는 아래 식을 통해 K를 모델링 합니다.
아래 식의 과정을 통해 HW 라고 하는 축을 날려버림(?)으로써 spatial context dependence를 제거해버렸다 라고 저자는 주장하게 됩니다. 영상에서 spatial 정보를 내포하는 H, W 에 대한 정보를 matmul을 통해 소거함으로써 Common Knowledge K가 spatial 정보에 의존하지 않도록 한 저자의 모델링 의도가 돋보이는 수식입니다.

위 식의 shape은 제가 위 설명에서 자세하게 shape을 표기하였기 때문에 매칭해서 보시면 간단하게 이해하실 수 있으실겁니다.

위 식을 통해 구해진 knowledge K_sK_t 를 정렬(align)해야 하는데 이때 cosine similarity를 사용하게 됩니다. 아래 식과 같습니다.

K\in\mathbb{R}^{cls \times n} 이기 때문에 i는 class 정보를, j는 각 vector의 length n에 대한 정보를 나타내겠죠.

그리고 0과 1사이의 값을 가지는 cosine similarity를 가지고 아래 식을 통해 cosine distance를 구할 수 있게 됩니다.

하지만 단순히 위 distance 만을 가지고 source와 target의 knowledge를 정렬하게 되면 rare class에 대해서는 반영이 잘 되지 않는다고 합니다. 예를 들어 pole이나 track과 같은 학습 이미지의 특정 장면에서만 존재하는 class의 경우 road, car 등의 class에 assimilate(동화) 된다고 합니다.
cosine similarity의 경우 두 벡터의 각도 를 표현한 것인데, rare class는 각 벡터에 반영되는 기여도가 매우 적다 보니 cosine distance를 줄이기 위해선 빈도 높은 class에 대한 각도를 맞춰주면 되기 때문에 상대적으로 rare class들은 무시되는 경향이 있는것이죠.

이렇게 rare class의 assimilation(동화) 를 억제하기 위해 class text로 부터 embedding된 semantic vector를 사용하게 되는 것입니다.

위 그림을 보면 직관적으로 이해하실 수 있는데, 좌측의 Dual Constraint가 아닌, text semantic vector를 사용해서 Triangular Constraint를 모델링 하는 것이죠. 이렇게 되면 rare class에 대해서도 Vec 과의 Distance 계산에 잘 반영이 되기 때문에 앞선 문제가 해결이 된다고 합니다.

식으로 표현하면 위와 같습니다. 3가지 조합 쌍에 대한 Cosine Distance의 평균으로 표현이 가능하고, 이를 loss로도 설계하였네요.

2.2. Knowledge filtration

그런데 위 L_{dis} 를 통해 source와 target domain의 knowledge를 정렬한 것은 맞지만, semantic classes 사이의 차이가 그대로 knowledge에 반영되기 때문에 이를 filtering 해 줘야 한다고 저자는 말합니다.
그래서 2.3절의 filtration 과정을 설계한 것입니다.
(사실 위 설명이 직관적으로 잘 이해가 되지 않아 원문도 첨부하도록 하겠습니다.)
(the knowledge from the source and target domains is aligned, the differences among the semantic classes are also stored in knowledge.)

Knowledge filtration 과정은 위 빨간 영역에 해당하는, weight matrix를 계산하게 됩니다.
이는 각 scene마다 등장하는 class 빈도가 서로 다르기 때문에, 특정 scene에서 class 별로 서로 다른 weight를 부여하기 위함이라고 하네요.

저자는 이에 대한 예시로 고속도로의 한 scene에서는 보행자와 자전거가 등장하지 않지만, 이와 반대로 자동차와 교통표지판 class는 매우 빈번하게 등장할 수 있습니다.

다시말해 각 scene별로 등장하는 class 정보가 상이하기 때문에, 각 scene에 따라 class 별 weight 를 조절해서 부여해야 한다는 것입니다. weight matrix W를 통해서 말이죠.
여기서 우리는 weight matrix W의 shape을 예측할 수 있습니다. 우선 위치 정보가 반영되어야 하니 H와 W가 존재할테고, class 정보가 반영되어야 하니 cls 도 있겠네요.

결과론적으로 말씀드리면 weight matrix는 W\in\mathbb{R}^{HW \times cls} 입니다. 그리고 해당 matrix를 모델링하기 위해 학습 가능한 fuction \Theta 가 사용되죠. 이는 하나의 1×1 convolution layer로 구성되어 있습니다. channel 수를 C -> cls 로 바꾸기 위함이죠.

그리고 최종적으로 아래 softmax 가 사용된 식으로 weight matrix W가 계산됩니다.

2.3. Knowledge fusion

마지막은 Knowledge fusion 단계입니다.
앞서 구한 weight matrix W를 기존 feature에 fusion 하는 단계이죠.

우선 feature F의 channel 수를 바꿔주기 위한 layer Z가 존재합니다. 1개의 1×1 convolution layer로 구성되어 있고, Z(F)\in\mathbb{R}^{HW \times cls} 의 shape을 가지게 됩니다. weight matrix W와 shape이 같게 되죠. 그리고 둘 사이의 element wise multiplication을 통해 knowledge 정보를 포함한 새로운 feature map을 구할 수 있게 됩니다.

그리고 해당 정보를 ASPP 모듈의 출력과 함께 sum 하게 됩니다.
ASPP 모듈은 Deeplab V2의 모듈을 그대로 사용한 것이라고 하네요.

식으로 나타내면 위와 같습니다.
결과적으로, text semantic vector를 통해 common knowledge가 잘 반영된 예측을 수행하고자 했다~ 라고 한 문장으로 정리할 수 있겠네요.

2.4. Training Loss

text semantic vector를 추출하는 모델이 pretrained 된다는 부분 말고 나머지 부분은 전부 end-to-end로 학습이 가능하게 됩니다.

일단 모든 segmentation task에서 사용하는, pixel-wise cross entropy loss를 source domain에 대해 적용하였습니다. 아래 식입니다.

그리고 2.1절 마지막에서 설명드린, Triangular Constraint 를 사용해서 계산한 loss와, 위의 loss를 결합하여 최종 목적함수를 설계하게 됩니다.

2. method의 전체 그림을 보시면 저자가 설계한 KD 모듈이 3개의 level에 대해서 적용되는 것을 볼 수 있는데 이에 따른 loss 가중치를 다르게 세팅하였습니다.

\mu, \nu가 이에 해당하고, 각 scale 별로 [0, 0.1, 1] , [0.25, 0.5, 1] 의 값을, \lambda는 0.001 을 사용하였습니다.


3. Experiment

본 논문이 knowledge 기반의 adaptation 방법론을 처음 제시하였기 때문에 기존 DA 방법들과의 비교를 수행하였습니다.
(NonAdaptation 의 경우 baseline으로, 본 논문에서 주장한 KD 모듈을 붙이지 않은, 즉 KD 모듈로 인한 향상폭을 측정하기 위함입니다)

음 그런데 절대적 성능으로만 봤을땐 기존 adversarial 기반 UDA 방법론 중 하나인 ROAD에 비해 2% 이상이나 성능이 낮긴 합니다. 저자는 이에 대해 ‘not the same technical routes as ours’ 라고 하면서도, 기존의 adversarial 기반 방법론에 우리의 knowledge 기반 방식까지 더하면 더 높은 성능을 얻을 수 있다고 말합니다.
(해당 결과를 실험적으로 보이진 않고 말로만 적었네요…. 허허..)

앞선 설명에서 scene별로 rare class를 처리해주기 위해 Knowledge filtration 과정에서 weight matrix를 계산하였습니다. 그렇지만 타 방법론(ROAD) 과 비교했을 때 pole, fence 와 같은 rare class에서 하락 폭이 너무 크네요.
knowledge 기반의 UDA 를 최초로 수행했다는 점에서 contribution을 인정받아 accept이 되었나봅니다. ㅎㅎ

정성적 결과도 타 방법론과 비교는 하지 않고 gt, baseline 그리고 자신들의 KD module을 붙인 결과로만 비교를 하고 있습니다.

위 NonAdaptation과 Multi-level의 결과에서 rare class인 bus에 대한 결과를 비교해보면 저자들의 설계 방식이 어느정도는 들어맞았다고 볼 수 있겠네요.

그리고 위 table은 2.1. Knowledge loading에서 constraint를 어떻게 부여하느냐에 따른 결과입니다.

사실 직관적으로 생각해 봤을때 Knowledge 끼리의 loss를 계산할 때 cosine similarity 로 방향 정보만 고려하는 것이 아니라 l1, l2 distance 등으로 벡터의 크기 정보까지 완전 동일하게 맞춰버리면 안되나~ 라고 생각할 수 있습니다. 저자도 그래서 해당 ablation을 준비한 거 같구요.

결과는 cosine 방식이 더 높은 성능을 보이고 있습니다.
저자는 이에 대해 Knowledge에는 noise가 존재할 수 있으며 l1, l2 distance 를 적용할 경우 이런 noise들 까지 완전히 반영해서 완벽하게 동일한 knowledge를 생성하려고 하기 때문에 오히려 Domain Adaptation의 성능을 제한해버릴 수 있다고 합니다.


네 이렇게 리뷰가 마무리 되었습니다.

처음 Introduction을 읽을 때에는 사람의 인식 체계와 비유해서 common knowledge라는 것을 학습해야 한다는 저자의 접근과 주장이 매우 참신하다고 느껴졌습니다. 그리고 method 부분에서 간단한 conv layer 1개 혹은 2개만을 사용해서 저자가 원하는 방향으로 matrix의 shape을 맞춰 나가면서 모델링 해 나가는 과정 또한 직관적이면서 느낀 점이 많았구요.

다만 실험적 결과에서 기존 adversarial 방식에 비해 성능 하락폭이 생각보다 커서 조금 아쉽긴 했습니다. 아마 text로 부터 semantic vector를 미리 추출하게 되는데, 이 semantic vector를 어떻게 추출하느냐에 따라 성능이 많이 좌지우지 해서 그럴 수도 있겠다는 생각이 드네요.
knowledge 기반의 후속 연구가 더 있을진 모르겠지만, 그래도 접근이 참신하니 DA를 위한 새로운 가지로 생각 정도는 하고 있어야겠습니다.

그럼 리뷰 마치도록 하겠습니다. 감사합니다.

Author: 권 석준

4 thoughts on “[KBS 2020] Knowledge based domain adaptation for semantic segmentation

  1. 안녕하세요. 리뷰 잘 봤습니다.
    리뷰 읽으면서 개인적인 의견 및 의문점 등이 많아서 그냥 생각나는대로 정리해놓은 메모를 밑에 남깁니다.

    1. text embedding을 할 때에는 어떤 pretrained model을 사용? 이것을 clip으로 확장이 가능한지?

    2. 그리고 왜 class text의 embedding vector와의 cosine similarity를 줄여나가는 과정이 rare class에 대한 long-tail 문제를 해결할 수 있는지? K_{t}와 K_{s}의 각각에는 rare class 정보가 희소하지만 class text의 경우에는 각 class별로 균등하게 class 정보가 포함되어있기 때문에 그런 것인지?

    3. 근데 rare class를 무시하지 않기 위해 knowledge loading 과정에서 이러한 triangular constraint를 적용해주었는데, 그 다음 단계인 Knowledge filtration 과정에서는 class에 weight를 주는 바람에 rare class가 배제되는 상황이 앞뒤 흐름이 안맞는 느낌이 들어서 이 부분에 대해 어떻게 생각하는지?

    4. 그리고 ablation study도 무언가 이상함. cos + Triangular 실험의 경우 truck, bus, mbike가 모두 cos+Dual과 비교하여 1 이상의 mIOU가 올랐음에도 불구하고 평균 mIOU는 고작 0.4 수준으로 상승함. 이는 truck, bus, mbike에서는 성능이 올랐지만 다른 class에서는 성능이 감소하였기에 발생한 문제인 것 같은데, 과연 이게 좋은 방법론이라고 생각할 수 있는 것인지?

    5. 저자가 주장하는 context-independent knowledge라는 개념이 structural knowledge라고 이해를 하였는데, 실제로 구현되는 과정은 HW 축에 대한 내적을 통해 채널 축에 대한 결과값만을 남기어 K를 계산하는 것이 이해가 안됨. 저자가 말하는 context knowledge라는 것과 structural knowledge는 같은 의미인 것인지 아니면 반대의 의미인 것인지?(일단 리뷰 글에서는 반대의 의미인 것으로 보여지는데..)

    만약 반대라면 structural knowledge를 취하기 위하여 spatial information을 더 잘 보도록 해야 할 것 같은데 왜 spatial information을 제거하는 방향으로 가는 것인지?
    structural knowledge랑 spatial context dependence랑 서로 유사한 의미 아닌지?

    6. 그리고 이러한 sptial information을 제거하는 것이 과연 segmentation 상황에서 옳은 상황일까? 지금의 transformer based segmentation 연구들은 spatial context information을 잘 모델링하였기에 segmentation의 성능을 크게 향상시켰다고들 하는데, 저자는 이러한 주장과 반대되는 의견을 표하고 있음. 그렇기 때문에 저자가 intro에서 거창하게 얘기한 것과 달리 성능 향상이 미미한 것이 아닐까?

    개인적인 생각으로는 text의 semantic information과 image feature map의 semantic information 간에 cosine 유사도를 줄여나가는 방향은 나쁘지 않았는데, sptial information을 무시한 채로 진행하는 것이 너무 단순하였기에 성능이 미미한 것 같음. 가령 본 리뷰에 예시처럼 고속도로 장면에서는 자동차랑 표지판에 대한 class만 많이 존재할텐데도 불구하고 해당 영상의 feature map으로부터 생성된 K_{s}에는 보행자와 같은 class가 없지만 text의 semantic vector와 cosine similarity를 반드시 맞춰야만 한다는 제약조건이 붙어버리면 너무 엉뚱한 학습이 되버리는 것은 아닌지?

    지난번 리뷰처럼 prototype 같은 개념은 patch level?이었던 걸로 기억하는데 이러한 patch level에다가 text의 embedding feature를 잘 align하여서 domain generalization 성능을 향상시키는 방향은 어떤가 함.(아마 이런 컨셉의 논문이 22~23년도 논문 중에 잘 찾아보면 있을 것 같음.)

  2. 1. ‘GloVe: Global vectors for word representation’ 이라느 논문의 모델을 사용하였습니다. NLP 분야에서 단어 임베딩을 할 때 많이 사용하는 (혹은 사용되었던) 모델로 2014년 논문이네요. 인용수는 36000을 육박하고 있습니다.
    아마 CLIP으로 확장 가능할 것이라 생각됩니다. CLIP 모델의 특성 상 fine tuning 없이 본 모델에 적용하여 class text별 embedding vector를 추출할 수 있을 것입니다.

    2. 네, 말씀하신 부분이 맞습니다. K_{t}와 K_{s}는 각 도메인의 예측 F_{t}와 F_{s}로 부터 생성되는 것이고, 이 때 rare class에 대한 포함 정도는 적을것입니다. 벡터의 크기가 아닌 방향만을 고려하는 cosine similarity 의 특성 상 rare class 가 아닌 다른 class 분포를 맞춰 나가는 것이 전체 loss를 낮추는데에 훨씬 더 효과적이므로 rare class는 잘 반영이 되지 않게 됩니다.
    이를 해결하고자 text embedding vector를 도입 한 것입니다. 이는 cls x n의 shape을 가지고, 각 class 별로 균등한 정보가 포함된 n 길이의 vector 이기 때문이죠.

    3. 음,, 명쾌한 답이 아닐 수 있는데, 아마 두 단계의 목적성이 조금은 다르기 때문이 아닐까요?
    첫번째 triangular constraint를 적용하는 과정에서는 결국 source 와 target 사이의 common knowledge를 잘 구성해야 합니다. 그리고 이 common knowledge는 빈도가 높은 class 뿐만 아니라 낮은 class에 대해서도 동일한(혹은 유사한) 가중치로 학습이 되어야 하기 때문에 rare class를 위한 추가적인 처리를 할 수 밖에 없는것이죠.
    두번째 과정인 knowledge filtration 과정은 앞서 모델링한 common knowledge를 실제 scene에 적용하는 단계입니다. 각 pixel 별로 서로 다른 가중치를 부여하면서 말이죠. 해당 단계에선 특정 scene을 기준으로 적게 등장하는 class에 대해서는 아무래도 weight가 낮긴 할겁니다. 즉 rare class가 배제되었다고 생각할 수도 있죠. 하지만 또 다른 scene의 경우엔 이전 scene에서 rare class였던 녀석이 빈도높은 class일 수 있습니다. 이때는 높은 weight 를 가지겠죠.
    정리하자면, scene별로 다르게 적용하는 것이다~ 라는 뭐 그런 의미입니다!

    4. 해당 내용에 대한 제 설명이 조금 미흡한 거 같네요. 해당 표에서 리포팅한 3가지 class의 경우 cityscapes dataset의 rare class 입니다. 저자는 cos+Dual => cos+Triangular로 변경했을 때 rare class의 성능이 어떻게 변화하는지를 해당 표를 통해 보여준것이구요.
    사실 말씀하신 대로 mIOU의 향상폭이 0.4밖에 안되는 것으로 보아 타 class, 아마 car bus person 등 높은 빈도로 등장하는 class에 대한 성능 향상이 미비하거나 오히려 감소가 일어났을 수 있을거 같긴 합니다. 아마 rare class를 처리하려고 모델링 한 triangular constraint때문에 K_{t}<=> K_{s} 사이의 빈도 높은 class에 대한 정보교환(?) 이 제한ㄷ이 되어서 이러한 결과가 나온 거 같기도 합니다.
    한계점이 있는 방법론이긴 하네요.

    5. 사실 저도 좀 혼란이 와서 저자의 말을 그대로 번역해보겠습니다.
    ‘일반적인 segmentation task에서 structural knowledge를 loading하는 것은 어려운 일이다.
    structural knowledge loading이 어렵기 때문에 모델은 scene의 contextual 정보에 의존해서 예측을 수행한다.
    그렇기 때문에 우리는 context-independent knowledge를 loading 한다.’
    6.저도 해당 댓글의 내용에 동일합니다.
    저자가 모델링한 knowledge가 context 정보만을 담고 있기 때문에 공간적인 정보는 잘 고려하지 못해서 성능 향상 폭이 미미한 거 같습니다.

  3. 안녕하세요 석쭌님. 좋은 리뷰 감사합니다.

    1. knowledge에 대해 궁금한 점이 있습니다. 위 글에서 ‘class에 해당하는 text로 부터 추출된 embedding vector’라고 설명을 해주셨는데 text로부터 vector를 뽑을 때 어떤 과정으로 진행이 되나요?

    2. Domain Adaptation에는 domain mapping methods 과 feature transformation methods가 있는 것 같은데 최근 많이 사용되는 방식은 무엇인지 궁금합니다~

    1. 1. text embedding vector를 추출하는 모델은 저자가 설계한 것이 아니라 이에 대한 디테일한 설명은 없습니다. 하지만 원리는 이미지와 유사할 것입니다. 이미지를 encoder에 통과시켜서 feature vector를 얻는 것 처럼 text도 동일하게 encoding 과정을 거쳐 feature vector 형태를 추출해 내는 것입니다.

      2. Domain Adaptation을 수행하는 방식에는 크게 adversarial을 통한 feature mapping 방식과, self-training을 사용한 기법이 있습니다. 이는 제 리뷰([CVPR 2023] MIC: Masked Image Consistency for Context-Enhanced Domain Adaptation) 의 introduction에 자세히 적어 놓았으니 한번 읽어 보시길 바랍니다.

답글 남기기

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