ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CutPaste : self-supervised Learning for Anomaly Detection and Localization
    전반적인 딥러닝 기법 2022. 9. 21. 17:14

    한동안 논문 및 학회 준비로 바쁜 삶을 보냈다. 그러던 도중 기업들도 서치를 해보았는데 역시나 대부분의 제조업 회사들은 이상치 탐지 알고리즘 프로젝트를 진행하고 있었다. 이상치 탐지는 언제 한번 깊게 공부해보고 싶은 분야였기 때문에 관련 논문 하나를 공부해보았으며, 이번 포스트에서는 오랜만에 딥러닝 기법에 대한 소개를 하고자 한다.

     

    CutPaste : self-supervised Learning for Anomaly Detection and Localization

    이 논문은 2021년 비교적 따끈따끈하게 나왔다. CVPR에서 Google Cloud AI Research 팀이 발표한 이 논문은 사실 간단한 아이디어이지만 매우 실용적이며 훌륭한 결과를 갖고 있다. 

     

    먼저 논문 제목을 살펴보자면, "Self-Supervised"와 "Anomaly Detetection" 두 가지의 개념이 서로 공존하는 것을 볼 수 있다. 먼저 자기지도학습부터 살펴보자면, 자기지도학습은 인간의 관리 없이 컴퓨터의 알고리즘을 훈련시키기 위해 자유롭게 사용할 있는 텍스트, 이미지 콘텐츠를 활용할 있는 방법을 제시하는 모델이다. 다시 말하자면 자기지도학습은 이미지의 특징값을 추출하는 모델이 있다고 할 때, 인풋 데이터의 한 부분이 다른 부분의 Supervision 역할을 하는 것을 말한다.

    사실 나는 예전 학부수업때 비지도학습이라고 배웠기 때문에 자기지도학습보단 비지도학습이라는 용어가 더 친숙한데, 얀 르쿤 교수님의 말을 보면 "self-supervision 입력값의 부분으로부터 다른 부분을 예측하게끔 하기 때문에 이것을 unsupervised 부르는 것은 잘못되었다" 라는 것을 알 수 있다. 확실히 용어를 바꾸니 이 학습론이 어떤식으로 진행되는지 감을 잡기가 수월하였다.

     

    https://towardsdatascience.com/weakly-and-self-supervised-learning-part-3-b8186679d55e

    보통 Self supervised learning 한다는 것은, 이러한 framework 진행된다. 우선 pretext task에서는 라벨링이 되지 않은 데이터셋을 인풋으로 받아 사용자가 정의한 문제, pretext task 네트워크가 학습하게 하여 데이터 자체에 대한 이해도를 높여준다.만약 Pretext task 짜여졌다면, input의 특징값을 보다 더 추출할 수 있을 것이다.

     

    그럼 이제 pretext task로부터 추출된 정보들을 가지고 supervised learning 통해 진짜로 하고싶은 Downstream task 진행하게 된다. 한마디로 자기지도학습은 내가 진짜로 수행하고 싶은 테스크에서 특징 추출 (Convolution) 작업을 pretrain해주는 것이라고 볼 수 있다.

     

    일반적으로 비지도 학습에서의 이상치 탐지 방법은 정상데이터만이 학습데이터에 존재한다는 가정에서 정상데이터를 학습하고, 이런 정상데이터의 특징과 새로들어오는 테스트 데이터의 차이를 이용해서 비정상 데이터를 탐지한다.

     

    Cutpaste에서도 비슷한 구조로 프로세스가 진행되는데, 먼저 첫번째로는 self-supervised learning으로 정상 데이터의 특징을 학습하고, Gaussian density estimation (GDE)를 활용하여 정상 데이터의 분포를 파악한 후, 테스트 데이터에 대해 정상데이터와 다른 특징이 검출될 경우, 비정상이라 판단한다.

     

    논문에서는 특히 self-supervised learning 단계에서 CutPaste라는 새로운 augmentation을 제안한다. CutPaste는 크게 1)CutPaste와 2)CutPaste-Scar로 나누어 볼 수 있다. Cutpaste는 먼저 첫번째로 직사각형 크기의 패치를 정해 자른  무작위로 위치를 선정하여 붙이는 방법을 말한다. 그림 (e)를 보면 약간 비교적 큰 직사각형 모양들로 paste된 모습을 볼 수 있다. 그다음 이제 Cutpaste-Scar 방법인데, 이는 얇고 긴 직사각형의 패치를 자르고 붙이는 방법으로 (f)의 예시를 보면 쉽게 이해할 수 있다.

     

    해당 논문에서의 이상치 탐지 알고리즘은 크게 두 단계로 나누어서 볼 수 있는데, 먼저 (a) 단계부터 살펴보겠다. (a) 단계는 자기지도학습을 이용한 Pretext Task로 원 이미지는 0, cutpaste 1, 그리고 cutpaste-scar 2라고 라벨링을 , multi-class classification 학습시켜준다. 특히 논문에서는 이러한 방법을 cutpaste 3-way라고 말한다.

     

    (b) 단계에서는 사전학습 이후, 본격적으로 정상 이미지로부터 CNN과 Gaussian density estimation을 활용하여 정상데이터의 분포를 학습한다. 근데 왜 하필 Gaussian density estimation일까?

     

    Kim, S., Choi, Y., & Lee, M. (2015). Deep learning with support vector data description.  Neurocomputing ,  165 , 111-117.

    GDE를 설명하기 위해 다시 anomaly detection에 관한 이야기를 하고 넘어가도록 하겠다. 다음 우측 그래프를 보면, 검은색 점들이 우리의 학습데이터고 하얀색 점들은 처음보는 테스트 데이터라고 가정하자. 우리는 학습데이터로부터 정상군들은 다음 원과 같은 군집을 이룬다는 사실을 알 수 있을 것이고, 따라서 비록 비정상데이터를 학습시키지 않았지만, 하얀 점들은 군집과 떨어져 있기 때문에 비정상일 것이라고 추측할 수 있다. 이처럼 데이터의 군집화 정도를 보았을 중앙에 위치할수록 normal이고 멀어질수록 비정상에 가까워진다.

     

    간략한 이상치 탐지의 알고리즘 순서는 다음과 같다.

    1. 이상치 특징을 찾을 수 있는 피쳐 값을 선정한다.

    2. n개의 feature가 있을때 각 피쳐의 평균과 표준편차를 계산한다.

    3. 이러한 지표들을 활용하여 모델링 한 후, 새로운 데이터 X에 대해 P(X)를 계산한다.

    4. 적절한 thresholding 값을 정하고 P가 thresholding 보다 작을 경우 비정상이라고 판단한다.

     

    이처럼 저자들은 GDE 사용해 anomaly score 측정한다. 여기까지가 정상 데이터를 통해 학습하는 방식이였고, 이제는 새로운 이미지가 들어왔을때 해당 이미지가 이상치인지 아닌지를 판단하는 방법을 소개하겠다.

     

    크게 가지로 나누어 있는데, 먼저 이미지 단위의 판단 방법이 있고 두번째는 패치 단위의 판단 방법이 있다.

     

    먼저 이미지에 대한 판단 방법은 이미지 전체를 CNN 모델에다가 반영해서 GDE 통해 나온 어노말리 스코어를 통해 해당이미지가 정상 데이터와 얼마나 차이가 나는지를 확인한다. 이때는 이미지 단위로 모델에 적용되기 때문에 정확하게 이미지의 어떤 부분이 문제가 있는지를 확인하기 위해서는 GradCam 통해 이미지의 기여도를 시각화해준다.

     

    두번째는 패치단위의 방법이다.   논문에서는 원본 이미지를 Crop해서 CNN 넣고 패치마다의 GDE 통한 어노말리 값을 뽑아낸 gaussian smoothing 함께 Upsampling하여 결과를 보여준다.

     

    다음은 실험 결과이다. 먼저 CutPaste 생성한 이미지가 실제로 이상치 데이터와 유사한지를 보기 위해 T-SNE 방법을 통해 시각화 결과 자료이다. 정상데이터와 다른 클래스들이 모두 잘 분리된 모습을 확인할 수 있으며, CutPaste로 생성한 데이터와 이상치 데이터의 거리가 서로 가까운 것을 볼 수 있다.

     

    높은 확률로 이상치 탐지를 있음을 보여주고, GradCam 결과 또한 훌륭한 것을 있다.

    댓글

Designed by Tistory.