본문 바로가기

전체

(160)
Unsupervised Anomaly Detection for Tabular Data Using Noise Evaluation 논문 리뷰 Jicong Fan 교수방에서 나온 논문이고 (논문링크) AAAI25에 accept되었다. related work 조사를 안하는건지 아니면 못본척 하는건지 TabAD SOTA 논문들과 비교를 안하고 있다. 또 용어도 최근에 다시 정립된 용어를 쓰지 않고....ㅠㅠㅠ 옛날에 써둔걸 제출한건가 싶다. (TabAD에서는 normal만 train하는 setting을 최근 semi-supervised라 부르고 있는데 unsupervised AD로 부른다던가...) 하지만 idea자체는 명료하고 말이 된다. 앞선 포스팅에서의 PReNet은 real anomaly를 활용하여 normal과 anomaly와의 점수차를 학습하였다면, 해당 논문은 real anomaly 없이 noise를 추가한 샘플이 hard anomal..
Deep Weakly-supervised Anomaly Detection 논문 리뷰 이 논문의 baseline이기도 한 DevNet의 저자인 Guanson Pang의 후속연구로 KDD23에 accept된 Deep weakly supervised anomaly detection 논문을 리뷰하려고 한다. Real-world에서는 기존에 많이 연구되는 normal만으로 training하는 setting보다 labeled anomaly도 일부 존재하는 상황이 더 있음직하다. 해당 논문은 더 나아가 seen anomaly가 전체 anomaly를 대표하지 못하는 경우를 가정한다. 상황도 납득이 가고 data pair를 3가지 조합으로 만들어 학습의 다양성을 높이고 조합에 따라 점수를 다르게 주어 binary가 아닌 3-level의 score를 학습한다는 점이 신박하고 쉬워서 재밌게 읽었다.Intr..
INTEL MKL ERROR/faiss 버전문제 해결 faiss 패키지로 유사도 계산하는 코드를 쓰려다가 해당 문제를 발견하셨나요? INTEL MKL ERROR: /opt/conda/lib/python3.8/site-packages/faiss/../../.././libmkl_def.so: undefined symbol: mkl_sparse_optimize_bsr_trsm_i8.Intel MKL FATAL ERROR: Cannot load libmkl_def.so.  faiss 버전을 다음과 같이 설정하면 해결됩니다! 왜인지 나는 faiss-gpu로 받으면 INTEL MKL error가 뜬다.(환경: 리눅스 RTX3090 or A40)pip install faiss-cpu==1.7.3
DRL: DECOMPOSED REPRESENTATION LEARNING FOR TABULAR ANOMALY DETECTION 논문 리뷰 ICLR 2025에 따끈따끈하게 accept된 tabular AD paper (논문링크)이다. latent disentangle로 tabular AD를 잘해보겠다는 접근이다. 특히 separation loss는 AD에 특화된 loss였는데 왜 효과가 있는지 증명까지 해줘서 납득이 되는 연구였던 것 같다.IntroductionTabular ADTabular data는 heterogeneous feature의 vector들로 표현되는데 Anomaly detection에서 필수적인 data type이다. (금융, 의료 등등 다양한 분야에서 tabular data AD가 필요) 대부분의 real-world scenario에서 labeled anomalies는 domain experts에 의해 annotation..
한 숨 돌리기 최근에 꽤나 긴 시간이 걸렸던 일의 결과물을 정리하였습니다. 조급한 마음에 주변을 많이 둘러보지 못했던 것 같습니다.주변이라 함은 학문적인 측면과 사회적인 측면 둘 다를 말합니다.내가 좀 더 잘하는 사람이 된다면, 하나에만 매몰되지않고 주변을 살필 여유가 생길까요?여러 고민을 흩트러놓다가 제가 제일 자주 쓰는 "일단"이라는 단어를 떠올립니다.일단 지금 여기에 주어진 것을 해내자구요.그렇게 살아왔더니 이전에 어려웠던 일이 쉽게 느껴지는 날도 오더라구요. 무너지고 깨지는 날들도 있지만 그럼에도 불구하고 또 부딪혀나가겠다는 마음을 다시 새겨봅니다.좌절의 시간이 찾아오더라도 한숨 푹 자고 새로이 다짐을 하겠다는 마음도요.누군가에겐 썩 성에 차지 않을지라도 스스로에게는 최선이 되도록 해보겠습니다. 이런저런 생각이..
[PyTorch] AttributeError: 'str' object has no attribute '_apply' 해결 net = net.to(self.device) File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1145, in to return self._apply(convert) AttributeError: 'str' object has no attribute '_apply' 이 오류가 난 원인은 모델 정의할 때, model.py에서 net = ResNet 그리고 main.py에서 net = net.to(self.device) 이렇게 해버렸다. net = ResNet -> net = ResNet() 이렇게 바꾸니 해결! class를 정의해야되는데 str을 정의해버린 어처구니없는 실수.. string에 net.to(self.d..
np.savez_compressed로 np.array 여러개 한번에 저장 np.savez_compressed() import numpy as np mu = np.array([0.5, 0.5]) sigma = np.array([0.5, 0.5]) np.savez_compressed(paths[1], mu=mu, sigma=sigma) np.load() with np.load(path) as f: m, s = f['mu'][:], f['sigma'][:]
[PyTorch] 코드 재현성(reproducibility)을 위한 랜덤시드 설정 Neural network의 초기값은 랜덤임으로 실험마다 성능차이가 생길 수 있다. 어느정도 성능을 보장하기 위해 랜덤시드를 고정해두는 것은 필수이다. 매번 뒤적뒤적 찾기 귀찮아서 박제해놓기! (**seed를 고정해도 패키지 버전이 같지 않으면 성능이 천차만별이므로 꼭꼭 버전을 모두 맞추도록 하자.) def seed_all(seed): os.environ['PYTHONHASHSEED'] = str(seed) random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # if you are using multi-GPU. torch.backend..