계속 한 주제만 읽으니까 뭔가 물려서 다른걸 읽어봤다.
하필 지도 교수님 논문을 읽었는데 그 분야는 모르니까
역시 읽던거 읽는게 좋다는것을 알았다.
ICCV'19
https://arxiv.org/abs/1909.00597
Self-Training and Adversarial Background Regularization for Unsupervised Domain Adaptive One-Stage Object Detection
Deep learning-based object detectors have shown remarkable improvements. However, supervised learning-based methods perform poorly when the train data and the test data have different distributions. To address the issue, domain adaptation transfers knowled
arxiv.org
이 논문은 one-stage detection 모듈에 domain adaptaion을 적용했다.
먼저 weak self-training (WST) 방식과
adversarial background score regularization (BSR)을 도입했다고 한다.
WST는 pseudo-label에 비정확한 adverse effect를 줄이고
BSR은 target background에 대한 discriminative feature을 추출하는 정확도를 높인다.
WST와 BSR은 상호보완적으로 작동해서
BSR이 foreground와 background 사이의 discrimination을 향상시키고
WST가 클래스별 discrimination을 강화시킨다.
위는 본 논문의 train/test 구조를 간단하게 나타낸 것이다.
다음 구조는 본 논문의 전체적인 구조이다.
먼저 문제 세팅을 살펴보면,
source domain은 Xs로 나타내고 target domain은 Xt로 나타낸다.
항상 그런것 처럼 source는 레이블 있고, target은 없다.
각 도메인의 분포는 P로 나태는데, P(Xs)≠P(Xt)다.
그리고 한가지 가정을 하는데,
source와 target data는 K+1개의 클래스를 가지고 있다는 것이다.
(background도 클래스 c=0으로 포함한다.)
그리고 SSD의 conv5 전의 layer를 F라고 하고 나머지는 C라고 한다.
그리고 output은 O로 나타낸다.
r은 i번째 detection이고 n은 detection의 전체 수다.
저자들은 final detection으로 Non-Maximum Suppression (NMS) 다음
남아있는것을 사용한다고 한다. (O*)
Weak Self-Training (WST)
target domain의 카테고리 정보의 부족을 보상하기 위해
weak self-training (WST)를 사용한다.
base network는 종종 높은 신뢰도를 가진 잘못된 output을 만든다고 한다.
그래서 잘못 classified된 output은 pseudo-label을 선택할때
거짓 참 (false positive)이 된다고 한다.
또 거짓 부정 (false negative)도 이미지를 detection할 때
네트워크를 detect 실패하게 만든다고 한다.
그래서 WST는 training 절차에서 잘못된 샘플을 빠뜨리도록 설계되었다.
먼저 false negative의 영향을 최소화 하기 위해 다음 loss를 수정한다고 한다.
Pos와 Neg는 positive, negative example 집합니다.
b^는 pseudo-bounding box 레이블,
c^는 pseudo-class 레이블,
p(c^|x)는 클래스일 확률, p(0|x)는 background일 확률이다.
Lloc는 localization loss다.
Hard negative mining으로 선택된 false negatives는
training에 안좋은 영향을 끼친다.
그래서 저자들은 training 중에 background example의 gradient를 가림으로써
false negative를 줄인다.
foureground가 될 수 있는 가능성이 있는 background example도 무시해버린다.
Negative examples은 foreground가 될 높은 가능성이 있다.
왜냐하면 hard negative mining은 pseudo-foregrounds를 나타내고,
가장 큰 confidence loss value와 함께 background로 선택하기 때문이다.
위의 구조도에서 주황식 Neg with high loss에서
False Negative 화살표가 있는 보트가 그 예시다.
따라서 Neg 중에서 가장 작은 lowest confidence loss value를 가지는
example을 ||Neg||/3개 선택한다.
이 과정을 weak negative miming이라고 한다.
표시는 다음과 같이 한다.
따라서 식(1)의 Lloc빼고 나머지 부분을 다음과 같이 수정한다.
이제 false positive도 줄여야 한다.
저자들은 RoIs supporting 기반 instance-level pseudo labeling의 기준을 제시했다.
그것은 다음과 같이 나타낸다.
Ns는 supporting region의 수다.
IoU(A, B)는 region A와 region B의 IoU value다.
P는 위에 잇는 그 p다. (x가 region r로 바뀐것)
이를 통해 SRRS에 임계값 𝜖을 기준으로 reliable detection을 선택한다.
pseudo-label을 만드는 알고리즘은 다음과 같다.
Adversarial Background Score Regularization
soure와 target의 background는 foreground에 비해 비슷한 부분이 적다.
이것은 단순한 global feature alignment는 부정적인 영향을 끼치게 된다는 뜻이다.
그래서 Background Score Regularization (BSR)이라는 방법을 제시하였다.
(adversarial 방식임)
BSR의 loss는 다음과 같다.
t ∈ [0, 1]인데 이것은 p(0|x)의 target value다.
loss를 최소화 하면 p(0|x)의 value는 t에 가까워 진다. (t는 하이퍼파라미터)
반대로 loss가 최대화 되면 p(0|x)는 0 또는 1에 가까워 진다고 한다.
training phase에서 classifer C와 앞서 나온 feature 추출기 F는 Ltask를 최소화 한다.
(source input임)
그리고 Ladv를 최소화 시킴으로써 P(0|x)의 예측 value는 t에 가깝게 예측하기 위해
C를 regularize한다. 반대로 F는 p(0|x)가 0또는 1에 가깝게 되도록 Ladv가 커지게 학습한다.
따라서 F가 classifer를 속이도록 discriminative feature를 학습한다.
따라서 전반적인 BSR은 다음과 같이 된다.
Adversarial 학습은 GRL을 사용해서 진행된다.
따라서 식(4)는 classifier를 target 입력에 덜 특정하도록 예측하도록 학습하고
feature 추출기는 classifier를 속이도록 만든다고 생각할 수 있다.
결론적으로 feature 추출기는 classfier를 다음 그림처럼 더 쉽게 만든다.
그러나 이 방식은 모든 example에 대한 adversarial loss에 적용하기 바람직하지 않다.
왜냐하면 object detector의 output은 수많은 background example을 가지고 있기 때문이다.
따라서 저자들은 background score에 따라 오름차순 정렬을 하고 그 값이 작은
3N개의 example을 선택한다.
N은 foreground라고 예측한 example의 수다.
이때 배치별로 이것을 선택하는게 안정화에 도움이 된다는것을 발견했다고 한다.
게다가 focal term을 식 (4)에 추가해서 계수적으로 안정하고 더 효과적으로 식을 만들었다고 한다.
γ는 하이퍼 파라미터고 t는 0.5로 한다고 한다.
(t에 close한다는게 뭔말이지 했는데 하이퍼 파라미터였다..ㅋㅋ)
이 논문은 BSR과 WST를 결합하여 BSR이 domain gap을 줄이고
WST를 통해 네트워크가 카테고리 정보를 학습하도록 만들었다고 한다.
아직 one-stage detector에 대한 지식이 부족해서 이해하기 힘들었지만
향후 공부를 더 한다면 더욱 정확하게 이해할 수 있을것 같다.
그래도 최근 논문을 많이 읽다보니 domain alignment는 이미지 전체가 아니라
foreground 위주로 해주는게 좋을것 같다는 생각이 든다.
이건 근데 좀 더 생각해봐야 할 것 같다.