반도체 소자 이상 탐지 AI 경진대회

Public 1st, Private 34th 후기 및 실패 회고

2024.03.05 17:34 601 Views

비록 입상권에 들진 못했지만 Competition을 통해 느낀점을 공유하고 이를 통해 다른 분들께도 도움이 되면 좋겠다는 생각에 글을 작성합니다.

우선 처음 내용을 보고 상당히 막연했었습니다. 데이터셋은 좀 더 잘 알고 있었지만, CV에서 Unsupervised Anomaly Detection에 대해서는 아는바가 거의 없었습니다

그렇지만 우선 관련된 연구가 있을것이라는 생각에 paperswithcode를 통해 도메인 지식을 얻고자했고, LG AI Research에서 최근에 발표한 연구와 그것의 기반이 되는 Patch Core에 대해서 알게 되었습니다.

우선 빠르게 스키밍하면서 LG AI의 구현체는 test dataset의 Distribution이 필요한 것 같고, 그 기반은 Patch Core이기 때문에 Patch Core를 좀 더 봐야겠다 생각해서 해커톤이 열린날 저녁에 논문을 읽은 뒤, 핵심 접근만 파악한 뒤 부족한 구체적인 구현에 해당하는건 Official repo를 보면서 구현했습니다.

논문을 그대로 구현하기보단 핵심 아이디어를 응용하는 방식을 선택했고, 제가 선택한 방식은 데이터수가 많지 않으니 전체 데이터를 사용해 vector db를 방식입니다. 생각해보니 전체 데이터를 사용하는 방법보단 그 안에서 데이터 분포를 나누고 bagging을 했다면 좀 더 robust한 결과를 주지 않았을까 생각이 드네요.

Anomaly Threshold는 train data에서 leave one out score를 통해 기준치를 정하려고했고, train data가 test보다 많기 때문이 이 값 최댓값을 하거나 95~100% percentile로 기준치를 잡는 방식으로  접근해서 빠른 시간내로 높은 public score를 기록하게 되었습니다

그리고 다른 대회를 통해서 다른 주제들에 대해 좀 더 익히는걸 목표로 했고 그동안 제가 가진 의문은 다음과 같았습니다.

  1. 임의의 기준치가 아니고 설명 가능한 threshold 확보하고 이를 통해 설명력있는 결과를 제시하기
  2. 이미지 분포내에서 가능한 distribution이 존재하는데 이를 고려한 augmentation 구현
  3. imagenet preprocessing을 하면 트랜지스터가 까맣게 변하는데, 이 점을 해결하는 전처리 구현

이에 대해 진행했던 방식은

  1. Patch Core의 핵심 아이디어는 image의 local activation pattern vector를 만들고, vector search를 통해 의미있는 score를 계산하는 방식입니다. 생각보다 실제 score의 distribution을 다양한 neighbourhood와, patch size와 pretrain vector size, target vector size를 통해 테스트를 해봤지만 실제 정상 이미지와 비정상 이미지의 Score distribution이 혼합된 경우들이 있었고, 안정적인 결과를 얻는데 실패했습니다
  2. 일부 코드의 퍼포먼스를 최적화하지 못했고 그로 인해 augmentation을 통해 만든 Vector DB를 LOO을 통해 threshold를 생성하는 과정이 시간이 많이 결러서 성공적으로 진행하지 못했습니다
  3. 이부분은 몇가지 brightness와 contrast를 수정한 전처리를 추가했고 이를 통해 트랜지스터 몸통에 손상이 있는 경우가 확실히 들어나게 처리를 해서 해당 경우를 처리할 수 있었습니다.

지금 생각해보면 앞서 언급드린 bagging을 활용한 score를 활용하는 방법을 선택하는것도 괜찮았겠다 생각이 들고 (실제 Patch Core 논문에서 그렇게 구현했는지는 체크하지 않았습니다. latency를 위해서만 data sampling을 사용한 배경으로만 확인했습니다.) 좀 더 도메인에 대해서 공부하면서 해당 논문 구현 뿐만 아니라 다양한 insight를 혼합하는 것들도 중요하다는 생각이 들었습니다.


흥미로운 주제로 해커톤을 주최해주신 데이콘 대회 담당자분께 감사를 드리고 읽어주셔서 감사합니다.

혹시라도 읽으시다가 생각난 좋은 아이디어가 있으시다면 댓글로 공유주시면 감사합니다.

로그인이 필요합니다
0 / 1000
도비콘
2024.03.05 19:05

와우, 정말 멋진 게시물이네요! 🌟 이렇게 통찰력 있는 내용을 공유해주셔서 감사합니다. 🙏