이전 포스트
Experiments
실험은 CIFAR-10/100, Fashin-MNIST, Cat-vs-Dog 에 대해 one-vs-rest 방법으로 진행합니다. 또한 더욱 challenging 한 CelebA 의 eyeglasses 데이터와 (안경을 쓴 이미지가 비정상 데이터라 간주합니다.) 산업용 결함 데이터인 MVTec 에 대해서도 실험을 진행합니다. Backbone 모델로는 ResNet-18을 $f$로, 여러 층의 MLP를 $g$로 구성합니다.
Main results
각각의 representation 학습 방법과 OCSVM/KDE one-class classfier 에 따른 성능은 Table 2와 같고 랜덤 시드를 다르게 해서 5번 수행한 결과입니다. (RotNet과 Rotation Prediction의 차이는 $g$의 유무에 따른 차이입니다. $g$가 없는 것이 RotNet, 있는 것이 Rotation Prediction)
RotNet 결과를 보면 end-to-end 로 회전방향을 예측한 것보다 representation 에 대한 KDE를 따로 훈련시킨 것이 AUC가 많이 증가했습니다. 특히 RotNet에 $g$를 추가한 Rotation Prediction은 RotNet의 비해 AUC가 높은 것으로 보아 MLP projection head 를 사용한 것의 효과를 알 수 있습니다. 또한 대조학습 사용시 훈련 데이터의 distribution augmentation을 수행한 것이 성능이 가장 좋았습니다.
Table 3은 기존 baseline 대비 성능 향상입니다. Image classification 의 흔한 선택인 ResNet-18과 momentum SGD optimizer를 선택했음에도 불구하고 성능이 더 좋아진 것을 확인할 수 있습니다. 특히 십자표시가 붙은 baseline은 테스트 시에도 data augmentation을 수행한 것인데 논문의 방법은 test data augmentation 을 수행하지 않고도 높은 성능을 달성했습니다.
추가적으로 test data augmentation 을 진행했을 때 성능이 약간 더 상승했다고 합니다. 특히 테스트 데이터에 대해 augment 한 representation 에 대해 one-class classfication을 진행했을 때 성능이 약간 더 상승하였고 여러 개의 모델 결과를 합치는 앙상블 방법을 적용했을 때에 성능이 더 상승하였습니다.
MVTec
MVTec 데이터는 15개의 카테고리로 구성된 이상탐지 벤치마크 데이터로 10개의 카테고리는 물체, 5개 카테고리는 텍스쳐로 각 카테고리는 241개의 정상데이터 (훈련용) 와 정상/비정상 데이터가 혼재된 115개의 테스트 데이터로 구성되어 있습니다. 특히 이 데이터는 이미지의 픽셀 단위로 결함 여부에 대한 라벨링이 되어 있어 이상탐지의 localization 성능을 확인할 수 있습니다.
먼저 256x256 사이즈 전체에 대해 representation 을 학습하는 것이 아닌 32x32 사이즈의 패치로 쪼개 representation 을 학습하며 이미지 level의 결함 여부와 픽셀 단위의 localization 이상 여부를 확인합니다. 이미지 단위 테스트 시에는 이미지에 max-pooling 을 적용하고 스칼라 anomaly score를 얻고 localization 테스트 시에는 이미지 전체에서 32x32 사이즈의 패치를 stride 4 단위로 뽑아내어 57x57 사이즈의 anomaly score map을 만든 이후 Gaussian kernel 로 256x256 사이즈로 다시 upsampling 하여 픽셀 단위의 라벨과 비교합니다.
Table 4의 결과를 보면 $g$를 사용하고 KDE 를 one-class classification 으로 사용한 것이 성능이 더 좋은 것을 확인할 수 있습니다.
Analysis and ablation study
Uniformity, batch size and distribution augmentation
One-class classification 에서의 매우 큰 배치 사이즈는 hypersphere 상의 uniformity, class collsion 를 유발하여 이에 대한 대안으로 작은 배치 사이즈, MLP head, 훈련 데이터 augmentation을 제안하였습니다. 먼저 uniformity 를 측정하기 위해 representation 과 uniform distribution 에서 샘플링한 데이터 간의 MMD (Maximum Mean Discrepancy, kernel two test 를 이용한 분포간의 거리를 재는 방법입니다.) 를 측정합니다. MMD가 작을 수록 representation 분포가 uniform 분포에 가깝다는 것이겠죠.
Figure 4(a)를 보면 배치 사이즈를 늘릴수록 MMD가 줄어들어 데이터 분포가 uniform 분포에 가까워 짐을 확인할 수 있습니다. 하지만 훈련 데이터 distribution augmentation 을 사용할 경우 MMD가 더 높은 것으로 uniform 분포에 덜 가까운 것을 볼 수 있습니다. 특히, 배치 사이즈가 너무 적은 16 이하는 좋은 representation 학습이 힘들어 적절한 배치 사이즈는 32로 찾았따고 합니다. 마지막으로 Figure 4(c) 에서는 MLP head $g$를 붙인 것이 ($g\circ f$) 안 붙인 것에 비해 ($f$) 성능이 일관되게 높은 것을 볼 수 있습니다.
또한, 추가적으로 MMD와 AUC 의 상관관계를 분석합니다. Figure 8을 보면 MMD가 높아짐에 따라 representation 분포가 uniform distribution 에서 멀어지고 AUC 가 증가함을 볼 수 있습니다. 특히, MLP head $g$를 덧붙여 사용하는 것이 uniformity를 줄이는데 더 효과적임을 알 수 있습니다. (Figure 8의 오른쪽 그림은 log MMD $f$ 입니다.)
Unsupervised and semi-supervised anomaly detection
Unsupervised 이상탐지는 훈련 데이터에 이상치가 껴있는 경우이고 무엇이 이상치이고 얼마만큼 포함되어 있는지 모르난 상황에서 이상탐지를 수행하는 것입니다. 1) unsupervised 조건을 representation, classifier 학습에 둘 다 적용하는 것과 2) unsupervised 조건을 representation 학습에만 적용하고 classfier는 50개 정도의 적은 정상 데이터로만 학습할 때의 2가지 실험을 진행합니다.
Figure 5(a)를 보면 1번 실험으로 이상치 비율이 증가할 수록 성능이 감소하지만 (b), (c)는 2번 실험으로 대조 학습 방법으로 실험을 수행한 경우 성능이 떨어지지 않거나 오히려 증가하는 것을 볼 수 있습니다. 이는 대조 학습 자체가 각 데이터 샘플을 비교하는 방식으로 학습되기 때문에 자연스럽게 정상/비정상을 구분하도록 학습되었기 때문으로 추정됩니다. 반면 회전 기반의 representation 학습은 이상치 비율이 증가할수록 감소하는데 이는 정상/비정상 데이터 모두 회전 방향을 예측하는데 사용되어 정상 데이터만의 고유한 representation 을 제대로 학습하지 못한 것으로 생각할 수 있습니다.
Visual explanation
마지막으로 gradient 방식의 입력 이미지 heatmap을 추출하는 IG (Integrated gradients), GradCAM 을 이용하여 모델의 판단 근거를 파악합니다. KDE를 사용한 것이 훨씬 그럴듯한 설명을 부여하며 RotNet 의 경우 주변의 배경이나 잘못된 부분을 감지한 것을 볼 수 있습니다.
홍머스 정리
- One-class classification 에 적용하기 위한 representation 학습 방법 3가지는 1) 적은 배치 사이즈, 2) MLP head 사용, 3) distribution augmentation 이고 이 모든 방법은 representation 분포를 hypershpere 상에서 uniform 하지 못하도록 강제하는 방법.
참조
'Machine Learning Tasks > Anomaly Detection' 카테고리의 다른 글
Learning and Evaluating Representations for Deep One-Class Classification (1) (0) | 2021.05.06 |
---|---|
NeuTraL AD (0) | 2021.05.04 |
Isolation Forest (2) | 2021.05.02 |
Local Outlier Factor (LOF) (0) | 2021.05.01 |
RAPP (0) | 2021.04.30 |