
SoftPatch: Unsupervised Anomaly Detection with Noisy Data (NeurIPS 2022)는 다음과 같은 구조로 전개됩니다.
| 섹션 | 내용 |
|---|---|
| 1. Introduction | 기존 비지도 이상탐지(AD) 방법들이 "학습 데이터는 완전히 정상(clean)"이라는 비현실적 가정에 기대고 있음을 지적하고, 실제 산업 현장에서는 라벨 노이즈(오분류된 결함 샘플)가 불가피함을 문제로 제기 |
| 2. Related Work | 2.1 비지도 AD 방법론(자기지도 학습, agnostic 방법, feature modeling 계열 — 특히 PatchCore) 정리, 2.2 노이즈 라벨 학습 관련 기존 연구(주로 지도학습 영역) 정리 |
| 3. The Proposed Method | 3.1 개요, 3.2 패치 단위 노이즈 판별(Nearest Neighbor / Multi-Variate Gaussian / LOF 3가지 판별기), 3.3 soft-weight 기반 이상 점수 재조정 |
| 4. Experiments | MVTecAD·BTAD 벤치마크에서 노이즈 비율별 성능 비교, ablation(노이즈 판별기 종류, soft weight 유무), 파라미터(LOF-K, threshold τ) 민감도 분석 |
| 5. Conclusion | 노이즈 상황에서의 비지도 AD 연구 필요성 재확인 |
| Appendix | 코어셋 시각화, 클래스별 상세 성능, image-level vs patch-level denoising 비교, 연산 복잡도 분석, 실제 데이터셋에 존재하는 노이즈 사례, 증강된 overlap 설정 실험 |
깃허브 저장소(TencentYoutuResearch/AnomalyDetection-SoftPatch) 확인 결과, 코드는 main.py를 진입점으로 하며 PatchCore의 공식 코드베이스(amazon-science/patchcore-inspection)를 기반으로 코어셋 구성 부분을 그대로 확장했다고 명시되어 있습니다. --weight_method 인자로 lof, nearest, gaussian, lof_gpu 중 노이즈 판별기를 선택할 수 있게 구현되어 있어, 논문 3.2절의 세 가지 판별기 설계와 정확히 대응됩니다. 참고로 저장소 설명에는 "SoftKernel"이라는 표기도 보이는데, 이는 이후 개선판인 SoftPatch+ 관련 리네이밍 흔적으로 보이며 논문 자체의 정식 명칭은 SoftPatch입니다.
본문에서 명시적으로 가장 직접적인 기반으로 언급되는 연구는 다음입니다.
"Our solution is inspired by one of the recent state-of-the-art methods, PatchCore [8]."
PatchCore(Roth et al., 2021)는 사전학습된 CNN에서 뽑은 특징을 최근접 탐색으로 서브샘플링하여 작은 코어셋을 메모리 뱅크로 구축하는 방법입니다. 논문은 이 PatchCore의 파이프라인(특징 추출 → 코어셋 선택 → 최근접 탐색 기반 이상 점수 계산)을 골격으로 그대로 채택했다고 명시합니다: "특징 추출, 차원 축소, 코어셋 샘플링, 최근접 탐색 등 알고리즘의 나머지 부분은 베이스라인 PatchCore를 따른다"는 서술이 이를 뒷받침합니다.
그 외에도 방법론 구성 요소별로 참고한 선행 연구가 있습니다.
즉 PatchCore가 사실상 유일한 직접적 baseline이자 아키텍처 기반이고, 그 위에 노이즈 강건성을 위한 모듈(패치 단위 판별기 + soft weighting)을 추가한 구조입니다.
1. 문제 설정 자체의 참신성
이미지 센서리 이상탐지에서 라벨 수준 노이즈 문제를 최초로 다룬 연구라는 점이 핵심 기여입니다. 기존 PatchCore를 포함한 대부분의 방법은 학습셋이 완전히 정상 샘플로만 구성된다고 가정했습니다.
2. 패치 단위 디노이징으로의 전환
샘플(이미지) 전체를 노이즈로 판단해 통째로 제거하는 기존 방식과 달리, 코어셋 메모리 뱅크를 위한 패치 단위 디노이징 전략을 제안하여 기존의 샘플 단위 디노이징 대비 데이터 활용률을 본질적으로 개선했습니다. 노이즈 이미지라도 결함이 없는 대부분의 패치는 정상 정보로 재활용할 수 있다는 통찰입니다.
3. Soft-weighting을 통한 과신(overconfidence) 완화
PatchCore는 코어셋의 모든 패치를 동등하게 신뢰하여 거리 계산을 하지만, SoftPatch는 노이즈 판별기가 산출한 outlier score를 메모리 뱅크에 soft weight로 저장하고, 추론 시 이상 점수를 이 가중치로 재조정합니다. 이를 통해 완전히 걸러내지 못한 "hard noise"(정상과 유사해 판별이 어려운 노이즈)의 영향도 완화합니다.
4. 실험적으로 입증된 강건성
Overlap 설정(노이즈가 테스트셋과 겹치는 가혹한 조건)에서 PatchCore는 노이즈가 늘어날수록 이미지·픽셀 레벨 모두에서 최대 40%에 달하는 성능 하락을 보인 반면, SoftPatch-LOF는 노이즈 수준이 올라가도 뚜렷한 성능 저하 없이 다른 방법들을 일관되게 앞섰다는 결과가 보고됩니다. 이는 PatchCore의 그리디 서브샘플링 전략이 특징 공간에서 이상치를 선호하는 경향이 있기 때문이라고 분석합니다.
5. 연산 비용 측면의 우위
이론적으로 SoftPatch-LOF의 노이즈 판별 과정 복잡도는 O(N²hw)로, PatchCore의 그리디 샘플링 복잡도 O(N²h²w²)에 흡수되어 전체 복잡도가 동일하게 유지되며, 실제로는 노이즈 패치를 일부 제거하므로 오히려 더 빠를 수 있다고 밝히고 있어, 노이즈 강건성 향상이 추가 연산 비용 없이 달성됨을 강조합니다.
요약하면, SoftPatch는 PatchCore의 코어셋 기반 아키텍처를 그대로 계승하되, "학습 데이터가 완전히 깨끗하다"는 PatchCore의 핵심 가정을 깨고 (1) 패치 단위 노이즈 필터링과 (2) 소프트 재가중치라는 두 모듈을 삽입함으로써, 노이즈가 없는 일반 설정에서는 PatchCore와 대등한 성능을 유지하면서 노이즈가 섞인 실제 환경에서는 훨씬 강건한 성능을 보이는 것이 핵심 기여입니다.