Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dinomaly: The Less Is More Philosophy in Multi-Class Unsupervised Anomaly Detection #85

Open
YoojLee opened this issue Jul 17, 2024 · 1 comment
Labels
2024 papers published in 2024 AD Anomaly Detection

Comments

@YoojLee
Copy link
Owner

YoojLee commented Jul 17, 2024

image

Summary

Dino 방식으로 학습된 transformer 아키텍처를 잘 활용하면, 아주 간단하게 multi-class anomaly detection을 수행할 수 있다. 1) Noisy Bottleneck 2) Linear Attention 3) Loose Constraint 4) Loose Loss의 4개의 components로 구성. 각 component가 identity shortcut 막을 수 있다고 주장함. 이때의 성능은, 기존의 one-class-one-model sota를 상회한다.

Method Highlights

전체적인 문제의식은 uniAD랑 비슷함. recon 방식으로 multi-class anomaly detection을 접근했을 때 가장 문제가 되는 점은 identity shortcut임 (이 논문에서는 identity mapping이라고 하지만). 그걸 별도의 novel한 module을 넣지 않고서도 간단하게 해결할 수 있다는 취지임.

image

backbone

backbone은 DINOv2-R (register token 사용한 버전)로 한정 지음 -> 다른 backbone에서도 실험을 하긴 했으나, 전체적으로 CL에서 높은 성능을 보여줌.
image
=> 그래도 전체적으로 성능이 괜찮아보임. 약간 recon 방식에서 굳이 scratch로 학습을 하지 않고 encoder는 얼려도 된다 이런 걸로 보인다 (distillation으로 봐도 될 것 같다. distillation에서 backbone을 바꾸면? 이런 느낌)

noisy bottleneck

이 부분은 feature noise를 denoising하는 것을 목적으로 하고, decoder에 encoder feature를 먹여줄 때 (bottleneck), bottleneck 부분인 MLP에 dropout을 적용함으로써 noise를 주는 것과 동일한 작용을 한다고 함 (이 부분은 상당히 흥미롭). dropout이 기존에는 볼 때마다 다른 representation을 줌으로써, network의 generality를 높이는 방향으로 갔지만 여기서는 noise로 적용하는 형태로 해석한다는 점이 흥미롭..

linear attention

image

Decoder 부분의 attention을 softmax attention에서 linear attention으로 대체하면, 이웃하는 영역에 더 집중하는 경향이 사라진다 (논문에서는 unfocusing ability라고 칭함). 이 부분이 기존의 image recognition 분야에서는 한계로 작용했지만, 오히려 여기에서는 identity shortcut을 방지할 수 있다는 측면에서 접근. 이 부분은 UniAD의 neighbor-masked attention과 비슷한 접근이지만, 훨씬 간단하게 implement할 수 있음.

loose reconstruction

  • loose constraint
    image
    reconstruction 에러 term에 어떤 레이어를 넣어줄 것이냐라고 보면 됨. layer-to-layer로 넣어주면, identity shortcut에 취약해질 수밖에 없음 (이 부분이 distillation에서는 도움이 됐지만, 오히려 recon에서는 방해된다고 주장. 근데 내가 볼 땐 이 부분은 distillation에서도 비슷하지 않을까 싶음. kd에서도 over-generalization이 문제가 되는데 내가 봤을 땐 이게 identity shortcut이나 비슷하지 않나 싶은 생각). 어쨌든, layer를 add 형태로 aggregate해서 decoder의 aggregated feature와 매칭해주는 형태임 (이게 layer2layer correspondence가 loose해지기 때문이라 함). 다만, 여기서 앞단 뒷단으로 grouping해서 평균낸 후 loss term에 넣어주는데 이는 1 group에서는 detection 성능은 괜찮은데 localization 성능이 떨어지기 때문이라고 함.

  • loose loss
    image
    point-by-point로 reconstruction할 때, 잘 restore된 feature point의 gradient는 0.1로 downscale해줌 (아예 sg 걸어버리면 학습이 잘 안되더라). 이 부분은 ReContrast에서 가져옴.

Experiment Highlights

image
실험 세팅에 대한 정보.

image
성능은 기존 방법론 압살..ㅎㅎ 다만, backbone의 영향이 제법 컸을 것으로 보임.

image
448로 학습하길래 resolution 측면에서 unfair하지 않을까 싶었는데, low resolution에서도 실험한 결과 충분히 잘 나오더라.

image
image

베이스라인부터가 아주 강력함. 오히려 Linear Attention이나 Loose constraint 같은 경우에는 그 자체로는 도움이 안되고, denoising task를 condition으로 했을 때 더 도움이 되는 구조. 이미 근데 포화가 많이 되어서 뭔가 요소를 추가할 때부터 드라마틱하게 오르긴 어려워보임 (Real-IAD에서는 안보여줬을라나)

image

이 결과를 보면 솔직히 linear attention이 크게 의미 있나 싶긴 하다. 이미 너무 포화되어서 성능 변화를 보여주기 까다로울 듯.

image

scalable하다고는 하는데, backbone에 따라 너무 영향을 많이 받을 듯해서 의미있는 결과일까 싶음.

image

backbone을 바꿔가면서 실험을 많이 했음. 개인적으로 궁금한 건 backbone을 바꿨을 때도 저 ablation의 기조가 유지가 될까 하는 점이긴 함 (오히려 유지가 된다면, 좀 성능이 약한 backbone에서 보여주는 것도 하나 추가하면 더 설득력이 있었을 것 같음). 일단 backbone의 영향력이 엄청 크긴 큰 것 같다. 다 어느 정도 기존거를 상회하는 점수를 보임 (MAE 제외. 내가 볼 땐 pixel recon task 자체가 ad에서 generality를 너무 떨어뜨리는 것 같음)

Strengths

  • 압도적인 성능
  • 흥미로운 발견 & 발상의 전환

Weaknesses

  • 이미 backbone이 너무 강력해서 backbone의 영향이 많았을 거 같고, 제안한 component가 크게 영향을 주었을까 싶은 의구심 (dino는 다른 방식으로 해도 잘 나옴. backbone이 갖는 representation 퀄리티가 이미 너무 좋지 않았을까 하는 느낌.)
  • novelty가 떨어짐 (발상의 전환이 novel하기도 하고, 애초에 fancy한 module을 개발하지 않고도 잘 나온다는 게 셀링포인트기도 해서 큰 weakness는 아닐 것 같음)
  • 논문에서 말하길 semanticAD에서는 성능이 안좋다고 한다 (음?)
@YoojLee YoojLee added AD Anomaly Detection 2024 papers published in 2024 labels Jul 17, 2024
@YoojLee
Copy link
Owner Author

YoojLee commented Jul 17, 2024

cf.) multi-resolution knowledge distillation

  • distillation loss를 sparse하게 layer 별로 주게 됨 (여기서 sparse하다는 건 매 레이어는 아니고, 매 k개의 레이어 이런 식)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2024 papers published in 2024 AD Anomaly Detection
Projects
None yet
Development

No branches or pull requests

1 participant