SimpleNet 의 경우 Synthesizing-based method 와 Embedding based-method 두 가지 성격을 띄고 있다.
SimpleNet 이전의 Synthesizing method 들의 경우,
real-world 의 anomaly와 다른 형태가 보이는 경우가 많았음.
DRAEM, CutPaste 의 생성 결과를 보면 인위적인 형태의 anomalous 정보를 넣은 것을 볼 수 있는데.
이런 것들이 문제가 될 것이라고 생각했음.
그래서 SimpleNet 의 경우에는 feature space에 Gaussian noise 를 더함으로써, 훨씬 real-world 에 존재할만한 synthesizing anomaly image 를 만들었다고 볼 수 있다.
또, 이 논문의 주요 포인트는 Feature Adaptor 라고 할 수 있겠다.
pre-trained CNN 의 경우 ImageNet 으로 주로 학습되어 있다보니, target Domain 의 image 들과 다른 데이터셋 분포를 갖고 있을 것임. 이를 해결하기 위해, Feature Adaptor를 도입하여 target domain 특징에 맞게 학습시킨다는 것.
Feature Adaptor의 경우 MLP 또는 fully-connected layer 형태로 구성이 되어 있음. 저자들의 실험에서는 1개의 fully-connected layer 구성이 가장 성능이 좋았다고 한다.
Feature adaptor 를 적용한 후, target domain 분포에 더 잘 맞추어진 모습을 볼 수 있다.
pseudo-code 를 보면 더 이해하기 쉬운데,
F(x) 의 경우 PatchCore 와 유사하게 진행되었고,
그 값에 Feature adaptor 를 적용하여 adpated features 를 생성한다.
그리고 가장 먼저 말한, feature space에 Gaussian Noise 를 첨가하여 anomaly 형태로 만드는 형태이고
loss 를 구한다. (Discriminator 라는 것을 추가해서 진행하긴 함.)
Discrinimator 는 normal, abnormal 을 판별하는 classifier 형태.
최종적으로 loss 에서는 Discriminator 와, Feature adaptor 를 학습하게 됨.
단순 MVTEC 성능으로만 본다면 PatchCore 와 큰 차이가 없다고 할 수 있으나,
real-world 에 들어갔을 때 SimpleNet 의 효과를 더 볼 수 있지 않을까 싶다.
최근에 RealNet 논문을 읽기 전에, SimpleNet 이 기억이 나서 간단하게 리뷰해보았다.
다음은 RealNet 을 리뷰해보면 좋겠군.