이 논문은 CVPR 2023에 accept된 논문으로, 저자는 Tobias Kalb (Porsche Engineering Group GmbH Weissach, Germany), Jurgen Beyerer (Fraunhofer IOSB & Karlsruhe Institute of Technology Karlsruhe, Germany) 이다.
1. Motivation
DNN들은 학습된 domain에서는 좋은 성능을 보이며 이는 automated vehicels를 위해서도 사용될 수 있다. 그러나, real-world condition의 경우에는 Adverse weather condition과 같은 상황이 존재하고, 이럴 때 기존의 DNN들은 성능이 매우 하락한다. 즉 안개, 비, 눈 또는 밤인 경우에는 제대로 감지하지 못하는 문제가 발생한다.
이를 해결하기 위한 naïve 한 방법 중 하나는 모델을 새로운 labeled data domain에 대해서 incrementally fine-tune하는 것이다.
그러나 이 방법은 기존에 관찰한 domain에 대한 성능이 떨어지는 catastrophic forgetting 문제가 발생하게 된다.
따라서 본 논문은 semantic segmentation model의 representation이 adverse weather condition에 대한 domain-incrementatl learning을 할 때 어떤 영향을 받는지에 대한 연구를 진행하였다.
그 결과, catastrophic forgetting은 주로 low-level features에서의 변화가 일어났기 때문이라고 분석하였다.
또한 pre-train과 image augmentation을 통한 source domain에서의 더 general features를 학습하는 것은 보다 효율적인 feature resue로 이끌 수 있다고 하였으며 이는 catastrophic forgetting을 줄이는데 효과적이라고 분석하였다.
main contribution들은 아래와 같다.
1. activation drift를 분석한다. forgetting의 주된 이유는 (first conv layer)low-level representation의 shift 로 인해서 BN의 population statistics가 영향을 받기 때문이라고 주장하였다.
2. color-invariant features를 배우는 것은 early layer에서의 representations를 안정화시켰으며, 새로운 domain에 adapt될 때 변화되지 않았다는 것을 분석하였다.
3. pre-tarining, augmentation 그리고 exchanged normzliation layer를 합쳐서 forgetting을 줄일 수 있었다.
2. Preliminaries
2.1. Problem Formulation
T는 training task로, N개의 이미지로 구성되어있고, 이에 해당하는 label로 이루어져 있다.
주어진 각 task T에 대해서 목표는 image space로 부터 score vector로의 mapping을 배우는 것이다.
incremental learning setting에서 모델 f는 sequence of task $T_k$에 대해 학습한다. 이 task를 통해 새로운 calss를 학습하거나 같은 class에 대한 visually distinct instance를 사용한다.
이 연구에서는 domain-incremental settings에 집중하였다.
2.2 Normalization Layers
normalization layer는 cnn의 training 에 매우 중요하다. normalization layer는 input 분포가 학습동안 stable 하도록 internal covariate shift를 완화시키는 역할을 한다.
Batch Normalization의 경우mini-batch dimension에 대해서 normalize하고, inference때는 train 때 얻은 global mu, sigma로 mini-batch mu, sigma를 대체해서 사용한다.
2.3. Measuring Activation Drift
catastrophic forgetting이 weight과 activation에 대한 변화때문에 생겼기 때문이라고 판단하여, activation drift를 측정한다.
여기서는 model $f_0$ 와 $f_1$ 사이의 activation shift를 측정한다.
$f_0$는 task $T_0$에 대해 학습된 모델이며, $f_1$은 $f_0$의 파라미터로 initialized되어있고, $T_1$에 대해 incrementally 학습된 모델을 말한다.
측정을 위해서 이전에 제시되었던 layer atching framework 를 사용하였다. (Adrian Csisz ´ arik, P ´ eter K ´ or˝ osi-Szab ¨ o,´ Akos Matszangosz, ´ Gergely Papp, and Daniel Varga. Similarity and matching of neural network representations. In M. Ranzato, A. Beygelzimer, Y. Dauphin, P.S. Liang, and J. Wortman Vaughan, editors, Advances in Neural Information Processing Systems, volume 34, pages 5656–5668. Curran Associates, Inc., 2021.)
Figure 2는 layer stitching setup을 보여준다. 이 셋팅에서, layer n까지의 activation drift 영향력을 측정한다. 이 때 layer n를 $f_0$의 n+1 layer로 직접 propagate하여 측정한다.
즉 그림상에서 $f_1$의 layer 2에서 $f_0$의 layer 3로 direct하게 propagate하여 activation drift를 측정하는 것이다.
그리고 이 모델을 initial task인 $T_0$에 대해 평가하여 기존의 $f_0$ 모델과 비교하게 된다. 이를 통해서 adapted model $f_1$의 specific layer에 대한 feature가 initial model $f_0$에 대해 얼마나 useful한지 측정할 수 있다.
3. Experiments
Datasets
Unsupervised Domain Adatation의 common benchmark인 Cityscapes (CS) 로부터 ACDC dataset에 adapting한다.
Cityscapes는 daytime의 dry weather condition을 가진 automotive semantic segmentation dataset이고,
ACDC는 Night, Rain, Fog and Snow에 대한 데이터셋이다.
따라서 cityspaces에서 각각에 대한 domain adaptation을 진행한다. CS -> Night, CS -> Rain, CS -> Snow, and CS -> Fog.
Models
ResNet 50 backbone인 DeepLabV3+를 backbone으로 사용하였다.
architectural choice가 continual learning에 중요한 영향을 줄 수 있기 때문에 이에 대한 비교는 부록에 하였고, 비교적 최근에 소개된 SegFormer-B2가 low-level feature change에 가장 강건한 결과를 보였다고 한다.
Optimization Strategy
momentum 0.9, weight decay 를 0.003으로 하고 SGD optimizer를 사용하였다.
CS training은 0.07 learning rate으로 batch-size 8로 학습시킨다. ACDC subset에 대해서는 0.005로, 같은 learning rate policy를 적용하였다. CS, ACDC는 각각 200, 150 epochs로 학습시켰다.
augmentation은 512x1024로 crop하고, random horizontal flipping and scaling을 사용하였다.
Evaluation Metrics
mIoU로 측정하였다.
p까지의 모든 task에 대해 train된 model을 task q에 대해 evaluate한 mIoU를 mIoU_p,q로 표현하였다.
이에 따라 zero-shot performace의 경우에는 task p=0에서 학습하고, q=1에서 evaluate한 경우에는 mIoU_0,1로 표현하였다.
더 나아가 average learning accuracy와 forgetting을 리포트하였다.
average learning accuracy 의 경우 task 0에서 학습하고 task 0에서 evaluate한 성능과 task 1까지 학습하고 task 1에서 evaluate한 평균 성능을 말한다.
forgetting은 task 0에서 학습하고, task 0에서 evaluate한 성능에서 task 1까지 학습하고 task 0에서 evaluate한 성능의 결과를 뺀 것이다. 즉, task 0이 Cityscapes를 학습한 경우라면, 0,0은 Cityscapes에 대해서만 학습하고 평가한 성능이고, 1,0의 경우는 Cityscapes에 ACDC까지 학습한 모델에서 Cityscapes를 평가한 성능이다. 따라서 뺀 값은 ACDC를 추가로 학습시킴으로 인해 생긴 Cityscapes의 성능 하락 정도로 볼 수 있으므로, 이는 forgetting에 해당한다. 즉 수식에서는 0에 대한 forgetting을 의미한 것 같다.
3.1. Activation Drift after Incremental Adaptation
우선 다른 adverse weather condition에 naviely adapting할 때 CNN 모델에서 발생하는 전반적인 activation drift를 분석하였다.
이를 위해서 DeepLabV3+에서 Cityscapes를 학습시켰다. 이 후 각각 개별적인 ACDC subsets에 대해서 fine-tune을 진행하였다.
그런데 이 표의 경우,, 직관적으로 설명과 표가 와닿지 않아서 이해하는데 조금 시간이 걸렸다..
내가 이해한 바로는 CS가 Task 0이라고 치고, ACDC의 각 subset들이 Task 1이라고 친다면
각 column이 0,0 / 0,1 / 1,0 / 1,1 / 0,0-1,0 이라고 생각하였다.
즉 첫번째 column은 Cityscapes에서 학습하고 Cityscapes에서 evaluate 한 경우
두번째 column은 Cityscapes에서 학습하고 각 Row마다 Rain, Night, Snow, Fog에 대해 evaluate 한 경우(ACDC에 대한 zero-shot)를 나타내고
세번째 column은 각 row에 맞게 Rain, Night, Snow, Fog에 까지 학습하고 Cityscapes에 대해 evluate한 성능,
네번째 column은 각 row에 대해 학습하고 evaluate까지 한 성능 (Rain에서 학습하고 Rain에서 evalute, Night에서 학습하고 Night에서 evalute 등등)
마지막 column은 Cityscapes에 대해 학습하고 테스트한 첫번째 column에서, ACDC까지의 학습하고 Cityscapes에 대한 테스트를 한 세번째 column을 뺀 값으로 Cityscapes에 대한 forgetting이 나타났다고 생각하였다.
논문에서는 이 표에서 zero-shot performance on the adverse weather condition이 비슷한 Fog와 Snow에서는 비교적 좋은 성능이 나왔고, Snow와 Night에서는 worse했다고 하였다. 특히 night의 경우에는 10.4% mIoU_0,1이었다고 설명하였다.
이에 대해 표의 10.5%가 논문 글 상에서 오타가 난 것이 아닌가..싶었다.. 그리고 mIoU_0,1과 같은 표현을 글에서 썼다면 이를 이용해서 더 직관적으로 표를 잘 그릴 수 있지 않았을까..싶었다 🥲
아무튼 도메인 간 차이를 비교해보았을 때, day-to-night shift와 snow-covered landscape 이 wet, foggy condition보다 더 shift가 크게 일어났다는 것을 알 수 있댜.
그러나, 각 adverse subsets에 대해 fine-tuning 했을 때, 최종 결과를 살펴보면, Rain과 Fog가 zero-shot performance에 대해 좋은 성능을 보였으나(2번째 column), 이는 Snow나 Night에 대해 less forgetting 한 것은 아니라는 것을 볼 수 있었다. Forgetting의 경우 오히려 rain에서 가장 forget이 많이 되었고, Night이 forget된 정도가 젤 덜한 것을 알 수 있었다.
어떤 layer가 internal activation drift에 영향을 많이 주는가에 대한 분석을 위해서 두번째 task를 배우기 전과 후의 activation drift를 측정하였다. 이는 2.3에서 설명한 내용이다.
Figure 1에서는 첫번째 task에 대한 상대적인 initial performance를 보여주었다.
activation drift가 주로 network의 early layer에서 영향을 많이 주고 있다는 것을 볼 수 있다. 이는 class-incrementatl learning에서 early layer가 stable하게 유지되는것과는 반대의 양상이다.
특히 Fog와 Snow에 tuned된 low-level feature를 살펴보면 initial model에 의해서 reuse되지 못했다는 것을 볼 수 있다. Figure 1 왼쪽의 Fine-Tuning부분에서 layer1.0이전에 Snow와 Fog의 상대적 성능이 매우 낮게 보이는 것을 통해 알 수 있다. 이는 shallow layer에 대해 network 가 매우 변화가 크게 일어났다는 것을 의미한다. 따라서 여기서 제시한 feautre re-use를 사용해야한다는 것을 주장하고 있다.
Table 2를 살펴보면, 처음에 상대적 mIoU의 값이 떨어지는 것을 볼 수 있지만, layer1.0을 지난 후에는 mIoU가 매우 크게 상승한 것을 알 수 있다. 이는, 뒤의 feature들을 경우에는 Cityscapes model을 reuse한다는 것을 나타내고 있다고 한다.
음.. 사실 이 점이 왜 Cityscapes model을 reuse한다는 결론으로 바로 도출될 수 있었던 것은 잘 모르겠다... 앞부분에서는 texture와 관련된 ACDC에 대한 정보를 습득하고, 뒷 부분에서 더 general 한 부분을 학습하면 model자체를 reuse하지 않아도 가능한 그래프의 모델이 아닌가 생각했다.
저자들은 later feature에서 feature들이 더욱 abstract하기 때문에 Cityscapes에서 train된 model에게 더 useful하다고 가정하였다.
따라서 later feature에 있어서 Cityscapes에 대한 상대적 성능이 좋게 나타났다고 주장하고 있다.
이후 layer2.0이후부터 decoder layer영역 즉 끝부분 까지 Cityscapes에 대한 성능이 점진적으로 줄어들고 있다.
저자들은 이에 대해서 한번 representation이 shift되면, 그 뒤의 layer들은 이전의 output에 대한 정보를 기반으로 하기 때문에 representations의 similarity를 regain하기에는 어렵다고 주장하였다.
그런데 이 점이 사실이라면 layer1.0이후에 layer2.0 성능이 크게 오르는 것에 대해서 추가적인 설명이 필요하지 않았나 싶었다.
image distirbution을 변화시키는 것은 initial feature disparity의 탓일 가능성이 높다. 따라서 저자들은 pixel level에 대한 domain iamge distribution을 분석하였다.
3.2. Analysis of image statistics
low-level feature 변화를 해석하기 위해서 각 domain에 대한 image statistics를 비교하였고, 이를 통해서 early layer에서의 significant representation changes를 설명하려고 하였다.
HSV 채널에 대한 pixel mean과 standard deviation을 측정하였으며 Table 1 에서 살펴볼 수 있다.
Hue는 색상, 색의 종류를 의미하고, Saturation은 채도, Value는 명도로 빛의 밝기를 의미한다.
이 분석을 통해서 Rain, Snow와 Fog가 Cityscapes 보다 확실히 밝다는 것을 알아내었다. (Value값이 크기 때문에)
더 나아가서 mid- , hight-frequency component를 이용하는 경우 CNN의 generlize 성능이 부정적인 영향을 받을 수 있기 때문에 amplitude spectra 또한 분석했다고 하였다.
각 domain들이 low, mid-frequency ranges에서는 비슷한 양상을 보였으 나, Snow와 Rain은 hight-frequency components를 더 많이 포함한 것을 알 수 있다.
이는 model이 이 domain에 대해서 train되었을 때, high-frequency feature에 overfitting될 수 있다는 것을 의미한다.
3.3. Adjusting Low-Level Features
이전의 연구들은 low-level feature reuse는 transfer learning에 매우 중요한 영향을 미친다고 하였다. 그리고 pretraining은 forgetting을 완화시킬 수 있다고 주장하였다.
본 논문은 experiments에서 low-level feature reuse는 downstream tasks에 knowledge transfer를 할 때 중요할 뿐만 아니라, catastrophic forgetting에도 중요하다고 보인다.
따라서 실험에서는 Cityscapes에서 학습한 모델 $f_0$를 initialize하기 위해 pre-training 과 augmentation protocols를 이용하였다. 이후에 어떠한 augmentation이나 continual learning algorithm도 사용하지 않고 ACDC subsets에 모델을 fine-tune하였다.
따라서 이를 통해서 다른 methods들이 어떻게 model feature resuse을 향상시키고 forgetting을 줄일 수 있었는지에 대해 평가하였다.
실험에서는 ImageNet1k로 학습된 ResNet50을 사용하였다. fully-sup방식과, self-sup 방식인 DINO, MoCo v3, SwAV, BarlowTwins를 사용하였다.
Augmentation으로는 3가지를 사용하였다.
1) AutoAlbument (AutoAlbum) - Faster AutoAugment를 통해 Cityscapes dataset을 augmentation하였다.
2) color-invariant features by intensive Color Jittering, Randomly rearranging input image channels. - Distortion이라고 명시함.
3) mid- to low-frequencies by Gaussian blurring , high-frequency information을 없애기 위해서 Gaussian noise를 더하기.
또한 Cityscapes와 ACDC로 합께 trian 시키고 target task에 대해서 fine-tune한 offline pretrained model도 추가하였다.
offline pre-training을 model's feature reuse의 upper bound를 알아내기 위해서 사용하였다.. 왜냐햐면, model은 두가지 task에 대해서 joint optimum인 feature를 학습해야 하기 때문이다.
Table 3에서 pre-training과 augmentations을 보면 대부분 Cityscapes에 대해 train된 모델이 transfer를 더 잘하고 Cisytscapes에 대한 forgetting이 적은 것을 알 수 있다.
pre-train을 한 경우 새로운 task에 대한 tansfer가 향상된 반면, pre-train을 하지 않은 모델들과 비교했을 때 zero-shot capability는 조금만 향상된 것을 알 수 있다.
Color-based augmentation(Distort)과 AutoAlbum은 zero-shot performance가 향상된 반면, pre-train과 비교해서는 ACDC tasks에 더 낮은 성능을 보였다. 이는 zero-shor performance와 trasnfer performance가 항상 비례하는 것은 아니라는 것을 보여준다
그러나 이 augmentations들은 다 forgetting에서 좋은 성능을 보였다.
Rain과 Snow의 경우에 high-frequency components를 포함하고 있다는 것을 이전 분석에서 알 수 있었는데, noise와 blurring을 추가하는 것이 Fog와 Night보다 더 효과적이었다는 것을 알 수 있다.
Table3의 실험을 통해서, 1) pretrained feature는 forgetting에 덜 예민하며, future tasks에 대한 더 좋은 transfer를 보인다는 것과 2) augmentations는 generlaization을 향상시킬 수 있고, ealy layers에서 더 general 한 feature를 생성해낼 수 있다는 것을 알았다.
또한 layer stitching을 통한 실험을 하여 Figure 4에 보였다.
두번째 줄은 pre-trained models에 대한 실험이다. 이는 pre-tarined model이 random initialize보다 initial drop이 더 적게 나타나는 것을 알 수 있고, later alyers에서도 높은 throughout을 보여주었다.
offline pre-trained model또한 Snow, Fog에서 심각한 하락을 보였고, Rain과 Night에서도 성능 하락을 보였다는 것이다. (논문에서는 Rain과 Fog라고 되어있는데 오타인 것 같다..)
저자들은 이 이유가 biased population mean and standard deviation of the BN layers 때문이라고 분석하였다고 한다.
가장 놀라운 점은, color augmentation(Distort)의 경우에 initial drop이 많이 발생하지 않았다는 것이다.
3.4. Impact of Batch Normalizatino on Forgetting
3.3의 결과를 바탕으로 저자들은 BN의 population statistics가 early layer representation 변화의 주된 원인이라고 생각하였다.
이를 증명하기 위해서 CS와 ACDC subset을 함께 이용하여 BN을 re-estiamte하고 이를 Cityscapes에서 test하였다.
Table 5를 보면, 대부분의 method들이 population statistiscs의 re-estimation으로 성능이 많이 오른 것을 알 수 있다.
또한 pre-trained 모델이 Fine-tuning model과 비교해서 성능이 조금만 올랐으며, 이는 pre-trained model들이 biased populateion statistics에 영향을 적게 받는 다는 것을 알 수 있다.
이를 통해서 저자들은 augmentation을 통해서 학습시킨 모델은 BN re-estimation을 통해서는 성능 향상이 조금만 있었으며, Fog의 경우에는 떨어지기도 했다는 것을 밝혀내었다.
저자들은 이를 low-level properties에 대한 invariance 때문이라고 생각했다. augmentation을 통해서 학습된 CNN layer는 이를 다룰 수 있어졌기 때문이다.
따라서 extract된 feature는 preperties에 대해 invariant하며, BN도 distribution shfit에 대해 영향을 덜 받을 수 있었다는 것이다.
intial layer를 제외하고 BN layers를 re-estimate하면 성능 향상이 있었고, 이는 population statistics를 adjust하는 것은 각 domain에 대한 variance를 normalize할 수 있다는 것을 보여준다.
이는 BN이 domain-incremental setting에서의 fergetting에 주된 기여를 하고 있었다고 본다. 또한 low-level feature 때문에도 forgetting이 이루어진다고 보았다.
이러한 점을 검증하기 위해서 BN layers를 Conotinual Normalization layers (CN layers)로 변경하여 실험 결과를 살펴보았다.
이를 통해서 CN은 forgetting을 줄이는 데 효과적임을 확인하였다. 그러나 low-level features에서의 차이는 여전히 존재하기는 했다.
3.5 Combining our Findings
CS로 학습하는 process incremental changes를 위해서 pre-training with DINO를 하고, AutoAlbum을 적용하고, BN을 CN으로 대체해보았다.
Table 6를 보면 이 changes들이 추가됨에 따라 forgetting이 줄어드는 것을 통해서 이 changes들이 상호 보완적이라는 것을 알아내었다.
Figure 6을 보면, DINO로 pre-train된 경우에는 fine-tuning과 비교했을 때 layer1.0 이후에서만 feature reuse를 한 것을 알 수 있다. 그러나, augmentation과 CN을 추가했을 때는 layer1.0 이전의 drift가 매우 줄어든 것을 알 수 있다.
이것을 통해 pre-tarining과 augmentations로 학습 한 것이 feature reuse를 가능하게 한다는 것을 알 수 있었다.
4. Ablation Studies
4.1. Comparison to Continual Learning Algorithms
같은 initialization을 이용했을 때에도 low-level feature reuse가 다른 regularization method를 outperform하는 것을 확인할 수 있다.
Replay의 경우에는 CN과 AutoAlb를 추가했을 때 많은 성능 향상이 있지는 않았는데, 이는 replay 동안에 batch construction으로 인해서 도메인 간의 invariant한 특징을 학습할 수 있기 때문이라고 보았다.
4.2. Architectures
SegFormer, DeepLabV3+, ERFNet을 이용했고 모두 ImageNet에 pretrain하였다. DeepLabV3+는 ResNet50 backbone을 사용하였고, SegFormerB2를 통해서 비슷한 parameter 개수인 model로 비교할 수 있도록 하였다.
Table 8을 보면 transformer 기반인 SegFormer가 catastrophic forgetting에 덜 영향을 받는다는 것을 알 수 있다. 이는 SegFormer가 더 general 한 feature를 배울 수 있었기 때문이다.
이는 또한 Table 9에서 보이는 SegFormer-B2가 DeepLabV3+처럼 많은 성능향상을 보여주지 않은 것에 대한 이유로 보았다.
5. Conclusion
본 논문은 주로 low-level representation에서의 변화로 인해서 catastorphic forgetting이 일어나고 있으며, 이는 그 뒤의 Batch Normalization 레이어들의 statistics에 영향을 미치며 이로 인해서 새로운 domain에 적응할 때 catastrophic forgetting을 발생시킨다고 하였다.
따라서 다양한 pre-train 방법과 augemtation을 통해서 feature reuse가 될 수 있도록 하였으며 이를 통해서 성능 향상을 이루었다.
6. Discussion
이 논문은 헷갈리게 적혀있는 부분이나, 오해의 소지가 있는 부분이 있다고 생각해서 이에 대한 부분은 글에 보라색 하이라이트로 의견을 적어두었다..🥲