[20′ ICPR] Mahalanobis AD : Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection

This entry is part 16 of 40 in the series Anomaly Detection

내용 요약

기존의 SPADE와 같은 방법들이 이미 pretrained network를 사용하는 Anomaly Detection 방법을 제안했습니다. 하지만 이는 kNN이라는 단순한 방법을 사용하여 성능이 낮다는 한계가 있었습니다. 이를 극복하기 위해 pretrained network로부터 추출한 feature에 Mahalanobis distance를 사용하여 anomal score를 측정하는 Mahalanobis AD 방법을 제안합니다. 뿐만 아니라 PCA를 사용하여 pretrained network를 사용하는 Anomaly Detection 방법의 우수함을 입증했습니다. 또한 mvTec 데이터셋에서 기존 방법들보다 성능이 우수함을 보였습니다.

1. 들어가며

이번 글에서는 2020년 발표된 Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection 논문을 리뷰합니다. 이 논문은 특별히 별칭이 없어, 이번 글에서는 Mahalanobis distance를 사용한 Anomaly Detection이라는 의미로 Mahalanobis AD로 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.

먼저 제목의 의미를 살펴보겠습니다.
제목을 통해 저자들은 크게 두 가지를 강조하고 있음을 알 수 있습니다.
첫 번째는 pre-trained network에서 추출한 feature를 사용한 Anomaly Detection 방법이라는 것입니다.
두 번째는 이렇게 추출한 feature들의 distribution을 modeling 하는 방법을 사용한다는 점입니다.
이 두 가지를 염두에 두고 논문을 자세히 살펴보겠습니다.

Mahalanobis AD의 contribution은 다음과 같이 요약할 수 있습니다.
첫 번째는 pretrained network를 Anomaly Detection task에 사용했다는 것입니다.
두 번째는 정상 데이터 feature에 Multi Variate Gaussian (MVG)를 적용하여 mahalanobis distance를 사용한 anomal score 측정 방법을 도입했다는 것입니다.
세 번째는 PCA(주성분 분석)를 사용하여 pretrained network를 사용하여 추출한 feature들의 특징을 분석했다는 것입니다.
네 번째는 이를 통해 정상 데이터를 학습하는 것보다 pretrained network를 사용하는 방법이 더 유용함을 밝혔다는 것입니다.

Mahalanobis AD 전에도 pretrained network를 사용하는 Anomaly Detection 방법은 존재했습니다. 예를 들어 SPADE는 pretrained network를 사용하여 추출한 feature들로부터 kNN을 사용하여 anomal score를 측정했습니다. 하지만 SPADE는 성능이 충분히 높지 않았죠. Mahalanobis AD의 저자들은 이에 대한 원인으로 kNN을 지목합니다. NN은 너무 단순한 알고리즘으로 정상 데이터 전체의 특성을 반영하지 못하기 때문에 성능이 높지 않다고 지적하죠. Mahalanobis AD는 SPADE의 한계를 지적하며 나온 방법인 만큼, 이번 글에서는 SPADE와 계속해서 비교하며 논리를 진행합니다. 따라서 SPADE에 대한 내용을 모르신다면 꼭 이해하고 이번 글을 읽어야 온전히 이해하실 수 있습니다.

SPADE에 대한 자세한 내용은 해당글을 참고해 주세요.

2. 제안 방법

그럼 이러한 한계를 극복하기 위한 Mahalanobis AD의 아이디어를 살펴보겠습니다.

2-1. Motivation

먼저 Mahalanonis AD의 큰 그림을 살펴보겠습니다.
Mahalanobis AD는 SPADE와 마찬가지로 정상 데이터로 네트워크를 학습하지 않습니다. 대신 ImageNet처럼 대용량의 데이터셋으로 pretrained 된 네트워크를 사용하죠.

1.pretrained network로 feature 추출하기
그림1. pretrained network로 feature 추출하기

위의 그림과 같이 pretrained 네트워크를 사용하여 N개의 정상 이미지로부터 N개의 feature를 추출할 겁니다. 자 이제 N개의 feature가 저 차원의 feature 공간에 분포하고 있다고 상상해 보겠습니다.

2.추출한 feature들을 대표하는 분포 구하기
그림2. 추출한 feature들을 대표하는 분포 구하기

SPADE 같은 경우 테스트 feature와 가장 가까운 k개의 정상 feature의 거리를 바탕으로 anomal score를 측정했죠. 하지만 Mahalanobis AD 저자들은 이런 생각을 한 것 같습니다.
‘정상 데이터는 N개나 되고 각각이 정상 데이터의 특징을 말해주잖아. 그런데 겨우 k개만 사용하겠다는 건 너무 비효율적이야. 그보다는 N개의 정상 feature를 대표하는 하나의 분포를 계산하고, 이 분포로부터 얼마나 떨어져 있는지를 근거로 anomal score를 측정하면 어떨까?’

2-2. Idea

위 그림을 보면 검은색 점의 정상 feature들 분포를 대표하는 하나의 타원을 찾은 모습을 볼 수 있습니다. N개의 점을 일일이 사용하지 말고, 이제 그냥 이 타원 하나가 정상 분포라고 생각하고 계산하자는 거죠. (SPADE는 위의 상황에서 k개의 점만 사용을 한 경우입니다.) 그럼 이제 검은색 점들은 지우고 타원만 가지고 생각을 진행해 보겠습니다.

3.대표 분포로부터의 거리로 anomal score 측정하기
그림3. 대표 분포로부터의 거리로 anomal score 측정하기

자, 이제 타원이 우리의 정상 feature들의 분포입니다. 테스트 feature로 X1과 X2가 주어졌다고 해보겠습니다. 이때의 X1과 X1의 anomal score는 타원 분포로부터 떨어진 정도이므로 각각 d1과 d2라고 할 수 있겠네요. 그리고 d1이 d2보다 크니까 X1이 X2보다 비정상이라고 하면 되겠네요.

그런데 한번 더 생각해보면 의문이 생깁니다. 분포가 타원이라는 건 장축 방향으로는 더 넓은 variance를 갖고, 단축 방향으로는 더 작은 variance를 갖는다는 말이잖아요? 그런데 variance를 고려하지 않고 단순히 중앙으로부터의 거리로 비교하는 건 불공평해 보입니다. 그러면 장축 방향으로 분포하는 feature들에게 불리해지니까요.

예를 들면 이런 거죠. 두 개의 특성을 각각 키와 몸무게라고 해봅시다. 평균 키는 170cm에 variance가 10cm이고, 평균 몸무게는 70kg에 variance가 5kg라고 해볼게요. 그런데 위의 타원 논리는 키가 160cm에 몸무게 70kg인 사람 A와, 키 170cm에 몸무게 80kg인 사람 B의 비만율이 같다고 얘기하고 있는 겁니다. 이러면 불공평하죠. 왜냐하면 A는 표준보다 키가 10cm 작았는데, 이는 키의 variance 측면에서 보면 1배가 작은 거죠. 반면 B는 표준보다 몸무게가 10kg가 더 나가는데, 이는 몸무게의 variance 측면에서 보면 2배가 더 많은 거니까요! 단위가 다르니 각각의 variance에 맞게 고려해줘야 공평하지 않겠어요?

2-3. Mahalanobis Distance 사용하기

그래서 이런 생각을 한 겁니다. ‘그럼 각 차원별로 variance로 normalization을 해준 뒤에 측정해야겠다.’ Variance가 큰 차원은 줄여주고, variance가 작은 차원은 더 키워줘서 공평함을 맞춰주겠다는 뜻이죠. 그럼 이제 우리가 보던 타원은 아래 그림처럼 원형에 가깝게 바뀔 겁니다.

4.variance로 normalization하여 원형 분포 만들기
그림4. variance로 normalization하여 원형 분포 만들기

이 상태에서는 X1과 X2에서 측정한 anomal score가 거의 동일하게 나오는 모습을 볼 수 있습니다. 위의 논리는 약간의 비약이 있을 수 있지만, Mahalanobis distance의 철학을 쉽게 설명해주고 있습니다. Mahalanobis distance의 수식은 다음과 같습니다.

5.Mahalanobis distance
그림5. Mahalanobis distance
  • 𝜇 : x들의 mean (평균)
  • 𝛴 : x들의 covariance (공분산)

covariance 항이 없다면 일반적인 euclidean distance와 동일한 식임을 알 수 있습니다. 평균점으로부터 떨어진 거리를 나타내고 있죠. 그런데 여기에 covariance의 inverse가 곱해져 있는 모습을 볼 수 있습니다. 이는 앞선 이야기에서 살펴본, 각 차원별로 공평하게 측정하기 위해 variance로 normalization 해주기 위한 항이라고 생각할 수 있습니다. Covariance는 모든 차원들끼리의 variance를 측정한 matrix라고 생각하면 됩니다. 따라서 모든 차원에 대해 variance의 inverse를 곱해줌으로써 타원을 원형 형태로 찌그러뜨려주는 효과를 내기 위한 항이라고 해석할 수 있습니다.

2-4. Anomal score

이제 Mahalanobis distance를 사용하여 어떻게 anomal score를 측정하는지 살펴보겠습니다.
SPADE의 경우 모든 level layer feature를 사용하기 위해 feature pyramid 방식을 사용했습니다. 이를 통해 다양한 특성의 정보를 모두 사용하고자 했죠. 반면 Mahalanobis AD는 각 layer feature별로 anomal score를 측정하고 이를 모두 더하여 최종 anomal score로 정하는 방법을 사용합니다.

6.anomal score 구하기
그림6. anomal score 구하기

위 그림을 보겠습니다.
위의 pretrained CNN으로부터 총 3개 layer의 feature를 추출한다고 가정해 볼게요. 이제 이렇게 추출한 3개 layer feature들은 각각 N 개씩이므로 각각의 분포를 가질 겁니다. 따라서 각각의 covariance도 가질 거고요. 이제 테스트 feature는 3개 layer로부터 mahalanobis distance를 사용하여 각각의 anomal score를 측정할 겁니다. 이렇게 나온 세 개의 anomal score를 모두 더한 값이 최종 해당 데이터의 anomal score가 되는 것이죠.

3. 실험 결과

이제 Mahalanobis AD는 기존의 다른 방법들보다 얼마나 성능이 좋은지 실험을 통해 확인해 보겠습니다.

3-1. mvTec

Mahalanobis distance는 산업용 Anomaly Detection 방법을 타깃으로 하는 만큼 산업용 데이터셋인 mvTec으로 실험을 진행했습니다. Image level의 Anomaly Detection 성능을 측정한 결과는 다음과 같습니다.

7.mvtec image level 성능
그림7. mvtec image level 성능

위 표는 다양한 방법들로 측정한 mvTec 데이터셋의 image level 성능입니다.
Mean은 여러 번 측정한 성능의 평균값을 의미합니다. SEM은 여러 번 측정한 성능의 표준 편차를 의미합니다. Pre-Trainded Classifier + Fully supervised fined tune 방식은 실제로 존재하는 방식이 아닙니다. Anomaly Detection에서 비정상 데이터를 사용하여 fully supervised 방식으로 학습할 수는 없으니까요. 이는 저자들이 임의로 만들어낸 방법입니다. 테스트 데이터의 anomal 데이터들을 일부 학습에 사용하고 이렇게 학습한 supervised 모델로 성능을 측정한 것이죠. 이는 일종의 upper bound 성능으로 참고할 수 있습니다. 이에 가까울수록 unsupervised 방법 치고는 엄청 잘했다고 생각해줄 수 있는 것이죠.

그런데 Mahalanobis AD의 성능을 보면 fully supervised 방식의 성능에 거의 근접한 모습을 볼 수 있습니다. 비교 대상인 SPADE보다 성능이 월등히 좋아진 모습도 확인할 수 있습니다. 이를 통해 pretrained network와 mahalanobis distance를 사용하는 방법이 효과적임을 알 수 있습니다.

4. Ablations

다음은 ablation 실험을 통해 왜 Mahalanobis AD의 성능이 좋은지 살펴보겠습니다.

4-1. 왜 pretrained network를 사용하는 게 효과적일까

Pretrained network를 사용하는 방법은 왜 효과적일까요?
Mahalanobis AD 뿐만 아니라 SPADE에서도 pretrained network로부터 추출한 feature는 아주 강력한 분류 기능이 있음을 입증했습니다.

8.PCA와 NPCA를 수행한 mvtec layer별 성능
그림8. PCA와 NPCA를 수행한 mvtec layer별 성능

위의 표는 Mahalanobis AD 방식으로 측정한 mvTec의 layer별 성능을 나타낸 표입니다.
뿐만 아니라 PCA와 NPCA를 했을 때의 성능을 비교하고 있습니다.
이해를 위해 PCA의 핵심만 잠깐 살펴보겠습니다. PCA란 쉽게 말해서 ‘어떠한 분포의 차원을 variance가 큰 순서로 나열한 뒤 작은 variance의 차원부터 제거하는 방법’입니다. 예를 들어 처음 설명한 키와 몸무게로 이루어진 분포를 다시 생각해 보겠습니다. PCA는 variance가 더 큰 키 만을 가지고 분포를 설명하려는 방법입니다. 왜냐하면 variance가 더 클수록 특성 변화가 명확하여 설명하기 쉽기 때문이죠. 반면 NPCA는 그와는 반대로 variance가 더 작은 몸무게만을 가지고 분포를 설명하려는 시도입니다.

자 이제 다시 결과표를 보겠습니다.
표의 결과는 다음과 같이 정리할 수 있습니다.
첫 번째로 PCA를 수행하면 하지 않았을 때 보다 성능이 하락하는 경향이 있다는 것입니다.
두 번째는 NPCA를 수행하면 하지 않았을 때 보다 성능이 향상하는 경향이 있다는 것입니다.

이를 해석해 보겠습니다.
일반적으로 알려져 있는 바와는 달리, variance가 큰 특성만을 가지고 Anomaly Detection을 수행했더니 오히려 성능이 나빠지고, variance가 작은 특성만을 가지고 Anomaly Detection을 수행했더니 성능이 좋아졌다고 합니다. 이 말은 variance가 작은 특성들이 Anomaly Detection에서는 더 중요한 역할을 하기 때문이라고 해석할 수 있습니다.

그런데, 정상 데이터를 학습하는 방법으로는 이러한 작은 variance의 특성들은 학습할 수 없을 겁니다. 왜냐하면 보통 데이터를 학습하는 방법은 두드러지는 특성을 학습하니까요. 따라서 저자들은 정상 데이터를 학습하는 Anomaly Detection 방법론은 한계가 있다고 주장합니다. 차라리 다양한 특성을 학습한 pretrained network를 사용하여 분포를 추정하고 modeling 하는 방법이 더 효과적이라고 주장하는 것이죠.

4-2. Layer별 성능

다음은 layer별 성능을 살펴보겠습니다.

이번 실험에서는 총 세 가지의 scoring 방식을 사용할 겁니다.
첫 번째는 L2 distance입니다. 이는 각 차원의 variance를 전혀 고려하지 않은 일반적인 distance를 의미합니다.
두 번째는 Standardized Euclidean Distance (SED)입니다. 이는 L2 distance로부터 각 차원의 variance로 standardization을 수행해준 distance입니다. Mahalonbis distance와의 차이는 covariance를 사용하지 않고 N개의 차원에 대한 variance만 고려해주었다는 점입니다.
세 번째는 Mahalanobis distance입니다.

9.scoring 방법에 따른 mvTec layer별 성능
그림9. scoring 방법에 따른 mvTec layer별 성능

위 표는 layer별로 다양한 scoring 방식으로 측정한 mvTec Anomaly Detection 성능입니다.

위 결과로부터 두 가지 사실을 알 수 있습니다.
첫 번째는 deep feature 일수록 성능이 좋아지는 경향이 있지만 level7에서 saturation 된 다는 점입니다. Anomal 특성과 일치하는 layer를 사용할 때 가장 성능이 좋음을 알 수 있습니다.
두 번째는 L2 distance, SED 보다 Mahalanobis distance가 훨씬 성능이 좋다는 점입니다. 모든 차원의 variance를 고려해줄 때 가장 성능이 좋음을 알 수 있습니다.

5. 결론

Pretrained network를 사용하여 추출한 feature에 Mahalanobis distance를 사용하여 anomal score를 측정하는 Mahalanobis AD 방법을 살펴봤습니다. Mahalanobis AD는 mvTec 데이터셋에서 다른 방법들보다 좋은 성능을 보였습니다. 뿐만 아니라 PCA를 사용하여 Anomaly Detection에서는 정상 데이터를 학습하는 방법보다 pretrained network를 사용하는 방법이 효과적임을 보였습니다. Mahalanobis AD는 정상 데이터의 없이 쉽게 사용할 수 있으면서도 좋은 성능을 내는 산업용 Anomaly Detection 방법이라는 의의를 갖습니다. 하지만 pixel level의 segmentation을 할 수 없다는 한계가 있습니다.

Series Navigation<< [20′ Arxiv] SPADE : Sub-Image Anomaly Detection with Deep Pyramid Correspondences[21′ ICPR] PaDiM : a Patch Distribution Modeling Framework for Anomaly Detection and Localization >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top