Meta Learning은 최근 딥러닝 연구주제중 핫한 분야다.
few-shot learning의 solution 중 하나인 메타러닝을 적용한 논문이고
Domain Adaptation Object Detection 분야를 공부했으면
내용자체는 어려움이 없을것이라 생각한다.
적은 데이터로 최상의 결과를 학습하는것이 few-shot의 목표임을 기억하자.
WACV'22
https://arxiv.org/abs/2110.03143
Meta-UDA: Unsupervised Domain Adaptive Thermal Object Detection using Meta-Learning
Object detectors trained on large-scale RGB datasets are being extensively employed in real-world applications. However, these RGB-trained models suffer a performance drop under adverse illumination and lighting conditions. Infrared (IR) cameras are robust
arxiv.org
일반적으로 RGB dataset 만을 사용해서
domain adaptation을 진행했는데 본 논문은 열화상 데이터를 사용했다.
메타러닝을 적용함으로써 오버피팅과 지역 최적점에 갇히는 문제를 해결하여
더욱 안정적인 학습이 가능해졌다고 한다.
일반적인 메타러닝을 적용하면 계산량이 너무 많기 때문에
online 방식의 메타러닝을 적용했다고 한다.
다음 그림의 (a)가 RGB, (b)가 열화상이다.
본 논문에서 사용하는 메타러닝은 최적화 기반 메타러닝이다.
그에 따라 2가지 스텝으로 학습이 진행된다.
1. base/inner learning
모델을 Meta-train 데이터 셋의 한 task에 학습시켜 그 task-specific 최적화를 한다.
2. meta/outer learning
Meta-test(val) 데이터 셋으로 base learning meta parameter을 안정적으로 학습시킨다.
먼저 늘 하던것 처럼 source domain은 레이블이 있고 target은 없다.
본 논문에서는 Faster-RCNN with VGG16을 사용해서 실험했다고 한다.
먼저 Faster-RCNN을 사용하였으므로 detection loss는 다음과 같다.
Lrpn은 RPN loss, RCNN은 상단부의 cls, box reg loss다.
(자세한 RCNN 내용은 Faster-RCNN 논문 참조.)
(공부를 위해서는 Fast-RCNN을 먼저 참조하는것이 좋다.)
본 논문은 Image level, instance level에서 domain alignment를 진행하였다.
먼저 Image level은 backbone Network의 feature map을 활용하여
GRL+domain classifier를 사용해서
backbone network가 domain invariant한 feature map을 추출하도록 만들었다.
위 feature map을 domain classifier의 입력으로 넣어서
source면 1, target이면 0으로 출력하도록 하였다.
위의 loss에 GRL을 사용하면 위 loss가 반대역할을 하도록 학습하게 된다.
즉, domain을 구분 할 수 없는 방향으로 학습하게 된다.
(GRL에 대한 내용은 다음 글 참조.)
이후 RPN 출력 단(instance)에서 한번더 domain classifier을 적용한다.
방법은 위와 같은 방식으로 진행된다.
이 또한 GRL을 적용하여 학습한다.
똑같이 domain을 구분 할 수 없는 방향으로 학습하게 된다.
이렇게 최종 DAloss가 다음과 같이 만들어 진다.
(보통 메타러닝에서 adaptive loss라고 Meta-train 셋의 각 task의 loss를 뜻하기도 하는데
domain adaptive loss와 혼동을 주의하도록 하자.)
따라서 전반적인 training loss는 다음과 같다.
이제 위의 (5) loss를 바탕으로 Meta Learning 학습을 진행할 차례다.
먼저 보통 사용되는 메타러닝의 bi-level 최적화 loss는 다음과 같다.
Meta Training 셋을 가지고 얻은 loss 및 파라미터를 Inner-level으로 표시하였다.
Meta Train 셋은 메타러닝을 사용하기 위한 데이터셋으로
보통 데이터 셋의 train-test 묶음을 여러개 합쳐둔 집합이다.
즉 Meta train에는 여러개의 train/test 조합이 있다.
이때 한 train/test 세트를 task라고 한다.
따라서 Meta train 데이터 안에는 여러개의 train/test 조합이 있으니
각 조합별로 여러개의 파라미터가 만들어지게 된다.
이제 Meta test(val) 데이터를 사용해서
Meta train 파라미터 중 어느 파라미터가 학습에 용이한지
argmin으로 찾아내는 것이다.
따라서 위의 (6) 식이 만들어지는 것이다.
위에서 언급했던 Meta train 속 여러 train/test 조합의 파라미터는 다음과 같이 구한다.
n은 Meta train 속 train/test 조합의 수다.
α는 우리가 아는 learning rate다.
또 위에서 언급한 최적의 파라미터를 사용한 inital 파라미터는 다음과 같다.
β도 우리가 아는 learning rate다.
그러나 메타러닝의 inner-loop 계산량이 너무 크고
그로인해 backpropagation이 불가능하기 때문에 저자들은 online 방식을 도입했다고 한다.
즉 on-the-fly-meta-update 방식을 사용하는데, 이것은 다음 그림처럼 간헐적으로inner-loop, outer-loop를 최적화 한다.
이로 인해 long computational graph를 피하고 안정적인 DA 업데이트가 가능하다고 한다.
또 이 방식으로 initial conditoni과 meta-loss간의 연관성을 더 잘 이해할 수 있게 된다.
정리하자면 최종적인 학습 알고리즘은 다음과 같다.
위 논문은 DA 분야에서 적외선 영상을 적용한 논문이다.
적외선 영상 데이터셋은 KAIST dataset으로 우리나라 그 카이스트 맞다.
또 domain apdatation에 메타러닝을 적용했는데
이로 인해 DA와 meta-learning 공부에 도움이 되는 논문인것 같다.